- consistent display order for unit and upgrade requirement resources as requested by tomreyn
This commit is contained in:
parent
43bf94c644
commit
b81a0ffdb8
|
@ -325,32 +325,51 @@ void UnitType::load(int id,const string &dir, const TechTree *techTree,
|
||||||
rotationAllowed=true;
|
rotationAllowed=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::map<string,int> sortedItems;
|
||||||
|
|
||||||
//unit requirements
|
//unit requirements
|
||||||
const XmlNode *unitRequirementsNode= parametersNode->getChild("unit-requirements");
|
const XmlNode *unitRequirementsNode= parametersNode->getChild("unit-requirements");
|
||||||
for(int i=0; i<unitRequirementsNode->getChildCount(); ++i){
|
for(int i=0; i<unitRequirementsNode->getChildCount(); ++i){
|
||||||
const XmlNode *unitNode= unitRequirementsNode->getChild("unit", i);
|
const XmlNode *unitNode= unitRequirementsNode->getChild("unit", i);
|
||||||
string name= unitNode->getAttribute("name")->getRestrictedValue();
|
string name= unitNode->getAttribute("name")->getRestrictedValue();
|
||||||
unitReqs.push_back(factionType->getUnitType(name));
|
sortedItems[name] = 0;
|
||||||
}
|
}
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
unitReqs.push_back(factionType->getUnitType(iterMap->first));
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
|
|
||||||
//upgrade requirements
|
//upgrade requirements
|
||||||
const XmlNode *upgradeRequirementsNode= parametersNode->getChild("upgrade-requirements");
|
const XmlNode *upgradeRequirementsNode= parametersNode->getChild("upgrade-requirements");
|
||||||
for(int i=0; i<upgradeRequirementsNode->getChildCount(); ++i){
|
for(int i=0; i<upgradeRequirementsNode->getChildCount(); ++i){
|
||||||
const XmlNode *upgradeReqNode= upgradeRequirementsNode->getChild("upgrade", i);
|
const XmlNode *upgradeReqNode= upgradeRequirementsNode->getChild("upgrade", i);
|
||||||
string name= upgradeReqNode->getAttribute("name")->getRestrictedValue();
|
string name= upgradeReqNode->getAttribute("name")->getRestrictedValue();
|
||||||
upgradeReqs.push_back(factionType->getUpgradeType(name));
|
sortedItems[name] = 0;
|
||||||
}
|
}
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
upgradeReqs.push_back(factionType->getUpgradeType(iterMap->first));
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
//resource requirements
|
//resource requirements
|
||||||
const XmlNode *resourceRequirementsNode= parametersNode->getChild("resource-requirements");
|
const XmlNode *resourceRequirementsNode= parametersNode->getChild("resource-requirements");
|
||||||
costs.resize(resourceRequirementsNode->getChildCount());
|
costs.resize(resourceRequirementsNode->getChildCount());
|
||||||
for(int i=0; i<costs.size(); ++i){
|
for(int i = 0; i < costs.size(); ++i) {
|
||||||
const XmlNode *resourceNode= resourceRequirementsNode->getChild("resource", i);
|
const XmlNode *resourceNode= resourceRequirementsNode->getChild("resource", i);
|
||||||
string name= resourceNode->getAttribute("name")->getRestrictedValue();
|
string name= resourceNode->getAttribute("name")->getRestrictedValue();
|
||||||
int amount= resourceNode->getAttribute("amount")->getIntValue();
|
int amount= resourceNode->getAttribute("amount")->getIntValue();
|
||||||
costs[i].init(techTree->getResourceType(name), amount);
|
sortedItems[name] = amount;
|
||||||
}
|
}
|
||||||
|
int index = 0;
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
costs[index].init(techTree->getResourceType(iterMap->first), iterMap->second);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
//resources stored
|
//resources stored
|
||||||
const XmlNode *resourcesStoredNode= parametersNode->getChild("resources-stored");
|
const XmlNode *resourcesStoredNode= parametersNode->getChild("resources-stored");
|
||||||
|
@ -359,8 +378,15 @@ void UnitType::load(int id,const string &dir, const TechTree *techTree,
|
||||||
const XmlNode *resourceNode= resourcesStoredNode->getChild("resource", i);
|
const XmlNode *resourceNode= resourcesStoredNode->getChild("resource", i);
|
||||||
string name= resourceNode->getAttribute("name")->getRestrictedValue();
|
string name= resourceNode->getAttribute("name")->getRestrictedValue();
|
||||||
int amount= resourceNode->getAttribute("amount")->getIntValue();
|
int amount= resourceNode->getAttribute("amount")->getIntValue();
|
||||||
storedResources[i].init(techTree->getResourceType(name), amount);
|
sortedItems[name] = amount;
|
||||||
}
|
}
|
||||||
|
index = 0;
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
storedResources[index].init(techTree->getResourceType(iterMap->first), iterMap->second);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
//image
|
//image
|
||||||
const XmlNode *imageNode= parametersNode->getChild("image");
|
const XmlNode *imageNode= parametersNode->getChild("image");
|
||||||
|
|
|
@ -83,39 +83,64 @@ void UpgradeType::load(const string &dir, const TechTree *techTree,
|
||||||
const XmlNode *upgradeTimeNode= upgradeNode->getChild("time");
|
const XmlNode *upgradeTimeNode= upgradeNode->getChild("time");
|
||||||
productionTime= upgradeTimeNode->getAttribute("value")->getIntValue();
|
productionTime= upgradeTimeNode->getAttribute("value")->getIntValue();
|
||||||
|
|
||||||
|
std::map<string,int> sortedItems;
|
||||||
|
|
||||||
//unit requirements
|
//unit requirements
|
||||||
const XmlNode *unitRequirementsNode= upgradeNode->getChild("unit-requirements");
|
const XmlNode *unitRequirementsNode= upgradeNode->getChild("unit-requirements");
|
||||||
for(int i = 0; i < unitRequirementsNode->getChildCount(); ++i) {
|
for(int i = 0; i < unitRequirementsNode->getChildCount(); ++i) {
|
||||||
const XmlNode *unitNode= unitRequirementsNode->getChild("unit", i);
|
const XmlNode *unitNode= unitRequirementsNode->getChild("unit", i);
|
||||||
string name= unitNode->getAttribute("name")->getRestrictedValue();
|
string name= unitNode->getAttribute("name")->getRestrictedValue();
|
||||||
unitReqs.push_back(factionType->getUnitType(name));
|
sortedItems[name] = 0;
|
||||||
}
|
}
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
unitReqs.push_back(factionType->getUnitType(iterMap->first));
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
//upgrade requirements
|
//upgrade requirements
|
||||||
const XmlNode *upgradeRequirementsNode= upgradeNode->getChild("upgrade-requirements");
|
const XmlNode *upgradeRequirementsNode= upgradeNode->getChild("upgrade-requirements");
|
||||||
for(int i = 0; i < upgradeRequirementsNode->getChildCount(); ++i) {
|
for(int i = 0; i < upgradeRequirementsNode->getChildCount(); ++i) {
|
||||||
const XmlNode *upgradeReqNode= upgradeRequirementsNode->getChild("upgrade", i);
|
const XmlNode *upgradeReqNode= upgradeRequirementsNode->getChild("upgrade", i);
|
||||||
string name= upgradeReqNode->getAttribute("name")->getRestrictedValue();
|
string name= upgradeReqNode->getAttribute("name")->getRestrictedValue();
|
||||||
upgradeReqs.push_back(factionType->getUpgradeType(name));
|
sortedItems[name] = 0;
|
||||||
}
|
}
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
upgradeReqs.push_back(factionType->getUpgradeType(iterMap->first));
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
//resource requirements
|
//resource requirements
|
||||||
|
int index = 0;
|
||||||
const XmlNode *resourceRequirementsNode= upgradeNode->getChild("resource-requirements");
|
const XmlNode *resourceRequirementsNode= upgradeNode->getChild("resource-requirements");
|
||||||
costs.resize(resourceRequirementsNode->getChildCount());
|
costs.resize(resourceRequirementsNode->getChildCount());
|
||||||
for(int i = 0; i < costs.size(); ++i) {
|
for(int i = 0; i < costs.size(); ++i) {
|
||||||
const XmlNode *resourceNode= resourceRequirementsNode->getChild("resource", i);
|
const XmlNode *resourceNode= resourceRequirementsNode->getChild("resource", i);
|
||||||
string name= resourceNode->getAttribute("name")->getRestrictedValue();
|
string name= resourceNode->getAttribute("name")->getRestrictedValue();
|
||||||
int amount= resourceNode->getAttribute("amount")->getIntValue();
|
int amount= resourceNode->getAttribute("amount")->getIntValue();
|
||||||
costs[i].init(techTree->getResourceType(name), amount);
|
sortedItems[name] = amount;
|
||||||
}
|
}
|
||||||
|
index = 0;
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
costs[index].init(techTree->getResourceType(iterMap->first), iterMap->second);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
//effects
|
//effects
|
||||||
const XmlNode *effectsNode= upgradeNode->getChild("effects");
|
const XmlNode *effectsNode= upgradeNode->getChild("effects");
|
||||||
for(int i = 0; i < effectsNode->getChildCount(); ++i) {
|
for(int i = 0; i < effectsNode->getChildCount(); ++i) {
|
||||||
const XmlNode *unitNode= effectsNode->getChild("unit", i);
|
const XmlNode *unitNode= effectsNode->getChild("unit", i);
|
||||||
string name= unitNode->getAttribute("name")->getRestrictedValue();
|
string name= unitNode->getAttribute("name")->getRestrictedValue();
|
||||||
effects.push_back(factionType->getUnitType(name));
|
sortedItems[name] = 0;
|
||||||
}
|
}
|
||||||
|
for(std::map<string,int>::iterator iterMap = sortedItems.begin();
|
||||||
|
iterMap != sortedItems.end(); ++iterMap) {
|
||||||
|
effects.push_back(factionType->getUnitType(iterMap->first));
|
||||||
|
}
|
||||||
|
sortedItems.clear();
|
||||||
|
|
||||||
//values
|
//values
|
||||||
maxHp= upgradeNode->getChild("max-hp")->getAttribute("value")->getIntValue();
|
maxHp= upgradeNode->getChild("max-hp")->getAttribute("value")->getIntValue();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user