diff options
| author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-01 17:32:53 +0100 | 
|---|---|---|
| committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-01 17:32:53 +0100 | 
| commit | b20f46c15dce8b196dbb8890890978947745e094 (patch) | |
| tree | d9defa84717ffa843fd11b05d0e856473d6d8d59 /frontend/GameController.h | |
| parent | a7e84b60366c78b131d43157980fbe4c2df655e6 (diff) | |
change flow architecture
Diffstat (limited to 'frontend/GameController.h')
| -rw-r--r-- | frontend/GameController.h | 31 | 
1 files changed, 17 insertions, 14 deletions
| diff --git a/frontend/GameController.h b/frontend/GameController.h index afcb5b8..9f0d6ee 100644 --- a/frontend/GameController.h +++ b/frontend/GameController.h @@ -2,35 +2,37 @@  #include <unordered_map>  #include <string> +#include <memory> +#include "backend/Dungeon.h"  #include "backend/Player.h" -class Dungeon;  class Location; -enum FollowupAction { -	NONE, -	UPDATE, -	EXIT, -	RESTART, -}; -  class GameController { -	typedef FollowupAction Cmd(std::string &); +	typedef void Cmd(std::string &);  public: -	GameController(Dungeon & dungeon); +	GameController();  	virtual ~GameController() = default; +private: +	void gameloop();  public: -	FollowupAction cmd(std::string &); +	int main(); + +private: +	void cmd(std::string &); + +private: +	std::unique_ptr<Dungeon> make_dungeon() noexcept;  private:  	void cmdset_default();  	void cmdset_death();  private: -	std::unordered_map<std::string, FollowupAction(GameController::*)(std::string &)> cmds; +	std::unordered_map<std::string, void(GameController::*)(std::string &)> cmds;  	Cmd cmd_query;  	Cmd cmd_search;  	Cmd cmd_go; @@ -47,7 +49,8 @@ private:  	Cmd cmd_restart;  private: -	Player & player; -	Dungeon & dungeon; +	std::unique_ptr<Dungeon> dungeon = nullptr; +	bool playing = true; +	bool quit = false;  }; |