Implement Json loading for screens and fix a bug in widget-creation

This commit is contained in:
2021-01-16 16:49:26 +01:00
parent 2c183dc099
commit 938450ce75
13 changed files with 118 additions and 50 deletions

View File

@@ -1,23 +1,27 @@
#include "Menu.h"
#include "JsonParser.h"
Menu::Menu(Framebuffer *p_framebuffer, ShaderProgram *p_shaderProgram) :
framebuffer(p_framebuffer), shaderProgram(p_shaderProgram)
{
mainMenuScreen = new Screen(screenType::mainMenu, framebuffer, shaderProgram);
pauseMenuScreen = new Screen(screenType::pauseMenu, framebuffer, shaderProgram);
loadingScreen = new Screen(screenType::loadingScreen, framebuffer, shaderProgram);
optionMenuScreen = new Screen(screenType::optionMenu, framebuffer, shaderProgram);
JsonParser screenParser("res/screens.json");
screens = screenParser.getScreens(shaderProgram, framebuffer);
}
Menu::~Menu()
{
delete mainMenuScreen;
delete pauseMenuScreen;
delete loadingScreen;
delete optionMenuScreen;
// Iterate over screens delete all items
for (auto it = screens.begin(); it != screens.end(); it++) {
delete (*it);
}
}
void Menu::showLoadingScreen()
void Menu::showScreenByName(const char *unique_name)
{
loadingScreen->draw();
for (auto it = screens.begin(); it != screens.end(); it++) {
if((*it)->getUniqueName() == unique_name) {
(*it)->draw();
break;
}
}
}