Starting with the next version of Mega-Glest (Initial Code already in SVN) we will allow you to run with a special command line parameter to validation your techtrees for known mis-configurations. Example shown below:
./glest.bin --validate-techtrees
Checking techPath [techs] techName [megapack] factionsList.size() = 6
Found faction [egypt]
Found faction [indian]
Found faction [magic]
Found faction [norsemen]
Found faction [persian]
Found faction [tech]
Errors were detected:
=====================
The Unit [archer] in Faction [norsemen] has the command [hold_position]
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
The Unit [crossbow] in Faction [norsemen] has the command [hold_position]
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
The Unit [flyingvalkyrie] in Faction [norsemen] has the command [hold_position]
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
The Unit [spearman] in Faction [norsemen] has the command [hold_position]
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
The Unit [spearman_berzerk] in Faction [norsemen] has the command [hold_position]
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
The Unit [swordman] in Faction [norsemen] has the command [hold_position]
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
The Unit [swordman_berzerk] in Faction [norsemen] has the command [hold_position]
which has upgrade requirement [training_field] but there are no units able to perform the upgrade!
The Upgrade Type [training_field] in Faction [norsemen] has no Unit able to produce this upgrade in this faction!
=====================
Checking resources, count = 6
Found techtree resource [energy]
Found techtree resource [food]
Found techtree resource [gold]
Found techtree resource [housing]
Found techtree resource [stone]
Found techtree resource [wood]
Checking techPath [mydata/techs] techName [game_12] factionsList.size() = 6
Found faction [PC]
Found faction [britan]
Found faction [martians]
Found faction [moon]
Found faction [persian]
Found faction [romans]
Errors were detected:
=====================
The Unit [led] in Faction [PC] has no other units that can produce, build or morph into it in this faction!
The Unit [fallen_capsule] in Faction [martians] has no other units that can produce, build or morph into it in this faction!
The Upgrade Type [advanced_architecture] in Faction [romans] has no Unit able to produce this upgrade in this faction!
=====================
Checking resources, count = 11
Found techtree resource [detirium]
Found techtree resource [energy]
Found techtree resource [fish]
Found techtree resource [food]
Found techtree resource [gold]
Found techtree resource [housing]
Found techtree resource [hp]
Found techtree resource [memory]
Found techtree resource [stone]
Found techtree resource [water]
Found techtree resource [wood]
AND when the XML is bad....
******************************************************
#2 An error ocurred and Glest will close.
Error msg = [Error loading Faction Types: techs/megapack
Error loading units: techs/megapack/factions/tech
Error loading UnitType: techs/megapack/factions/tech/units/blacksmith/blacksmith.xml
The string "castleX" contains a character that is not allowed: "X"
For portability reasons the only allowed characters in this field are: abcdefghijklmnopqrstuvwxyz1234567890._-/]
Please report this bug to contact_game@glest.org, attaching the generated glestv3.3.5.1-alpha3.dmp file.
******************************************************
These validations will grow over time to look for things we discover as known bad entires in the XML files.