2017-12-30 20:15:39 +01:00
|
|
|
#pragma once
|
2017-09-21 18:57:12 +02:00
|
|
|
|
2018-04-02 22:24:54 +02:00
|
|
|
#include "statemachine/StateStack.h"
|
2017-12-27 12:43:38 +01:00
|
|
|
#include "Tilemap.h"
|
|
|
|
#include "FieldOfView.h"
|
2018-03-26 22:16:10 +02:00
|
|
|
#include "World.h"
|
2017-09-21 18:57:12 +02:00
|
|
|
|
2017-12-31 21:51:57 +01:00
|
|
|
class SpriteAtlas;
|
2017-09-21 18:57:12 +02:00
|
|
|
class Actor;
|
2018-04-02 22:24:54 +02:00
|
|
|
class App;
|
2017-09-21 18:57:12 +02:00
|
|
|
|
2018-04-02 22:24:54 +02:00
|
|
|
class PlayState : public IState {
|
2017-12-31 21:51:57 +01:00
|
|
|
SpriteAtlas* ascii;
|
2018-03-26 22:16:10 +02:00
|
|
|
World world;
|
|
|
|
Tilemap* tilemap;
|
2017-12-30 20:15:39 +01:00
|
|
|
Actor * player_actor;
|
2017-12-27 12:43:38 +01:00
|
|
|
FieldOfView fov;
|
2017-12-30 20:15:39 +01:00
|
|
|
unsigned int current_entity_index;
|
|
|
|
bool is_player_turn;
|
2018-03-26 22:16:10 +02:00
|
|
|
unsigned int current_level;
|
2017-12-30 20:15:39 +01:00
|
|
|
|
|
|
|
vec2i camera_pos;
|
2017-09-21 18:57:12 +02:00
|
|
|
|
|
|
|
bool debug;
|
2017-12-30 20:15:39 +01:00
|
|
|
bool debug_actors = false;
|
|
|
|
bool debug_settings = false;
|
|
|
|
bool debug_disable_fov = false;
|
|
|
|
|
2018-04-02 22:24:54 +02:00
|
|
|
App* app;
|
|
|
|
|
2017-09-21 18:57:12 +02:00
|
|
|
public:
|
2018-04-02 22:24:54 +02:00
|
|
|
PlayState(App* app);
|
2017-09-21 18:57:12 +02:00
|
|
|
void new_game();
|
2018-04-02 22:24:54 +02:00
|
|
|
void enter() override;
|
|
|
|
StateResult update(float delta) override;
|
|
|
|
void draw() override;
|
|
|
|
void exit() override;
|
|
|
|
void input(InputEvent& event) override;
|
2017-09-21 18:57:12 +02:00
|
|
|
};
|