git repos / saland

commit 62e1726b

Poul Sander · 2021-08-09 16:21
62e1726bea6c16b554a27706a3f5e6bbc7d838f9 patch · browse files
parent 4ec7e85f0e373f621ad6ea36ce3f65fb2f1f5a62

Can now also select player in the menu

Changed files

M src/saland.cpp before
diff --git a/src/saland.cpp b/src/saland.cpp index 38e48c1..6b5e066 100644 --- a/src/saland.cpp +++ b/src/saland.cpp
@@ -269,6 +269,10 @@ private:
std::string config_key;
std::string config_value;
public:
+ ButtonConfigValue() {
+ setPopOnRun(true);
+ }
+
void setConfigValues(const std::string& key, const std::string& value) {
config_key = key;
config_value = value;
@@ -282,28 +286,37 @@ public:
void runWorldSelect() {
Menu m(globalData.screen, true);
ButtonConfigValue bWorld1;
- bWorld1.setPopOnRun(true);
bWorld1.setLabel("World 1");
bWorld1.setConfigValues("world", "world1");
m.addButton(&bWorld1);
ButtonConfigValue bWorld2;
- bWorld2.setPopOnRun(true);
bWorld2.setLabel("World 2");
bWorld1.setConfigValues("world", "world2");
m.addButton(&bWorld2);
ButtonConfigValue bWorld3;
- bWorld3.setPopOnRun(true);
bWorld3.setLabel("World 3");
bWorld1.setConfigValues("world", "world3");
m.addButton(&bWorld3);
ButtonConfigValue bWorld4;
- bWorld4.setPopOnRun(true);
bWorld4.setLabel("World 4");
bWorld1.setConfigValues("world", "world4");
m.addButton(&bWorld4);
RunGameState(m);
}
+void runPlayerSelect() {
+ Menu m(globalData.screen, true);
+ ButtonConfigValue bPlayer1;
+ bPlayer1.setLabel("Player 1");
+ bPlayer1.setConfigValues("player", "player1");
+ m.addButton(&bPlayer1);
+ ButtonConfigValue bPlayer2;
+ bPlayer2.setLabel("Player 2");
+ bPlayer2.setConfigValues("player", "player2");
+ m.addButton(&bPlayer2);
+ RunGameState(m);
+}
+
void ResetFullscreen() {
sago::SagoDataHolder& dataHolder = *globalData.dataHolder;
@@ -339,9 +352,9 @@ static void runHelpAbout() {
RunGameState(helpAbout);
}
-class WouldSelectButton : public Button {
+class WorldSelectButton : public Button {
public:
- WouldSelectButton() {
+ WorldSelectButton() {
this->setLabel(SPrintStringF("World: %s", Config::getInstance()->getString("world").c_str()));
}
@@ -351,6 +364,18 @@ public:
}
};
+class PlayerSelectButton : public Button {
+public:
+ PlayerSelectButton() {
+ this->setLabel(SPrintStringF("Player: %s", Config::getInstance()->getString("player").c_str() ));
+ }
+
+ virtual void doAction() override {
+ runPlayerSelect();
+ this->setLabel(SPrintStringF("Player: %s", Config::getInstance()->getString("player").c_str() ));
+ }
+};
+
void runGame() {
int width = 1280, height = 800;
@@ -390,8 +415,10 @@ void runGame() {
bStart.setLabel("Start");
bStart.setAction(runStartGame);
m.addButton(&bStart);
- WouldSelectButton bWorldSelect;
+ WorldSelectButton bWorldSelect;
m.addButton(&bWorldSelect);
+ PlayerSelectButton bPlayerSelect;
+ m.addButton(&bPlayerSelect);
Button bOptions;
bOptions.setLabel("Options");
bOptions.setAction(runMenuOptions);