diff options
Diffstat (limited to 'src/lua_bind.c')
-rw-r--r-- | src/lua_bind.c | 39 |
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 */ |