From 82bbb318dcd45bc4392e40ed24e16bfcf53a2922 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 10 Jun 2006 16:20:31 +0000 Subject: [PATCH] (calc_all): Match the real update sequence. Until removal of budget priorities (rev. 1.25), calc_all() tried to match the real sequence, but didn't quire succeed to cope with all variations. Then it matched until the update sequence change in src/lib/update/main.c rev. 1.25. This is required but not sufficient for closing #1310407. --- src/lib/commands/budg.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/lib/commands/budg.c b/src/lib/commands/budg.c index cec8c73c..39a51d82 100644 --- a/src/lib/commands/budg.c +++ b/src/lib/commands/budg.c @@ -226,36 +226,42 @@ calc_all(long p_sect[][2], *mil += upd_slmilcosts(np->nat_cnum, etu); - /* Maintain and build ships */ + /* Maintain ships */ sea_money[player->cnum] = 0; *ships = prod_ship(etu, player->cnum, bp, 0); *smaint = sea_money[player->cnum]; + + /* Maintain planes */ + air_money[player->cnum] = 0; + *planes = prod_plane(etu, player->cnum, bp, 0); + *pmaint = air_money[player->cnum]; + + /* Maintain land units */ + lnd_money[player->cnum] = 0; + *units = prod_land(etu, player->cnum, bp, 0); + *lmaint = lnd_money[player->cnum]; + + /* Produce */ + produce_sect(player->cnum, etu, bp, p_sect); + + /* Build ships */ sea_money[player->cnum] = 0; *nsbuild = prod_ship(etu, player->cnum, bp, 1); *sbuild = sea_money[player->cnum]; sea_money[player->cnum] = 0; - /* Maintain and build planes */ - air_money[player->cnum] = 0; - *planes = prod_plane(etu, player->cnum, bp, 0); - *pmaint = air_money[player->cnum]; + /* Build planes */ air_money[player->cnum] = 0; *npbuild = prod_plane(etu, player->cnum, bp, 1); *pbuild = air_money[player->cnum]; air_money[player->cnum] = 0; - /* Maintain and build land units */ - lnd_money[player->cnum] = 0; - *units = prod_land(etu, player->cnum, bp, 0); - *lmaint = lnd_money[player->cnum]; + /* Build land units */ lnd_money[player->cnum] = 0; *nlbuild = prod_land(etu, player->cnum, bp, 1); *lbuild = lnd_money[player->cnum]; lnd_money[player->cnum] = 0; - /* Produce */ - produce_sect(player->cnum, etu, bp, p_sect); - free(bp); }