Greetings,
I came across a simple bug today related to GET_OBJ_TIMER. The timer gets decremented in two different functions resulting in timers losing a value of 2 for every tick.
One decrement of obj_flags->timer
begins here in limit.c
in the function point_update()
The second decrement of obj_flags->timer
begins here in handler.c
The function update_object() in handler.c is a sub-function of update_char_objects() in handler.c. In limits.c, point_update() calls update_char_objects() resulting in a double decrement of some object timers.
My version is 2018 but this appears to be active on the most recent version on the github.
Happy coding,
Salty