Minor refactor
This commit is contained in:
parent
9857d6e95a
commit
2768371a94
@ -4,6 +4,7 @@
|
||||
#include <iostream>
|
||||
#include <assert.h>
|
||||
#include <glm/glm.hpp>
|
||||
#include <filesystem>
|
||||
#define GLEW_STATIC
|
||||
|
||||
#include "audio/Audio.h"
|
||||
@ -33,7 +34,10 @@
|
||||
#include "files/files.h"
|
||||
#include "files/engine_files.h"
|
||||
|
||||
using std::unique_ptr;
|
||||
using std::shared_ptr;
|
||||
using std::string;
|
||||
using std::filesystem::path;
|
||||
using glm::vec3;
|
||||
using gui::GUI;
|
||||
|
||||
@ -58,7 +62,7 @@ Engine::Engine(const EngineSettings& settings_) {
|
||||
gui = new GUI();
|
||||
std::cout << "-- initializing finished" << std::endl;
|
||||
|
||||
setScreen(new MenuScreen(this));
|
||||
setScreen(shared_ptr<Screen>(new MenuScreen(this)));
|
||||
}
|
||||
|
||||
void Engine::updateTimers() {
|
||||
@ -70,11 +74,10 @@ void Engine::updateTimers() {
|
||||
|
||||
void Engine::updateHotkeys() {
|
||||
if (Events::jpressed(keycode::F2)) {
|
||||
ImageData* image = Window::takeScreenshot();
|
||||
unique_ptr<ImageData> image(Window::takeScreenshot());
|
||||
image->flipY();
|
||||
std::string filename = enginefs::get_screenshot_file("png");
|
||||
png::write_image(filename, image);
|
||||
delete image;
|
||||
path filename = enginefs::get_screenshot_file("png");
|
||||
png::write_image(filename, image.get());
|
||||
std::cout << "saved screenshot as " << filename << std::endl;
|
||||
}
|
||||
}
|
||||
@ -101,7 +104,7 @@ void Engine::mainloop() {
|
||||
}
|
||||
|
||||
Engine::~Engine() {
|
||||
delete screen;
|
||||
screen = nullptr;
|
||||
delete gui;
|
||||
|
||||
Audio::finalize();
|
||||
@ -124,9 +127,6 @@ Assets* Engine::getAssets() {
|
||||
return assets;
|
||||
}
|
||||
|
||||
void Engine::setScreen(Screen* screen) {
|
||||
if (this->screen != nullptr) {
|
||||
delete this->screen;
|
||||
}
|
||||
void Engine::setScreen(shared_ptr<Screen> screen) {
|
||||
this->screen = screen;
|
||||
}
|
||||
@ -22,7 +22,7 @@ public:
|
||||
|
||||
class Engine {
|
||||
Assets* assets;
|
||||
Screen* screen = nullptr;
|
||||
std::shared_ptr<Screen> screen = nullptr;
|
||||
EngineSettings settings;
|
||||
|
||||
uint64_t frame = 0;
|
||||
@ -41,7 +41,7 @@ public:
|
||||
Assets* getAssets();
|
||||
gui::GUI* getGUI();
|
||||
EngineSettings& getSettings();
|
||||
void setScreen(Screen* screen);
|
||||
void setScreen(std::shared_ptr<Screen> screen);
|
||||
};
|
||||
|
||||
#endif // SRC_ENGINE_H_
|
||||
@ -119,7 +119,7 @@ HudRenderer::HudRenderer(Engine* engine, Level* level) : level(level), assets(en
|
||||
Button* button = new Button(L"Save and Quit to Menu", vec4(12.0f, 10.0f, 12.0f, 12.0f));
|
||||
button->listenAction([this, engine](GUI*){
|
||||
this->pauseMenu->visible(false);
|
||||
engine->setScreen(new MenuScreen(engine));
|
||||
engine->setScreen(shared_ptr<Screen>(new MenuScreen(engine)));
|
||||
});
|
||||
pauseMenu->add(shared_ptr<UINode>(button));
|
||||
}
|
||||
|
||||
@ -46,7 +46,8 @@ MenuScreen::MenuScreen(Engine* engine_) : Screen(engine_) {
|
||||
vec3 playerPosition = vec3(0, 64, 0);
|
||||
Camera* camera = new Camera(playerPosition, radians(90.0f));
|
||||
Player* player = new Player(playerPosition, 4.0f, camera);
|
||||
engine->setScreen(new LevelScreen(engine, world->loadLevel(player, settings)));
|
||||
auto screen = new LevelScreen(engine, world->loadLevel(player, settings));
|
||||
engine->setScreen(shared_ptr<Screen>(screen));
|
||||
});
|
||||
panel->add(shared_ptr<UINode>(button));
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user