summaryrefslogtreecommitdiff
path: root/src/lua_bind.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua_bind.c')
-rw-r--r--src/lua_bind.c39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/lua_bind.c b/src/lua_bind.c
index ded66b21..1add61e3 100644
--- a/src/lua_bind.c
+++ b/src/lua_bind.c
@@ -657,7 +657,7 @@ static void subrace_add_power(player_race_mod *rmp_ptr, int power)
}
}
-void player_gain_vampire_teeth()
+static void player_gain_vampire_teeth()
{
player_race_mod *rmp_ptr = NULL;
@@ -671,7 +671,7 @@ void player_gain_vampire_teeth()
| PR1_NO_SUBRACE_CHANGE;
}
-void player_gain_vampire_strength()
+static void player_gain_vampire_strength()
{
player_race_mod *rmp_ptr = &race_mod_info[SUBRACE_SAVE];
/* Apply the bonuses/penalities */
@@ -690,7 +690,7 @@ void player_gain_vampire_strength()
cmsg_print(TERM_L_DARK, "You feel death slipping inside.");
}
-void player_gain_vampire()
+static void player_gain_vampire()
{
player_race_mod *rmp_ptr = &race_mod_info[SUBRACE_SAVE];
@@ -721,6 +721,39 @@ void player_gain_vampire()
| TR3_LITE1;
}
+static void player_set_corruption(int c, bool_ set)
+{
+ p_ptr->corruptions[c] = set;
+ p_ptr->redraw = p_ptr->redraw | PR_BASIC;
+ p_ptr->update = p_ptr->update | PU_BONUS | PU_TORCH | PU_BODY | PU_POWERS;
+
+}
+
+void player_gain_corruption(int corruption_idx)
+{
+ player_set_corruption(corruption_idx, TRUE);
+
+ if (corruption_idx == CORRUPT_VAMPIRE_TEETH)
+ {
+ player_gain_vampire_teeth();
+ }
+ else if (corruption_idx == CORRUPT_VAMPIRE_STRENGTH)
+ {
+ player_gain_vampire_strength();
+ }
+ else if (corruption_idx == CORRUPT_VAMPIRE_VAMPIRE)
+ {
+ player_gain_vampire();
+ }
+}
+
+void player_lose_corruption(int corruption_idx)
+{
+ player_set_corruption(corruption_idx, FALSE);
+ /* Currently no corruptions need
+ any special handling when lost */
+}
+
/*
* Gods
*/