Skip to content

Commit 90654f6

Browse files
committed
fix: fix the application class, add a default destructor and move functions to cpp
1 parent ec22863 commit 90654f6

File tree

2 files changed

+91
-53
lines changed

2 files changed

+91
-53
lines changed

src/executables/game/application.cpp

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ Application::Application(std::shared_ptr<Window>&& window, CommandLineArguments&
120120
}
121121
}
122122

123+
Application::~Application() = default;
124+
123125
#if defined(__EMSCRIPTEN__)
124126
void c_loop_entry(void* arg) {
125127
auto application = reinterpret_cast<Application*>(arg);
@@ -624,3 +626,73 @@ void Application::reload_api(const settings::Settings& settings) {
624626
spdlog::info("No lobby API provided");
625627
}
626628
}
629+
630+
631+
void Application::push_scene(std::unique_ptr<scenes::Scene> scene) {
632+
m_scene_stack.push_back(std::move(scene));
633+
}
634+
635+
// implementation of ServiceProvider
636+
[[nodiscard]] EventDispatcher& Application::event_dispatcher() {
637+
return m_event_dispatcher;
638+
}
639+
640+
[[nodiscard]] const EventDispatcher& Application::event_dispatcher() const {
641+
return m_event_dispatcher;
642+
}
643+
644+
FontManager& Application::font_manager() {
645+
return *m_font_manager;
646+
}
647+
648+
[[nodiscard]] const FontManager& Application::font_manager() const {
649+
return *m_font_manager;
650+
}
651+
652+
CommandLineArguments& Application::command_line_arguments() {
653+
return m_command_line_arguments;
654+
}
655+
656+
[[nodiscard]] const CommandLineArguments& Application::command_line_arguments() const {
657+
return m_command_line_arguments;
658+
}
659+
660+
SettingsManager& Application::settings_manager() {
661+
return *m_settings_manager;
662+
}
663+
664+
[[nodiscard]] const SettingsManager& Application::settings_manager() const {
665+
return *m_settings_manager;
666+
}
667+
668+
MusicManager& Application::music_manager() {
669+
return *m_music_manager;
670+
}
671+
672+
[[nodiscard]] const MusicManager& Application::music_manager() const {
673+
return *m_music_manager;
674+
}
675+
676+
[[nodiscard]] const Renderer& Application::renderer() const {
677+
return m_renderer;
678+
}
679+
680+
[[nodiscard]] const Window& Application::window() const {
681+
return *m_window;
682+
}
683+
684+
[[nodiscard]] Window& Application::window() {
685+
return *m_window;
686+
}
687+
688+
[[nodiscard]] input::InputManager& Application::input_manager() {
689+
return *m_input_manager;
690+
}
691+
692+
[[nodiscard]] const input::InputManager& Application::input_manager() const {
693+
return *m_input_manager;
694+
}
695+
696+
[[nodiscard]] const std::unique_ptr<lobby::API>& Application::api() const {
697+
return m_api;
698+
}

src/executables/game/application.hpp

Lines changed: 19 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ struct Application final : public EventListener, public ServiceProvider {
144144
Application(Application&& other) noexcept = delete;
145145
Application& operator=(Application&& other) noexcept = delete;
146146

147+
~Application();
148+
147149
void run();
148150

149151
void handle_event(const SDL_Event& event) override;
@@ -158,76 +160,40 @@ struct Application final : public EventListener, public ServiceProvider {
158160
void emscripten_do_process();
159161
#endif
160162

161-
//TODO(Totto): move those functions bodies to the cpp
162-
163-
void push_scene(std::unique_ptr<scenes::Scene> scene) {
164-
m_scene_stack.push_back(std::move(scene));
165-
}
163+
void push_scene(std::unique_ptr<scenes::Scene> scene);
166164

167165
// implementation of ServiceProvider
168-
[[nodiscard]] EventDispatcher& event_dispatcher() override {
169-
return m_event_dispatcher;
170-
}
166+
[[nodiscard]] EventDispatcher& event_dispatcher() override;
171167

172-
[[nodiscard]] const EventDispatcher& event_dispatcher() const override {
173-
return m_event_dispatcher;
174-
}
168+
[[nodiscard]] const EventDispatcher& event_dispatcher() const override;
175169

176-
FontManager& font_manager() override {
177-
return *m_font_manager;
178-
}
170+
FontManager& font_manager() override;
179171

180-
[[nodiscard]] const FontManager& font_manager() const override {
181-
return *m_font_manager;
182-
}
172+
[[nodiscard]] const FontManager& font_manager() const override;
183173

184-
CommandLineArguments& command_line_arguments() override {
185-
return m_command_line_arguments;
186-
}
174+
CommandLineArguments& command_line_arguments() override;
187175

188-
[[nodiscard]] const CommandLineArguments& command_line_arguments() const override {
189-
return m_command_line_arguments;
190-
}
176+
[[nodiscard]] const CommandLineArguments& command_line_arguments() const override;
191177

192-
SettingsManager& settings_manager() override {
193-
return *m_settings_manager;
194-
}
178+
SettingsManager& settings_manager() override;
195179

196-
[[nodiscard]] const SettingsManager& settings_manager() const override {
197-
return *m_settings_manager;
198-
}
180+
[[nodiscard]] const SettingsManager& settings_manager() const override;
199181

200-
MusicManager& music_manager() override {
201-
return *m_music_manager;
202-
}
182+
MusicManager& music_manager() override;
203183

204-
[[nodiscard]] const MusicManager& music_manager() const override {
205-
return *m_music_manager;
206-
}
184+
[[nodiscard]] const MusicManager& music_manager() const override;
207185

208-
[[nodiscard]] const Renderer& renderer() const override {
209-
return m_renderer;
210-
}
186+
[[nodiscard]] const Renderer& renderer() const override;
211187

212-
[[nodiscard]] const Window& window() const override {
213-
return *m_window;
214-
}
188+
[[nodiscard]] const Window& window() const override;
215189

216-
[[nodiscard]] Window& window() override {
217-
return *m_window;
218-
}
190+
[[nodiscard]] Window& window() override;
219191

220-
[[nodiscard]] input::InputManager& input_manager() override {
221-
return *m_input_manager;
222-
}
192+
[[nodiscard]] input::InputManager& input_manager() override;
223193

224-
[[nodiscard]] const input::InputManager& input_manager() const override {
225-
return *m_input_manager;
226-
}
194+
[[nodiscard]] const input::InputManager& input_manager() const override;
227195

228-
[[nodiscard]] const std::unique_ptr<lobby::API>& api() const override {
229-
return m_api;
230-
}
196+
[[nodiscard]] const std::unique_ptr<lobby::API>& api() const override;
231197

232198

233199
#if defined(_HAVE_DISCORD_SDK)

0 commit comments

Comments
 (0)