setLockedUnitsForFaction

*save locked Units in savegames ( and load them when savegame is loaded )
This commit is contained in:
titison 2014-11-16 18:32:13 +01:00
parent 5de94dccc9
commit 7eb04e1583

View File

@ -2267,6 +2267,13 @@ void Faction::saveGame(XmlNode *rootNode) {
factionNode->addAttribute("currentSwitchTeamVoteFactionIndex",intToStr(currentSwitchTeamVoteFactionIndex), mapTagReplacements); factionNode->addAttribute("currentSwitchTeamVoteFactionIndex",intToStr(currentSwitchTeamVoteFactionIndex), mapTagReplacements);
factionNode->addAttribute("allowSharedTeamUnits",intToStr(allowSharedTeamUnits), mapTagReplacements); factionNode->addAttribute("allowSharedTeamUnits",intToStr(allowSharedTeamUnits), mapTagReplacements);
for(std::set<const UnitType*>::iterator iterMap = lockedUnits.begin();
iterMap != lockedUnits.end(); ++iterMap) {
XmlNode *lockedUnitsListNode = factionNode->addChild("lockedUnitList");
const UnitType *ut=*iterMap;
lockedUnitsListNode->addAttribute("value",ut->getName(false), mapTagReplacements);
}
for(std::map<int,int>::iterator iterMap = unitsMovingList.begin(); for(std::map<int,int>::iterator iterMap = unitsMovingList.begin();
iterMap != unitsMovingList.end(); ++iterMap) { iterMap != unitsMovingList.end(); ++iterMap) {
@ -2359,6 +2366,14 @@ void Faction::loadGame(const XmlNode *rootNode, int factionIndex,GameSettings *s
random.setLastNumber(factionNode->getAttribute("random")->getIntValue()); random.setLastNumber(factionNode->getAttribute("random")->getIntValue());
vector<XmlNode *> lockedUnitsListNodeList = factionNode->getChildList("lockedUnitList");
for(unsigned int i = 0; i < lockedUnitsListNodeList.size(); ++i) {
XmlNode *lockedUnitsListNode = lockedUnitsListNodeList[i];
string unitName = lockedUnitsListNode->getAttribute("value")->getValue();
lockedUnits.insert(getType()->getUnitType(unitName));
}
vector<XmlNode *> unitsMovingListNodeList = factionNode->getChildList("unitsMovingList"); vector<XmlNode *> unitsMovingListNodeList = factionNode->getChildList("unitsMovingList");
for(unsigned int i = 0; i < unitsMovingListNodeList.size(); ++i) { for(unsigned int i = 0; i < unitsMovingListNodeList.size(); ++i) {
XmlNode *unitsMovingListNode = unitsMovingListNodeList[i]; XmlNode *unitsMovingListNode = unitsMovingListNodeList[i];