mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-26 22:57:00 +02:00
Merge pull request #502 from vcmi/StatusbarFix
Fix not responding statusbar, issue 3009
This commit is contained in:
commit
a3a38a6120
@ -1096,7 +1096,7 @@ void CTownInfo::clickRight(tribool down, bool previousState)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CCastleInterface::CCastleInterface(const CGTownInstance * Town, const CGTownInstance * from):
|
CCastleInterface::CCastleInterface(const CGTownInstance * Town, const CGTownInstance * from):
|
||||||
CWindowObject(PLAYER_COLORED | BORDERED),
|
CStatusbarWindow(PLAYER_COLORED | BORDERED),
|
||||||
town(Town)
|
town(Town)
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
@ -1316,7 +1316,7 @@ void CHallInterface::CBuildingBox::clickRight(tribool down, bool previousState)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CHallInterface::CHallInterface(const CGTownInstance * Town):
|
CHallInterface::CHallInterface(const CGTownInstance * Town):
|
||||||
CWindowObject(PLAYER_COLORED | BORDERED, Town->town->clientInfo.hallBackground),
|
CStatusbarWindow(PLAYER_COLORED | BORDERED, Town->town->clientInfo.hallBackground),
|
||||||
town(Town)
|
town(Town)
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
@ -1365,7 +1365,7 @@ CHallInterface::CHallInterface(const CGTownInstance * Town):
|
|||||||
}
|
}
|
||||||
|
|
||||||
CBuildWindow::CBuildWindow(const CGTownInstance *Town, const CBuilding * Building, int state, bool rightClick):
|
CBuildWindow::CBuildWindow(const CGTownInstance *Town, const CBuilding * Building, int state, bool rightClick):
|
||||||
CWindowObject(PLAYER_COLORED | (rightClick ? RCLICK_POPUP : 0), "TPUBUILD"),
|
CStatusbarWindow(PLAYER_COLORED | (rightClick ? RCLICK_POPUP : 0), "TPUBUILD"),
|
||||||
town(Town),
|
town(Town),
|
||||||
building(Building)
|
building(Building)
|
||||||
{
|
{
|
||||||
@ -1494,7 +1494,7 @@ void LabeledValue::hover(bool on)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CFortScreen::CFortScreen(const CGTownInstance * town):
|
CFortScreen::CFortScreen(const CGTownInstance * town):
|
||||||
CWindowObject(PLAYER_COLORED | BORDERED, getBgName(town))
|
CStatusbarWindow(PLAYER_COLORED | BORDERED, getBgName(town))
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
ui32 fortSize = town->creatures.size();
|
ui32 fortSize = town->creatures.size();
|
||||||
@ -1678,7 +1678,7 @@ void CFortScreen::RecruitArea::clickRight(tribool down, bool previousState)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CMageGuildScreen::CMageGuildScreen(CCastleInterface * owner,std::string imagem)
|
CMageGuildScreen::CMageGuildScreen(CCastleInterface * owner,std::string imagem)
|
||||||
: CWindowObject(BORDERED, imagem)
|
: CStatusbarWindow(BORDERED, imagem)
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
|
|
||||||
@ -1750,7 +1750,7 @@ void CMageGuildScreen::Scroll::hover(bool on)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CBlacksmithDialog::CBlacksmithDialog(bool possible, CreatureID creMachineID, ArtifactID aid, ObjectInstanceID hid):
|
CBlacksmithDialog::CBlacksmithDialog(bool possible, CreatureID creMachineID, ArtifactID aid, ObjectInstanceID hid):
|
||||||
CWindowObject(PLAYER_COLORED, "TPSMITH")
|
CStatusbarWindow(PLAYER_COLORED, "TPSMITH")
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Class which manages the castle window
|
/// Class which manages the castle window
|
||||||
class CCastleInterface : public CWindowObject, public CGarrisonHolder
|
class CCastleInterface : public CStatusbarWindow, public CGarrisonHolder
|
||||||
{
|
{
|
||||||
std::shared_ptr<CLabel> title;
|
std::shared_ptr<CLabel> title;
|
||||||
std::shared_ptr<CLabel> income;
|
std::shared_ptr<CLabel> income;
|
||||||
@ -203,7 +203,6 @@ class CCastleInterface : public CWindowObject, public CGarrisonHolder
|
|||||||
|
|
||||||
std::shared_ptr<CPicture> panel;
|
std::shared_ptr<CPicture> panel;
|
||||||
std::shared_ptr<CResDataBar> resdatabar;
|
std::shared_ptr<CResDataBar> resdatabar;
|
||||||
std::shared_ptr<CGStatusBar> statusbar;
|
|
||||||
|
|
||||||
std::shared_ptr<CTownInfo> hall;
|
std::shared_ptr<CTownInfo> hall;
|
||||||
std::shared_ptr<CTownInfo> fort;
|
std::shared_ptr<CTownInfo> fort;
|
||||||
@ -240,7 +239,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Hall window where you can build things
|
/// Hall window where you can build things
|
||||||
class CHallInterface : public CWindowObject
|
class CHallInterface : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
class CBuildingBox : public CIntObject
|
class CBuildingBox : public CIntObject
|
||||||
{
|
{
|
||||||
@ -264,7 +263,6 @@ class CHallInterface : public CWindowObject
|
|||||||
std::vector<std::vector<std::shared_ptr<CBuildingBox>>> boxes;
|
std::vector<std::vector<std::shared_ptr<CBuildingBox>>> boxes;
|
||||||
std::shared_ptr<CLabel> title;
|
std::shared_ptr<CLabel> title;
|
||||||
std::shared_ptr<CMinorResDataBar> resdatabar;
|
std::shared_ptr<CMinorResDataBar> resdatabar;
|
||||||
std::shared_ptr<CGStatusBar> statusbar;
|
|
||||||
std::shared_ptr<CButton> exit;
|
std::shared_ptr<CButton> exit;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -272,13 +270,12 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Window where you can decide to buy a building or not
|
/// Window where you can decide to buy a building or not
|
||||||
class CBuildWindow: public CWindowObject
|
class CBuildWindow: public CStatusbarWindow
|
||||||
{
|
{
|
||||||
const CGTownInstance * town;
|
const CGTownInstance * town;
|
||||||
const CBuilding * building;
|
const CBuilding * building;
|
||||||
|
|
||||||
std::shared_ptr<CAnimImage> icon;
|
std::shared_ptr<CAnimImage> icon;
|
||||||
std::shared_ptr<CGStatusBar> statusbar;
|
|
||||||
std::shared_ptr<CLabel> name;
|
std::shared_ptr<CLabel> name;
|
||||||
std::shared_ptr<CTextBox> description;
|
std::shared_ptr<CTextBox> description;
|
||||||
std::shared_ptr<CTextBox> stateText;
|
std::shared_ptr<CTextBox> stateText;
|
||||||
@ -308,7 +305,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// The fort screen where you can afford units
|
/// The fort screen where you can afford units
|
||||||
class CFortScreen : public CWindowObject
|
class CFortScreen : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
class RecruitArea : public CIntObject
|
class RecruitArea : public CIntObject
|
||||||
{
|
{
|
||||||
@ -336,7 +333,6 @@ class CFortScreen : public CWindowObject
|
|||||||
std::shared_ptr<CLabel> title;
|
std::shared_ptr<CLabel> title;
|
||||||
std::vector<std::shared_ptr<RecruitArea>> recAreas;
|
std::vector<std::shared_ptr<RecruitArea>> recAreas;
|
||||||
std::shared_ptr<CMinorResDataBar> resdatabar;
|
std::shared_ptr<CMinorResDataBar> resdatabar;
|
||||||
std::shared_ptr<CGStatusBar> statusbar;
|
|
||||||
std::shared_ptr<CButton> exit;
|
std::shared_ptr<CButton> exit;
|
||||||
|
|
||||||
std::string getBgName(const CGTownInstance * town);
|
std::string getBgName(const CGTownInstance * town);
|
||||||
@ -348,7 +344,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// The mage guild screen where you can see which spells you have
|
/// The mage guild screen where you can see which spells you have
|
||||||
class CMageGuildScreen : public CWindowObject
|
class CMageGuildScreen : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
class Scroll : public CIntObject
|
class Scroll : public CIntObject
|
||||||
{
|
{
|
||||||
@ -367,14 +363,13 @@ class CMageGuildScreen : public CWindowObject
|
|||||||
std::vector<std::shared_ptr<CAnimImage>> emptyScrolls;
|
std::vector<std::shared_ptr<CAnimImage>> emptyScrolls;
|
||||||
|
|
||||||
std::shared_ptr<CMinorResDataBar> resdatabar;
|
std::shared_ptr<CMinorResDataBar> resdatabar;
|
||||||
std::shared_ptr<CGStatusBar> statusbar;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CMageGuildScreen(CCastleInterface * owner,std::string image);
|
CMageGuildScreen(CCastleInterface * owner,std::string image);
|
||||||
};
|
};
|
||||||
|
|
||||||
/// The blacksmith window where you can buy available in town war machine
|
/// The blacksmith window where you can buy available in town war machine
|
||||||
class CBlacksmithDialog : public CWindowObject
|
class CBlacksmithDialog : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
std::shared_ptr<CButton> buy;
|
std::shared_ptr<CButton> buy;
|
||||||
std::shared_ptr<CButton> cancel;
|
std::shared_ptr<CButton> cancel;
|
||||||
@ -384,7 +379,6 @@ class CBlacksmithDialog : public CWindowObject
|
|||||||
std::shared_ptr<CAnimImage> costIcon;
|
std::shared_ptr<CAnimImage> costIcon;
|
||||||
std::shared_ptr<CLabel> costText;
|
std::shared_ptr<CLabel> costText;
|
||||||
std::shared_ptr<CLabel> costValue;
|
std::shared_ptr<CLabel> costValue;
|
||||||
std::shared_ptr<CGStatusBar> statusbar;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CBlacksmithDialog(bool possible, CreatureID creMachineID, ArtifactID aid, ObjectInstanceID hid);
|
CBlacksmithDialog(bool possible, CreatureID creMachineID, ArtifactID aid, ObjectInstanceID hid);
|
||||||
|
@ -238,3 +238,17 @@ void CWindowObject::clickRight(tribool down, bool previousState)
|
|||||||
close();
|
close();
|
||||||
CCS->curh->show();
|
CCS->curh->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CStatusbarWindow::CStatusbarWindow(int options, std::string imageName, Point centerAt) : CWindowObject(options, imageName, centerAt)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CStatusbarWindow::CStatusbarWindow(int options, std::string imageName) : CWindowObject(options, imageName)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStatusbarWindow::activate()
|
||||||
|
{
|
||||||
|
CIntObject::activate();
|
||||||
|
GH.statusbar = statusbar;
|
||||||
|
}
|
@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
#include "../gui/CIntObject.h"
|
#include "../gui/CIntObject.h"
|
||||||
|
|
||||||
|
class CGStatusBar;
|
||||||
|
|
||||||
class CWindowObject : public WindowBase
|
class CWindowObject : public WindowBase
|
||||||
{
|
{
|
||||||
std::shared_ptr<CPicture> createBg(std::string imageName, bool playerColored);
|
std::shared_ptr<CPicture> createBg(std::string imageName, bool playerColored);
|
||||||
@ -50,3 +52,13 @@ public:
|
|||||||
|
|
||||||
void showAll(SDL_Surface * to) override;
|
void showAll(SDL_Surface * to) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CStatusbarWindow : public CWindowObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CStatusbarWindow(int options, std::string imageName, Point centerAt);
|
||||||
|
CStatusbarWindow(int options, std::string imageName = "");
|
||||||
|
void activate() override;
|
||||||
|
protected:
|
||||||
|
std::shared_ptr<CGStatusBar> statusbar;
|
||||||
|
};
|
||||||
|
@ -194,7 +194,7 @@ void CRecruitmentWindow::showAll(SDL_Surface * to)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CRecruitmentWindow::CRecruitmentWindow(const CGDwelling * Dwelling, int Level, const CArmedInstance * Dst, const std::function<void(CreatureID,int)> & Recruit, int y_offset):
|
CRecruitmentWindow::CRecruitmentWindow(const CGDwelling * Dwelling, int Level, const CArmedInstance * Dst, const std::function<void(CreatureID,int)> & Recruit, int y_offset):
|
||||||
CWindowObject(PLAYER_COLORED, "TPRCRT"),
|
CStatusbarWindow(PLAYER_COLORED, "TPRCRT"),
|
||||||
onRecruit(Recruit),
|
onRecruit(Recruit),
|
||||||
level(Level),
|
level(Level),
|
||||||
dst(Dst),
|
dst(Dst),
|
||||||
@ -205,7 +205,7 @@ CRecruitmentWindow::CRecruitmentWindow(const CGDwelling * Dwelling, int Level, c
|
|||||||
|
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
|
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
||||||
|
|
||||||
slider = std::make_shared<CSlider>(Point(176,279),135,std::bind(&CRecruitmentWindow::sliderMoved,this, _1),0,0,0,true);
|
slider = std::make_shared<CSlider>(Point(176,279),135,std::bind(&CRecruitmentWindow::sliderMoved,this, _1),0,0,0,true);
|
||||||
|
|
||||||
@ -630,7 +630,7 @@ void CSystemOptionsWindow::closeAndPushEvent(int eventType, int code)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CTavernWindow::CTavernWindow(const CGObjectInstance * TavernObj)
|
CTavernWindow::CTavernWindow(const CGObjectInstance * TavernObj)
|
||||||
: CWindowObject(PLAYER_COLORED, "TPTAVERN"),
|
: CStatusbarWindow(PLAYER_COLORED, "TPTAVERN"),
|
||||||
tavernObj(TavernObj)
|
tavernObj(TavernObj)
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
@ -656,7 +656,7 @@ CTavernWindow::CTavernWindow(const CGObjectInstance * TavernObj)
|
|||||||
auto rumorText = boost::str(boost::format(CGI->generaltexth->allTexts[216]) % LOCPLINT->cb->getTavernRumor(tavernObj));
|
auto rumorText = boost::str(boost::format(CGI->generaltexth->allTexts[216]) % LOCPLINT->cb->getTavernRumor(tavernObj));
|
||||||
rumor = std::make_shared<CTextBox>(rumorText, Rect(32, 190, 330, 68), 0, FONT_SMALL, CENTER, Colors::WHITE);
|
rumor = std::make_shared<CTextBox>(rumorText, Rect(32, 190, 330, 68), 0, FONT_SMALL, CENTER, Colors::WHITE);
|
||||||
|
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
||||||
cancel = std::make_shared<CButton>(Point(310, 428), "ICANCEL.DEF", CButton::tooltip(CGI->generaltexth->tavernInfo[7]), std::bind(&CTavernWindow::close, this), SDLK_ESCAPE);
|
cancel = std::make_shared<CButton>(Point(310, 428), "ICANCEL.DEF", CButton::tooltip(CGI->generaltexth->tavernInfo[7]), std::bind(&CTavernWindow::close, this), SDLK_ESCAPE);
|
||||||
recruit = std::make_shared<CButton>(Point(272, 355), "TPTAV01.DEF", CButton::tooltip(), std::bind(&CTavernWindow::recruitb, this), SDLK_RETURN);
|
recruit = std::make_shared<CButton>(Point(272, 355), "TPTAV01.DEF", CButton::tooltip(), std::bind(&CTavernWindow::recruitb, this), SDLK_RETURN);
|
||||||
thiefGuild = std::make_shared<CButton>(Point(22, 428), "TPTAV02.DEF", CButton::tooltip(CGI->generaltexth->tavernInfo[5]), std::bind(&CTavernWindow::thievesguildb, this), SDLK_t);
|
thiefGuild = std::make_shared<CButton>(Point(22, 428), "TPTAV02.DEF", CButton::tooltip(CGI->generaltexth->tavernInfo[5]), std::bind(&CTavernWindow::thievesguildb, this), SDLK_t);
|
||||||
@ -788,7 +788,7 @@ void CTavernWindow::HeroPortrait::hover(bool on)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CExchangeWindow::CExchangeWindow(ObjectInstanceID hero1, ObjectInstanceID hero2, QueryID queryID)
|
CExchangeWindow::CExchangeWindow(ObjectInstanceID hero1, ObjectInstanceID hero2, QueryID queryID)
|
||||||
: CWindowObject(PLAYER_COLORED | BORDERED, "TRADE2")
|
: CStatusbarWindow(PLAYER_COLORED | BORDERED, "TRADE2")
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
|
|
||||||
@ -920,7 +920,7 @@ CExchangeWindow::CExchangeWindow(ObjectInstanceID hero1, ObjectInstanceID hero2,
|
|||||||
questlogButton[1] = std::make_shared<CButton>(Point(740, 44), "hsbtns4.def", CButton::tooltip(CGI->generaltexth->heroscrn[0]), std::bind(&CExchangeWindow::questlog, this, 1));
|
questlogButton[1] = std::make_shared<CButton>(Point(740, 44), "hsbtns4.def", CButton::tooltip(CGI->generaltexth->heroscrn[0]), std::bind(&CExchangeWindow::questlog, this, 1));
|
||||||
|
|
||||||
Rect barRect(5, 578, 725, 18);
|
Rect barRect(5, 578, 725, 18);
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, barRect, 5, 578, false));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, barRect, 5, 578, false));
|
||||||
|
|
||||||
//garrison interface
|
//garrison interface
|
||||||
garr = std::make_shared<CGarrisonInt>(69, 131, 4, Point(418,0), heroInst[0], heroInst[1], true, true);
|
garr = std::make_shared<CGarrisonInt>(69, 131, 4, Point(418,0), heroInst[0], heroInst[1], true, true);
|
||||||
@ -978,7 +978,7 @@ void CExchangeWindow::updateWidgets()
|
|||||||
}
|
}
|
||||||
|
|
||||||
CShipyardWindow::CShipyardWindow(const std::vector<si32> & cost, int state, int boatType, const std::function<void()> & onBuy)
|
CShipyardWindow::CShipyardWindow(const std::vector<si32> & cost, int state, int boatType, const std::function<void()> & onBuy)
|
||||||
: CWindowObject(PLAYER_COLORED, "TPSHIP")
|
: CStatusbarWindow(PLAYER_COLORED, "TPSHIP")
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
|
|
||||||
@ -1013,7 +1013,7 @@ CShipyardWindow::CShipyardWindow(const std::vector<si32> & cost, int state, int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
||||||
|
|
||||||
title = std::make_shared<CLabel>(164, 27, FONT_BIG, CENTER, Colors::YELLOW, CGI->generaltexth->jktexts[13]);
|
title = std::make_shared<CLabel>(164, 27, FONT_BIG, CENTER, Colors::YELLOW, CGI->generaltexth->jktexts[13]);
|
||||||
costLabel = std::make_shared<CLabel>(164, 220, FONT_MEDIUM, CENTER, Colors::WHITE, CGI->generaltexth->jktexts[14]);
|
costLabel = std::make_shared<CLabel>(164, 220, FONT_MEDIUM, CENTER, Colors::WHITE, CGI->generaltexth->jktexts[14]);
|
||||||
@ -1159,7 +1159,7 @@ void CTransformerWindow::updateGarrisons()
|
|||||||
}
|
}
|
||||||
|
|
||||||
CTransformerWindow::CTransformerWindow(const CGHeroInstance * _hero, const CGTownInstance * _town)
|
CTransformerWindow::CTransformerWindow(const CGHeroInstance * _hero, const CGTownInstance * _town)
|
||||||
: CWindowObject(PLAYER_COLORED, "SKTRNBK"),
|
: CStatusbarWindow(PLAYER_COLORED, "SKTRNBK"),
|
||||||
hero(_hero),
|
hero(_hero),
|
||||||
town(_town)
|
town(_town)
|
||||||
{
|
{
|
||||||
@ -1178,7 +1178,7 @@ CTransformerWindow::CTransformerWindow(const CGHeroInstance * _hero, const CGTow
|
|||||||
all = std::make_shared<CButton>(Point(146, 416), "ALTARMY.DEF", CGI->generaltexth->zelp[590], [&](){ addAll(); }, SDLK_a);
|
all = std::make_shared<CButton>(Point(146, 416), "ALTARMY.DEF", CGI->generaltexth->zelp[590], [&](){ addAll(); }, SDLK_a);
|
||||||
convert = std::make_shared<CButton>(Point(269, 416), "ALTSACR.DEF", CGI->generaltexth->zelp[591], [&](){ makeDeal(); }, SDLK_RETURN);
|
convert = std::make_shared<CButton>(Point(269, 416), "ALTSACR.DEF", CGI->generaltexth->zelp[591], [&](){ makeDeal(); }, SDLK_RETURN);
|
||||||
cancel = std::make_shared<CButton>(Point(392, 416), "ICANCEL.DEF", CGI->generaltexth->zelp[592], [&](){ close(); },SDLK_ESCAPE);
|
cancel = std::make_shared<CButton>(Point(392, 416), "ICANCEL.DEF", CGI->generaltexth->zelp[592], [&](){ close(); },SDLK_ESCAPE);
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
||||||
|
|
||||||
titleLeft = std::make_shared<CLabel>(153, 29,FONT_SMALL, CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[485]);//holding area
|
titleLeft = std::make_shared<CLabel>(153, 29,FONT_SMALL, CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[485]);//holding area
|
||||||
titleRight = std::make_shared<CLabel>(153+295, 29, FONT_SMALL, CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[486]);//transformer
|
titleRight = std::make_shared<CLabel>(153+295, 29, FONT_SMALL, CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[486]);//transformer
|
||||||
@ -1254,7 +1254,7 @@ void CUniversityWindow::CItem::showAll(SDL_Surface * to)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CUniversityWindow::CUniversityWindow(const CGHeroInstance * _hero, const IMarket * _market)
|
CUniversityWindow::CUniversityWindow(const CGHeroInstance * _hero, const IMarket * _market)
|
||||||
: CWindowObject(PLAYER_COLORED, "UNIVERS1"),
|
: CStatusbarWindow(PLAYER_COLORED, "UNIVERS1"),
|
||||||
hero(_hero),
|
hero(_hero),
|
||||||
market(_market)
|
market(_market)
|
||||||
{
|
{
|
||||||
@ -1283,7 +1283,7 @@ CUniversityWindow::CUniversityWindow(const CGHeroInstance * _hero, const IMarket
|
|||||||
items.push_back(std::make_shared<CItem>(this, goods[i], 54+i*104, 234));
|
items.push_back(std::make_shared<CItem>(this, goods[i], 54+i*104, 234));
|
||||||
|
|
||||||
cancel = std::make_shared<CButton>(Point(200, 313), "IOKAY.DEF", CGI->generaltexth->zelp[632], [&](){ close(); }, SDLK_RETURN);
|
cancel = std::make_shared<CButton>(Point(200, 313), "IOKAY.DEF", CGI->generaltexth->zelp[632], [&](){ close(); }, SDLK_RETURN);
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CUniversityWindow::makeDeal(int skill)
|
void CUniversityWindow::makeDeal(int skill)
|
||||||
@ -1293,7 +1293,7 @@ void CUniversityWindow::makeDeal(int skill)
|
|||||||
|
|
||||||
|
|
||||||
CUnivConfirmWindow::CUnivConfirmWindow(CUniversityWindow * owner_, int SKILL, bool available)
|
CUnivConfirmWindow::CUnivConfirmWindow(CUniversityWindow * owner_, int SKILL, bool available)
|
||||||
: CWindowObject(PLAYER_COLORED, "UNIVERS2.PCX"),
|
: CStatusbarWindow(PLAYER_COLORED, "UNIVERS2.PCX"),
|
||||||
owner(owner_)
|
owner(owner_)
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
@ -1324,7 +1324,7 @@ CUnivConfirmWindow::CUnivConfirmWindow(CUniversityWindow * owner_, int SKILL, bo
|
|||||||
confirm->block(!available);
|
confirm->block(!available);
|
||||||
|
|
||||||
cancel = std::make_shared<CButton>(Point(252,299), "ICANCEL.DEF", CGI->generaltexth->zelp[631], [&](){ close(); }, SDLK_ESCAPE);
|
cancel = std::make_shared<CButton>(Point(252,299), "ICANCEL.DEF", CGI->generaltexth->zelp[631], [&](){ close(); }, SDLK_ESCAPE);
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CUnivConfirmWindow::makeDeal(int skill)
|
void CUnivConfirmWindow::makeDeal(int skill)
|
||||||
@ -1375,7 +1375,7 @@ void CGarrisonWindow::updateGarrisons()
|
|||||||
}
|
}
|
||||||
|
|
||||||
CHillFortWindow::CHillFortWindow(const CGHeroInstance * visitor, const CGObjectInstance * object)
|
CHillFortWindow::CHillFortWindow(const CGHeroInstance * visitor, const CGObjectInstance * object)
|
||||||
: CWindowObject(PLAYER_COLORED, "APHLFTBK"),
|
: CStatusbarWindow(PLAYER_COLORED, "APHLFTBK"),
|
||||||
fort(object),
|
fort(object),
|
||||||
hero(visitor)
|
hero(visitor)
|
||||||
{
|
{
|
||||||
@ -1409,7 +1409,7 @@ CHillFortWindow::CHillFortWindow(const CGHeroInstance * visitor, const CGObjectI
|
|||||||
upgradeAll->addImage(image);
|
upgradeAll->addImage(image);
|
||||||
|
|
||||||
quit = std::make_shared<CButton>(Point(294, 275), "IOKAY.DEF", CButton::tooltip(), std::bind(&CHillFortWindow::close, this), SDLK_RETURN);
|
quit = std::make_shared<CButton>(Point(294, 275), "IOKAY.DEF", CButton::tooltip(), std::bind(&CHillFortWindow::close, this), SDLK_RETURN);
|
||||||
statusBar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
statusbar = CGStatusBar::create(std::make_shared<CPicture>(*background, Rect(8, pos.h - 26, pos.w - 16, 19), 8, pos.h - 26));
|
||||||
|
|
||||||
garr = std::make_shared<CGarrisonInt>(108, 60, 18, Point(), hero, nullptr);
|
garr = std::make_shared<CGarrisonInt>(108, 60, 18, Point(), hero, nullptr);
|
||||||
updateGarrisons();
|
updateGarrisons();
|
||||||
@ -1579,7 +1579,7 @@ int CHillFortWindow::getState(SlotID slot)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CThievesGuildWindow::CThievesGuildWindow(const CGObjectInstance * _owner):
|
CThievesGuildWindow::CThievesGuildWindow(const CGObjectInstance * _owner):
|
||||||
CWindowObject(PLAYER_COLORED | BORDERED, "TpRank"),
|
CStatusbarWindow(PLAYER_COLORED | BORDERED, "TpRank"),
|
||||||
owner(_owner)
|
owner(_owner)
|
||||||
{
|
{
|
||||||
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE);
|
||||||
@ -1590,7 +1590,7 @@ CThievesGuildWindow::CThievesGuildWindow(const CGObjectInstance * _owner):
|
|||||||
|
|
||||||
exitb = std::make_shared<CButton>(Point(748, 556), "TPMAGE1", CButton::tooltip(CGI->generaltexth->allTexts[600]), [&](){ close();}, SDLK_RETURN);
|
exitb = std::make_shared<CButton>(Point(748, 556), "TPMAGE1", CButton::tooltip(CGI->generaltexth->allTexts[600]), [&](){ close();}, SDLK_RETURN);
|
||||||
exitb->assignedKeys.insert(SDLK_ESCAPE);
|
exitb->assignedKeys.insert(SDLK_ESCAPE);
|
||||||
statusBar = CGStatusBar::create(3, 555, "TStatBar.bmp", 742);
|
statusbar = CGStatusBar::create(3, 555, "TStatBar.bmp", 742);
|
||||||
|
|
||||||
resdatabar = std::make_shared<CMinorResDataBar>();
|
resdatabar = std::make_shared<CMinorResDataBar>();
|
||||||
resdatabar->moveBy(pos.topLeft(), true);
|
resdatabar->moveBy(pos.topLeft(), true);
|
||||||
|
@ -38,7 +38,7 @@ class CResDataBar;
|
|||||||
class CHeroWithMaybePickedArtifact;
|
class CHeroWithMaybePickedArtifact;
|
||||||
|
|
||||||
/// Recruitment window where you can recruit creatures
|
/// Recruitment window where you can recruit creatures
|
||||||
class CRecruitmentWindow : public CWindowObject
|
class CRecruitmentWindow : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
class CCreatureCard : public CIntObject, public std::enable_shared_from_this<CCreatureCard>
|
class CCreatureCard : public CIntObject, public std::enable_shared_from_this<CCreatureCard>
|
||||||
{
|
{
|
||||||
@ -64,8 +64,6 @@ class CRecruitmentWindow : public CWindowObject
|
|||||||
int level;
|
int level;
|
||||||
const CArmedInstance * dst;
|
const CArmedInstance * dst;
|
||||||
|
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
|
|
||||||
std::shared_ptr<CCreatureCard> selected;
|
std::shared_ptr<CCreatureCard> selected;
|
||||||
std::vector<std::shared_ptr<CCreatureCard>> cards;
|
std::vector<std::shared_ptr<CCreatureCard>> cards;
|
||||||
|
|
||||||
@ -235,7 +233,7 @@ public:
|
|||||||
CSystemOptionsWindow();
|
CSystemOptionsWindow();
|
||||||
};
|
};
|
||||||
|
|
||||||
class CTavernWindow : public CWindowObject
|
class CTavernWindow : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
class HeroPortrait : public CIntObject
|
class HeroPortrait : public CIntObject
|
||||||
@ -273,7 +271,6 @@ public:
|
|||||||
std::shared_ptr<CLabel> title;
|
std::shared_ptr<CLabel> title;
|
||||||
std::shared_ptr<CLabel> cost;
|
std::shared_ptr<CLabel> cost;
|
||||||
std::shared_ptr<CTextBox> rumor;
|
std::shared_ptr<CTextBox> rumor;
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
|
|
||||||
CTavernWindow(const CGObjectInstance * TavernObj);
|
CTavernWindow(const CGObjectInstance * TavernObj);
|
||||||
~CTavernWindow();
|
~CTavernWindow();
|
||||||
@ -283,7 +280,7 @@ public:
|
|||||||
void show(SDL_Surface * to) override;
|
void show(SDL_Surface * to) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CExchangeWindow : public CWindowObject, public CGarrisonHolder, public CWindowWithArtifacts
|
class CExchangeWindow : public CStatusbarWindow, public CGarrisonHolder, public CWindowWithArtifacts
|
||||||
{
|
{
|
||||||
std::array<std::shared_ptr<CHeroWithMaybePickedArtifact>, 2> herosWArt;
|
std::array<std::shared_ptr<CHeroWithMaybePickedArtifact>, 2> herosWArt;
|
||||||
|
|
||||||
@ -312,7 +309,6 @@ class CExchangeWindow : public CWindowObject, public CGarrisonHolder, public CWi
|
|||||||
std::shared_ptr<CButton> quit;
|
std::shared_ptr<CButton> quit;
|
||||||
std::array<std::shared_ptr<CButton>, 2> questlogButton;
|
std::array<std::shared_ptr<CButton>, 2> questlogButton;
|
||||||
|
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
std::shared_ptr<CGarrisonInt> garr;
|
std::shared_ptr<CGarrisonInt> garr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -330,7 +326,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Here you can buy ships
|
/// Here you can buy ships
|
||||||
class CShipyardWindow : public CWindowObject
|
class CShipyardWindow : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
std::shared_ptr<CPicture> bgWater;
|
std::shared_ptr<CPicture> bgWater;
|
||||||
std::shared_ptr<CAnimImage> bgShip;
|
std::shared_ptr<CAnimImage> bgShip;
|
||||||
@ -346,7 +342,6 @@ class CShipyardWindow : public CWindowObject
|
|||||||
std::shared_ptr<CButton> build;
|
std::shared_ptr<CButton> build;
|
||||||
std::shared_ptr<CButton> quit;
|
std::shared_ptr<CButton> quit;
|
||||||
|
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
public:
|
public:
|
||||||
CShipyardWindow(const std::vector<si32> & cost, int state, int boatType, const std::function<void()> & onBuy);
|
CShipyardWindow(const std::vector<si32> & cost, int state, int boatType, const std::function<void()> & onBuy);
|
||||||
};
|
};
|
||||||
@ -373,7 +368,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Creature transformer window
|
/// Creature transformer window
|
||||||
class CTransformerWindow : public CWindowObject, public CGarrisonHolder
|
class CTransformerWindow : public CStatusbarWindow, public CGarrisonHolder
|
||||||
{
|
{
|
||||||
class CItem : public CIntObject
|
class CItem : public CIntObject
|
||||||
{
|
{
|
||||||
@ -405,7 +400,6 @@ class CTransformerWindow : public CWindowObject, public CGarrisonHolder
|
|||||||
std::shared_ptr<CButton> all;
|
std::shared_ptr<CButton> all;
|
||||||
std::shared_ptr<CButton> convert;
|
std::shared_ptr<CButton> convert;
|
||||||
std::shared_ptr<CButton> cancel;
|
std::shared_ptr<CButton> cancel;
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void makeDeal();
|
void makeDeal();
|
||||||
@ -414,7 +408,7 @@ public:
|
|||||||
CTransformerWindow(const CGHeroInstance * _hero, const CGTownInstance * _town);
|
CTransformerWindow(const CGHeroInstance * _hero, const CGTownInstance * _town);
|
||||||
};
|
};
|
||||||
|
|
||||||
class CUniversityWindow : public CWindowObject
|
class CUniversityWindow : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
class CItem : public CIntObject
|
class CItem : public CIntObject
|
||||||
{
|
{
|
||||||
@ -443,7 +437,6 @@ class CUniversityWindow : public CWindowObject
|
|||||||
std::vector<std::shared_ptr<CItem>> items;
|
std::vector<std::shared_ptr<CItem>> items;
|
||||||
|
|
||||||
std::shared_ptr<CButton> cancel;
|
std::shared_ptr<CButton> cancel;
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
std::shared_ptr<CIntObject> titlePic;
|
std::shared_ptr<CIntObject> titlePic;
|
||||||
std::shared_ptr<CLabel> title;
|
std::shared_ptr<CLabel> title;
|
||||||
std::shared_ptr<CTextBox> clerkSpeech;
|
std::shared_ptr<CTextBox> clerkSpeech;
|
||||||
@ -455,7 +448,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Confirmation window for University
|
/// Confirmation window for University
|
||||||
class CUnivConfirmWindow : public CWindowObject
|
class CUnivConfirmWindow : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
std::shared_ptr<CTextBox> clerkSpeech;
|
std::shared_ptr<CTextBox> clerkSpeech;
|
||||||
std::shared_ptr<CLabel> name;
|
std::shared_ptr<CLabel> name;
|
||||||
@ -463,7 +456,6 @@ class CUnivConfirmWindow : public CWindowObject
|
|||||||
std::shared_ptr<CAnimImage> icon;
|
std::shared_ptr<CAnimImage> icon;
|
||||||
|
|
||||||
CUniversityWindow * owner;
|
CUniversityWindow * owner;
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
std::shared_ptr<CButton> confirm;
|
std::shared_ptr<CButton> confirm;
|
||||||
std::shared_ptr<CButton> cancel;
|
std::shared_ptr<CButton> cancel;
|
||||||
|
|
||||||
@ -494,7 +486,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Hill fort is the building where you can upgrade units
|
/// Hill fort is the building where you can upgrade units
|
||||||
class CHillFortWindow : public CWindowObject, public CGarrisonHolder
|
class CHillFortWindow : public CStatusbarWindow, public CGarrisonHolder
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
static const int slotsCount = 7;
|
static const int slotsCount = 7;
|
||||||
@ -522,8 +514,6 @@ private:
|
|||||||
|
|
||||||
std::shared_ptr<CGarrisonInt> garr;
|
std::shared_ptr<CGarrisonInt> garr;
|
||||||
|
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
|
|
||||||
std::string getDefForSlot(SlotID slot);
|
std::string getDefForSlot(SlotID slot);
|
||||||
std::string getTextForSlot(SlotID slot);
|
std::string getTextForSlot(SlotID slot);
|
||||||
|
|
||||||
@ -534,11 +524,10 @@ public:
|
|||||||
void updateGarrisons() override;//update buttons after garrison changes
|
void updateGarrisons() override;//update buttons after garrison changes
|
||||||
};
|
};
|
||||||
|
|
||||||
class CThievesGuildWindow : public CWindowObject
|
class CThievesGuildWindow : public CStatusbarWindow
|
||||||
{
|
{
|
||||||
const CGObjectInstance * owner;
|
const CGObjectInstance * owner;
|
||||||
|
|
||||||
std::shared_ptr<CGStatusBar> statusBar;
|
|
||||||
std::shared_ptr<CButton> exitb;
|
std::shared_ptr<CButton> exitb;
|
||||||
std::shared_ptr<CMinorResDataBar> resdatabar;
|
std::shared_ptr<CMinorResDataBar> resdatabar;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user