]> git.pond.sub.org Git - empserver/blobdiff - src/lib/subs/rej.c
Update copyright notice
[empserver] / src / lib / subs / rej.c
index 8e4b0cdb899b74238fdf99d2322ade75ce4ed012..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)
@@ -132,12 +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);
+    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);
 }