1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Added encapsulation for CampaignState class

This commit is contained in:
Ivan Savenko
2023-06-26 00:01:25 +03:00
parent 8420a90aa4
commit a08fe09517
12 changed files with 203 additions and 127 deletions

View File

@@ -211,18 +211,18 @@ void ApplyOnServerNetPackVisitor::visitLobbySetMap(LobbySetMap & pack)
void ApplyOnServerNetPackVisitor::visitLobbySetCampaign(LobbySetCampaign & pack)
{
srv.si->mapname = pack.ourCampaign->header.filename;
srv.si->mapname = pack.ourCampaign->getHeader().filename;
srv.si->mode = StartInfo::CAMPAIGN;
srv.si->campState = pack.ourCampaign;
srv.si->turnTime = 0;
bool isCurrentMapConquerable = pack.ourCampaign->currentMap && pack.ourCampaign->conquerable(*pack.ourCampaign->currentMap);
for(int i = 0; i < pack.ourCampaign->scenarios.size(); i++)
{
auto scenarioID = static_cast<CampaignScenarioID>(i);
if(pack.ourCampaign->conquerable(scenarioID))
bool isCurrentMapConquerable = pack.ourCampaign->currentScenario() && pack.ourCampaign->isAvailable(*pack.ourCampaign->currentScenario());
for(auto scenarioID : pack.ourCampaign->allScenarios())
{
if(pack.ourCampaign->isAvailable(scenarioID))
{
if(!isCurrentMapConquerable || (isCurrentMapConquerable && scenarioID == *pack.ourCampaign->currentMap))
if(!isCurrentMapConquerable || (isCurrentMapConquerable && scenarioID == *pack.ourCampaign->currentScenario()))
{
srv.setCampaignMap(scenarioID);
}