#include "Load.h" #include #include #include #include #include #include #include #include #include "FactoryClient.h" #include "Globals.h" #include "Initialisierung.h" #include "ServerSelection.h" LoadMenu::LoadMenu(Bildschirm* zScreen) : Menu(zScreen) { Punkt center = zScreen->getBackBufferSize() / 2; all = initFBalken( center.x - 100, center.y - 65, 200, 30, FBalken::Style::normal); stageTitle = initTextFeld(center.x - 100, center.y - 30, zScreen->getBackBufferSize().x - center.x + 100, 15, TextFeld::Style::Text, ""); stage = initFBalken( center.x - 100, center.y - 15, 200, 30, FBalken::Style::normal); stage->removeStyle(FBalken::Style::Sichtbar); stepTitle = initTextFeld(center.x - 100, center.y + 20, zScreen->getBackBufferSize().x - center.x + 100, 15, TextFeld::Style::Text, ""); step = initFBalken( center.x - 100, center.y + 35, 200, 30, FBalken::Style::normal); step->removeStyle(FBalken::Style::Sichtbar); elements.add(step); elements.add(stepTitle); elements.add(stage); elements.add(stageTitle); elements.add(all); } void LoadMenu::stepProgress(int stepSize) { step->aktionPlus(stepSize); } void LoadMenu::beginNextStep(const char* title, int nextStepSize) { stepTitle->setText(title); step->setAktionAnzahl(nextStepSize); step->reset(); step->addStyle(FBalken::Style::Sichtbar); } void LoadMenu::stageProgress(int stepSize) { stage->aktionPlus(stepSize); step->removeStyle(FBalken::Style::Sichtbar); } void LoadMenu::beginNextStage(const char* title, int nextStageSize) { stageTitle->setText(title); stage->setAktionAnzahl(nextStageSize); stage->reset(); stage->addStyle(FBalken::Style::Sichtbar); step->removeStyle(FBalken::Style::Sichtbar); } void LoadMenu::allProgress(int stepSize) { all->aktionPlus(stepSize); stage->removeStyle(FBalken::Style::Sichtbar); step->removeStyle(FBalken::Style::Sichtbar); } void LoadMenu::load(FactoryClient* client, Text name, Text secret, unsigned short port, std::function onFinish) { all->setAktionAnzahl(9); all->reset(); stageTitle->setText(""); stepTitle->setText(""); step->removeStyle(FBalken::Style::Sichtbar); stage->removeStyle(FBalken::Style::Sichtbar); new AsynchronCall( "Load Menu", [this, client, name, secret, port, onFinish]() { Text tmp = secret; int result = client->join(name, tmp, port); onFinish(result, tmp); }); } Bild* loadImage(Framework::Text path) { LTDBDatei file; file.setDatei( path.getTeilText(0, path.positionVon("/", path.anzahlVon("/") - 1))); file.leseDaten(0); return file.laden(0, path.getTeilText(path.positionVon("/", path.anzahlVon("/") - 1) + 1)); }