/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2016, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2018, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure, Markus Armbruster
*
* Empire is free software: you can redistribute it and/or modify
* Known contributors to this file:
* Dave Pare, 1989
* Steve McClure, 1997
- * Markus Armbruster, 2004-2015
+ * Markus Armbruster, 2004-2016
*/
#include <config.h>
int idx, hidden;
coord c;
struct natstr *natp;
+ struct relatstr *relp;
if (CANT_HAPPEN(want != NSC_NOTYPE && !NSC_IS_PROMOTED(want)))
want = nstr_promote(want);
if (hidden) {
if (CANT_HAPPEN(hidden && valtype != NSC_LONG))
break; /* not implemented */
- if (CANT_HAPPEN(((struct natstr *)ptr)->ef_type != EF_NATION))
+ relp = ptr;
+ if (CANT_HAPPEN(relp->ef_type != EF_RELAT))
break; /* only defined for nation selectors */
- if (!opt_HIDDEN || cnum == NATID_BAD)
+ if (!opt_HIDDEN || cnum == NATID_BAD
+ || getnatp(cnum)->nat_stat == STAT_GOD)
break;
- natp = getnatp(cnum);
- if (natp->nat_stat != STAT_GOD
- && !(getcontact(natp, idx) && getcontact(ptr, idx)))
+ if (!in_contact(cnum, idx) || !in_contact(relp->rel_uid, idx))
val->val_as.lng = -1;
}
break;