summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2012-03-05 22:00:35 +0100
committerBardur Arantsson <bardur@scientician.net>2012-03-29 20:26:32 +0200
commit7e4fd1acfc86cd696803af855eca966ad27cffeb (patch)
treec0ea1db0c38acb6b7906045e052c50b47c057d51
parentb71e458b9a8de777f4861daf91b3b94189247ed5 (diff)
Refactor: Delete crazy amounts of duplicate code
-rw-r--r--src/externs.h2
-rw-r--r--src/loadsave.c2
-rw-r--r--src/variable.c2
-rw-r--r--src/xtra2.c2398
4 files changed, 426 insertions, 1978 deletions
diff --git a/src/externs.h b/src/externs.h
index 68abfdc1..9c7fc426 100644
--- a/src/externs.h
+++ b/src/externs.h
@@ -517,7 +517,7 @@ extern s16b max_set_idx;
extern int init_flags;
extern bool_ ambush_flag;
extern bool_ fate_flag;
-extern u16b no_breeds;
+extern s16b no_breeds;
extern bool_ carried_monster_hit;
extern random_artifact random_artifacts[MAX_RANDARTS];
extern s32b RANDART_WEAPON;
diff --git a/src/loadsave.c b/src/loadsave.c
index 7710bc86..1da65cd2 100644
--- a/src/loadsave.c
+++ b/src/loadsave.c
@@ -603,7 +603,7 @@ static bool_ do_extra(int flag)
do_byte(&vanilla_town, flag);
- do_u16b(&no_breeds, flag);
+ do_s16b(&no_breeds, flag);
do_s16b(&p_ptr->protgood, flag);
/* Auxilliary variables */
diff --git a/src/variable.c b/src/variable.c
index 147e1ea7..a0c8debb 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -1318,7 +1318,7 @@ bool_ ambush_flag;
bool_ fate_flag;
/* No breeders */
-u16b no_breeds;
+s16b no_breeds;
/* Carried monsters can't take the damage if this is them which attack the player */
bool_ carried_monster_hit = FALSE;
diff --git a/src/xtra2.c b/src/xtra2.c
index f425acf8..735c99fd 100644
--- a/src/xtra2.c
+++ b/src/xtra2.c
@@ -124,10 +124,15 @@ bool_ set_parasite(int v, int r)
}
/*
- * Set "p_ptr->tim_project" and others
- * notice observable changes
+ * Set a simple player field.
*/
-bool_ set_project(int v, s16b gf, s16b dam, s16b rad, s16b flag)
+static bool_ set_simple_field(
+ s16b *p_field,
+ s16b v,
+ byte activate_color,
+ cptr activate_msg,
+ byte deactivate_color,
+ cptr deactivate_msg)
{
bool_ notice = FALSE;
@@ -137,9 +142,9 @@ bool_ set_project(int v, s16b gf, s16b dam, s16b rad, s16b flag)
/* Open */
if (v)
{
- if (!p_ptr->tim_project)
+ if (!*p_field)
{
- msg_print("Your weapon starts glowing.");
+ cmsg_print(activate_color, activate_msg);
notice = TRUE;
}
}
@@ -147,19 +152,15 @@ bool_ set_project(int v, s16b gf, s16b dam, s16b rad, s16b flag)
/* Shut */
else
{
- if (p_ptr->tim_project)
+ if (*p_field)
{
- msg_print("Your weapon stops glowing.");
+ cmsg_print(deactivate_color, deactivate_msg);
notice = TRUE;
}
}
/* Use the value */
- p_ptr->tim_project = v;
- p_ptr->tim_project_gf = gf;
- p_ptr->tim_project_dam = dam;
- p_ptr->tim_project_rad = rad;
- p_ptr->tim_project_flag = flag;
+ *p_field = v;
/* Nothing to notice */
if (!notice)
@@ -177,54 +178,43 @@ bool_ set_project(int v, s16b gf, s16b dam, s16b rad, s16b flag)
}
/*
- * Set "p_ptr->tim_roots" and others
+ * Set "p_ptr->tim_project" and others
* notice observable changes
*/
-bool_ set_roots(int v, s16b ac, s16b dam)
+bool_ set_project(int v, s16b gf, s16b dam, s16b rad, s16b flag)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_project, v,
+ TERM_WHITE, "Your weapon starts glowing.",
+ TERM_WHITE, "Your weapon stops glowing.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ /* Use the values */
+ p_ptr->tim_project_gf = gf;
+ p_ptr->tim_project_dam = dam;
+ p_ptr->tim_project_rad = rad;
+ p_ptr->tim_project_flag = flag;
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_roots)
- {
- msg_print("Roots dive into the floor from your feet.");
- notice = TRUE;
- }
- }
+ /* Result */
+ return notice;
+}
- /* Shut */
- else
- {
- if (p_ptr->tim_roots)
- {
- msg_print("The roots of your feet suddenly vanish.");
- notice = TRUE;
- }
- }
+/*
+ * Set "p_ptr->tim_roots" and others
+ * notice observable changes
+ */
+bool_ set_roots(int v, s16b ac, s16b dam)
+{
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_roots, v,
+ TERM_WHITE, "Roots dive into the floor from your feet.",
+ TERM_WHITE, "The roots of your feet suddenly vanish.");
- /* Use the value */
- p_ptr->tim_roots = v;
+ /* Use the values */
p_ptr->tim_roots_dam = dam;
p_ptr->tim_roots_ac = ac;
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -233,72 +223,20 @@ bool_ set_roots(int v, s16b ac, s16b dam)
*/
bool_ set_tim_breath(int v, bool_ magical)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (magical)
{
- if (magical)
- {
- if (!p_ptr->tim_magic_breath)
- {
- msg_print("Air seems to fill your lungs without breathing.");
- notice = TRUE;
- }
- }
- else
- {
- if (!p_ptr->tim_water_breath)
- {
- msg_print("Water seems to fill your lungs.");
- notice = TRUE;
- }
- }
+ return set_simple_field(
+ &p_ptr->tim_magic_breath, v,
+ TERM_WHITE, "Air seems to fill your lungs without breathing.",
+ TERM_WHITE, "You need to breathe again.");
}
-
- /* Shut */
else
{
- if (magical)
- {
- if (p_ptr->tim_magic_breath)
- {
- msg_print("You need to breathe again.");
- notice = TRUE;
- }
- }
- else
- {
- if (p_ptr->tim_water_breath)
- {
- msg_print("The water filling your lungs evaporates.");
- notice = TRUE;
- }
- }
+ return set_simple_field(
+ &p_ptr->tim_water_breath, v,
+ TERM_WHITE, "Water seems to fill your lungs.",
+ TERM_WHITE, "The water filling your lungs evaporates.");
}
-
- /* Use the value */
- if (magical)
- p_ptr->tim_magic_breath = v;
- else
- p_ptr->tim_water_breath = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
}
/*
@@ -307,47 +245,10 @@ bool_ set_tim_breath(int v, bool_ magical)
*/
bool_ set_absorb_soul(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->absorb_soul)
- {
- cmsg_print(TERM_L_DARK, "You start absorbing the souls of your foes.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->absorb_soul)
- {
- cmsg_print(TERM_L_DARK, "You stop absorbing the souls of dead foes.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->absorb_soul = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->absorb_soul, v,
+ TERM_L_DARK, "You start absorbing the souls of your foes.",
+ TERM_L_DARK, "You stop absorbing the souls of dead foes.");
}
/*
@@ -356,47 +257,10 @@ bool_ set_absorb_soul(int v)
*/
bool_ set_disrupt_shield(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->disrupt_shield)
- {
- cmsg_print(TERM_L_BLUE, "You feel invulnerable.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->disrupt_shield)
- {
- cmsg_print(TERM_L_RED, "You are more vulnerable.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->disrupt_shield = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->disrupt_shield, v,
+ TERM_L_BLUE, "You feel invulnerable.",
+ TERM_L_RED, "You are more vulnerable.");
}
/*
@@ -405,47 +269,10 @@ bool_ set_disrupt_shield(int v)
*/
bool_ set_prob_travel(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->prob_travel)
- {
- msg_print("You feel instable.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->prob_travel)
- {
- msg_print("You are more stable.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->prob_travel = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->prob_travel, v,
+ TERM_WHITE, "You feel instable.",
+ TERM_WHITE, "You are more stable.");
}
/*
@@ -454,49 +281,16 @@ bool_ set_prob_travel(int v)
*/
bool_ set_invis(int v, int p)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_invisible, v,
+ TERM_WHITE, "You feel your body fade away.",
+ TERM_WHITE, "You are no longer invisible.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_invisible)
- {
- msg_print("You feel your body fade away.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_invisible)
- {
- msg_print("You are no longer invisible.");
- notice = TRUE;
- p = 0;
- }
- }
-
- /* Use the value */
- p_ptr->tim_invisible = v;
+ /* Use the power value */
p_ptr->tim_inv_pow = p;
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -505,47 +299,10 @@ bool_ set_invis(int v, int p)
*/
bool_ set_poison(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_poison)
- {
- msg_print("Your hands are dripping with venom.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_poison)
- {
- msg_print("The venom source dries out.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->tim_poison = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->tim_poison, v,
+ TERM_WHITE, "Your hands are dripping with venom.",
+ TERM_WHITE, "The venom source dries out.");
}
/*
@@ -553,47 +310,10 @@ bool_ set_poison(int v)
*/
bool_ set_no_breeders(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!no_breeds)
- {
- msg_print("You feel an anti-sexual aura.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (no_breeds)
- {
- msg_print("You no longer feel an anti-sexual aura.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- no_breeds = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &no_breeds, v,
+ TERM_WHITE, "You feel an anti-sexual aura.",
+ TERM_WHITE, "You no longer feel an anti-sexual aura.");
}
/*
@@ -601,47 +321,10 @@ bool_ set_no_breeders(int v)
*/
bool_ set_tim_deadly(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_deadly)
- {
- msg_print("You feel extremely accurate.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_deadly)
- {
- msg_print("You are suddenly much less accurate.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->tim_deadly = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->tim_deadly, v,
+ TERM_WHITE, "You feel extremely accurate.",
+ TERM_WHITE, "You are suddenly much less accurate.");
}
/*
@@ -649,47 +332,10 @@ bool_ set_tim_deadly(int v)
*/
bool_ set_tim_ffall(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_ffall)
- {
- msg_print("You feel very light.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_ffall)
- {
- msg_print("You are suddenly heavier.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->tim_ffall = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->tim_ffall, v,
+ TERM_WHITE, "You feel very light.",
+ TERM_WHITE, "You are suddenly heavier.");
}
/*
@@ -697,47 +343,10 @@ bool_ set_tim_ffall(int v)
*/
bool_ set_tim_fly(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_fly)
- {
- msg_print("You feel able to reach the clouds.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_fly)
- {
- msg_print("You are suddenly a lot heavier.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->tim_fly = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->tim_fly, v,
+ TERM_WHITE, "You feel able to reach the clouds.",
+ TERM_WHITE, "You are suddenly a lot heavier.");
}
/*
@@ -745,48 +354,19 @@ bool_ set_tim_fly(int v)
*/
bool_ set_meditation(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->meditation, v,
+ TERM_WHITE, "You start meditating on yourself...",
+ TERM_WHITE, "You stop your self meditation.");
- /* Open */
- if (v)
- {
- if (!p_ptr->meditation)
- {
- msg_print("You start meditating on yourself...");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
+ /* Recalculate bonuses */
+ if (notice)
{
- if (p_ptr->meditation)
- {
- msg_print("You stop your self meditation.");
- notice = TRUE;
- }
+ p_ptr->update |= (PU_MANA);
}
- /* Use the value */
- p_ptr->meditation = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
- p_ptr->update |= (PU_MANA);
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -794,47 +374,10 @@ bool_ set_meditation(int v)
*/
bool_ set_tim_reflect(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_reflect)
- {
- msg_print("You start reflecting the world around you.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_reflect)
- {
- msg_print("You stop reflecting.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->tim_reflect = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->tim_reflect, v,
+ TERM_WHITE, "You start reflecting the world around you.",
+ TERM_WHITE, "You stop reflecting.");
}
/*
@@ -842,47 +385,10 @@ bool_ set_tim_reflect(int v)
*/
bool_ set_tim_res_time(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_res_time)
- {
- msg_print("You are now protected against space-time distortions.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_res_time)
- {
- msg_print("You are no longer protected against space-time distortions.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->tim_res_time = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->tim_res_time, v,
+ TERM_WHITE, "You are now protected against space-time distortions.",
+ TERM_WHITE, "You are no longer protected against space-time distortions.");
}
/*
@@ -890,47 +396,10 @@ bool_ set_tim_res_time(int v)
*/
bool_ set_tim_fire_aura(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_fire_aura)
- {
- msg_print("You are enveloped in flames.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_fire_aura)
- {
- msg_print("You are no longer enveloped in flames.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->tim_fire_aura = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->tim_fire_aura, v,
+ TERM_WHITE, "You are enveloped in flames.",
+ TERM_WHITE, "You are no longer enveloped in flames.");
}
/*
@@ -938,47 +407,10 @@ bool_ set_tim_fire_aura(int v)
*/
bool_ set_strike(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->strike)
- {
- msg_print("You feel very accurate.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->strike)
- {
- msg_print("You are no longer very accurate.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->strike = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->strike, v,
+ TERM_WHITE, "You feel very accurate.",
+ TERM_WHITE, "You are no longer very accurate.");
}
/*
@@ -986,47 +418,10 @@ bool_ set_strike(int v)
*/
bool_ set_oppose_ld(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_ld)
- {
- msg_print("You feel protected against light's fluctuation.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->oppose_ld)
- {
- msg_print("You are no longer protected against light's fluctuation.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->oppose_ld = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->oppose_ld, v,
+ TERM_WHITE, "You feel protected against light's fluctuation.",
+ TERM_WHITE, "You are no longer protected against light's fluctuation.");
}
/*
@@ -1034,47 +429,10 @@ bool_ set_oppose_ld(int v)
*/
bool_ set_oppose_cc(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_cc)
- {
- msg_print("You feel protected against raw chaos.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->oppose_cc)
- {
- msg_print("You are no longer protected against chaos.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->oppose_cc = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->oppose_cc, v,
+ TERM_WHITE, "You feel protected against raw chaos.",
+ TERM_WHITE, "You are no longer protected against chaos.");
}
/*
@@ -1082,47 +440,10 @@ bool_ set_oppose_cc(int v)
*/
bool_ set_oppose_ss(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_ss)
- {
- msg_print("You feel protected against the ravages of sound and shards.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->oppose_ss)
- {
- msg_print("You are no longer protected against the ravages of sound and shards.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->oppose_ss = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->oppose_ss, v,
+ TERM_WHITE, "You feel protected against the ravages of sound and shards.",
+ TERM_WHITE, "You are no longer protected against the ravages of sound and shards.");
}
/*
@@ -1130,47 +451,10 @@ bool_ set_oppose_ss(int v)
*/
bool_ set_oppose_nex(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_nex)
- {
- msg_print("You feel protected against the strange forces of nexus.");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->oppose_nex)
- {
- msg_print("You are no longer protected against the strange forces of nexus.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->oppose_nex = v;
-
- /* Nothing to notice */
- if (!notice)
- return (FALSE);
-
- /* Disturb */
- if (disturb_state)
- disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Result */
- return (TRUE);
+ return set_simple_field(
+ &p_ptr->oppose_nex, v,
+ TERM_WHITE, "You feel protected against the strange forces of nexus.",
+ TERM_WHITE, "You are no longer protected against the strange forces of nexus.");
}
/*
@@ -1242,57 +526,31 @@ bool_ set_mimic(int v, int p, int level)
*/
bool_ set_blind(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->blind, v,
+ TERM_WHITE, "You are blind!",
+ TERM_WHITE, "You can see again.");
- /* Open */
- if (v)
- {
- if (!p_ptr->blind)
- {
- msg_print("You are blind!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->blind)
- {
- msg_print("You can see again.");
- notice = TRUE;
- }
- }
+ /* Fully update the visuals */
+ p_ptr->update |= (PU_UN_VIEW | PU_VIEW | PU_MONSTERS | PU_MON_LITE);
- /* Use the value */
- p_ptr->blind = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Fully update the visuals */
- p_ptr->update |= (PU_UN_VIEW | PU_VIEW | PU_MONSTERS | PU_MON_LITE);
-
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
+ /* Redraw map */
+ p_ptr->redraw |= (PR_MAP);
- /* Redraw the "blind" */
- p_ptr->redraw |= (PR_BLIND);
+ /* Redraw the "blind" */
+ p_ptr->redraw |= (PR_BLIND);
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
+ /* Window stuff */
+ p_ptr->window |= (PW_OVERHEAD);
- /* Handle stuff */
- handle_stuff();
+ /* Handle stuff */
+ handle_stuff();
+ }
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -1305,54 +563,28 @@ bool_ set_blind(int v)
*/
bool_ set_lite(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_lite, v,
+ TERM_WHITE, "You suddenly seem brighter!",
+ TERM_WHITE, "You are no longer bright.");
- /* Open */
- if (v)
- {
- if (!p_ptr->tim_lite)
- {
- msg_print("You suddenly seem brighter!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->tim_lite)
- {
- msg_print("You are no longer bright.");
- notice = TRUE;
- }
- }
+ /* Fully update the visuals */
+ p_ptr->update |= (PU_VIEW | PU_MONSTERS);
- /* Use the value */
- p_ptr->tim_lite = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Fully update the visuals */
- p_ptr->update |= (PU_VIEW | PU_MONSTERS);
-
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
+ /* Redraw map */
+ p_ptr->redraw |= (PR_MAP);
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
+ /* Window stuff */
+ p_ptr->window |= (PW_OVERHEAD);
- /* Handle stuff */
- handle_stuff();
+ /* Handle stuff */
+ handle_stuff();
+ }
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -1360,48 +592,23 @@ bool_ set_lite(int v)
*/
bool_ set_confused(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice =
+ set_simple_field(
+ &p_ptr->confused, v,
+ TERM_WHITE, "You are confused!",
+ TERM_WHITE, "You feel less confused now.");
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->confused)
- {
- msg_print("You are confused!");
- notice = TRUE;
- }
- }
+ /* Redraw the "confused" */
+ p_ptr->redraw |= (PR_CONFUSED);
- /* Shut */
- else
- {
- if (p_ptr->confused)
- {
- msg_print("You feel less confused now.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->confused = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Redraw the "confused" */
- p_ptr->redraw |= (PR_CONFUSED);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -1410,48 +617,22 @@ bool_ set_confused(int v)
*/
bool_ set_poisoned(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->poisoned, v,
+ TERM_WHITE, "You are poisoned!",
+ TERM_WHITE, "You are no longer poisoned.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->poisoned)
- {
- msg_print("You are poisoned!");
- notice = TRUE;
- }
- }
+ /* Redraw the "poisoned" */
+ p_ptr->redraw |= (PR_POISONED);
- /* Shut */
- else
- {
- if (p_ptr->poisoned)
- {
- msg_print("You are no longer poisoned.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->poisoned = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Redraw the "poisoned" */
- p_ptr->redraw |= (PR_POISONED);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -1460,48 +641,22 @@ bool_ set_poisoned(int v)
*/
bool_ set_afraid(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->afraid, v,
+ TERM_WHITE, "You are terrified!",
+ TERM_WHITE, "You feel bolder now.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->afraid)
- {
- msg_print("You are terrified!");
- notice = TRUE;
- }
- }
+ /* Redraw the "afraid" */
+ p_ptr->redraw |= (PR_AFRAID);
- /* Shut */
- else
- {
- if (p_ptr->afraid)
- {
- msg_print("You feel bolder now.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->afraid = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Redraw the "afraid" */
- p_ptr->redraw |= (PR_AFRAID);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -1510,48 +665,22 @@ bool_ set_afraid(int v)
*/
bool_ set_paralyzed(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->paralyzed, v,
+ TERM_WHITE, "You are paralyzed!",
+ TERM_WHITE, "You can move again.");
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->paralyzed)
- {
- msg_print("You are paralyzed!");
- notice = TRUE;
- }
- }
+ /* Redraw the state */
+ p_ptr->redraw |= (PR_STATE);
- /* Shut */
- else
- {
- if (p_ptr->paralyzed)
- {
- msg_print("You can move again.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->paralyzed = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Redraw the state */
- p_ptr->redraw |= (PR_STATE);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -1562,54 +691,28 @@ bool_ set_paralyzed(int v)
*/
bool_ set_image(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->image)
- {
- msg_print("Oh, wow! Everything looks so cosmic now!");
- notice = TRUE;
- }
- }
+ bool_ notice = set_simple_field(
+ &p_ptr->image, v,
+ TERM_WHITE, "Oh, wow! Everything looks so cosmic now!",
+ TERM_WHITE, "You can see clearly again.");
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->image)
- {
- msg_print("You can see clearly again.");
- notice = TRUE;
- }
- }
-
- /* Use the value */
- p_ptr->image = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
+ /* Redraw map */
+ p_ptr->redraw |= (PR_MAP);
- /* Update monsters */
- p_ptr->update |= (PU_MONSTERS);
+ /* Update monsters */
+ p_ptr->update |= (PU_MONSTERS);
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD | PW_M_LIST);
+ /* Window stuff */
+ p_ptr->window |= (PW_OVERHEAD | PW_M_LIST);
- /* Handle stuff */
- handle_stuff();
+ /* Handle stuff */
+ handle_stuff();
+ }
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -1617,48 +720,20 @@ bool_ set_image(int v)
*/
bool_ set_light_speed(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice =
+ set_simple_field(
+ &p_ptr->lightspeed, v,
+ TERM_WHITE, "You feel as if time has stopped!",
+ TERM_WHITE, "You feel time returning to its normal rate.");
- /* Open */
- if (v)
- {
- if (!p_ptr->lightspeed)
- {
- msg_print("You feel as if time has stopped!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->lightspeed)
- {
- msg_print("You feel time returning to its normal rate.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->lightspeed = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
bool_ set_fast(int v, int p)
@@ -1715,48 +790,19 @@ bool_ set_fast(int v, int p)
*/
bool_ set_slow(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->slow, v,
+ TERM_WHITE, "You feel yourself moving slower!",
+ TERM_WHITE, "You feel yourself speed up.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->slow)
- {
- msg_print("You feel yourself moving slower!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->slow)
- {
- msg_print("You feel yourself speed up.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->slow = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -1765,53 +811,26 @@ bool_ set_slow(int v)
*/
bool_ set_shield(int v, int p, s16b o, s16b d1, s16b d2)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->shield)
- {
- msg_print("A mystic shield forms around your body!");
- notice = TRUE;
- }
- }
+ bool_ notice = set_simple_field(
+ &p_ptr->shield, v,
+ TERM_WHITE, "A mystic shield forms around your body!",
+ TERM_WHITE, "Your mystic shield crumbles away.");
- /* Shut */
- else
- {
- if (p_ptr->shield)
- {
- msg_print("Your mystic shield crumbles away.");
- notice = TRUE;
- p = 0;
- }
- }
-
- /* Use the value */
- p_ptr->shield = v;
+ /* Use the values */
p_ptr->shield_power = p;
p_ptr->shield_opt = o;
p_ptr->shield_power_opt = d1;
p_ptr->shield_power_opt2 = d2;
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Handle stuff */
- handle_stuff();
+ /* Notice? */
+ if (notice)
+ {
+ /* Handle stuff */
+ handle_stuff();
+ }
/* Result */
- return (TRUE);
+ return notice;
}
@@ -1821,48 +840,19 @@ bool_ set_shield(int v, int p, s16b o, s16b d1, s16b d2)
*/
bool_ set_blessed(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->blessed, v,
+ TERM_WHITE, "You feel righteous!",
+ TERM_WHITE, "The prayer has expired.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->blessed)
- {
- msg_print("You feel righteous!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->blessed)
- {
- msg_print("The prayer has expired.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->blessed = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -1871,51 +861,22 @@ bool_ set_blessed(int v)
*/
bool_ set_hero(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->hero, v,
+ TERM_WHITE, "You feel like a hero!",
+ TERM_WHITE, "The heroism wears off.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->hero)
- {
- msg_print("You feel like a hero!");
- notice = TRUE;
- }
- }
+ /* Recalculate hitpoints */
+ p_ptr->update |= (PU_HP);
- /* Shut */
- else
- {
- if (p_ptr->hero)
- {
- msg_print("The heroism wears off.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->hero = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Recalculate hitpoints */
- p_ptr->update |= (PU_HP);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -1923,48 +884,19 @@ bool_ set_hero(int v)
*/
bool_ set_holy(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->holy)
- {
- msg_print("You feel a holy aura around you!");
- notice = TRUE;
- }
- }
+ bool_ notice = set_simple_field(
+ &p_ptr->holy, v,
+ TERM_WHITE, "You feel a holy aura around you!",
+ TERM_WHITE, "The holy aura vanishes.");
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->holy)
- {
- msg_print("The holy aura vanishes.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->holy = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -1972,48 +904,19 @@ bool_ set_holy(int v)
*/
bool_ set_walk_water(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->walk_water, v,
+ TERM_WHITE, "You feel strangely buoyant!",
+ TERM_WHITE, "You feel much less buoyant.");
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->walk_water)
- {
- msg_print("You feel strangely buoyant!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->walk_water)
- {
- msg_print("You feel much less buoyant.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->walk_water = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -2021,69 +924,28 @@ bool_ set_walk_water(int v)
*/
bool_ set_shero(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->shero, v,
+ TERM_WHITE, "You feel like a killing machine!",
+ TERM_WHITE, "You feel less berserk.");
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->shero)
- {
- msg_print("You feel like a killing machine!");
- notice = TRUE;
-
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
-
- /* Update monsters */
- p_ptr->update |= (PU_MONSTERS);
-
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->shero)
- {
- msg_print("You feel less berserk.");
- notice = TRUE;
+ /* Redraw map */
+ p_ptr->redraw |= (PR_MAP);
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
+ /* Update monsters */
+ p_ptr->update |= (PU_MONSTERS | PU_HP);
- /* Update monsters */
- p_ptr->update |= (PU_MONSTERS);
+ /* Window stuff */
+ p_ptr->window |= (PW_OVERHEAD);
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->shero = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Recalculate hitpoints */
- p_ptr->update |= (PU_HP);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -2092,45 +954,19 @@ bool_ set_shero(int v)
*/
bool_ set_protevil(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->protevil)
- {
- msg_print("You feel safe from evil!");
- notice = TRUE;
- }
- }
+ bool_ notice = set_simple_field(
+ &p_ptr->protevil, v,
+ TERM_WHITE, "You feel safe from evil!",
+ TERM_WHITE, "You no longer feel safe from evil.");
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->protevil)
- {
- msg_print("You no longer feel safe from evil.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->protevil = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -2138,45 +974,19 @@ bool_ set_protevil(int v)
*/
bool_ set_protgood(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->protgood, v,
+ TERM_WHITE, "You feel safe from good!",
+ TERM_WHITE, "You no longer feel safe from good.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->protgood)
- {
- msg_print("You feel safe from good!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->protgood)
- {
- msg_print("You no longer feel safe from good.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->protgood = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -2184,45 +994,18 @@ bool_ set_protgood(int v)
*/
bool_ set_protundead(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->protundead)
- {
- msg_print("You feel safe from undead!");
- notice = TRUE;
- }
- }
+ bool_ notice = set_simple_field(
+ &p_ptr->protundead, v,
+ TERM_WHITE, "You feel safe from undead!",
+ TERM_WHITE, "You no longer feel safe from undead.");
- /* Shut */
- else
- {
- if (p_ptr->protundead)
- {
- msg_print("You no longer feel safe from undead.");
- notice = TRUE;
- }
+ if (notice) {
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->protundead = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -2230,74 +1013,28 @@ bool_ set_protundead(int v)
*/
bool_ set_shadow(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_wraith, v,
+ TERM_WHITE, "You leave the physical world and turn into a wraith-being!",
+ TERM_WHITE, "You feel opaque.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->tim_wraith)
- {
-
- msg_print("You leave the physical world and turn into a wraith-being!");
- notice = TRUE;
-
- {
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
-
- /* Update monsters */
- p_ptr->update |= (PU_MONSTERS);
-
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
- }
- }
- }
+ /* Redraw map */
+ p_ptr->redraw |= (PR_MAP);
- /* Shut */
- else
- {
- if (p_ptr->tim_wraith)
- {
- msg_print("You feel opaque.");
- notice = TRUE;
- {
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
+ /* Update monsters */
+ p_ptr->update |= (PU_MONSTERS);
- /* Update monsters */
- p_ptr->update |= (PU_MONSTERS);
+ /* Window stuff */
+ p_ptr->window |= (PW_OVERHEAD);
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
- }
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->tim_wraith = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
-
-
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
-
+ return notice;
}
@@ -2308,74 +1045,28 @@ bool_ set_shadow(int v)
*/
bool_ set_invuln(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->invuln, v,
+ TERM_L_BLUE, "Invulnerability!",
+ TERM_L_RED, "The invulnerability wears off.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->invuln)
- {
-
- cmsg_print(TERM_L_BLUE, "Invulnerability!");
- notice = TRUE;
-
- {
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
-
- /* Update monsters */
- p_ptr->update |= (PU_MONSTERS);
-
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
- }
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->invuln)
- {
- cmsg_print(TERM_L_RED, "The invulnerability wears off.");
- notice = TRUE;
- {
- /* Redraw map */
- p_ptr->redraw |= (PR_MAP);
-
- /* Update monsters */
- p_ptr->update |= (PU_MONSTERS);
+ /* Redraw map */
+ p_ptr->redraw |= (PR_MAP);
+
+ /* Update monsters */
+ p_ptr->update |= (PU_MONSTERS);
+
+ /* Window stuff */
+ p_ptr->window |= (PW_OVERHEAD);
- /* Window stuff */
- p_ptr->window |= (PW_OVERHEAD);
- }
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->invuln = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
-
-
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
-
+ return notice;
}
@@ -2385,51 +1076,22 @@ bool_ set_invuln(int v)
*/
bool_ set_tim_esp(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_esp, v,
+ TERM_WHITE, "You feel your consciousness expand!",
+ TERM_WHITE, "Your consciousness contracts again.");
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->tim_esp)
- {
- msg_print("You feel your consciousness expand!");
- notice = TRUE;
- }
- }
+ /* Update the monsters */
+ p_ptr->update |= (PU_MONSTERS);
- /* Shut */
- else
- {
- if (p_ptr->tim_esp)
- {
- msg_print("Your consciousness contracts again.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->tim_esp = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Update the monsters */
- p_ptr->update |= (PU_MONSTERS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -2492,51 +1154,22 @@ bool_ set_tim_thunder(int v, int p1, int p2)
*/
bool_ set_tim_invis(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_invis, v,
+ TERM_WHITE, "Your eyes feel very sensitive!",
+ TERM_WHITE, "Your eyes feel less sensitive.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->tim_invis)
- {
- msg_print("Your eyes feel very sensitive!");
- notice = TRUE;
- }
- }
+ /* Update the monsters */
+ p_ptr->update |= (PU_MONSTERS);
- /* Shut */
- else
- {
- if (p_ptr->tim_invis)
- {
- msg_print("Your eyes feel less sensitive.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->tim_invis = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Update the monsters */
- p_ptr->update |= (PU_MONSTERS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -2545,51 +1178,22 @@ bool_ set_tim_invis(int v)
*/
bool_ set_tim_infra(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_infra, v,
+ TERM_WHITE, "Your eyes begin to tingle!",
+ TERM_WHITE, "Your eyes stop tingling.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->tim_infra)
- {
- msg_print("Your eyes begin to tingle!");
- notice = TRUE;
- }
- }
+ /* Update the monsters */
+ p_ptr->update |= (PU_MONSTERS);
- /* Shut */
- else
- {
- if (p_ptr->tim_infra)
- {
- msg_print("Your eyes stop tingling.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->tim_infra = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
-
- /* Update the monsters */
- p_ptr->update |= (PU_MONSTERS);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -2598,45 +1202,19 @@ bool_ set_tim_infra(int v)
*/
bool_ set_mental_barrier(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->tim_mental_barrier, v,
+ TERM_WHITE, "Your mind grows stronger!",
+ TERM_WHITE, "Your mind is no longer especially strong.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->tim_mental_barrier)
- {
- msg_print("Your mind grows stronger!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->tim_mental_barrier)
- {
- msg_print("Your mind is no longer especially strong.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->tim_mental_barrier = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
/*
@@ -2644,45 +1222,19 @@ bool_ set_mental_barrier(int v)
*/
bool_ set_oppose_acid(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->oppose_acid, v,
+ TERM_WHITE, "You feel resistant to acid!",
+ TERM_WHITE, "You feel less resistant to acid.");
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_acid)
- {
- msg_print("You feel resistant to acid!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->oppose_acid)
- {
- msg_print("You feel less resistant to acid.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->oppose_acid = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -2691,45 +1243,19 @@ bool_ set_oppose_acid(int v)
*/
bool_ set_oppose_elec(int v)
{
- bool_ notice = FALSE;
+ bool_ notice = set_simple_field(
+ &p_ptr->oppose_elec, v,
+ TERM_WHITE, "You feel resistant to electricity!",
+ TERM_WHITE, "You feel less resistant to electricity.");
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_elec)
- {
- msg_print("You feel resistant to electricity!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->oppose_elec)
- {
- msg_print("You feel less resistant to electricity.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->oppose_elec = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -2738,45 +1264,19 @@ bool_ set_oppose_elec(int v)
*/
bool_ set_oppose_fire(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->oppose_fire, v,
+ TERM_WHITE, "You feel resistant to fire!",
+ TERM_WHITE, "You feel less resistant to fire.");
- /* Open */
- if (v)
+ if (notice)
{
- if (!p_ptr->oppose_fire)
- {
- msg_print("You feel resistant to fire!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
- {
- if (p_ptr->oppose_fire)
- {
- msg_print("You feel less resistant to fire.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->oppose_fire = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -2785,45 +1285,19 @@ bool_ set_oppose_fire(int v)
*/
bool_ set_oppose_cold(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
-
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_cold)
- {
- msg_print("You feel resistant to cold!");
- notice = TRUE;
- }
- }
+ bool_ notice = set_simple_field(
+ &p_ptr->oppose_cold, v,
+ TERM_WHITE, "You feel resistant to cold!",
+ TERM_WHITE, "You feel less resistant to cold.");
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->oppose_cold)
- {
- msg_print("You feel less resistant to cold.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->oppose_cold = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}
@@ -2832,45 +1306,19 @@ bool_ set_oppose_cold(int v)
*/
bool_ set_oppose_pois(int v)
{
- bool_ notice = FALSE;
-
- /* Hack -- Force good values */
- v = (v > 10000) ? 10000 : (v < 0) ? 0 : v;
+ bool_ notice = set_simple_field(
+ &p_ptr->oppose_pois, v,
+ TERM_WHITE, "You feel resistant to poison!",
+ TERM_WHITE, "You feel less resistant to poison.");
- /* Open */
- if (v)
- {
- if (!p_ptr->oppose_pois)
- {
- msg_print("You feel resistant to poison!");
- notice = TRUE;
- }
- }
-
- /* Shut */
- else
+ if (notice)
{
- if (p_ptr->oppose_pois)
- {
- msg_print("You feel less resistant to poison.");
- notice = TRUE;
- }
+ /* Handle stuff */
+ handle_stuff();
}
- /* Use the value */
- p_ptr->oppose_pois = v;
-
- /* Nothing to notice */
- if (!notice) return (FALSE);
-
- /* Disturb */
- if (disturb_state) disturb(0, 0);
-
- /* Handle stuff */
- handle_stuff();
-
/* Result */
- return (TRUE);
+ return notice;
}