#include "world.h" #include "entity.h" #include "arena.h" #include "scratch.h" void world_alloc(struct world *world) { MEMZERO_STRUCT(world); world->entity_store = entity_store_alloc(); } void world_copy_replace(struct world *dest, struct world *src) { __prof; struct temp_arena scratch = scratch_begin_no_conflict(); struct world *old = arena_push(scratch.arena, struct world); *old = *dest; MEMCPY_STRUCT(dest, src); dest->entity_store = old->entity_store; entity_store_copy_replace(&dest->entity_store, &src->entity_store); scratch_end(scratch); }