#include #include #include #include "dat.h" #define EVENT_POOL_SIZE (1 << 20) static CollisionEvent event[EVENT_POOL_SIZE]; static int eventi, evente, events; int phxenqevent(CollisionEvent *ev) { if(events == EVENT_POOL_SIZE) return 0; event[evente] = *ev; evente = (evente + 1) % EVENT_POOL_SIZE; events++; return 1; } int phxdeqevent(CollisionEvent *ev) { CollisionEvent *evv; if(events == 0) return 0; evv = event + eventi; eventi = (eventi + 1) % EVENT_POOL_SIZE; *ev = *evv; events--; return 1; } int phxnextcollevent(CollisionEvent *ev) { return phxdeqevent(ev); }