Files
shweets-sim/src/state/play.hpp
2026-04-10 19:36:36 -04:00

74 lines
1.5 KiB
C++

#pragma once
#include "../resources.hpp"
#include "play/area_manager.hpp"
#include "play/character_manager.hpp"
#include "play/info.hpp"
#include "play/item_manager.hpp"
#include "play/menu.hpp"
#include "play/text.hpp"
#include "play/toasts.hpp"
#include "play/tools.hpp"
#include "play/world.hpp"
namespace game::state
{
class Play
{
public:
static constexpr auto AUTOSAVE_TIME = 30.0f;
enum Game
{
NEW_GAME,
CONTINUE
};
entity::Character character;
entity::Cursor cursor;
play::Info info;
play::Menu menu;
play::Tools tools;
play::Text text;
play::World world;
play::Toasts toasts;
play::ItemManager itemManager{};
play::CharacterManager characterManager{};
play::AreaManager areaManager{};
int characterIndex{};
int areaIndex{};
float autosaveTime{};
int cheatCodeIndex{};
double cheatCodeStartTime{};
bool isWindows{true};
bool isStartBegin{};
bool isStart{};
bool isStartEnd{};
bool isEndBegin{};
bool isEnd{};
bool isEndEnd{};
bool isPostgame{};
Canvas worldCanvas{play::World::SIZE};
Play() = default;
void set(Resources&, int characterIndex, Game = CONTINUE);
void exit(Resources& resources);
void update(Resources&);
void tick(Resources&);
void render(Resources&, Canvas&);
void save(Resources&);
play::World::Focus focus_get();
void start_sequence_begin();
void end_sequence_begin();
};
};