Skip to content

Commit 4d92d3c

Browse files
committed
fix(menus): Render
1 parent 2dfc66a commit 4d92d3c

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

src/menus/Menu.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,19 @@ void Menu::ProcessOptions()
8585
}
8686
}
8787

88-
std::string Menu::GeneratedItems(int page)
88+
std::string Menu::GeneratedItems(int playerid, int page)
8989
{
90-
return this->generatedPages[page - 1];
90+
return this->generatedPages[playerid][page - 1];
9191
}
9292

93-
void Menu::RegeneratePage(int page, int selected)
93+
void Menu::RegeneratePage(int playerid, int page, int selected)
9494
{
95-
while (this->generatedPages.size() < page)
95+
if (this->generatedPages.find(playerid) == this->generatedPages.end())
96+
this->generatedPages.insert({playerid, {}});
97+
98+
while (this->generatedPages[playerid].size() < page)
9699
{
97-
this->generatedPages.push_back("");
100+
this->generatedPages[playerid].push_back("");
98101
}
99102

100103
std::string stringPage = string_format("<div><font color=\"#%s\">&nbsp;&nbsp;&nbsp;%s</font></div><br/>", this->color.c_str(), this->title.c_str());
@@ -103,7 +106,7 @@ void Menu::RegeneratePage(int page, int selected)
103106

104107
stringPage += string_format("<font class='fontSize-s'>%s</font>", replace(replace(g_translations->FetchTranslation("core.menu.footer"), "{PAGE}", std::to_string(page)), "{MAXPAGES}", std::to_string(processedOptions.size())).c_str());
105108

106-
this->generatedPages[page - 1] = stringPage;
109+
this->generatedPages[playerid][page - 1] = stringPage;
107110
}
108111

109112
bool Menu::IsTemporary()

src/menus/Menu.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ class Menu
1515
std::vector<std::vector<std::pair<std::string, std::string>>> processedOptions;
1616
bool temporary;
1717

18-
std::vector<std::string> generatedPages;
18+
std::map<int, std::vector<std::string>> generatedPages;
1919

2020
public:
2121
Menu(std::string id, std::string title, std::string color, std::vector<std::pair<std::string, std::string>> options, bool tmp);
2222
~Menu();
2323

2424
std::string GetID();
2525
void ProcessOptions();
26-
std::string GeneratedItems(int page);
27-
void RegeneratePage(int page, int selected);
26+
std::string GeneratedItems(int playerid, int page);
27+
void RegeneratePage(int playerid, int page, int selected);
2828

2929
std::string GetCommandFromOption(int page, int selected);
3030
size_t GetItemsOnPage(int page);

src/player/Player.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ void Player::SetButtons(uint64_t new_buttons)
345345
{
346346
/*
347347
DEBUG: Button Presses
348-
348+
349349
for(uint64_t i = 0; i < 64; i++) {
350350
if((new_buttons & (1ULL << i)) != 0) {
351351
PRINTF("%s: %d\n", key_buttons[i].c_str(), i);
@@ -383,7 +383,7 @@ void Player::SetPage(int pg)
383383
{
384384
this->page = pg;
385385
this->selected = 0;
386-
this->menu->RegeneratePage(this->page, this->selected);
386+
this->menu->RegeneratePage(this->GetSlot().Get(), this->page, this->selected);
387387
}
388388
int Player::GetSelection() { return this->selected; }
389389
void Player::MoveSelection()
@@ -396,7 +396,7 @@ void Player::MoveSelection()
396396
if (itemsPerPage == this->selected)
397397
this->selected = 0;
398398

399-
this->menu->RegeneratePage(this->page, this->selected);
399+
this->menu->RegeneratePage(this->GetSlot().Get(), this->page, this->selected);
400400
}
401401

402402
void Player::ShowMenu(std::string menuid)
@@ -412,7 +412,7 @@ void Player::ShowMenu(std::string menuid)
412412
this->page = 1;
413413
this->selected = 0;
414414

415-
this->menu->RegeneratePage(this->page, this->selected);
415+
this->menu->RegeneratePage(this->GetSlot().Get(), this->page, this->selected);
416416
this->RenderMenu();
417417
}
418418

@@ -427,7 +427,7 @@ void Player::RenderMenu()
427427
IGameEvent *pEvent = g_gameEventManager->CreateEvent("show_survival_respawn_status", true);
428428
if (pEvent)
429429
{
430-
pEvent->SetString("loc_token", this->menu->GeneratedItems(this->page).c_str());
430+
pEvent->SetString("loc_token", this->menu->GeneratedItems(this->GetSlot().Get(), this->page).c_str());
431431
pEvent->SetUint64("duration", 10);
432432
pEvent->SetInt("userid", this->GetController()->GetEntityIndex().Get() - 1);
433433

0 commit comments

Comments
 (0)