Moved sex_change_ok to instance_globals.

This commit is contained in:
Bart House
2018-11-23 12:43:38 -08:00
parent 302cd789e8
commit 97feda46e0
3 changed files with 12 additions and 8 deletions

View File

@@ -464,6 +464,11 @@ struct instance_globals {
/* pickup.c */
int oldcap; /* last encumberance */
/* polyself.c */
int sex_change_ok; /* controls whether taking on new form or becoming new
man can also change sex (ought to be an arg to
polymon() and newman() instead) */
/* potion.c */
boolean notonhead; /* for long worms */
int potion_nothing;

View File

@@ -348,6 +348,9 @@ const struct instance_globals g_init = {
/* pickup.c */
0, /* oldcap */
/* polyself.c */
0, /* sex_change_ok */
/* potion.c */
FALSE, /* notonhead */
UNDEFINED_VALUE, /* potion_nothing */

View File

@@ -33,10 +33,6 @@ STATIC_DCL void NDECL(polysense);
STATIC_VAR const char no_longer_petrify_resistant[] =
"No longer petrify-resistant, you";
/* controls whether taking on new form or becoming new man can also
change sex (ought to be an arg to polymon() and newman() instead) */
STATIC_VAR int sex_change_ok = 0;
/* update the youmonst.data structure pointer and intrinsics */
void
set_uasmon()
@@ -296,7 +292,7 @@ newman()
u.ulevelmax = newlvl;
u.ulevel = newlvl;
if (sex_change_ok && !rn2(10))
if (g.sex_change_ok && !rn2(10))
change_sex();
adjabil(oldlvl, (int) u.ulevel);
@@ -573,14 +569,14 @@ int psflags;
/* The below polyok() fails either if everything is genocided, or if
* we deliberately chose something illegal to force newman().
*/
sex_change_ok++;
g.sex_change_ok++;
if (!polyok(&mons[mntmp]) || (!forcecontrol && !rn2(5))
|| your_race(&mons[mntmp])) {
newman();
} else {
(void) polymon(mntmp);
}
sex_change_ok--; /* reset */
g.sex_change_ok--; /* reset */
made_change:
new_light = emits_light(youmonst.data);
@@ -650,7 +646,7 @@ int mntmp;
if (!flags.female)
dochange = TRUE;
} else if (!is_neuter(&mons[mntmp]) && mntmp != u.ulycn) {
if (sex_change_ok && !rn2(10))
if (g.sex_change_ok && !rn2(10))
dochange = TRUE;
}