more flexible single player screen updating upon map selection

This commit is contained in:
devZoGok
2025-03-02 16:32:40 +02:00
parent ae3e9b8b73
commit f787ba49b3
3 changed files with 20 additions and 6 deletions
+11 -2
View File
@@ -1,14 +1,23 @@
--playerListboxPos = {x = 210, y = 100, z = 0}
Pos = {x = playerListboxPos.x, y = playerListboxPos.y, z = playerListboxPos.z}
Size = {x = 100, y = 20}
difficulties = {"Easy", "Medium", "Hard"}
space = 10
gui = {
{
pos = {x = Pos.x, y = Pos.y + (#factions * Size.y + 10) * (lineId + 1), z = Pos.z},
pos = {x = Pos.x, y = Pos.y + (#factions * Size.y + space) * (lineId + 1), z = Pos.z},
size = Size,
guiType = GuiType.LISTBOX,
numMaxDisplay = 3,
lines = factions,
listboxType = ListboxType.FACTIONS
},
{
pos = {x = Pos.x + Size.x + space, y = Pos.y + (#difficulties * Size.y + space) * (lineId + 1), z = Pos.z},
size = Size,
guiType = GuiType.LISTBOX,
numMaxDisplay = 3,
lines = difficulties,
listboxType = ListboxType.CPU_DIFFICULTIES
},
}
-2
View File
@@ -389,7 +389,6 @@ namespace battleship{
listbox = new LandTextureListbox(pos, size, lines, maxDisplay, fontPath);
break;
case CPU_DIFFICULTIES:
lines = vector<string>{"Easy", "Medium", "Hard"};
numLines = lines.size();
closable = true;
maxDisplay = (numLines > numMaxDisplay ? numMaxDisplay : numLines);
@@ -397,7 +396,6 @@ namespace battleship{
listbox = new Listbox(pos, size, lines, maxDisplay, fontPath);
break;
case FACTIONS:
//lines = vector<string>{"America inc.", "European Republic", "Asian Co-Prosperity Sphere"};
numLines = lines.size();
closable = true;
maxDisplay = (numLines > numMaxDisplay ? numMaxDisplay : numLines);
+9 -2
View File
@@ -21,6 +21,8 @@ namespace battleship{
MapListbox::MapListbox(Vector3 pos, Vector2 size, std::vector<string> &lines, int maxDisplay, bool adg, string fontPath, bool closeable) :
Listbox(pos, size, lines, maxDisplay, fontPath, closeable),
addPlayerGui(adg) {
openUp();
close();
}
void MapListbox::onClose(){
@@ -36,12 +38,17 @@ namespace battleship{
int numSpawnPoints = Map::getSingleton()->getNumMapSpawnPoints(mapName);
sol::state_view SOL_LUA_VIEW = generateView();
for(int i = 0; i < numSpawnPoints; i++){
for(int i = 0; i < numSpawnPoints - 1; i++){
int prevNumListboxes = guiManager->getListboxes().size();
SOL_LUA_VIEW.script("lineId = " + to_string(i));
guiManager->parseLuaScript("playerSelection.lua");
std::vector<Listbox*> listboxes = guiManager->getListboxes();
cpuPlayerListboxes.push_back(listboxes[listboxes.size() - 1]);
int diffNumListboxes = guiManager->getListboxes().size() - prevNumListboxes;
for(int j = 0; j < diffNumListboxes; j++)
cpuPlayerListboxes.push_back(listboxes[listboxes.size() - 1 - j]);
}
}
}