Crossfire Server, Trunk
|
Go to the source code of this file.
Functions | |
int | cftimer_create (int id, long delay, object *ob, int mode) |
int | cftimer_destroy (int id) |
int | cftimer_find_free_id (void) |
void | cftimer_init (void) |
static void | cftimer_process_event (tag_t ob_tag) |
void | cftimer_process_timers (void) |
Variables | |
cftimer | timers_table [MAX_TIMERS] |
This handles custom timers. See Custom timers.
Definition in file timers.c.
int cftimer_create | ( | int | id, |
long | delay, | ||
object * | ob, | ||
int | mode | ||
) |
Creates a new timer.
id | desired timer identifier. |
delay | desired timer delay. |
ob | object that will be linked to this timer. Should have an EVENT_TIMER handler. |
mode | unit for delay, should be TIMER_MODE_SECONDS or TIMER_MODE_CYCLES. See timers.h. |
TIMER_ERR_NONE | timer was successfully created. |
TIMER_ERR_ID | invalid ID. |
TIMER_ERR_MODE | invalid mode. |
TIMER_ERR_OBJ | ob is NULL or has no EVENT_TIMER handler. |
Definition at line 97 of file timers.c.
References _cftimer::delay, EVENT_CONNECTOR, EVENT_TIMER, diamondslots::id, MAX_TIMERS, _cftimer::mode, guildjoin::ob, _cftimer::ob_tag, object_find_by_type_subtype(), seconds(), TIMER_ERR_ID, TIMER_ERR_MODE, TIMER_ERR_NONE, TIMER_ERR_OBJ, TIMER_MODE_CYCLES, TIMER_MODE_DEAD, TIMER_MODE_SECONDS, and timers_table.
Referenced by cfapi_timer_create().
int cftimer_destroy | ( | int | id | ) |
Destroys an existing timer.
id | identifier of the timer to destroy. |
TIMER_ERR_NONE | no problem encountered. |
TIMER_ERR_ID | unknown id - timer not found or invalid. |
Definition at line 128 of file timers.c.
References diamondslots::id, MAX_TIMERS, _cftimer::mode, TIMER_ERR_ID, TIMER_ERR_NONE, TIMER_MODE_DEAD, and timers_table.
Referenced by cfapi_timer_destroy().
int cftimer_find_free_id | ( | void | ) |
Finds a free ID for a new timer.
TIMER_ERR_ID | no free ID available. |
>=0 | an available ID. |
Definition at line 144 of file timers.c.
References MAX_TIMERS, TIMER_ERR_ID, TIMER_MODE_DEAD, and timers_table.
Referenced by cfapi_timer_create().
void cftimer_init | ( | void | ) |
Initialize timers.
Definition at line 157 of file timers.c.
References MAX_TIMERS, and timers_table.
Referenced by init().
|
static |
Triggers the EVENT_TIMER of the given object.
ob_tag | object tag to use. |
Definition at line 71 of file timers.c.
References EVENT_TIMER, events_execute_object_event(), guildjoin::ob, object_find_by_tag_global(), and SCRIPT_FIX_ALL.
Referenced by cftimer_process_timers().
void cftimer_process_timers | ( | void | ) |
Processes all timers.
Definition at line 44 of file timers.c.
References cftimer_process_event(), _cftimer::delay, MAX_TIMERS, _cftimer::mode, seconds(), TIMER_MODE_CYCLES, TIMER_MODE_DEAD, TIMER_MODE_SECONDS, and timers_table.
Referenced by server_main().
cftimer timers_table[MAX_TIMERS] |
The actual timers.
Definition at line 37 of file timers.c.
Referenced by cftimer_create(), cftimer_destroy(), cftimer_find_free_id(), cftimer_init(), and cftimer_process_timers().