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