From 19ea4876c39cdbba20ee594c11fe350d7433c857 Mon Sep 17 00:00:00 2001 From: Wintermute Date: Sat, 19 Oct 2013 15:14:32 +0200 Subject: [PATCH] Gegnerspawning an Checkpoints richtig. --- badge/jumpnrun/enemies.c | 6 ++---- badge/jumpnrun/jumpnrun.c | 6 ++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/badge/jumpnrun/enemies.c b/badge/jumpnrun/enemies.c index 7e2e6f6..b518b51 100644 --- a/badge/jumpnrun/enemies.c +++ b/badge/jumpnrun/enemies.c @@ -118,10 +118,8 @@ void jumpnrun_process_enemy(jumpnrun_enemy *self, state->left + BADGE_DISPLAY_WIDTH + spawn_margin < fixed_point_cast_int(self->spawn_pos.x)) { self->flags &= ~JUMPNRUN_ENEMY_UNAVAILABLE; } - } else if((fixed_point_gt(self->spawn_pos.x, FIXED_POINT(state->left - spawn_margin, 0)) && - fixed_point_lt(self->spawn_pos.x, FIXED_POINT(state->left - spawn_margin / 2, 0))) || - (fixed_point_lt(self->spawn_pos.x, FIXED_POINT(state->left + BADGE_DISPLAY_WIDTH + spawn_margin, 0)) && - fixed_point_gt(self->spawn_pos.x, FIXED_POINT(state->left + BADGE_DISPLAY_WIDTH, 0)))) { + } else if(fixed_point_gt(self->spawn_pos.x, FIXED_POINT(state->left - spawn_margin, 0)) && + fixed_point_lt(self->spawn_pos.x, FIXED_POINT(state->left + BADGE_DISPLAY_WIDTH + spawn_margin, 0))) { // enemy unspawned, available and in spawn zone. self->flags = JUMPNRUN_ENEMY_SPAWNED | JUMPNRUN_ENEMY_UNAVAILABLE; self->base.current_box = rectangle_new(self->spawn_pos, self->type->extent); diff --git a/badge/jumpnrun/jumpnrun.c b/badge/jumpnrun/jumpnrun.c index 3c7f04b..272ceaf 100644 --- a/badge/jumpnrun/jumpnrun.c +++ b/badge/jumpnrun/jumpnrun.c @@ -340,9 +340,15 @@ uint8_t jumpnrun_play(char const *lvname) { for(gs.lives = 3; gs.lives != 0; --gs.lives) { gs.status = JUMPNRUN_PLAYING; + memset(&gs.player, 0, sizeof(gs.player)); gs.player.current_box = rectangle_new(lv.start_pos, hacker_extents()); + + for(size_t i = 0; i < lv.header.enemy_count; ++i) { + lv.enemies[i].flags = 0; + } + while(gs.status == JUMPNRUN_PLAYING) { badge_event_t ev = badge_event_wait(); -- 2.20.1