[main.c] Moved the drill logic out of the draw chunk

This commit is contained in:
KikooDX 2020-05-18 18:55:19 +02:00
parent 6bc8cffa7c
commit b81c529278
1 changed files with 30 additions and 24 deletions

View File

@ -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))
{