From: Markus Armbruster Date: Mon, 31 Oct 2016 10:44:04 +0000 (+0100) Subject: reject: New enum rej_comm for REJ_TELE & friends X-Git-Tag: v4.4.0~78 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=4628661b4095e7a7a73dffd2e5ac6a785713ab14 reject: New enum rej_comm for REJ_TELE & friends Signed-off-by: Markus Armbruster --- diff --git a/include/nat.h b/include/nat.h index e4f70a5ec..2ad7f049c 100644 --- a/include/nat.h +++ b/include/nat.h @@ -122,11 +122,6 @@ struct natstr { #define FRIENDLY 3 #define ALLIED 4 - /* nation reject codes */ -#define REJ_TELE bit(0) /* dont allow telegrams to be sent */ -#define REJ_ANNO bit(1) /* don't receive announcements */ -#define REJ_LOAN bit(2) /* don't allow loans to be offered */ - #define NAT_TLEV 0 #define NAT_RLEV 1 #define NAT_ELEV 2 @@ -159,6 +154,13 @@ struct contactstr { unsigned char con_contact[MAXNOC]; }; +/* Kinds of communication players can reject */ +enum rej_comm { + REJ_TELE, /* dont allow telegrams to be sent */ + REJ_ANNO, /* don't receive announcements */ + REJ_LOAN /* don't allow loans to be offered */ +}; + extern char *relates[]; /* procedures relating to nation stuff */ @@ -173,15 +175,17 @@ extern char *relates[]; #define getrealm(r, n, p) ef_read(EF_REALM, ((r) + ((n) * MAXNOR)), (p)) #define putrealm(p) ef_write(EF_REALM, (p)->r_uid, (p)) +/* src/lib/common/tfact.c */ extern double tfact(natid cn, double mult); extern double techfact(int level, double mult); +/* src/lib/common/nat.c */ extern char *cname(natid n); extern char *relatename(struct natstr *np, natid other); extern char *natstate(struct natstr *np); extern int getrel(struct natstr *np, natid them); extern int relations_with(natid, natid); -extern int nat_accepts(struct natstr *, natid, int); +extern int nat_accepts(struct natstr *, natid, enum rej_comm); extern int in_contact(natid, natid); extern void putrel(struct natstr *np, natid them, int relate); extern void agecontact(struct natstr *np); @@ -189,12 +193,19 @@ extern int influx(struct natstr *np); extern struct natstr *nat_reset(struct natstr *, natid, char *, char *, enum nat_status); +/* src/lib/subs/natsub.c */ extern int check_nat_name(char *, natid); extern char *prnat(struct natstr *); extern char *prnatid(natid); +/* src/lib/common/btu.c */ extern int grant_btus(struct natstr *, int); +/* src/lib/subs/rej.c */ +extern void setrel(natid, natid, int); +extern void setcont(natid, natid, int); +extern void setrej(natid, natid, int, enum rej_comm); + /* nation flags */ #define NF_INFORM bit(0) /* Inform me of telegrams right away */ #define NF_FLASH bit(1) /* Allow other players to flash me (sicko :) */ diff --git a/include/prototypes.h b/include/prototypes.h index 5ea7a47ab..0471335bc 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -563,9 +563,7 @@ extern int delty(struct range *, coord); extern void radmap(int, int, int, double, int, double); extern void rad_map_set(natid, int, int, int, double, int); /* rej.c */ -extern void setrel(natid, natid, int); -extern void setcont(natid, natid, int); -extern void setrej(natid, natid, int, int); +/* in nat.h */ /* retreat.c */ /* in retreat.h */ /* sarg.c */ diff --git a/src/lib/commands/reje.c b/src/lib/commands/reje.c index c2f1c3f98..b8b729e0c 100644 --- a/src/lib/commands/reje.c +++ b/src/lib/commands/reje.c @@ -38,7 +38,7 @@ int reje(void) { char *p; - int rel; + enum rej_comm rel; int do_undo; struct natstr nat; struct nstr_item ni; diff --git a/src/lib/common/nat.c b/src/lib/common/nat.c index 87f0cff94..6c2119e0a 100644 --- a/src/lib/common/nat.c +++ b/src/lib/common/nat.c @@ -90,10 +90,10 @@ relations_with(natid us, natid them) } int -nat_accepts(struct natstr *np, natid them, int what) +nat_accepts(struct natstr *np, natid them, enum rej_comm what) { return getnatp(them)->nat_stat == STAT_GOD - || !(np->nat_rejects[them] & what); + || !(np->nat_rejects[them] & bit(what)); } void diff --git a/src/lib/global/symbol.c b/src/lib/global/symbol.c index 268909b6f..bf0b480bb 100644 --- a/src/lib/global/symbol.c +++ b/src/lib/global/symbol.c @@ -115,9 +115,9 @@ struct symbol nation_flags[] = { }; struct symbol nation_rejects[] = { - {REJ_TELE, "telegrams"}, - {REJ_ANNO, "announcements"}, - {REJ_LOAN, "loans"}, + {bit(REJ_TELE), "telegrams"}, + {bit(REJ_ANNO), "announcements"}, + {bit(REJ_LOAN), "loans"}, {0, NULL} }; diff --git a/src/lib/subs/rej.c b/src/lib/subs/rej.c index d0a0abca6..c841c0624 100644 --- a/src/lib/subs/rej.c +++ b/src/lib/subs/rej.c @@ -132,15 +132,15 @@ setcont(natid us, natid them, int contact) } void -setrej(natid us, natid them, int how, int what) +setrej(natid us, natid them, int reject, enum rej_comm what) { struct natstr *np = getnatp(us); if (CANT_HAPPEN(!np)) return; - if (how) - np->nat_rejects[them] |= what; + if (reject) + np->nat_rejects[them] |= bit(what); else - np->nat_rejects[them] &= ~what; + np->nat_rejects[them] &= ~bit(what); putnat(np); }