usage of enums for frames

This commit is contained in:
Priec
2025-11-14 19:20:14 +01:00
parent 9170524d33
commit 8fa8bf392b
5 changed files with 52 additions and 39 deletions

View File

@@ -86,16 +86,16 @@ static bool update_animation(Timer &anim_timer, int &shift, int speed) {
return false;
}
static int get_player_frame(PlayerState state) {
static PlayerFrame get_player_frame(PlayerState state) {
switch (state) {
case PlayerState::Walk1:
return 0;
return PlayerFrame::Walk1;
case PlayerState::Walk2:
return 1;
return PlayerFrame::Walk2;
case PlayerState::Crawl1:
return 2;
return PlayerFrame::Crawl1;
default:
return 0;
return PlayerFrame::Walk1;
}
}
@@ -157,8 +157,8 @@ void render_loop(int speed) {
if (need_redraw) {
draw_mask(bg_file, shift, message_active ? message : nullptr);
int player_frame = get_player_frame(player_state.current_state);
PlayerPosition draw_pos = get_aligned_frame_position(pos, player_frame);
PlayerFrame player_frame = get_player_frame(player_state.current_state);
PlayerPosition draw_pos = get_aligned_frame_position(pos, static_cast<int>(player_frame));
draw_player(draw_pos.x, draw_pos.y, player_frame);
// alternate between frame 0 and 1 when not crawling