From 00bcae2df701b2b9152ea3019d4000952ac761ed Mon Sep 17 00:00:00 2001 From: Joseph Walton-Rivers <joseph@walton-rivers.uk> Date: Mon, 27 Jun 2022 22:24:21 +0100 Subject: [PATCH] small code reordering for demo --- demo/demo/main.cpp | 50 ++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/demo/demo/main.cpp b/demo/demo/main.cpp index 03c32ba..e1802a3 100644 --- a/demo/demo/main.cpp +++ b/demo/demo/main.cpp @@ -41,18 +41,39 @@ #include "GameScene.h" #include "rollball.hpp" +static void setup_menu(fggl::App& app) { + auto *menu = app.add_state<fggl::scenes::BasicMenu>("menu"); + + // add some menu items for the game states + menu->add("terrain", [&app]() { + auto* audio = app.service<fggl::audio::AudioService>(); + audio->play("click.ogg", false); + app.change_state("game"); + }); + + menu->add("rollball", [&app]() { + auto* audio = app.service<fggl::audio::AudioService>(); + audio->play("click.ogg", false); + app.change_state("rollball"); + }); + + menu->add("quit", [&app]() { + auto* audio = app.service<fggl::audio::AudioService>(); + audio->play("click.ogg", false); + app.running(false); + }); +} + int main(int argc, const char* argv[]) { // DAG initialisation test fggl::modules::Manager moduleManager; moduleManager.use<fggl::input::Generic>(); moduleManager.use<fggl::data::LocalStorage>(); - moduleManager.use<fggl::audio::NullAudio>(); moduleManager.use<fggl::gui::FreeType>(); - + moduleManager.use<fggl::audio::OpenAL>(); moduleManager.use<fggl::gfx::OpenGL4>(); moduleManager.use<fggl::display::GLFW>(); - moduleManager.resolve(); // create the application @@ -73,27 +94,8 @@ int main(int argc, const char* argv[]) { app.use<FGGL_MODULE_BULLET>(); #endif - // Add a basic main menu - auto *menu = app.add_state<fggl::scenes::BasicMenu>("menu"); - - // add some menu items for the game states - auto* audio = app.service<fggl::audio::AudioService>(); - menu->add("terrain", [&app, &audio]() { - audio->play("click.ogg", false); - app.change_state("game"); - }); - - menu->add("rollball", [&app, &audio]() { - audio->play("click.ogg", false); - app.change_state("rollball"); - }); - - menu->add("quit", [&app, &audio]() { - audio->play("click.ogg", false); - app.running(false); - }); - - // the game states themselves + // our test states + setup_menu(app); app.add_state<GameScene>("game"); app.add_state<demo::RollBall>("rollball"); -- GitLab