Update from 10
This commit is contained in:
parent
8a9bab3a4e
commit
e9eb0f9a65
2 changed files with 117 additions and 91 deletions
|
|
@ -70,11 +70,8 @@ void moveleft(player_pos *frog_pos)
|
|||
}
|
||||
}
|
||||
|
||||
void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, player_pos *frog_pos)
|
||||
void on_start_state(signals sig, frog_state *state)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case START:
|
||||
switch (sig)
|
||||
{
|
||||
case ENTER_BTN:
|
||||
|
|
@ -87,9 +84,10 @@ void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, p
|
|||
*state = START;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case SPAWN:
|
||||
void on_spawn_state(frog_state *state, game_stats_t *stats, board_t *map, player_pos *frog_pos)
|
||||
{
|
||||
if (stats->level > LEVEL_CNT)
|
||||
*state = GAMEOVER;
|
||||
else
|
||||
|
|
@ -102,9 +100,10 @@ void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, p
|
|||
}
|
||||
else
|
||||
*state = FILE_ERROR_STATE;
|
||||
}
|
||||
|
||||
break;
|
||||
case MOVING:
|
||||
void on_moving_state(signals sig, frog_state *state, board_t *map, player_pos *frog_pos)
|
||||
{
|
||||
switch (sig)
|
||||
{
|
||||
case MOVE_UP:
|
||||
|
|
@ -135,9 +134,10 @@ void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, p
|
|||
else
|
||||
*state = SHIFTING;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case SHIFTING:
|
||||
void on_shifting_state(frog_state *state, game_stats_t *stats, board_t *map, player_pos *frog_pos)
|
||||
{
|
||||
shift_map(map);
|
||||
|
||||
if (check_collide(frog_pos, map))
|
||||
|
|
@ -148,11 +148,13 @@ void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, p
|
|||
print_board(map, frog_pos);
|
||||
print_stats(stats);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case REACH:
|
||||
void on_reach_state(frog_state *state, game_stats_t *stats, board_t *map, player_pos *frog_pos)
|
||||
{
|
||||
stats->score += 1;
|
||||
add_proggress(map);
|
||||
|
||||
if (check_level_compl(map))
|
||||
{
|
||||
stats->level++;
|
||||
|
|
@ -165,9 +167,10 @@ void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, p
|
|||
print_finished(map);
|
||||
*state = MOVING;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case COLLIDE:
|
||||
void on_collide_state(frog_state *state, game_stats_t *stats, player_pos *frog_pos)
|
||||
{
|
||||
if (stats->lives)
|
||||
{
|
||||
stats->lives--;
|
||||
|
|
@ -176,6 +179,29 @@ void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, p
|
|||
}
|
||||
else
|
||||
*state = GAMEOVER;
|
||||
}
|
||||
|
||||
void sigact(signals sig, frog_state *state, game_stats_t *stats, board_t *map, player_pos *frog_pos)
|
||||
{
|
||||
switch (*state)
|
||||
{
|
||||
case START:
|
||||
on_start_state(sig, state);
|
||||
break;
|
||||
case SPAWN:
|
||||
on_spawn_state(state, stats, map, frog_pos);
|
||||
break;
|
||||
case MOVING:
|
||||
on_moving_state(sig, state, map, frog_pos);
|
||||
break;
|
||||
case SHIFTING:
|
||||
on_shifting_state(state, stats, map, frog_pos);
|
||||
break;
|
||||
case REACH:
|
||||
on_reach_state(state, stats, map, frog_pos);
|
||||
break;
|
||||
case COLLIDE:
|
||||
on_collide_state(state, stats, frog_pos);
|
||||
break;
|
||||
case GAMEOVER:
|
||||
print_banner(stats);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue