From 27d37f35a9ec900fa836e127eafae4e51deaed90 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Fri, 16 Jun 2006 20:01:30 +0000 Subject: [PATCH] Che cannot target #0: (guerrilla): Oops on it. (doland, takeover): Clear them when che_target becomes 0. (doland): Fix bogus message. (guerrilla): Remove silly sanity check. --- src/lib/commands/edit.c | 4 +++- src/lib/subs/takeover.c | 2 ++ src/lib/update/revolt.c | 9 +-------- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/lib/commands/edit.c b/src/lib/commands/edit.c index de3b7c20..e7e1a46e 100644 --- a/src/lib/commands/edit.c +++ b/src/lib/commands/edit.c @@ -560,10 +560,12 @@ doland(char op, int arg, char *p, struct sctstr *sect) case 'X': old = sect->sct_che_target; new = errcheck(arg, 0, MAXNOC - 1); - pr("Old owner of %s changed from %s (#%d) to %s (#%d).\n", + pr("Che target of %s changed from %s (#%d) to %s (#%d).\n", xyas(sect->sct_x, sect->sct_y, player->cnum), cname(old), old, cname(new), new); sect->sct_che_target = new; + if (new == 0) + sect->sct_che = 0; break; case 'p': old = sect->sct_pstage; diff --git a/src/lib/subs/takeover.c b/src/lib/subs/takeover.c index be1f8027..aed1ccec 100644 --- a/src/lib/subs/takeover.c +++ b/src/lib/subs/takeover.c @@ -141,6 +141,8 @@ takeover(struct sctstr *sp, natid newown) sp->sct_che = che_count; if (newown != sp->sct_oldown) sp->sct_che_target = newown; + if (sp->sct_che_target == 0) + sp->sct_che = 0; sp->sct_item[I_CIVIL] = civ; if (sp->sct_oldown == newown || civ == 0) { /* diff --git a/src/lib/update/revolt.c b/src/lib/update/revolt.c index fb6226cd..5ac71292 100644 --- a/src/lib/update/revolt.c +++ b/src/lib/update/revolt.c @@ -203,10 +203,8 @@ guerrilla(struct sctstr *sp) } target = sp->sct_che_target; - if (target == 0) { - /* the deity can't be a target! */ + if (CANT_HAPPEN(target == 0)) return; - } tnat = getnatp(target); if (tnat->nat_stat == STAT_UNUSED) { /* target nation has dissolved: che's retire. */ @@ -296,11 +294,6 @@ guerrilla(struct sctstr *sp) */ if (chance(ratio * 0.10)) { n = (mil / 5) + 1; - if ((n + che) == 0) { - logerror("n=%d che=%d\n", n, che); - if (che == 0) - return; - } odds = (double)che / (n + che); odds /= hap_fact(tnat, getnatp(sp->sct_oldown)); while (che > 0 && n > 0) {