|
|
@@ -124,7 +124,7 @@ static std::string convertMapName(std::string input)
|
|
|
return input;
|
|
|
}
|
|
|
|
|
|
-std::string CampaignHandler::readLocalizedString(CBinaryReader & reader, std::string filename, std::string modName, std::string encoding, std::string identifier)
|
|
|
+std::string CampaignHandler::readLocalizedString(CampaignHeader & target, CBinaryReader & reader, std::string filename, std::string modName, std::string encoding, std::string identifier)
|
|
|
{
|
|
|
TextIdentifier stringID( "campaign", convertMapName(filename), identifier);
|
|
|
|
|
|
@@ -133,7 +133,7 @@ std::string CampaignHandler::readLocalizedString(CBinaryReader & reader, std::st
|
|
|
if (input.empty())
|
|
|
return "";
|
|
|
|
|
|
- VLC->generaltexth->registerString(modName, stringID, input);
|
|
|
+ target.getTexts().registerString(modName, stringID, input);
|
|
|
return stringID.get();
|
|
|
}
|
|
|
|
|
|
@@ -383,8 +383,8 @@ void CampaignHandler::readHeaderFromMemory( CampaignHeader & ret, CBinaryReader
|
|
|
ret.version = static_cast<CampaignVersion>(reader.readUInt32());
|
|
|
ui8 campId = reader.readUInt8() - 1;//change range of it from [1, 20] to [0, 19]
|
|
|
ret.loadLegacyData(campId);
|
|
|
- ret.name.appendTextID(readLocalizedString(reader, filename, modName, encoding, "name"));
|
|
|
- ret.description.appendTextID(readLocalizedString(reader, filename, modName, encoding, "description"));
|
|
|
+ ret.name.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "name"));
|
|
|
+ ret.description.appendTextID(readLocalizedString(ret, reader, filename, modName, encoding, "description"));
|
|
|
if (ret.version > CampaignVersion::RoE)
|
|
|
ret.difficultyChoosenByPlayer = reader.readInt8();
|
|
|
else
|
|
|
@@ -396,7 +396,7 @@ void CampaignHandler::readHeaderFromMemory( CampaignHeader & ret, CBinaryReader
|
|
|
ret.encoding = encoding;
|
|
|
}
|
|
|
|
|
|
-CampaignScenario CampaignHandler::readScenarioFromMemory( CBinaryReader & reader, const CampaignHeader & header)
|
|
|
+CampaignScenario CampaignHandler::readScenarioFromMemory( CBinaryReader & reader, CampaignHeader & header)
|
|
|
{
|
|
|
auto prologEpilogReader = [&](const std::string & identifier) -> CampaignScenarioPrologEpilog
|
|
|
{
|
|
|
@@ -410,7 +410,7 @@ CampaignScenario CampaignHandler::readScenarioFromMemory( CBinaryReader & reader
|
|
|
ret.prologVideo = CampaignHandler::prologVideoName(index);
|
|
|
ret.prologMusic = CampaignHandler::prologMusicName(reader.readUInt8());
|
|
|
ret.prologVoice = isOriginalCampaign ? CampaignHandler::prologVoiceName(index) : AudioPath();
|
|
|
- ret.prologText.appendTextID(readLocalizedString(reader, header.filename, header.modName, header.encoding, identifier));
|
|
|
+ ret.prologText.appendTextID(readLocalizedString(header, reader, header.filename, header.modName, header.encoding, identifier));
|
|
|
}
|
|
|
return ret;
|
|
|
};
|
|
|
@@ -428,7 +428,7 @@ CampaignScenario CampaignHandler::readScenarioFromMemory( CBinaryReader & reader
|
|
|
}
|
|
|
ret.regionColor = reader.readUInt8();
|
|
|
ret.difficulty = reader.readUInt8();
|
|
|
- ret.regionText.appendTextID(readLocalizedString(reader, header.filename, header.modName, header.encoding, ret.mapName + ".region"));
|
|
|
+ ret.regionText.appendTextID(readLocalizedString(header, reader, header.filename, header.modName, header.encoding, ret.mapName + ".region"));
|
|
|
ret.prolog = prologEpilogReader(ret.mapName + ".prolog");
|
|
|
ret.epilog = prologEpilogReader(ret.mapName + ".epilog");
|
|
|
|