1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

fix buggy multiplayer selection

This commit is contained in:
Laserlicht
2024-01-13 21:51:56 +01:00
committed by GitHub
parent f6e0f46040
commit e25c8c21e0
2 changed files with 9 additions and 9 deletions

View File

@@ -400,12 +400,11 @@ void OptionsTab::CPlayerOptionTooltipBox::genBonusWindow()
textBonusDescription = std::make_shared<CTextBox>(getDescription(), Rect(10, 100, pos.w - 20, 70), 0, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE); textBonusDescription = std::make_shared<CTextBox>(getDescription(), Rect(10, 100, pos.w - 20, 70), 0, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE);
} }
OptionsTab::SelectionWindow::SelectionWindow(CPlayerSettingsHelper & helper, SelType _type) OptionsTab::SelectionWindow::SelectionWindow(const PlayerColor & color, SelType _type)
: CWindowObject(BORDERED), CPlayerSettingsHelper(helper) : CWindowObject(BORDERED), color(color)
{ {
addUsedEvents(LCLICK | SHOW_POPUP); addUsedEvents(LCLICK | SHOW_POPUP);
color = helper.playerSettings.color;
type = _type; type = _type;
initialFaction = SEL->getStartInfo()->playerInfos.find(color)->second.castle; initialFaction = SEL->getStartInfo()->playerInfos.find(color)->second.castle;
@@ -481,9 +480,10 @@ void OptionsTab::SelectionWindow::setSelection()
void OptionsTab::SelectionWindow::reopen() void OptionsTab::SelectionWindow::reopen()
{ {
std::shared_ptr<SelectionWindow> window = std::shared_ptr<SelectionWindow>(new SelectionWindow(*this, type)); std::shared_ptr<SelectionWindow> window = std::shared_ptr<SelectionWindow>(new SelectionWindow(color, type));
close(); close();
GH.windows().pushWindow(window); if(CSH->isMyColor(color) || CSH->isHost())
GH.windows().pushWindow(window);
} }
void OptionsTab::SelectionWindow::recreate() void OptionsTab::SelectionWindow::recreate()
@@ -632,7 +632,7 @@ void OptionsTab::SelectionWindow::genContentHeroes()
void OptionsTab::SelectionWindow::genContentBonus() void OptionsTab::SelectionWindow::genContentBonus()
{ {
PlayerSettings set = PlayerSettings(playerSettings); PlayerSettings set = SEL->getStartInfo()->playerInfos.find(color)->second;
int i = 0; int i = 0;
for(auto elem : allowedBonus) for(auto elem : allowedBonus)
@@ -819,7 +819,7 @@ void OptionsTab::SelectedBox::clickReleased(const Point & cursorPosition)
return; return;
GH.input().hapticFeedback(); GH.input().hapticFeedback();
GH.windows().createAndPushWindow<SelectionWindow>(*this, selectionType); GH.windows().createAndPushWindow<SelectionWindow>(playerSettings.color, selectionType);
} }
void OptionsTab::SelectedBox::scrollBy(int distance) void OptionsTab::SelectedBox::scrollBy(int distance)

View File

@@ -96,7 +96,7 @@ private:
CPlayerOptionTooltipBox(CPlayerSettingsHelper & helper); CPlayerOptionTooltipBox(CPlayerSettingsHelper & helper);
}; };
class SelectionWindow : public CWindowObject, public CPlayerSettingsHelper class SelectionWindow : public CWindowObject
{ {
//const int ICON_SMALL_WIDTH = 48; //const int ICON_SMALL_WIDTH = 48;
const int ICON_SMALL_HEIGHT = 32; const int ICON_SMALL_HEIGHT = 32;
@@ -148,7 +148,7 @@ private:
public: public:
void reopen(); void reopen();
SelectionWindow(CPlayerSettingsHelper & helper, SelType _type); SelectionWindow(const PlayerColor & color, SelType _type);
}; };
/// Image with current town/hero/bonus /// Image with current town/hero/bonus