]> git.pond.sub.org Git - empserver/blobdiff - src/lib/update/prepare.c
Update copyright notice
[empserver] / src / lib / update / prepare.c
index 52b455a3ad836caa238d04199cf67aef5f625ab3..9f88a62f034983af539c7e45b5cf9786c77bd108 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-2017, Dave Pare, Jeff Bailey, Thomas Ruschak,
  *                Ken Stevens, Steve McClure, Markus Armbruster
  *
  *  Empire is free software: you can redistribute it and/or modify
@@ -36,7 +36,6 @@
 #include <config.h>
 
 #include "chance.h"
-#include "file.h"
 #include "item.h"
 #include "nat.h"
 #include "optlist.h"
@@ -53,30 +52,12 @@ prepare_sects(int etu, struct bp *bp)
     struct sctstr *sp, scratch_sect;
     int n;
 
-/* Process all the fallout. */
-    if (opt_FALLOUT) {
-       if (!player->simulation) {
-           /* First, we determine which sectors to process fallout in */
-           for (n = 0; NULL != (sp = getsectid(n)); n++)
-               sp->sct_updated = sp->sct_fallout != 0;
-           /* Next, we process the fallout there */
-           for (n = 0; NULL != (sp = getsectid(n)); n++)
-               if (sp->sct_updated && sp->sct_type != SCT_SANCT)
-                   do_fallout(sp, etu);
-           /* Next, we spread the fallout */
-           for (n = 0; NULL != (sp = getsectid(n)); n++)
-               if (sp->sct_updated)
-                   spread_fallout(sp, etu);
-           /* Next, we decay the fallout */
-           for (n = 0; NULL != (sp = getsectid(n)); n++) {
-               if (sp->sct_fallout)
-                   decay_fallout(sp, etu);
-               sp->sct_updated = 0;
-           }
-       }
-    }
+    if (!player->simulation)
+       fallout(etu);
 
     for (n = 0; NULL != (sp = getsectid(n)); n++) {
+       if (bp_skip_sect(bp, sp))
+           continue;
        bp_set_from_sect(bp, sp);
        if (sp->sct_type == SCT_WATER || sp->sct_type == SCT_SANCT)
            continue;
@@ -97,12 +78,14 @@ prepare_sects(int etu, struct bp *bp)
 
        if (!player->simulation) {
            guerrilla(sp);
-           do_plague(sp, etu);
            populace(sp, etu);
        }
        tax(sp, etu);
-       if (sp->sct_type == SCT_BANK)
-           bank_income(sp, etu);
+       bank_income(sp, etu);
+       do_feed(sp, getnatp(sp->sct_own), etu, 0);
+       if (!player->simulation)
+           do_plague(sp, etu);
+       check_pop_loss(sp);
        bp_set_from_sect(bp, sp);
     }
 }
@@ -138,6 +121,9 @@ bank_income(struct sctstr *sp, int etu)
 {
     double income;
 
+    if (sp->sct_type != SCT_BANK)
+       return;
+
     income = sp->sct_item[I_BAR] * etu * bankint * sp->sct_effic / 100;
     nat_budget[sp->sct_own].bars.count += sp->sct_item[I_BAR];
     nat_budget[sp->sct_own].bars.money += income;