]> git.pond.sub.org Git - empserver/blobdiff - src/lib/commands/cons.c
Indented with src/scripts/indent-emp.
[empserver] / src / lib / commands / cons.c
index 37bb99db2f2adb68a42a70978f668fb7770bc26b..b0b713e315d5eac6e5be0263b9366c0054c32631 100644 (file)
  * 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" */
-       natid   proposer;               /* country offering */
-       natid   proposee;               /* country offered to */
-       natid   mailee;                 /* who gets mail about it */
-       s_char  op;                     /* 'a', 'd', or 'p' */
-       union {
-               struct  lonstr l;       /* the loan */
-               struct  trtstr t;       /* the treaty */
-       } u;
+    int type;                  /* EF_LOAN or EF_TREATY */
+    int num;                   /* number */
+    s_char *name;              /* "loan" or "treaty" */
+    s_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' */
+    union {
+       struct lonstr l;        /* the loan */
+       struct trtstr t;        /* the treaty */
+    } u;
 };
 
 static int cons_choose(struct ltcomstr *ltcp);
@@ -75,32 +75,31 @@ static void prev_signed(struct ltcomstr *ltcp);
 int
 cons(void)
 {
-       int     rv;
-       struct  ltcomstr ltc;
+    int rv;
+    struct ltcomstr ltc;
 
-       rv = cons_choose(&ltc);
-       if (rv != RET_OK)
-               return rv;
+    rv = cons_choose(&ltc);
+    if (rv != RET_OK)
+       return rv;
 
-       switch (ltc.op) {
-       case 'a':
-               rv = (ltc.type == EF_TREATY) ? treaty_accept(&ltc)
-                                            : loan_accept(&ltc);
-               break;
-       case 'd':
-               rv = (ltc.type == EF_TREATY) ? treaty_decline(&ltc)
-                                            : loan_decline(&ltc);
-               break;
-       case 'p':
-               rv = postpone(&ltc);
-               break;
-       default:
-               pr("Bad operation %c from cons_choose; get help!\n",
-                       ltc.op);
-               break;
-       };
+    switch (ltc.op) {
+    case 'a':
+       rv = (ltc.type == EF_TREATY) ? treaty_accept(&ltc)
+           : loan_accept(&ltc);
+       break;
+    case 'd':
+       rv = (ltc.type == EF_TREATY) ? treaty_decline(&ltc)
+           : loan_decline(&ltc);
+       break;
+    case 'p':
+       rv = postpone(&ltc);
+       break;
+    default:
+       pr("Bad operation %c from cons_choose; get help!\n", ltc.op);
+       break;
+    };
 
-       return rv;
+    return rv;
 }
 
 /*
@@ -111,83 +110,83 @@ cons(void)
 static int
 cons_choose(struct ltcomstr *ltcp)
 {
-       s_char  *p;
-       extern  int disloan();
-       extern  int distrea();
-       int     (*dis)();
-       struct  lonstr *lp;
-       struct  trtstr *tp;
-       s_char  prompt[128];
-       s_char  buf[1024];
+    s_char *p;
+    extern int disloan();
+    extern int distrea();
+    int (*dis) ();
+    struct lonstr *lp;
+    struct trtstr *tp;
+    s_char prompt[128];
+    s_char buf[1024];
 
-       bzero((s_char *)ltcp, sizeof (*ltcp));
-       if (getstarg(player->argp[1], "loan or treaty? ", buf) == 0)
-               return RET_SYN;
-       ltcp->type = ef_byname(buf);
-       switch (ltcp->type) {
-       case EF_TREATY:
-               if (!opt_TREATIES) {
-                   pr("Treaties are not enabled.\n");
-                   return RET_FAIL;
-               }
-               ltcp->name = "treaty";
-               ltcp->Name = "Treaty";
-               dis = distrea;
-               break;
-       case EF_LOAN:
-               if (!opt_LOANS) {
-                   pr("Loans are not enabled.\n");
-                   return RET_FAIL;
-               }
-               ltcp->name = "loan";
-               ltcp->Name = "Loan";
-               dis = disloan;
-               break;
-       default:
-               pr("You must specify \"loan\" or \"treaty\".\n");
-               return RET_SYN;
+    bzero((s_char *)ltcp, sizeof(*ltcp));
+    if (getstarg(player->argp[1], "loan or treaty? ", buf) == 0)
+       return RET_SYN;
+    ltcp->type = ef_byname(buf);
+    switch (ltcp->type) {
+    case EF_TREATY:
+       if (!opt_TREATIES) {
+           pr("Treaties are not enabled.\n");
+           return RET_FAIL;
        }
-       sprintf(prompt, "%s number? ", ltcp->Name);
-       if ((ltcp->num = onearg(player->argp[2], prompt)) < 0)
-               return RET_SYN;
-       if (!ef_read(ltcp->type, ltcp->num, (caddr_t)&ltcp->u) ||
-           !(*dis)(ltcp->num, &ltcp->u)) {
-               pr("%s #%d is not being offered to you!\n",
-                       ltcp->Name, ltcp->num);
-               return RET_SYN;
+       ltcp->name = "treaty";
+       ltcp->Name = "Treaty";
+       dis = distrea;
+       break;
+    case EF_LOAN:
+       if (!opt_LOANS) {
+           pr("Loans are not enabled.\n");
+           return RET_FAIL;
        }
-       switch (ltcp->type) {
-       case EF_LOAN:
-               lp = &ltcp->u.l;
-               if (lp->l_status == LS_SIGNED) {
-                       pr("That loan has already been accepted!\n");
-                       return RET_FAIL;
-               }
-               ltcp->proposer = lp->l_loner;
-               ltcp->proposee = lp->l_lonee;
-               break;
-       case EF_TREATY:
-               tp = &ltcp->u.t;
-               if (tp->trt_status == TS_SIGNED) {
-                       pr("That treaty has already been accepted!\n");
-                       return RET_FAIL;
-               }
-               ltcp->proposer = tp->trt_cna;
-               ltcp->proposee = tp->trt_cnb;
-               break;
+       ltcp->name = "loan";
+       ltcp->Name = "Loan";
+       dis = disloan;
+       break;
+    default:
+       pr("You must specify \"loan\" or \"treaty\".\n");
+       return RET_SYN;
+    }
+    sprintf(prompt, "%s number? ", ltcp->Name);
+    if ((ltcp->num = onearg(player->argp[2], prompt)) < 0)
+       return RET_SYN;
+    if (!ef_read(ltcp->type, ltcp->num, (caddr_t)&ltcp->u) ||
+       !(*dis) (ltcp->num, &ltcp->u)) {
+       pr("%s #%d is not being offered to you!\n", ltcp->Name, ltcp->num);
+       return RET_SYN;
+    }
+    switch (ltcp->type) {
+    case EF_LOAN:
+       lp = &ltcp->u.l;
+       if (lp->l_status == LS_SIGNED) {
+           pr("That loan has already been accepted!\n");
+           return RET_FAIL;
        }
-       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;
+       ltcp->proposer = lp->l_loner;
+       ltcp->proposee = lp->l_lonee;
+       break;
+    case EF_TREATY:
+       tp = &ltcp->u.t;
+       if (tp->trt_status == TS_SIGNED) {
+           pr("That treaty has already been accepted!\n");
+           return RET_FAIL;
        }
-       if (p == 0 || *p == 0)
-               return RET_SYN;
-       ltcp->op = *p;
-       return RET_OK;
+       ltcp->proposer = tp->trt_cna;
+       ltcp->proposee = tp->trt_cnb;
+       break;
+    }
+    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)
+       return RET_SYN;
+    ltcp->op = *p;
+    return RET_OK;
 }
 
 /*
@@ -198,60 +197,59 @@ cons_choose(struct ltcomstr *ltcp)
 static int
 loan_accept(struct ltcomstr *ltcp)
 {
-       struct  lonstr *lp;
-       struct  natstr *lender;
-       struct  nstr_item nstr;
-       struct  lonstr loan;
+    struct lonstr *lp;
+    struct natstr *lender;
+    struct nstr_item nstr;
+    struct lonstr loan;
 
-       lp = &ltcp->u.l;
-       if (ltcp->proposee != player->cnum) {
-               pr("%s %d is still pending.\n", ltcp->Name, ltcp->num);
-               return RET_OK;
-       }
-       if (!getloan(ltcp->num, (caddr_t)lp)) {
-               pr("loan_accept: can't read loan; get help!\n");
-               return RET_SYS;
-       }
-       if (lp->l_status == LS_FREE) {  /* other guy retratcted already */
-               late(ltcp);
-               return RET_OK;
-       }
-       if (lp->l_status == LS_SIGNED) { /* already signed somehow */
-               prev_signed(ltcp);
-               return RET_OK;
-       }
-       /* check to see if a loan already exists */
-       snxtitem_all(&nstr, EF_LOAN);
-       while (nxtitem(&nstr, (s_char *) &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");
-                       return RET_OK;
-               }
-       }
-       lender = getnatp(ltcp->proposer);
-       if (lender->nat_money < lp->l_amtdue) { /* other guy is poor */
-               lp->l_amtdue = lender->nat_money - 100;
-               pr("%s no longer has the funds.\n", cname(ltcp->proposer));
-               if (lp->l_amtdue <= 0)
-                       return RET_FAIL;
-               pr("You may borrow $%d at the same terms.\n",
-                       lp->l_amtdue);
-       }
-       lender->nat_money -= lp->l_amtdue;
-       putnat(lender);
-       player->dolcost -= lp->l_amtdue;
-       lp->l_amtpaid = 0;
-       (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)) {
-               pr("Problem writing lp->to disk; get help!\n");
-               return RET_FAIL;
-       }
-       accpt(ltcp);
-       pr("You are now $%d richer (sort of).\n", lp->l_amtdue);
+    lp = &ltcp->u.l;
+    if (ltcp->proposee != player->cnum) {
+       pr("%s %d is still pending.\n", ltcp->Name, ltcp->num);
+       return RET_OK;
+    }
+    if (!getloan(ltcp->num, (caddr_t)lp)) {
+       pr("loan_accept: can't read loan; get help!\n");
+       return RET_SYS;
+    }
+    if (lp->l_status == LS_FREE) {     /* other guy retratcted already */
+       late(ltcp);
+       return RET_OK;
+    }
+    if (lp->l_status == LS_SIGNED) {   /* already signed somehow */
+       prev_signed(ltcp);
        return RET_OK;
+    }
+    /* check to see if a loan already exists */
+    snxtitem_all(&nstr, EF_LOAN);
+    while (nxtitem(&nstr, (s_char *)&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");
+           return RET_OK;
+       }
+    }
+    lender = getnatp(ltcp->proposer);
+    if (lender->nat_money < lp->l_amtdue) {    /* other guy is poor */
+       lp->l_amtdue = lender->nat_money - 100;
+       pr("%s no longer has the funds.\n", cname(ltcp->proposer));
+       if (lp->l_amtdue <= 0)
+           return RET_FAIL;
+       pr("You may borrow $%d at the same terms.\n", lp->l_amtdue);
+    }
+    lender->nat_money -= lp->l_amtdue;
+    putnat(lender);
+    player->dolcost -= lp->l_amtdue;
+    lp->l_amtpaid = 0;
+    (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)) {
+       pr("Problem writing lp->to disk; get help!\n");
+       return RET_FAIL;
+    }
+    accpt(ltcp);
+    pr("You are now $%d richer (sort of).\n", lp->l_amtdue);
+    return RET_OK;
 }
 
 /*
@@ -260,25 +258,25 @@ loan_accept(struct ltcomstr *ltcp)
 static int
 loan_decline(struct ltcomstr *ltcp)
 {
-       struct  lonstr *lp;
+    struct lonstr *lp;
 
-       lp = &ltcp->u.l;
-       if (!getloan(ltcp->num, lp)) {
-               pr("Decline: can't read loan; get help!\n");
-               return RET_SYS;
-       }
-       /* loan got accepted somehow between now and last time we checked */
-       if (lp->l_status == LS_SIGNED) {
-               late(ltcp);
-               return RET_OK;
-       }
-       lp->l_status = LS_FREE;
-       if (!putloan(ltcp->num, lp)) {
-               pr("loan_decline: can't write loan; get help!\n");
-               return RET_SYS;
-       }
-       decline(ltcp);
+    lp = &ltcp->u.l;
+    if (!getloan(ltcp->num, lp)) {
+       pr("Decline: can't read loan; get help!\n");
+       return RET_SYS;
+    }
+    /* loan got accepted somehow between now and last time we checked */
+    if (lp->l_status == LS_SIGNED) {
+       late(ltcp);
        return RET_OK;
+    }
+    lp->l_status = LS_FREE;
+    if (!putloan(ltcp->num, lp)) {
+       pr("loan_decline: can't write loan; get help!\n");
+       return RET_SYS;
+    }
+    decline(ltcp);
+    return RET_OK;
 }
 
 /*
@@ -287,33 +285,33 @@ loan_decline(struct ltcomstr *ltcp)
 static int
 treaty_accept(struct ltcomstr *ltcp)
 {
-       struct  trtstr *tp;
+    struct trtstr *tp;
 
-       tp = &ltcp->u.t;
-       if (ltcp->proposee != player->cnum) {
-               pr("%s %d is still pending.\n", ltcp->Name, ltcp->num);
-               return RET_OK;
-       }
-       if (!gettre(ltcp->num, tp)) {
-               pr("Accept: can't read treaty; get help!\n");
-               return RET_SYS;
-       }
-       if (tp->trt_status == TS_FREE) {        /* treaty offer withdrawn */
-               late(ltcp);
-               return RET_OK;
-       }
-       if (tp->trt_status == TS_SIGNED) {      /* somehow got accepted */
-               prev_signed(ltcp);
-               return RET_OK;
-       }
-       tp->trt_status = TS_SIGNED;
-       if (!puttre(ltcp->num, tp)) {
-               pr("Problem saving treaty; get help!\n");
-               return RET_SYS;
-       }
-       accpt(ltcp);
-       pr("Treaty in effect until %s", ctime(&tp->trt_exp));
+    tp = &ltcp->u.t;
+    if (ltcp->proposee != player->cnum) {
+       pr("%s %d is still pending.\n", ltcp->Name, ltcp->num);
        return RET_OK;
+    }
+    if (!gettre(ltcp->num, tp)) {
+       pr("Accept: can't read treaty; get help!\n");
+       return RET_SYS;
+    }
+    if (tp->trt_status == TS_FREE) {   /* treaty offer withdrawn */
+       late(ltcp);
+       return RET_OK;
+    }
+    if (tp->trt_status == TS_SIGNED) { /* somehow got accepted */
+       prev_signed(ltcp);
+       return RET_OK;
+    }
+    tp->trt_status = TS_SIGNED;
+    if (!puttre(ltcp->num, tp)) {
+       pr("Problem saving treaty; get help!\n");
+       return RET_SYS;
+    }
+    accpt(ltcp);
+    pr("Treaty in effect until %s", ctime(&tp->trt_exp));
+    return RET_OK;
 }
 
 /*
@@ -322,25 +320,25 @@ treaty_accept(struct ltcomstr *ltcp)
 static int
 treaty_decline(struct ltcomstr *ltcp)
 {
-       struct  trtstr *tp;
+    struct trtstr *tp;
 
-       tp = &ltcp->u.t;
-       if (!gettre(ltcp->num, tp)) {
-               pr("Decline: can't read treaty; get help!\n");
-               return RET_SYS;
-       }
-       /* treaty got signed somehow between now and last time we read it */
-       if (tp->trt_status == TS_SIGNED) {
-               late(ltcp);
-               return RET_OK;
-       }
-       tp->trt_status = TS_FREE;
-       if (!puttre(ltcp->num, tp)) {
-               pr("Problem saving treaty; get help!\n");
-               return RET_SYS;
-       }
-       decline(ltcp);
+    tp = &ltcp->u.t;
+    if (!gettre(ltcp->num, tp)) {
+       pr("Decline: can't read treaty; get help!\n");
+       return RET_SYS;
+    }
+    /* treaty got signed somehow between now and last time we read it */
+    if (tp->trt_status == TS_SIGNED) {
+       late(ltcp);
        return RET_OK;
+    }
+    tp->trt_status = TS_FREE;
+    if (!puttre(ltcp->num, tp)) {
+       pr("Problem saving treaty; get help!\n");
+       return RET_SYS;
+    }
+    decline(ltcp);
+    return RET_OK;
 }
 
 /*
@@ -349,11 +347,11 @@ treaty_decline(struct ltcomstr *ltcp)
 static int
 postpone(struct ltcomstr *ltcp)
 {
-       pr("%s %d is still pending.\n", ltcp->Name, ltcp->num);
-       if (ltcp->proposee == player->cnum)
-               wu(0, ltcp->proposer, "%s %d considered by %s\n",
-                       ltcp->name, ltcp->num, cname(player->cnum));
-       return RET_OK;
+    pr("%s %d is still pending.\n", ltcp->Name, ltcp->num);
+    if (ltcp->proposee == player->cnum)
+       wu(0, ltcp->proposer, "%s %d considered by %s\n",
+          ltcp->name, ltcp->num, cname(player->cnum));
+    return RET_OK;
 }
 
 /*
@@ -363,9 +361,9 @@ postpone(struct ltcomstr *ltcp)
 static void
 late(struct ltcomstr *ltcp)
 {
-       pr("Too late; that %s %s!\n", ltcp->name,
-               (ltcp->op == 'a') ? "is no longer being offered"
-                                 : "has already been accepted");
+    pr("Too late; that %s %s!\n", ltcp->name,
+       (ltcp->op == 'a') ? "is no longer being offered"
+       : "has already been accepted");
 }
 
 /*
@@ -374,7 +372,7 @@ late(struct ltcomstr *ltcp)
 static void
 prev_signed(struct ltcomstr *ltcp)
 {
-       pr("%s #%d is already in effect.\n", ltcp->Name, ltcp->num);
+    pr("%s #%d is already in effect.\n", ltcp->Name, ltcp->num);
 }
 
 /*
@@ -384,17 +382,16 @@ prev_signed(struct ltcomstr *ltcp)
 static void
 decline(struct ltcomstr *ltcp)
 {
-       if (ltcp->proposee == player->cnum) {
-               wu(0, ltcp->proposer, "%s %d refused by %s\n",
-                       ltcp->Name, ltcp->num, cname(player->cnum));
-               pr("%s %d refused.\n", ltcp->Name, ltcp->num);
-       } else {
-               wu(0, ltcp->proposee,
-                       "%s offer %d retracted by %s\n",
-                       ltcp->Name, ltcp->num, cname(player->cnum));
-               pr("%s offer %d retracted.\n",
-                       ltcp->Name, ltcp->num);
-       }
+    if (ltcp->proposee == player->cnum) {
+       wu(0, ltcp->proposer, "%s %d refused by %s\n",
+          ltcp->Name, ltcp->num, cname(player->cnum));
+       pr("%s %d refused.\n", ltcp->Name, ltcp->num);
+    } else {
+       wu(0, ltcp->proposee,
+          "%s offer %d retracted by %s\n",
+          ltcp->Name, ltcp->num, cname(player->cnum));
+       pr("%s offer %d retracted.\n", ltcp->Name, ltcp->num);
+    }
 }
 
 /*
@@ -405,10 +402,10 @@ decline(struct ltcomstr *ltcp)
 static void
 accpt(struct ltcomstr *ltcp)
 {
-       if (ltcp->type == EF_LOAN)
-               nreport(ltcp->proposer, N_MAKE_LOAN, player->cnum, 1);
-       else
-               nreport(player->cnum, N_SIGN_TRE, ltcp->mailee, 1);
-       wu(0, ltcp->mailee, "%s #%d accepted by %s\n",
-               ltcp->Name, ltcp->num, cname(player->cnum));
+    if (ltcp->type == EF_LOAN)
+       nreport(ltcp->proposer, N_MAKE_LOAN, player->cnum, 1);
+    else
+       nreport(player->cnum, N_SIGN_TRE, ltcp->mailee, 1);
+    wu(0, ltcp->mailee, "%s #%d accepted by %s\n",
+       ltcp->Name, ltcp->num, cname(player->cnum));
 }