summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2012-05-09 22:35:12 +0200
committerBardur Arantsson <bardur@scientician.net>2012-05-09 22:42:46 +0200
commita5b78e910344f4277c110941145e9412a03039ef (patch)
tree30fb069716346dc67e37a40775d06bec7e755f75 /src
parent6ef98743b002c48fb3bf720fb07936e34926b313 (diff)
Lua: Move Theme's "aggravate_evil" timer to C
Diffstat (limited to 'src')
-rw-r--r--src/externs.h6
-rw-r--r--src/init2.c3
-rw-r--r--src/lua_bind.c14
-rw-r--r--src/util.c7
-rw-r--r--src/util.pkg26
5 files changed, 27 insertions, 29 deletions
diff --git a/src/externs.h b/src/externs.h
index e89341a4..e281437e 100644
--- a/src/externs.h
+++ b/src/externs.h
@@ -1737,7 +1737,6 @@ extern int test_monster_name(cptr name);
extern int test_mego_name(cptr name);
extern int test_item_name(cptr name);
extern char msg_box(cptr text, int y, int x);
-extern timer_type *new_timer(cptr callback, s32b delay);
extern timer_type *new_timer_c(void (*callback)(), s32b delay);
extern void del_timer(timer_type *t_ptr);
extern int get_keymap_mode();
@@ -2061,6 +2060,11 @@ extern void lua_display_list(int y, int x, int h, int w, cptr title, list_type *
extern void increase_mana(int delta);
+extern timer_type *TIMER_AGGRAVATE_EVIL;
+
+void timer_aggravate_evil_enable();
+void timer_aggravate_evil_callback();
+
/* skills.c */
extern void dump_skills(FILE *fff);
extern s16b find_skill(cptr name);
diff --git a/src/init2.c b/src/init2.c
index 38de672a..b30764f9 100644
--- a/src/init2.c
+++ b/src/init2.c
@@ -1978,6 +1978,9 @@ static errr init_misc(void)
TIMER_INERTIA_CONTROL =
new_timer_c(meta_inertia_control_timer_callback,
10);
+ TIMER_AGGRAVATE_EVIL =
+ new_timer_c(timer_aggravate_evil_callback,
+ 10);
return 0;
}
diff --git a/src/lua_bind.c b/src/lua_bind.c
index 19fbf529..67073061 100644
--- a/src/lua_bind.c
+++ b/src/lua_bind.c
@@ -548,3 +548,17 @@ void increase_mana(int delta)
sprintf(buf, "increase_mana(%d)", delta);
exec_lua(buf);
}
+
+timer_type *TIMER_AGGRAVATE_EVIL = 0;
+
+void timer_aggravate_evil_enable()
+{
+ TIMER_AGGRAVATE_EVIL->enabled = TRUE;
+}
+
+void timer_aggravate_evil_callback()
+{
+ dispel_evil(0);
+}
+
+
diff --git a/src/util.c b/src/util.c
index a195cfc9..ac060d5e 100644
--- a/src/util.c
+++ b/src/util.c
@@ -4434,13 +4434,6 @@ static timer_type *new_timer_init(s32b delay)
return t_ptr;
}
-timer_type *new_timer(cptr callback, s32b delay)
-{
- timer_type *t_ptr = new_timer_init(delay);
- t_ptr->callback = string_make(callback);
- return t_ptr;
-}
-
timer_type *new_timer_c(void (*callback)(), s32b delay)
{
timer_type *t_ptr = new_timer_init(delay);
diff --git a/src/util.pkg b/src/util.pkg
index a730ee9a..2c6f0d87 100644
--- a/src/util.pkg
+++ b/src/util.pkg
@@ -2325,27 +2325,6 @@ struct timer_type
cptr callback;
};
-/** @fn *new_timer(cptr callback, s32b delay)
- * @brief Create a timer with callback "callback" and delay "delay".\n
- * @param callback String \n the callback associated with the timer.
- * @brief Callback
- * @param delay Number \n the delay associated with the timer.
- * @brief Delay
- * @return timer_type \n The new timer.
- * @note
- * The timer's countdown is also set to "delay". The timer is disabled.
- * @note (see file util.c)
- */
-extern timer_type *new_timer(cptr callback, s32b delay);
-
-/** @fn del_timer(timer_type *t_ptr)
- * @brief Delete timer "t_ptr".\n
- * @param *t_ptr timer_type \n the timer to be deleted.
- * @brief Timer
- * @note (see file util.c)
- */
-extern void del_timer(timer_type *t_ptr);
-
/*
* Lists
*/
@@ -2434,3 +2413,8 @@ extern void lite_spot(int y, int x);
* Mimicry
*/
extern s16b resolve_mimic_name(cptr name);
+
+/**
+ * Timers
+ */
+void timer_aggravate_evil_enable();