mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-23 22:37:55 +02:00
Removed CGI in favor of VLC. Map handle is for now global variable
This commit is contained in:
@@ -12,7 +12,6 @@
|
||||
|
||||
#include "CSelectionBase.h"
|
||||
|
||||
#include "../CGameInfo.h"
|
||||
#include "../CServerHandler.h"
|
||||
#include "../GameEngine.h"
|
||||
#include "../gui/Shortcut.h"
|
||||
@@ -48,6 +47,7 @@
|
||||
#include "../../lib/CConfigHandler.h"
|
||||
#include "../../lib/mapping/CMapInfo.h"
|
||||
#include "../../lib/mapping/CMapHeader.h"
|
||||
#include "../../lib/VCMI_Lib.h"
|
||||
|
||||
static JsonPath optionsTabConfigLocation()
|
||||
{
|
||||
@@ -112,7 +112,7 @@ size_t OptionsTab::CPlayerSettingsHelper::getImageIndex(bool big)
|
||||
if (playerSettings.castle == FactionID::RANDOM)
|
||||
return TOWN_RANDOM;
|
||||
|
||||
return (*CGI->townh)[factionIndex]->town->clientInfo.icons[true][false] + (big ? 0 : 2);
|
||||
return (*VLC->townh)[factionIndex]->town->clientInfo.icons[true][false] + (big ? 0 : 2);
|
||||
}
|
||||
|
||||
case HERO:
|
||||
@@ -127,7 +127,7 @@ size_t OptionsTab::CPlayerSettingsHelper::getImageIndex(bool big)
|
||||
return playerSettings.heroPortrait;
|
||||
|
||||
auto index = playerSettings.getHeroValidated();
|
||||
return (*CGI->heroh)[index]->imageIndex;
|
||||
return (*VLC->heroh)[index]->imageIndex;
|
||||
}
|
||||
|
||||
case BONUS:
|
||||
@@ -142,7 +142,7 @@ size_t OptionsTab::CPlayerSettingsHelper::getImageIndex(bool big)
|
||||
return GOLD;
|
||||
case PlayerStartingBonus::RESOURCE:
|
||||
{
|
||||
switch((*CGI->townh)[factionIndex]->town->primaryRes.toEnum())
|
||||
switch((*VLC->townh)[factionIndex]->town->primaryRes.toEnum())
|
||||
{
|
||||
case EGameResID::WOOD_AND_ORE:
|
||||
return WOOD_ORE;
|
||||
@@ -191,33 +191,33 @@ std::string OptionsTab::CPlayerSettingsHelper::getName()
|
||||
case TOWN:
|
||||
{
|
||||
if (playerSettings.castle == FactionID::NONE)
|
||||
return CGI->generaltexth->allTexts[523];
|
||||
return VLC->generaltexth->allTexts[523];
|
||||
|
||||
if (playerSettings.castle == FactionID::RANDOM)
|
||||
return CGI->generaltexth->allTexts[522];
|
||||
return VLC->generaltexth->allTexts[522];
|
||||
|
||||
auto factionIndex = playerSettings.getCastleValidated();
|
||||
return (*CGI->townh)[factionIndex]->getNameTranslated();
|
||||
return (*VLC->townh)[factionIndex]->getNameTranslated();
|
||||
}
|
||||
case HERO:
|
||||
{
|
||||
if (playerSettings.hero == HeroTypeID::NONE)
|
||||
return CGI->generaltexth->allTexts[523];
|
||||
return VLC->generaltexth->allTexts[523];
|
||||
|
||||
if (playerSettings.hero == HeroTypeID::RANDOM)
|
||||
return CGI->generaltexth->allTexts[522];
|
||||
return VLC->generaltexth->allTexts[522];
|
||||
|
||||
if(!playerSettings.heroNameTextId.empty())
|
||||
return CGI->generaltexth->translate(playerSettings.heroNameTextId);
|
||||
return VLC->generaltexth->translate(playerSettings.heroNameTextId);
|
||||
auto index = playerSettings.getHeroValidated();
|
||||
return (*CGI->heroh)[index]->getNameTranslated();
|
||||
return (*VLC->heroh)[index]->getNameTranslated();
|
||||
}
|
||||
case BONUS:
|
||||
{
|
||||
if (playerSettings.bonus == PlayerStartingBonus::RANDOM)
|
||||
return CGI->generaltexth->allTexts[522];
|
||||
return VLC->generaltexth->allTexts[522];
|
||||
|
||||
return CGI->generaltexth->arraytxt[214 + static_cast<int>(playerSettings.bonus)];
|
||||
return VLC->generaltexth->arraytxt[214 + static_cast<int>(playerSettings.bonus)];
|
||||
}
|
||||
}
|
||||
return "";
|
||||
@@ -229,21 +229,21 @@ std::string OptionsTab::CPlayerSettingsHelper::getTitle()
|
||||
switch(selectionType)
|
||||
{
|
||||
case OptionsTab::TOWN:
|
||||
return playerSettings.castle.isValid() ? CGI->generaltexth->allTexts[80] : CGI->generaltexth->allTexts[103];
|
||||
return playerSettings.castle.isValid() ? VLC->generaltexth->allTexts[80] : VLC->generaltexth->allTexts[103];
|
||||
case OptionsTab::HERO:
|
||||
return playerSettings.hero.isValid() ? CGI->generaltexth->allTexts[77] : CGI->generaltexth->allTexts[101];
|
||||
return playerSettings.hero.isValid() ? VLC->generaltexth->allTexts[77] : VLC->generaltexth->allTexts[101];
|
||||
case OptionsTab::BONUS:
|
||||
{
|
||||
switch(playerSettings.bonus)
|
||||
{
|
||||
case PlayerStartingBonus::RANDOM:
|
||||
return CGI->generaltexth->allTexts[86]; //{Random Bonus}
|
||||
return VLC->generaltexth->allTexts[86]; //{Random Bonus}
|
||||
case PlayerStartingBonus::ARTIFACT:
|
||||
return CGI->generaltexth->allTexts[83]; //{Artifact Bonus}
|
||||
return VLC->generaltexth->allTexts[83]; //{Artifact Bonus}
|
||||
case PlayerStartingBonus::GOLD:
|
||||
return CGI->generaltexth->allTexts[84]; //{Gold Bonus}
|
||||
return VLC->generaltexth->allTexts[84]; //{Gold Bonus}
|
||||
case PlayerStartingBonus::RESOURCE:
|
||||
return CGI->generaltexth->allTexts[85]; //{Resource Bonus}
|
||||
return VLC->generaltexth->allTexts[85]; //{Resource Bonus}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -261,7 +261,7 @@ std::string OptionsTab::CPlayerSettingsHelper::getSubtitle()
|
||||
case HERO:
|
||||
{
|
||||
if(playerSettings.hero.isValid())
|
||||
return getName() + " - " + (*CGI->heroh)[heroIndex]->heroClass->getNameTranslated();
|
||||
return getName() + " - " + (*VLC->heroh)[heroIndex]->heroClass->getNameTranslated();
|
||||
return getName();
|
||||
}
|
||||
|
||||
@@ -270,21 +270,21 @@ std::string OptionsTab::CPlayerSettingsHelper::getSubtitle()
|
||||
switch(playerSettings.bonus)
|
||||
{
|
||||
case PlayerStartingBonus::GOLD:
|
||||
return CGI->generaltexth->allTexts[87]; //500-1000
|
||||
return VLC->generaltexth->allTexts[87]; //500-1000
|
||||
case PlayerStartingBonus::RESOURCE:
|
||||
{
|
||||
switch((*CGI->townh)[factionIndex]->town->primaryRes.toEnum())
|
||||
switch((*VLC->townh)[factionIndex]->town->primaryRes.toEnum())
|
||||
{
|
||||
case EGameResID::MERCURY:
|
||||
return CGI->generaltexth->allTexts[694];
|
||||
return VLC->generaltexth->allTexts[694];
|
||||
case EGameResID::SULFUR:
|
||||
return CGI->generaltexth->allTexts[695];
|
||||
return VLC->generaltexth->allTexts[695];
|
||||
case EGameResID::CRYSTAL:
|
||||
return CGI->generaltexth->allTexts[692];
|
||||
return VLC->generaltexth->allTexts[692];
|
||||
case EGameResID::GEMS:
|
||||
return CGI->generaltexth->allTexts[693];
|
||||
return VLC->generaltexth->allTexts[693];
|
||||
case EGameResID::WOOD_AND_ORE:
|
||||
return CGI->generaltexth->allTexts[89]; //At the start of the game, 5-10 wood and 5-10 ore are added to your Kingdom's resource pool
|
||||
return VLC->generaltexth->allTexts[89]; //At the start of the game, 5-10 wood and 5-10 ore are added to your Kingdom's resource pool
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -300,33 +300,33 @@ std::string OptionsTab::CPlayerSettingsHelper::getDescription()
|
||||
switch(selectionType)
|
||||
{
|
||||
case TOWN:
|
||||
return CGI->generaltexth->allTexts[104];
|
||||
return VLC->generaltexth->allTexts[104];
|
||||
case HERO:
|
||||
return CGI->generaltexth->allTexts[102];
|
||||
return VLC->generaltexth->allTexts[102];
|
||||
case BONUS:
|
||||
{
|
||||
switch(playerSettings.bonus)
|
||||
{
|
||||
case PlayerStartingBonus::RANDOM:
|
||||
return CGI->generaltexth->allTexts[94]; //Gold, wood and ore, or an artifact is randomly chosen as your starting bonus
|
||||
return VLC->generaltexth->allTexts[94]; //Gold, wood and ore, or an artifact is randomly chosen as your starting bonus
|
||||
case PlayerStartingBonus::ARTIFACT:
|
||||
return CGI->generaltexth->allTexts[90]; //An artifact is randomly chosen and equipped to your starting hero
|
||||
return VLC->generaltexth->allTexts[90]; //An artifact is randomly chosen and equipped to your starting hero
|
||||
case PlayerStartingBonus::GOLD:
|
||||
return CGI->generaltexth->allTexts[92]; //At the start of the game, 500-1000 gold is added to your Kingdom's resource pool
|
||||
return VLC->generaltexth->allTexts[92]; //At the start of the game, 500-1000 gold is added to your Kingdom's resource pool
|
||||
case PlayerStartingBonus::RESOURCE:
|
||||
{
|
||||
switch((*CGI->townh)[factionIndex]->town->primaryRes.toEnum())
|
||||
switch((*VLC->townh)[factionIndex]->town->primaryRes.toEnum())
|
||||
{
|
||||
case EGameResID::MERCURY:
|
||||
return CGI->generaltexth->allTexts[690];
|
||||
return VLC->generaltexth->allTexts[690];
|
||||
case EGameResID::SULFUR:
|
||||
return CGI->generaltexth->allTexts[691];
|
||||
return VLC->generaltexth->allTexts[691];
|
||||
case EGameResID::CRYSTAL:
|
||||
return CGI->generaltexth->allTexts[688];
|
||||
return VLC->generaltexth->allTexts[688];
|
||||
case EGameResID::GEMS:
|
||||
return CGI->generaltexth->allTexts[689];
|
||||
return VLC->generaltexth->allTexts[689];
|
||||
case EGameResID::WOOD_AND_ORE:
|
||||
return CGI->generaltexth->allTexts[93]; //At the start of the game, 5-10 wood and 5-10 ore are added to your Kingdom's resource pool
|
||||
return VLC->generaltexth->allTexts[93]; //At the start of the game, 5-10 wood and 5-10 ore are added to your Kingdom's resource pool
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -375,9 +375,9 @@ void OptionsTab::CPlayerOptionTooltipBox::genTownWindow()
|
||||
|
||||
pos = Rect(0, 0, 228, 290);
|
||||
genHeader();
|
||||
labelAssociatedCreatures = std::make_shared<CLabel>(pos.w / 2 + 8, 122, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[79]);
|
||||
labelAssociatedCreatures = std::make_shared<CLabel>(pos.w / 2 + 8, 122, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, VLC->generaltexth->allTexts[79]);
|
||||
std::vector<std::shared_ptr<CComponent>> components;
|
||||
const CTown * town = (*CGI->townh)[factionIndex]->town;
|
||||
const CTown * town = (*VLC->townh)[factionIndex]->town;
|
||||
|
||||
for(auto & elem : town->creatures)
|
||||
{
|
||||
@@ -396,10 +396,10 @@ void OptionsTab::CPlayerOptionTooltipBox::genHeroWindow()
|
||||
|
||||
pos = Rect(0, 0, 292, 226);
|
||||
genHeader();
|
||||
labelHeroSpeciality = std::make_shared<CLabel>(pos.w / 2 + 4, 117, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, CGI->generaltexth->allTexts[78]);
|
||||
labelHeroSpeciality = std::make_shared<CLabel>(pos.w / 2 + 4, 117, FONT_MEDIUM, ETextAlignment::CENTER, Colors::YELLOW, VLC->generaltexth->allTexts[78]);
|
||||
|
||||
imageSpeciality = std::make_shared<CAnimImage>(AnimationPath::builtin("UN44"), (*CGI->heroh)[heroIndex]->imageIndex, 0, pos.w / 2 - 22, 134);
|
||||
labelSpecialityName = std::make_shared<CLabel>(pos.w / 2, 188, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, (*CGI->heroh)[heroIndex]->getSpecialtyNameTranslated());
|
||||
imageSpeciality = std::make_shared<CAnimImage>(AnimationPath::builtin("UN44"), (*VLC->heroh)[heroIndex]->imageIndex, 0, pos.w / 2 - 22, 134);
|
||||
labelSpecialityName = std::make_shared<CLabel>(pos.w / 2, 188, FONT_SMALL, ETextAlignment::CENTER, Colors::WHITE, (*VLC->heroh)[heroIndex]->getSpecialtyNameTranslated());
|
||||
}
|
||||
|
||||
void OptionsTab::CPlayerOptionTooltipBox::genBonusWindow()
|
||||
@@ -813,7 +813,7 @@ OptionsTab::HandicapWindow::HandicapWindow()
|
||||
backgroundTexture = std::make_shared<FilledTexturePlayerColored>(pos);
|
||||
backgroundTexture->setPlayerColor(PlayerColor(1));
|
||||
|
||||
labels.push_back(std::make_shared<CLabel>(pos.w / 2 + 8, 15, FONT_BIG, ETextAlignment::CENTER, Colors::YELLOW, CGI->generaltexth->translate("vcmi.lobby.handicap")));
|
||||
labels.push_back(std::make_shared<CLabel>(pos.w / 2 + 8, 15, FONT_BIG, ETextAlignment::CENTER, Colors::YELLOW, VLC->generaltexth->translate("vcmi.lobby.handicap")));
|
||||
|
||||
enum Columns : int32_t
|
||||
{
|
||||
@@ -841,9 +841,9 @@ OptionsTab::HandicapWindow::HandicapWindow()
|
||||
if(i == 0)
|
||||
{
|
||||
if(isIncome)
|
||||
labels.push_back(std::make_shared<CLabel>(xPos, 38, FONT_TINY, ETextAlignment::TOPLEFT, Colors::WHITE, CGI->generaltexth->translate("core.jktext.32")));
|
||||
labels.push_back(std::make_shared<CLabel>(xPos, 38, FONT_TINY, ETextAlignment::TOPLEFT, Colors::WHITE, VLC->generaltexth->translate("core.jktext.32")));
|
||||
else if(isGrowth)
|
||||
labels.push_back(std::make_shared<CLabel>(xPos, 38, FONT_TINY, ETextAlignment::TOPLEFT, Colors::WHITE, CGI->generaltexth->translate("core.genrltxt.194")));
|
||||
labels.push_back(std::make_shared<CLabel>(xPos, 38, FONT_TINY, ETextAlignment::TOPLEFT, Colors::WHITE, VLC->generaltexth->translate("core.genrltxt.194")));
|
||||
else
|
||||
anim.push_back(std::make_shared<CAnimImage>(AnimationPath::builtin("SMALRES"), GameResID(resource), 0, 15 + xPos + (j == 0 ? 10 : 0), 35));
|
||||
}
|
||||
@@ -864,11 +864,11 @@ OptionsTab::HandicapWindow::HandicapWindow()
|
||||
textinputs[player][resource]->setPopupCallback([isIncome, isGrowth](){
|
||||
// Help for the textinputs
|
||||
if(isIncome)
|
||||
CRClickPopup::createAndPush(CGI->generaltexth->translate("vcmi.lobby.handicap.income"));
|
||||
CRClickPopup::createAndPush(VLC->generaltexth->translate("vcmi.lobby.handicap.income"));
|
||||
else if(isGrowth)
|
||||
CRClickPopup::createAndPush(CGI->generaltexth->translate("vcmi.lobby.handicap.growth"));
|
||||
CRClickPopup::createAndPush(VLC->generaltexth->translate("vcmi.lobby.handicap.growth"));
|
||||
else
|
||||
CRClickPopup::createAndPush(CGI->generaltexth->translate("vcmi.lobby.handicap.resource"));
|
||||
CRClickPopup::createAndPush(VLC->generaltexth->translate("vcmi.lobby.handicap.resource"));
|
||||
});
|
||||
if(isIncome || isGrowth)
|
||||
labels.push_back(std::make_shared<CLabel>(area.topRight().x, area.center().y, FONT_SMALL, ETextAlignment::CENTERRIGHT, Colors::WHITE, "%"));
|
||||
@@ -1039,10 +1039,10 @@ OptionsTab::PlayerOptionsEntry::PlayerOptionsEntry(const PlayerSettings & S, con
|
||||
labelPlayerNameEdit->setText(name);
|
||||
}
|
||||
|
||||
labelWhoCanPlay = std::make_shared<CMultiLineLabel>(Rect(6, 21, 45, 26), EFonts::FONT_TINY, ETextAlignment::CENTER, Colors::WHITE, CGI->generaltexth->arraytxt[206 + whoCanPlay]);
|
||||
labelWhoCanPlay = std::make_shared<CMultiLineLabel>(Rect(6, 21, 45, 26), EFonts::FONT_TINY, ETextAlignment::CENTER, Colors::WHITE, VLC->generaltexth->arraytxt[206 + whoCanPlay]);
|
||||
|
||||
auto hasHandicap = [this](){ return s->handicap.startBonus.empty() && s->handicap.percentIncome == 100 && s->handicap.percentGrowth == 100; };
|
||||
std::string labelHandicapText = hasHandicap() ? CGI->generaltexth->arraytxt[210] : MetaString::createFromTextID("vcmi.lobby.handicap").toString();
|
||||
std::string labelHandicapText = hasHandicap() ? VLC->generaltexth->arraytxt[210] : MetaString::createFromTextID("vcmi.lobby.handicap").toString();
|
||||
labelHandicap = std::make_shared<CMultiLineLabel>(Rect(55, 23, 46, 24), EFonts::FONT_TINY, ETextAlignment::CENTER, Colors::WHITE, labelHandicapText);
|
||||
handicap = std::make_shared<LRClickableArea>(Rect(53, 23, 50, 24), [](){
|
||||
if(!CSH->isHost())
|
||||
@@ -1084,12 +1084,12 @@ OptionsTab::PlayerOptionsEntry::PlayerOptionsEntry(const PlayerSettings & S, con
|
||||
|
||||
if(SEL->screenType == ESelectionScreen::newGame)
|
||||
{
|
||||
buttonTownLeft = std::make_shared<CButton>(Point(107, 5), AnimationPath::builtin("ADOPLFA.DEF"), CGI->generaltexth->zelp[132], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::TOWN, -1, s->color));
|
||||
buttonTownRight = std::make_shared<CButton>(Point(168, 5), AnimationPath::builtin("ADOPRTA.DEF"), CGI->generaltexth->zelp[133], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::TOWN, +1, s->color));
|
||||
buttonHeroLeft = std::make_shared<CButton>(Point(183, 5), AnimationPath::builtin("ADOPLFA.DEF"), CGI->generaltexth->zelp[148], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::HERO, -1, s->color));
|
||||
buttonHeroRight = std::make_shared<CButton>(Point(244, 5), AnimationPath::builtin("ADOPRTA.DEF"), CGI->generaltexth->zelp[149], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::HERO, +1, s->color));
|
||||
buttonBonusLeft = std::make_shared<CButton>(Point(259, 5), AnimationPath::builtin("ADOPLFA.DEF"), CGI->generaltexth->zelp[164], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::BONUS, -1, s->color));
|
||||
buttonBonusRight = std::make_shared<CButton>(Point(320, 5), AnimationPath::builtin("ADOPRTA.DEF"), CGI->generaltexth->zelp[165], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::BONUS, +1, s->color));
|
||||
buttonTownLeft = std::make_shared<CButton>(Point(107, 5), AnimationPath::builtin("ADOPLFA.DEF"), VLC->generaltexth->zelp[132], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::TOWN, -1, s->color));
|
||||
buttonTownRight = std::make_shared<CButton>(Point(168, 5), AnimationPath::builtin("ADOPRTA.DEF"), VLC->generaltexth->zelp[133], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::TOWN, +1, s->color));
|
||||
buttonHeroLeft = std::make_shared<CButton>(Point(183, 5), AnimationPath::builtin("ADOPLFA.DEF"), VLC->generaltexth->zelp[148], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::HERO, -1, s->color));
|
||||
buttonHeroRight = std::make_shared<CButton>(Point(244, 5), AnimationPath::builtin("ADOPRTA.DEF"), VLC->generaltexth->zelp[149], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::HERO, +1, s->color));
|
||||
buttonBonusLeft = std::make_shared<CButton>(Point(259, 5), AnimationPath::builtin("ADOPLFA.DEF"), VLC->generaltexth->zelp[164], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::BONUS, -1, s->color));
|
||||
buttonBonusRight = std::make_shared<CButton>(Point(320, 5), AnimationPath::builtin("ADOPRTA.DEF"), VLC->generaltexth->zelp[165], std::bind(&IServerAPI::setPlayerOption, CSH, LobbyChangePlayerOption::BONUS, +1, s->color));
|
||||
}
|
||||
|
||||
hideUnavailableButtons();
|
||||
@@ -1099,7 +1099,7 @@ OptionsTab::PlayerOptionsEntry::PlayerOptionsEntry(const PlayerSettings & S, con
|
||||
flag = std::make_shared<CButton>(
|
||||
Point(-43, 2),
|
||||
AnimationPath::builtin(flags[s->color.getNum()]),
|
||||
CGI->generaltexth->zelp[180],
|
||||
VLC->generaltexth->zelp[180],
|
||||
std::bind(&OptionsTab::onSetPlayerClicked, &parentTab, *s)
|
||||
);
|
||||
flag->setHoverable(true);
|
||||
|
||||
Reference in New Issue
Block a user