32#define UI_TIMER_SLOT_NUMBER 10
72 if (current !=
nullptr) {
79 current = current->
next;
83 newTimer->
prev = prev;
84 newTimer->
next = current;
85 if (current !=
nullptr) {
86 current->
prev = newTimer;
88 if (prev !=
nullptr) {
89 prev->
next = newTimer;
109 if (
timer->isRunning) {
134 if (
timer ==
nullptr)
138 timer->delay = firstDelay;
139 timer->callback = callback;
140 timer->calledTime = 0;
141 timer->prev =
nullptr;
142 timer->next =
nullptr;
143 timer->isRunning =
false;
152 if (
timer->isRunning)
156 timer->isRunning =
true;
165 if (!
timer->isRunning)
168 timer->prev =
nullptr;
169 timer->next =
nullptr;
170 timer->isRunning =
false;
179 timer->prev =
nullptr;
180 timer->next =
nullptr;
181 timer->owner =
nullptr;
182 timer->callback =
nullptr;
191#ifdef COMPILE_UNITTESTS
197const uiTimer_t* UI_PrivateGetFirstTimer (
void)
int CL_Milliseconds(void)
Share stuff between the different cgame implementations.
void Com_Error(int code, const char *fmt,...)
Atomic structure used to define most of the UI.
void UI_HandleTimers(void)
Internal function to handle timers.
static uiTimer_t ui_timerSlots[UI_TIMER_SLOT_NUMBER]
Timer slot. Only one.
static void UI_InsertTimerInActiveList(uiTimer_t *first, uiTimer_t *newTimer)
Insert a timer in a sorted linked list of timers. List are ordered from smaller to bigger nextTime va...
void UI_TimerStop(uiTimer_t *timer)
Stop a timer.
void UI_ResetTimers(void)
#define UI_TIMER_SLOT_NUMBER
Number max of timer slot.
static uiTimer_t * ui_firstTimer
First timer from the timer list. This list is ordered from smaller to bigger nextTime value.
uiTimer_t * UI_AllocTimer(uiNode_t *node, int firstDelay, timerCallback_t callback)
Allocate a new time for a node.
void UI_TimerStart(uiTimer_t *timer)
Restart a timer.
void UI_TimerRelease(uiTimer_t *timer)
Release the timer. It no more exists.
static void UI_RemoveTimerFromActiveList(uiTimer_t *timer)
Remove a timer from the active linked list.
void(* timerCallback_t)(uiNode_t *node, struct uiTimer_s *timer)