diff --git a/include/application.h b/include/application.h index 79aa993..8ab52f5 100644 --- a/include/application.h +++ b/include/application.h @@ -6,11 +6,24 @@ #include #include -#include "game.h" +#include "game/game.h" +#include "gui/state.h" class Application { public: + + enum State + { + SPLASH_SCREEN, + MAIN_MENU, + GAME_PICKER, + GAME, + EDITOR_PICKER, + EDITOR, + SETTINGS + }; + Application(); void run(); void input(); @@ -18,9 +31,12 @@ public: void draw(); private: + std::stack> _states; sf::RenderWindow _game_window; std::shared_ptr _game; + State _state; + void exec(); }; diff --git a/include/game.h b/include/game/game.h similarity index 91% rename from include/game.h rename to include/game/game.h index 9a38f81..c9f9d88 100644 --- a/include/game.h +++ b/include/game/game.h @@ -2,7 +2,7 @@ #define GAME_H #include -#include "inputtype.h" +#include "game/inputtype.h" class Game { diff --git a/include/inputtype.h b/include/game/inputtype.h similarity index 85% rename from include/inputtype.h rename to include/game/inputtype.h index 916488b..fb36035 100644 --- a/include/inputtype.h +++ b/include/game/inputtype.h @@ -2,7 +2,7 @@ #define INPUTTYPE_H #include -#include "mathutils.h" +#include "game/mathutils.h" struct PlayerInput { diff --git a/include/mathutils.h b/include/game/mathutils.h similarity index 100% rename from include/mathutils.h rename to include/game/mathutils.h diff --git a/include/note.h b/include/game/note.h similarity index 95% rename from include/note.h rename to include/game/note.h index 119f828..8841145 100644 --- a/include/note.h +++ b/include/game/note.h @@ -1,6 +1,6 @@ #pragma once -#include "inputtype.h" +#include "game/inputtype.h" class Note { diff --git a/include/precisionevaluator.h b/include/game/precisionevaluator.h similarity index 98% rename from include/precisionevaluator.h rename to include/game/precisionevaluator.h index 8388ce1..2ecd1aa 100644 --- a/include/precisionevaluator.h +++ b/include/game/precisionevaluator.h @@ -1,7 +1,7 @@ #ifndef PRECISIONEVALUATOR_H #define PRECISIONEVALUATOR_H -#include "mathutils.h" +#include "game/mathutils.h" #include #include #include diff --git a/include/sprite.h b/include/game/sprite.h similarity index 100% rename from include/sprite.h rename to include/game/sprite.h diff --git a/include/spritecontainer.h b/include/game/spritecontainer.h similarity index 100% rename from include/spritecontainer.h rename to include/game/spritecontainer.h diff --git a/include/timeline.h b/include/game/timeline.h similarity index 92% rename from include/timeline.h rename to include/game/timeline.h index cce3057..6bdcf17 100644 --- a/include/timeline.h +++ b/include/game/timeline.h @@ -1,7 +1,8 @@ #ifndef TIMELINE_H #define TIMELINE_H -#include "mathutils.h" +#include "game/mathutils.h" + #include #include diff --git a/include/gui/state.h b/include/gui/state.h new file mode 100644 index 0000000..f0f3610 --- /dev/null +++ b/include/gui/state.h @@ -0,0 +1,15 @@ +#pragma once + +#include +#include +#include +#include + +class GUIState : public sf::Drawable +{ + virtual ~GUIState() = default; + + virtual void input(const sf::Event& event, std::stack>& states) = 0; + virtual void update() = 0; + virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const = 0; +}; diff --git a/include/settingscontroller.h b/include/settingscontroller.h new file mode 100644 index 0000000..e69de29 diff --git a/src/application.cpp b/src/application.cpp index 3ad18ee..4a426d5 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -1,5 +1,5 @@ #include "application.h" -#include "inputtype.h" +#include "game/inputtype.h" #include "classicgame/classicgame.h" #include "classicgame/classicgraphicsmanager.h" @@ -33,7 +33,6 @@ void Application::exec() while (_game_window.isOpen()) { - time_since_last_update += timer.restart(); input(); diff --git a/src/classicgame/classicanimationscenario.h b/src/classicgame/classicanimationscenario.h index c551fcd..65b1154 100644 --- a/src/classicgame/classicanimationscenario.h +++ b/src/classicgame/classicanimationscenario.h @@ -1,6 +1,6 @@ #pragma once -#include "mathutils.h" +#include "game/mathutils.h" #include class ClassicSprite; diff --git a/src/classicgame/classicgame.h b/src/classicgame/classicgame.h index 464411e..ab9b4f1 100644 --- a/src/classicgame/classicgame.h +++ b/src/classicgame/classicgame.h @@ -2,7 +2,7 @@ #define CLASSICGAME_H #include -#include "game.h" +#include "game/game.h" #include "classicactions.h" #include #include diff --git a/src/classicgame/classicgraphicsmanager.h b/src/classicgame/classicgraphicsmanager.h index a2ffdca..725d6fd 100644 --- a/src/classicgame/classicgraphicsmanager.h +++ b/src/classicgame/classicgraphicsmanager.h @@ -1,7 +1,7 @@ #pragma once +#include "game/spritecontainer.h" #include "classicactions.h" -#include "spritecontainer.h" #include "classicspritefactory.h" #include diff --git a/src/classicgame/classicmapcreator.h b/src/classicgame/classicmapcreator.h index 76ac02c..137a039 100644 --- a/src/classicgame/classicmapcreator.h +++ b/src/classicgame/classicmapcreator.h @@ -3,7 +3,7 @@ #include -#include "note.h" +#include "game/mathutils.h" #include "classicgraphicsmanager.h" struct Beatmap diff --git a/src/classicgame/classicnote.h b/src/classicgame/classicnote.h index d35968c..85ff6ab 100644 --- a/src/classicgame/classicnote.h +++ b/src/classicgame/classicnote.h @@ -1,7 +1,7 @@ #pragma once -#include "note.h" -#include "precisionevaluator.h" +#include "game/note.h" +#include "game/precisionevaluator.h" #include "classicactions.h" #include diff --git a/src/classicgame/classicsprite.h b/src/classicgame/classicsprite.h index 919e6c2..d22e5b3 100644 --- a/src/classicgame/classicsprite.h +++ b/src/classicgame/classicsprite.h @@ -1,7 +1,7 @@ #pragma once -#include "mathutils.h" -#include "sprite.h" +#include "game/mathutils.h" +#include "game/sprite.h" #include "SFML/Graphics/RectangleShape.hpp" #include "SFML/Graphics/Text.hpp" diff --git a/src/classicgame/classictimeline.h b/src/classicgame/classictimeline.h index 58f5799..e9e5844 100644 --- a/src/classicgame/classictimeline.h +++ b/src/classicgame/classictimeline.h @@ -1,6 +1,6 @@ #pragma once -#include "timeline.h" +#include "game/timeline.h" #include #include