diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dungeon.c | 12 | ||||
-rw-r--r-- | src/externs.h | 2 | ||||
-rw-r--r-- | src/init2.c | 8 | ||||
-rw-r--r-- | src/loadsave.c | 9 | ||||
-rw-r--r-- | src/types.h | 3 | ||||
-rw-r--r-- | src/util.c | 16 | ||||
-rw-r--r-- | src/util.pkg | 37 |
7 files changed, 17 insertions, 70 deletions
diff --git a/src/dungeon.c b/src/dungeon.c index fcca8a21..fd2cc546 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -13,6 +13,8 @@ #include "angband.h" #include "lua/lua.h" #include "tolua.h" +#include <assert.h> + extern lua_State* L; #define TY_CURSE_CHANCE 100 @@ -1345,14 +1347,8 @@ static void process_world(void) if (!t_ptr->countdown) { t_ptr->countdown = t_ptr->delay; - if (t_ptr->callback_c) - { - t_ptr->callback_c(); - } - if (t_ptr->callback) - { - call_lua(t_ptr->callback, "()", ""); - } + assert(t_ptr->callback != NULL); + t_ptr->callback(); } } diff --git a/src/externs.h b/src/externs.h index e281437e..fa50cac8 100644 --- a/src/externs.h +++ b/src/externs.h @@ -1737,7 +1737,7 @@ 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_c(void (*callback)(), s32b delay); +extern timer_type *new_timer(void (*callback)(), s32b delay); extern void del_timer(timer_type *t_ptr); extern int get_keymap_mode(); diff --git a/src/init2.c b/src/init2.c index b30764f9..9e9911f8 100644 --- a/src/init2.c +++ b/src/init2.c @@ -1976,11 +1976,11 @@ static errr init_misc(void) /* Initialize timers */ TIMER_INERTIA_CONTROL = - new_timer_c(meta_inertia_control_timer_callback, - 10); + new_timer(meta_inertia_control_timer_callback, + 10); TIMER_AGGRAVATE_EVIL = - new_timer_c(timer_aggravate_evil_callback, - 10); + new_timer(timer_aggravate_evil_callback, + 10); return 0; } diff --git a/src/loadsave.c b/src/loadsave.c index 033aa3a0..ad982e8d 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -2519,12 +2519,9 @@ static void do_timers(int flag) for (t_ptr = gl_timers; t_ptr != NULL; t_ptr = t_ptr->next) { - if (t_ptr->callback_c) - { - do_bool(&t_ptr->enabled, flag); - do_s32b(&t_ptr->delay, flag); - do_s32b(&t_ptr->countdown, flag); - } + do_bool(&t_ptr->enabled, flag); + do_s32b(&t_ptr->delay, flag); + do_s32b(&t_ptr->countdown, flag); } } diff --git a/src/types.h b/src/types.h index 8e06c4fd..6066e215 100644 --- a/src/types.h +++ b/src/types.h @@ -2490,8 +2490,7 @@ struct timer_type s32b delay; /* Delay between activations */ s32b countdown; /* The current number of turns passed, when it reaches delay it fires */ - cptr callback; /* The lua function to call upon firing (if any) */ - void (*callback_c)(); /* The C function to call upon firing */ + void (*callback)(); /* The C function to call upon firing */ }; /* @@ -4417,16 +4417,15 @@ void scansubdir(cptr dir) /* * Timers */ -static timer_type *new_timer_init(s32b delay) +timer_type *new_timer(void (*callback)(), s32b delay) { - timer_type *t_ptr; + timer_type *t_ptr = NULL; MAKE(t_ptr, timer_type); t_ptr->next = gl_timers; gl_timers = t_ptr; - t_ptr->callback_c = NULL; - t_ptr->callback = NULL; + t_ptr->callback = callback; t_ptr->delay = delay; t_ptr->countdown = delay; t_ptr->enabled = FALSE; @@ -4434,13 +4433,6 @@ static timer_type *new_timer_init(s32b delay) return t_ptr; } -timer_type *new_timer_c(void (*callback)(), s32b delay) -{ - timer_type *t_ptr = new_timer_init(delay); - t_ptr->callback_c = callback; - return t_ptr; -} - void del_timer(timer_type *t_ptr) { timer_type *i, *old; @@ -4454,7 +4446,7 @@ void del_timer(timer_type *t_ptr) gl_timers = t_ptr->next; else old->next = t_ptr->next; - string_free(t_ptr->callback); + FREE(t_ptr, timer_type); } else diff --git a/src/util.pkg b/src/util.pkg index 2c6f0d87..e6f0294f 100644 --- a/src/util.pkg +++ b/src/util.pkg @@ -2289,43 +2289,6 @@ extern cptr game_module; extern int get_keymap_dir(char ch); /* - * Timers - */ -/** @struct timer_type - */ -struct timer_type -{ - /** @structvar *next - * @brief timer_type - * @note The next timer in the list - */ - timer_type *next; - - /** @structvar enabled - * @brief Boolean - * @note Is it currently counting? - */ - bool enabled; - - /** @structvar delay - * @brief Number - * @note Delay between activations - */ - s32b delay; - /** @structvar countdown - * @brief Number - * @note The current number of turns passed, when it reaches delay it fires - */ - s32b countdown; - - /** @structvar callback - * @brief String - * @note The lua function to call upon firing(no C callback yet .. maybe) - */ - cptr callback; -}; - -/* * Lists */ /** @struct list_type |