Adrian Hedqvist
bb40711f84
* Add and started using a proper state machine class * Uses a "StateResult" struct to handle state switches * Add timers * Move imgui to its own folder * Add logger (not used yet)
40 lines
780 B
C++
40 lines
780 B
C++
#pragma once
|
|
|
|
#include "statemachine/StateStack.h"
|
|
#include "Tilemap.h"
|
|
#include "FieldOfView.h"
|
|
#include "World.h"
|
|
|
|
class SpriteAtlas;
|
|
class Actor;
|
|
class App;
|
|
|
|
class PlayState : public IState {
|
|
SpriteAtlas* ascii;
|
|
World world;
|
|
Tilemap* tilemap;
|
|
Actor * player_actor;
|
|
FieldOfView fov;
|
|
unsigned int current_entity_index;
|
|
bool is_player_turn;
|
|
unsigned int current_level;
|
|
|
|
vec2i camera_pos;
|
|
|
|
bool debug;
|
|
bool debug_actors = false;
|
|
bool debug_settings = false;
|
|
bool debug_disable_fov = false;
|
|
|
|
App* app;
|
|
|
|
public:
|
|
PlayState(App* app);
|
|
void new_game();
|
|
void enter() override;
|
|
StateResult update(float delta) override;
|
|
void draw() override;
|
|
void exit() override;
|
|
void input(InputEvent& event) override;
|
|
};
|