#define BLOCK_SIZE 128 typedef struct Body { BodyType type; int active; vec2 pos; vec2 size; vec2 vel; vec2 accel; } Body; typedef struct BlockmapNode BlockmapNode; struct BlockmapNode { BodyID id; BlockmapNode *next; }; void phxmapcollision(Body *); void phxbodycollision(Body *, Body *); int phxaabbcheck(Body *a, Body *b); void phxcollisionmap(Body *a); void phxaabbresolv(Body *a, Body *b, vec2 p, vec2 n); int phxenqevent(CollisionEvent *ev); int phxdeqevent(CollisionEvent *ev); void phxmakeblkmap(void); BlockmapNode *phxnodelist(float x, float y); extern int phxmapwidth, phxmapheight; extern int *phxmapbuffer; extern Body phxbodypool[]; extern int phxbodypoolsize;