Skip to content

Commit f1a49cd

Browse files
committed
Fix bug where units got wrong sprites and bug where hole time was not reset when restarting level. Add Key R to restart level.
1 parent 41201b2 commit f1a49cd

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

src/scene.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ void Scene::tick(bool key_pressed[ALLEGRO_KEY_MAX], bool key_repeat[ALLEGRO_KEY_
5252
bool prev_pyr = key_pressed[ALLEGRO_KEY_H];
5353
bool next_pyr = key_pressed[ALLEGRO_KEY_J];
5454

55+
bool restart_level = key_pressed[ALLEGRO_KEY_R];
56+
5557
if ((left || right || up || down || next_pyr || prev_pyr)) {
5658
move_selector(left ? -1 : (right ? 1 : 0), up ? 1 : (down ? -1 : 0) );
5759
if (next_pyr)
@@ -99,7 +101,7 @@ void Scene::tick(bool key_pressed[ALLEGRO_KEY_MAX], bool key_repeat[ALLEGRO_KEY_
99101
restart_countdown -= dt;
100102
}
101103

102-
if (dead && restart_countdown <= 0.0)
104+
if (restart_level || (dead && restart_countdown <= 0.0))
103105
restart(curr_level);
104106

105107
if (enemies_dead)
@@ -264,10 +266,10 @@ void Scene::restart(size_t level_idx) {
264266
int i = 0;
265267
for (auto& enemies : pyramid_enemies) {
266268
for (auto& e : enemies) {
267-
switch (i) {
268-
case 0: e.image = enemy_img0; e.image1 = enemy_img01; break;
269-
case 1: e.image = enemy_img1; e.image1 = enemy_img11; break;
270-
default: e.image = enemy_img2; e.image1 = enemy_img21; break;
269+
switch (i % 3) {
270+
case 0: e.image = enemy_img0; e.image1 = enemy_img01; break;
271+
case 1: e.image = enemy_img1; e.image1 = enemy_img11; break;
272+
case 2: e.image = enemy_img2; e.image1 = enemy_img21; break;
271273
}
272274
i++;
273275
}
@@ -276,6 +278,7 @@ void Scene::restart(size_t level_idx) {
276278
show_level_countdown = 2.0;
277279
draw_level = true;
278280
curr_pyramid = 0;
281+
last_hole_time = 0;
279282
}
280283

281284
void Scene::draw_text(const char* str)

0 commit comments

Comments
 (0)