]> git.pond.sub.org Git - empserver/blobdiff - src/lib/subs/rej.c
Update copyright notice
[empserver] / src / lib / subs / rej.c
index bf8882d19d47afb507e0d256d328ed8a235a7efa..b0944f8c6825430fb6a270a759bd6bb79335daf5 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2016, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2020, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                Ken Stevens, Steve McClure, Markus Armbruster
  *
  *  Empire is free software: you can redistribute it and/or modify
 #include "update.h"
 
 void
-setrel(natid us, natid them, int rel)
+setrel(natid us, natid them, enum relations rel)
 {
+    struct relatstr *relp = getrelatp(us);
     struct natstr *mynp = getnatp(us);
-    struct natstr *themnp = getnatp(them);
-    int oldrel;
+    enum relations oldrel;
     char *whichway;
     int n_up = 0;
     int n_down = 0;
@@ -55,7 +55,7 @@ setrel(natid us, natid them, int rel)
        rel = AT_WAR;
     if (CANT_HAPPEN(rel > ALLIED))
        rel = ALLIED;
-    if (CANT_HAPPEN(!mynp || !themnp))
+    if (CANT_HAPPEN(!relp || !mynp))
        return;
     if (us == them)
        return;
@@ -87,14 +87,14 @@ setrel(natid us, natid them, int rel)
     if (addendum && us == player->cnum && !update_running)
        pr("%s\n", addendum);
     mpr(us, "Diplomatic relations with %s %s to \"%s\".\n",
-       cname(them), whichway, relates[rel]);
-    if (!(getrejects(us, themnp) & REJ_TELE))
+       cname(them), whichway, relations_string(rel));
+    if (nat_accepts(them, us, REJ_TELE))
        mpr(them,
            "Country %s has %s their relations with you to \"%s\"!\n",
-           prnat(mynp), whichway, relates[rel]);
+           prnat(mynp), whichway, relations_string(rel));
 
-    putrel(mynp, them, rel);
-    putnat(mynp);
+    relp->rel_relate[them] = rel;
+    putrelat(relp);
 
     if (!player->god) {
        if (oldrel == ALLIED)
@@ -113,9 +113,9 @@ setrel(natid us, natid them, int rel)
 void
 setcont(natid us, natid them, int contact)
 {
-    struct natstr *np = getnatp(us);
+    struct contactstr *conp = getcontactp(us);
 
-    if (CANT_HAPPEN(!np))
+    if (CANT_HAPPEN(!conp))
        return;
 
     if (CANT_HAPPEN(contact < 0))
@@ -125,19 +125,22 @@ setcont(natid us, natid them, int contact)
 
     if (!opt_LOSE_CONTACT)
        contact = !!contact;
-    if (np->nat_contact[them] < contact) {
-       np->nat_contact[them] = contact;
-       putnat(np);
+    if (conp->con_contact[them] < contact) {
+       conp->con_contact[them] = contact;
+       putcontact(conp);
     }
 }
 
 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);
+    struct rejectstr *rejp = getrejectp(us);
 
-    if (CANT_HAPPEN(!np))
+    if (CANT_HAPPEN(!rejp))
        return;
-    putreject(np, them, how, what);
-    putnat(np);
+    if (reject)
+       rejp->rej_rejects[them] |= bit(what);
+    else
+       rejp->rej_rejects[them] &= ~bit(what);
+    putreject(rejp);
 }