summaryrefslogtreecommitdiff
path: root/src/modules.c
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2012-06-09 20:54:07 +0200
committerBardur Arantsson <bardur@scientician.net>2012-06-09 20:58:51 +0200
commita0107d942872735f1faa0e857174a6c467180d75 (patch)
tree5e3b70534517764d3d77052a14eb8aeb1645a4f9 /src/modules.c
parentd69d91b33a2e833e8b32baa29af22809ade406ba (diff)
Lua: Move automatic stat gain to C
Diffstat (limited to 'src/modules.c')
-rw-r--r--src/modules.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/modules.c b/src/modules.c
index 8a4c5644..ff8a24fb 100644
--- a/src/modules.c
+++ b/src/modules.c
@@ -495,3 +495,44 @@ void theme_intro()
exit:
screen_load();
}
+
+static bool_ auto_stat_gain_hook(void *data, void *in, void *out)
+{
+ while (p_ptr->last_rewarded_level * 5 <= p_ptr->lev)
+ {
+ do_inc_stat(A_STR);
+ do_inc_stat(A_INT);
+ do_inc_stat(A_WIS);
+ do_inc_stat(A_DEX);
+ do_inc_stat(A_CON);
+ do_inc_stat(A_CHR);
+
+ p_ptr->last_rewarded_level += 1;
+ }
+
+ return FALSE;
+}
+
+void init_hooks_module()
+{
+ switch (game_module_idx)
+ {
+ case MODULE_TOME:
+ {
+ break;
+ }
+
+ case MODULE_THEME:
+ {
+ add_hook_new(HOOK_PLAYER_LEVEL,
+ auto_stat_gain_hook,
+ "auto_stat_gain",
+ NULL);
+
+ break;
+ }
+
+ default:
+ assert(FALSE);
+ }
+}