void gencubeclip(cube &c, const ivec &o, int size) { if(nextclip >= &clipcache[MAXCLIPPLANES]) nextclip = clipcache; ext(c).clip = nextclip; nextclip->owner = &c; genclipplanes(c, o.x, o.y, o.z, size, *nextclip); nextclip++; }
static inline clipplanes &getclipplanes(const cube &c, const ivec &o, int size, bool collide = true, int offset = 0) { clipplanes &p = clipcache[int(&c - worldroot)&(MAXCLIPPLANES-1)]; if(p.owner != &c || p.version != clipcacheversion+offset) { p.owner = &c; p.version = clipcacheversion+offset; genclipplanes(c, o.x, o.y, o.z, size, p, collide); } return p; }