From b81c5292783824bf120668b3e0e6bde1e59bf5a1 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Mon, 18 May 2020 18:55:19 +0200 Subject: [PATCH] [main.c] Moved the drill logic out of the draw chunk --- src/main.c | 54 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/main.c b/src/main.c index fc7b8bf..4efc885 100644 --- a/src/main.c +++ b/src/main.c @@ -65,6 +65,8 @@ int main(void) char selected_direction = RIGHT; char drill_buffer = 0; char drill_toggle = 0; + int drill_x = 0; + int drill_y = 0; set_level(level_id, level); DRAW_LEVEL(); player_x = start_x; @@ -84,31 +86,7 @@ int main(void) //drill if (drill_toggle) { - int drill_x = player_x; - int drill_y = player_y; - switch (selected_direction) - { - case UP: - drill_y -= 12; - break; - case DOWN: - drill_y += 12; - break; - case LEFT: - drill_x -= 12; - break; - case RIGHT: - drill_x += 12; - break; - } draw_player(drill_x, drill_y); - collide_and_erase(drill_x, drill_y, level, 'd'); - if ((selected_direction == UP || selected_direction == DOWN) && - (collide_spike(drill_x, drill_y, level) || collide_solid(drill_x, drill_y, level, polarity, 0))) - { - vspd = -vspd; - drill_toggle = 0; - } } draw_timer(step/2); dupdate(); @@ -296,6 +274,34 @@ int main(void) tp_buffer = 1; } else tp_buffer = 0; + //drill logic + if (drill_toggle) + { + drill_x = player_x; + drill_y = player_y; + switch (selected_direction) + { + case UP: + drill_y -= 12; + break; + case DOWN: + drill_y += 12; + break; + case LEFT: + drill_x -= 12; + break; + case RIGHT: + drill_x += 12; + break; + } + collide_and_erase(drill_x, drill_y, level, 'd'); + if ((selected_direction == UP || selected_direction == DOWN) && + (collide_spike(drill_x, drill_y, level) || collide_solid(drill_x, drill_y, level, polarity, 0))) + { + vspd = -vspd; + drill_toggle = 0; + } + } //spike collision and death if (collide_spike(player_x, player_y, level)) {