diff options
Diffstat (limited to 'world.c')
-rw-r--r-- | world.c | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -0,0 +1,37 @@ +#include "plat.h" +#include "world.h" + +void init_world(World* w) { + w->particle_count = 0; + init_player(&w->player); +} + +Particle* inst_particle( + World* w, + int x, + int y, + int anim, + int bmp +) { + Particle* p; + assert(w->particle_count < max_particles); + p = &w->particles[w->particle_count++]; + init_particle(p, x, y, anim, bmp); + return p; +} + +void update_world(World* w, const App* a) { + int i; + update_player(&w->player, w, a, &w->map); + for (i = w->particle_count - 1; i >= 0; i--) + if (update_particle(&w->particles[i])) + w->particles[i] = w->particles[--w->particle_count]; +} + +void ren_world(const World* w, struct Renderer* r) { + int i; + ren_player(&w->player, r); + render_map(&w->map, r); + for (i = 0; i < w->particle_count; i++) + ren_particle(&w->particles[i], r); +} |