]> git.pond.sub.org Git - empserver/blobdiff - src/lib/commands/cons.c
Update copyright notice
[empserver] / src / lib / commands / cons.c
index 457373423bbc84c3a92db38bc7bfb7f3e4ec75eb..27fb90f38c617f993139509fbd9460c2d2b9a86d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *  Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                           Ken Stevens, Steve McClure
  *
  *  This program is free software; you can redistribute it and/or modify
  *
  *  ---
  *
- *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- *  related information and legal notices. It is expected that any future
- *  projects/authors will amend these files as needed.
+ *  See files README, COPYING and CREDITS in the root of the source
+ *  tree for related information and legal notices.  It is expected
+ *  that future projects/authors will amend these files as needed.
  *
  *  ---
  *
  *  cons.c: Consider a loan or treaty
- * 
+ *
  *  Known contributors to this file:
- *     
+ *
  */
 
-#include "misc.h"
-#include "player.h"
+#include <config.h>
+
+#include "commands.h"
 #include "loan.h"
-#include "nat.h"
-#include "treaty.h"
 #include "news.h"
-#include "xy.h"
-#include "nsc.h"
-#include "file.h"
-#include "commands.h"
 #include "optlist.h"
+#include "treaty.h"
 
 /*
  * Things common to a loan or treaty.
 struct ltcomstr {
     int type;                  /* EF_LOAN or EF_TREATY */
     int num;                   /* number */
-    s_char *name;              /* "loan" or "treaty" */
-    s_char *Name;              /* "Loan" or "Treaty" */
+    char *name;                        /* "loan" or "treaty" */
+    char *Name;                        /* "Loan" or "Treaty" */
     natid proposer;            /* country offering */
     natid proposee;            /* country offered to */
     natid mailee;              /* who gets mail about it */
-    s_char op;                 /* 'a', 'd', or 'p' */
+    char op;                   /* 'a', 'd', or 'p' */
     union {
        struct lonstr l;        /* the loan */
        struct trtstr t;        /* the treaty */
@@ -110,16 +106,17 @@ cons(void)
 static int
 cons_choose(struct ltcomstr *ltcp)
 {
-    s_char *p;
+    static int lon_or_trt[] = { EF_LOAN, EF_TREATY, EF_BAD };
+    char *p;
     struct lonstr *lp;
     struct trtstr *tp;
-    s_char prompt[128];
-    s_char buf[1024];
+    char prompt[128];
+    char buf[1024];
 
     memset(ltcp, 0, sizeof(*ltcp));
     if (getstarg(player->argp[1], "loan or treaty? ", buf) == 0)
        return RET_SYN;
-    ltcp->type = ef_byname(buf);
+    ltcp->type = ef_byname_from(buf, lon_or_trt);
     switch (ltcp->type) {
     case EF_TREATY:
        if (!opt_TREATIES) {
@@ -173,14 +170,8 @@ cons_choose(struct ltcomstr *ltcp)
     }
     ltcp->mailee = (ltcp->proposer == player->cnum)
        ? ltcp->proposee : ltcp->proposer;
-    while ((p =
-           getstarg(player->argp[3], "Accept, decline or postpone? ",
-                    buf)) && *p) {
-       if (*p == 'a' || *p == 'd' || *p == 'p')
-           break;
-       player->argp[3] = 0;
-    }
-    if (p == 0 || *p == 0)
+    p = getstarg(player->argp[3], "Accept, decline or postpone? ", buf);
+    if (!p || (*p != 'a' && *p != 'd' && *p != 'p'))
        return RET_SYN;
     ltcp->op = *p;
     return RET_OK;
@@ -205,8 +196,9 @@ loan_accept(struct ltcomstr *ltcp)
        return RET_OK;
     }
     if (!getloan(ltcp->num, lp)) {
-       pr("loan_accept: can't read loan; get help!\n");
-       return RET_SYS;
+       logerror("loan_accept: can't read loan");
+       pr("can't read loan; get help!\n");
+       return RET_FAIL;
     }
     if (lp->l_status == LS_FREE) {     /* other guy retratcted already */
        late(ltcp);
@@ -218,7 +210,7 @@ loan_accept(struct ltcomstr *ltcp)
     }
     /* check to see if a loan already exists */
     snxtitem_all(&nstr, EF_LOAN);
-    while (nxtitem(&nstr, (s_char *)&loan)) {
+    while (nxtitem(&nstr, &loan)) {
        if (loan.l_status == LS_SIGNED && loan.l_lonee == lp->l_loner
            && (loan.l_loner == lp->l_lonee)) {
            pr("He already owes you money - make him repay his loan!\n");
@@ -240,7 +232,7 @@ loan_accept(struct ltcomstr *ltcp)
     (void)time(&lp->l_lastpay);
     lp->l_duedate = lp->l_ldur * 86400 + lp->l_lastpay;
     lp->l_status = LS_SIGNED;
-    if (!putloan(ltcp->num, (s_char *)lp)) {
+    if (!putloan(ltcp->num, lp)) {
        pr("Problem writing lp->to disk; get help!\n");
        return RET_FAIL;
     }
@@ -259,8 +251,9 @@ loan_decline(struct ltcomstr *ltcp)
 
     lp = &ltcp->u.l;
     if (!getloan(ltcp->num, lp)) {
-       pr("Decline: can't read loan; get help!\n");
-       return RET_SYS;
+       logerror("loan_decline: can't read loan");
+       pr("can't read loan; get help!\n");
+       return RET_FAIL;
     }
     /* loan got accepted somehow between now and last time we checked */
     if (lp->l_status == LS_SIGNED) {
@@ -269,8 +262,9 @@ loan_decline(struct ltcomstr *ltcp)
     }
     lp->l_status = LS_FREE;
     if (!putloan(ltcp->num, lp)) {
-       pr("loan_decline: can't write loan; get help!\n");
-       return RET_SYS;
+       logerror("loan_decline: can't write loan");
+       pr("can't write loan; get help!\n");
+       return RET_FAIL;
     }
     decline(ltcp);
     return RET_OK;
@@ -290,8 +284,9 @@ treaty_accept(struct ltcomstr *ltcp)
        return RET_OK;
     }
     if (!gettre(ltcp->num, tp)) {
-       pr("Accept: can't read treaty; get help!\n");
-       return RET_SYS;
+       pr("treaty_accept: can't read treaty");
+       pr("can't read treaty; get help!\n");
+       return RET_FAIL;
     }
     if (tp->trt_status == TS_FREE) {   /* treaty offer withdrawn */
        late(ltcp);
@@ -303,8 +298,9 @@ treaty_accept(struct ltcomstr *ltcp)
     }
     tp->trt_status = TS_SIGNED;
     if (!puttre(ltcp->num, tp)) {
+       pr("treaty_accept: can't write treaty");
        pr("Problem saving treaty; get help!\n");
-       return RET_SYS;
+       return RET_FAIL;
     }
     accpt(ltcp);
     pr("Treaty in effect until %s", ctime(&tp->trt_exp));
@@ -321,8 +317,9 @@ treaty_decline(struct ltcomstr *ltcp)
 
     tp = &ltcp->u.t;
     if (!gettre(ltcp->num, tp)) {
-       pr("Decline: can't read treaty; get help!\n");
-       return RET_SYS;
+       logerror("treaty_decline: can't read treaty");
+       pr("can't read treaty; get help!\n");
+       return RET_FAIL;
     }
     /* treaty got signed somehow between now and last time we read it */
     if (tp->trt_status == TS_SIGNED) {
@@ -331,8 +328,9 @@ treaty_decline(struct ltcomstr *ltcp)
     }
     tp->trt_status = TS_FREE;
     if (!puttre(ltcp->num, tp)) {
+       logerror("treaty_decline: can't write treaty");
        pr("Problem saving treaty; get help!\n");
-       return RET_SYS;
+       return RET_FAIL;
     }
     decline(ltcp);
     return RET_OK;