reject: New enum rej_comm for REJ_TELE & friends
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
9d153f547c
commit
4628661b40
6 changed files with 28 additions and 19 deletions
|
@ -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 :) */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
};
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue