(buil, drnuke_const, opt_DRNUKE, show, show_nuke_build)

(show_nuke_capab, vers, xdvisible, build.t, Options.t):
Remove opt_DRNUKE and replace with the following check
drnuke_const > MIN_DRNUKE_CONST.
Set MIN_DRNUKE_CONST to 0.001 to prevent issues with tiny values.
Change the default drnuke_const to 0.0 because in the stock game
opt_DRNUKE was disabled.
This commit is contained in:
Ron Koenderink 2006-02-16 02:14:08 +00:00
parent d5f6d74d05
commit b7d0b66161
11 changed files with 20 additions and 22 deletions

View file

@ -195,12 +195,13 @@ buil(void)
np = &nchr[type];
rqtech = np->n_tech;
if (rqtech > tlev
|| (opt_DRNUKE && np->n_tech * drnuke_const > rlev))
|| (drnuke_const > MIN_DRNUKE_CONST &&
np->n_tech * drnuke_const > rlev))
type = -1;
}
if (type < 0) {
int tt = tlev;
if (opt_DRNUKE)
if (drnuke_const > MIN_DRNUKE_CONST)
tt = (tlev < (rlev / drnuke_const) ? (int)tlev :
(int)(rlev / drnuke_const));
pr("You can't build that!\n");

View file

@ -90,7 +90,7 @@ show(void)
show_news(99999);
return RET_OK;
}
if (opt_DRNUKE)
if (drnuke_const > MIN_DRNUKE_CONST)
tlev = ((rlev / drnuke_const) > tlev ? tlev :
(rlev / drnuke_const));
bfunc = show_nuke_build;

View file

@ -173,7 +173,7 @@ vers(void)
if (!ef_nelem(EF_NUKE_CHR))
pr("Nukes are disabled.\n");
else if (opt_DRNUKE) { /* NUKES && DRNUKE enabled */
else if (drnuke_const > MIN_DRNUKE_CONST) {
pr("In order to build a nuke, you need %1.2f times the tech level in research\n", drnuke_const);
pr("\tExample: In order to build a 300 tech nuke, you need %d research\n\n", (int)(300.0 * drnuke_const));
}

View file

@ -242,7 +242,7 @@ xdvisible(int type, void *p)
return player->god || tlev <= (int)(1.25 * natp->nat_level[NAT_TLEV]);
case EF_NUKE_CHR:
tlev = ((struct nchrstr *)p)->n_tech;
if (opt_DRNUKE) {
if (drnuke_const > MIN_DRNUKE_CONST) {
natp = getnatp(player->cnum);
if (tlev > (int)((int)(1.25 * natp->nat_level[NAT_RLEV])
/ drnuke_const))

View file

@ -199,8 +199,7 @@ double buil_tower_bc = 7500.0; /* cash required to build a bridge tower */
/* opt_SLOW_WAR */
int War_Cost = 1000; /* Cost to declare war */
/* opt_DRNUKE */
float drnuke_const = .33; /* research must be at least drnuke_const*tech */
float drnuke_const = 0.0; /* research must be at least drnuke_const*tech */
/* in order to build a nuke. For example, if
* drnuke_const is .25, you need a 75 res to
* build a nuke that takes 300 tech

View file

@ -42,7 +42,6 @@ int opt_BLITZ = 1;
int opt_BRIDGETOWERS = 1;
int opt_DEFENSE_INFRA = 0;
int opt_DEMANDUPDATE = 1;
int opt_DRNUKE = 0;
int opt_EASY_BRIDGES = 1;
int opt_FALLOUT = 1;
int opt_FUEL = 0;

View file

@ -173,10 +173,11 @@ show_nuke_build(int tlev)
avail = NUK_BLD_WORK(np->n_lcm, np->n_hcm, np->n_oil, np->n_rad);
if (np->n_tech > tlev)
continue;
pr("%-13.13s %3d %3d %4d %4d %5d %4d %3d $%6d\n",
pr("%-13.13s %3d %3d %4d %4d %5d %4d %3.0f $%6d\n",
np->n_name, np->n_lcm, np->n_hcm, np->n_oil,
np->n_rad, avail, np->n_tech,
opt_DRNUKE ? (int)(np->n_tech * drnuke_const) + 1 : 0,
drnuke_const > MIN_DRNUKE_CONST ?
(np->n_tech * drnuke_const) + 1.0 : 0.0,
np->n_cost);
}
}
@ -193,10 +194,11 @@ show_nuke_capab(int tlev)
for (np = nchr; np->n_name; np++) {
if (np->n_tech > tlev)
continue;
pr("%-13.13s %4d %3d %3d %4d %3d $%7d ",
pr("%-13.13s %4d %3d %3d %4d %3.0f $%7d ",
np->n_name, np->n_blast, np->n_dam,
np->n_weight, np->n_tech,
opt_DRNUKE ? (int)(np->n_tech * drnuke_const) + 1 : 0,
drnuke_const > MIN_DRNUKE_CONST ?
(np->n_tech * drnuke_const) + 1.0 : 0.0,
np->n_cost);
for (i = j = 0; i < 32; i++) {
if (!(np->n_flags & bit(i)))