diff --git a/game/main.c b/game/main.c index 5cdf643..f26dafb 100644 --- a/game/main.c +++ b/game/main.c @@ -726,7 +726,16 @@ void game_render(const void *mem, SDL_Renderer *renderer, long unsigned t) { const gamestate_t *state = (const gamestate_t *)mem; render_map(state, renderer); - for (unsigned i = 0; i < state->objcol.n; ++i) - render_objentity(state, renderer, t, &state->objcol.buf[i]); - render_dynentity(state, renderer, &state->p, t); + for (const entity_t *e = state->drawlist; e != NULL; e = e->next) { + switch (e->tag) { + case ENTITY_DYN: + render_dynentity(state, renderer, (const dynentity_t *)e, t); + break; + case ENTITY_OBJ: + render_objentity(state, renderer, t, (const objentity_t *)e); + break; + default: + assert(false); + } + } }