DEFENSE_INFRA was implemented in an odd way: sct_defense was used

regardless of the option, but forced to sct_effic when disabled.  This
screws up sct_defense when you disable DEFENSE_INFRA.  Implement it
more like FALLOUT: use sct_defense if enabled, else sct_effic.  The
change should be invisible except in xdump, which shows the real
sct_defense.  Closes #804641.
(SCT_DEFENSE): New.
(dump, sinfra, sector_strength): Use it.
(eff_bomb, build_bridge, build_tower, new, buildeff, sect_damage)
(put_combat, checksect, produce_sect): Don't force sct_defense to
sct_effic when DEFENSE_INFRA is disabled.
This commit is contained in:
Markus Armbruster 2006-05-20 11:53:20 +00:00
parent 499e19f97b
commit d906fd6b99
11 changed files with 7 additions and 23 deletions

View file

@ -369,8 +369,6 @@ eff_bomb(struct emp_qelem *list, struct sctstr *target)
target->sct_road = effdamage(target->sct_road, dam);
target->sct_rail = effdamage(target->sct_rail, dam);
target->sct_defense = effdamage(target->sct_defense, dam);
if (!opt_DEFENSE_INFRA)
target->sct_defense = target->sct_effic;
pr("did %d%% damage to efficiency in %s\n",
oldeff - target->sct_effic,
xyas(target->sct_x, target->sct_y, player->cnum));

View file

@ -615,8 +615,6 @@ build_bridge(struct sctstr *sp, short *vec)
sect.sct_road = 0;
sect.sct_rail = 0;
sect.sct_defense = 0;
if (!opt_DEFENSE_INFRA)
sect.sct_defense = sect.sct_effic;
if (opt_MOB_ACCESS) {
time(&sect.sct_access);
sect.sct_mobil = -(etu_per_update / sect_mob_neg_factor);
@ -915,8 +913,6 @@ build_tower(struct sctstr *sp, short *vec)
} else {
sect.sct_mobil = 0;
}
if (!opt_DEFENSE_INFRA)
sect.sct_defense = sect.sct_effic;
sect.sct_mines = 0;
map_set(player->cnum, sect.sct_x, sect.sct_y, dchr[SCT_BTOWER].d_mnem, 2);
writemap(player->cnum);

View file

@ -733,7 +733,7 @@ dump(void)
pr("%d", sect.sct_rail);
break;
case 71:
pr("%d", sect.sct_defense);
pr("%d", SCT_DEFENSE(&sect));
break;
case 72:
if (opt_FALLOUT)

View file

@ -134,8 +134,6 @@ new(void)
sect.sct_road = 0;
sect.sct_rail = 0;
sect.sct_defense = 0;
if (!opt_DEFENSE_INFRA)
sect.sct_defense = sect.sct_effic;
sect.sct_mobil = startmob;
sect.sct_work = 100;
sect.sct_oldown = num;
@ -159,8 +157,6 @@ new(void)
sect.sct_road = 0;
sect.sct_rail = 0;
sect.sct_defense = 0;
if (!opt_DEFENSE_INFRA)
sect.sct_defense = sect.sct_effic;
sect.sct_work = 100;
sect.sct_oldown = num;
sect.sct_mobil = startmob;

View file

@ -39,6 +39,7 @@
#include "sect.h"
#include "nsc.h"
#include "nat.h"
#include "optlist.h"
#include "path.h"
#include "commands.h"
#include "combat.h"
@ -78,7 +79,7 @@ sinfra(void)
pr("%4.3f ", sector_mcost(&sect, MOB_ROAD));
pr("%4d%% ", sect.sct_rail);
pr("%4.3f ", sector_mcost(&sect, MOB_RAIL));
pr("%4d%% ", sect.sct_defense);
pr("%4d%% ", SCT_DEFENSE(&sect));
pr("%5.2f\n", sector_strength(&sect));
}
if (nsect == 0) {

View file

@ -142,8 +142,6 @@ buildeff(struct sctstr *sp, int work, double *money)
sp->sct_type = sp->sct_newtype;
}
sp->sct_effic = n;
if (!opt_DEFENSE_INFRA)
sp->sct_defense = sp->sct_effic;
work -= work_cost;
*money += work_cost;
effdone += work_cost;