Speedrun timer "completed"

This commit is contained in:
KikooDX 2020-02-18 13:12:40 +01:00
parent 9b4447ad24
commit 2da6c9ee93
4 changed files with 15 additions and 14 deletions

View File

@ -1,6 +1,6 @@
void draw_player(int old_x, int old_y, int x, int y);
void draw_level(char level[], char upgrades[]);
void draw_level(char level[], char upgrades[], unsigned int step);
void draw_level_anims(char level[], char upgrades[], unsigned int step);
void erase_tile(int x, int y, char level[]);
void draw_upgrade_message(char item);
void draw_timer(unsigned int step); //coucou Lephé'
void draw_timer(unsigned int step, char force); //coucou Lephé'

Binary file not shown.

View File

@ -34,7 +34,7 @@ void draw_player(int old_x, int old_y, int x, int y)
}
}
void draw_level(char level[], char upgrades[])
void draw_level(char level[], char upgrades[], unsigned int step)
{
dclear(BG_COLOR);
unsigned int i = 0;
@ -67,6 +67,7 @@ void draw_level(char level[], char upgrades[])
}
i++;
}
draw_timer(step, 1);
}
void draw_level_anims(char level[], char upgrades[], unsigned int step)
@ -79,12 +80,12 @@ void draw_level_anims(char level[], char upgrades[], unsigned int step)
switch (level[i])
{
case '^':
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, ani_elevator[((int)step/2)%16]);
dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, ani_elevator[(step/2)%16]);
break;
case 'j':
if (!upgrades[0])
{
unsigned int buffer = ((int)step/20)%4 - 1;
unsigned int buffer = (step/20)%4 - 1;
if (buffer == 2) buffer = 0;
drect(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, x + 15 + DRAW_OFFSET_X,
y + 15 + DRAW_OFFSET_Y, BG_COLOR);
@ -128,8 +129,8 @@ void draw_upgrade_message(char item)
}
}
void draw_timer(unsigned int step)
void draw_timer(unsigned int step, char force)
{
if (!(step%60))
dprint(2, 2, C_WHITE, C_BLACK, "%u", step/60);
if (!(step%60) || force)
dprint(0, 0, C_WHITE, C_BLACK, "%u", step/60);
}

View File

@ -54,7 +54,7 @@ int main(void)
char spawn_buffer = 0;
unsigned int step = 0;
set_level(level_id, level);
draw_level(level, upgrades);
draw_level(level, upgrades, step);
draw_level_anims(level, upgrades, step);
player_x = start_x;
player_y = start_y;
@ -70,7 +70,7 @@ int main(void)
step++;
draw_level_anims(level, upgrades, step);
draw_player(old_x, old_y, player_x, player_y);
draw_timer(step);
draw_timer(step, 0);
dupdate();
old_y = player_y;
old_x = player_x;
@ -191,7 +191,7 @@ int main(void)
player_x = 416 + (move * (int) hspd);
set_start_pos(&start_x, &start_y, player_x, player_y);
set_level(level_id, level);
draw_level(level, upgrades);
draw_level(level, upgrades, step);
reset_old_pos(&old_x, &old_y);
}
else if (player_x >= 416)
@ -200,7 +200,7 @@ int main(void)
player_x = 22 + (move * (int) hspd);
set_start_pos(&start_x, &start_y, player_x, player_y);
set_level(level_id, level);
draw_level(level, upgrades);
draw_level(level, upgrades, step);
reset_old_pos(&old_x, &old_y);
}
else if (player_y <= 8)
@ -209,7 +209,7 @@ int main(void)
player_y = 246;
spawn_buffer = 1;
set_level(level_id, level);
draw_level(level, upgrades);
draw_level(level, upgrades, step);
reset_old_pos(&old_x, &old_y);
}
else if (player_y >= 248)
@ -218,7 +218,7 @@ int main(void)
player_y = 10;
set_start_pos(&start_x, &start_y, player_x, player_y);
set_level(level_id, level);
draw_level(level, upgrades);
draw_level(level, upgrades, step);
reset_old_pos(&old_x, &old_y);
}
//item get