From 94fa113e660edaacfe183a777184e2052b498e4d Mon Sep 17 00:00:00 2001 From: KikooDX Date: Mon, 18 May 2020 10:55:17 +0200 Subject: [PATCH] [main.c] Drill toggle system --- src/main.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main.c b/src/main.c index 53d46d4..0757cae 100644 --- a/src/main.c +++ b/src/main.c @@ -15,13 +15,6 @@ #define MIN_VSPD -12.0 #define MAX_VSPD 6.0 #define JUMP_SPD -3.99 -enum Direction -{ - up, - down, - left, - right -}; #define GRAV 0.4 #define JUMP_SCALE 8 #define JUMP_REDUCTION -0.41 @@ -68,6 +61,9 @@ int main(void) int tp_positions[4] = { 0, 0, 0, 0 }; char directions[4] = { 0, 0, 0, 0 }; char last_direction = RIGHT; + char selected_direction = RIGHT; + char drill_buffer = 0; + char drill_toggle = 0; set_level(level_id, level); DRAW_LEVEL(); player_x = start_x; @@ -85,11 +81,11 @@ int main(void) DRAW_LEVEL(); draw_player(player_x, player_y); //drill - if (keydown(KEY_ALPHA)) + if (drill_toggle) { int drill_x = player_x; int drill_y = player_y; - switch (last_direction) + switch (selected_direction) { case UP: drill_y -= 12; @@ -148,6 +144,17 @@ int main(void) } } else pswap_held = 0; + //drill toggling + if (keydown(KEY_ALPHA)) + { + if (!drill_buffer) + { + drill_toggle = !drill_toggle; + selected_direction = last_direction; + } + drill_buffer = 1; + } + else drill_buffer = 1; //horizontal movement & collision { move = 0;