28 lines
575 B
C++
28 lines
575 B
C++
// src/game/state.h
|
|
#pragma once
|
|
#include "mbed.h"
|
|
#include "../assets/character_frames.h"
|
|
|
|
constexpr auto CRAWL_DURATION = 300ms;
|
|
|
|
enum class PlayerState { Walk1, Walk2, Crawl1 };
|
|
|
|
class WalkingState {
|
|
private:
|
|
PlayerState current_state = PlayerState::Walk1;
|
|
Timer state_timer;
|
|
|
|
public:
|
|
// MOVED FROM loop.cpp
|
|
// Update state (handles crawl timeout)
|
|
void update();
|
|
|
|
// State transitions
|
|
void start_crawl();
|
|
void toggle_walk_frame();
|
|
|
|
// Getters
|
|
PlayerState get_state() const { return current_state; }
|
|
CharacterFrame get_character_frame() const;
|
|
};
|