#ifndef INCLUDE_GAMESTATE_h #define INCLUDE_GAMESTATE_h #include "engine/State.h" #include "map/Map.h" #include "render/Camera.h" #include "utility/Rect.h" #include "Player.h" #include namespace Pacman { enum Pacgum:uint8_t {NOTHING, NORMAL, SUPER}; class GameState : public WalrusRPG::States::State { private: unsigned level; WalrusRPG::Map map; Pacgum gums[31][28]; WalrusRPG::Camera cam; Player p1; Player p2; lua_State *L; bool blinky_ready; public: GameState(); ~GameState(); void update(unsigned dt) override; void render(unsigned dt) override; void set_gums(); inline bool is_inside_map(int x, int y) { return x >= 0 && x < 224 && y >= 0 && y < 248;} bool does_collide_a_wall(WalrusRPG::Utils::Rect r); void move_player(Player &p); void render_player(WalrusRPG::Utils::Rect r); void load_ghost_script(const char* filename, const char* ghost_name, bool& ready_flag); void update_ghost(const char* ghost_name, bool& ready_flag); }; } #endif