Now that most of the merging is done, I'm looking into the files to make them easier to tweak, starting with Civ4BuildingInfos.xml (the largest one).
First, before discussing them more into details, I'd like to know how useful you'd rate the following things ("useful", "not really useful but not problematic either", "should not be done"):
- Check possible errors on a case-by-case basis
I've stumbled upon probable mistakes; for example the following buildings:
BUILDING_INFO_NET
BUILDING_PARADISE_GARDEN
BUILDING_GLOBE_THEATRE
have two <iPrereqPopulation> (twice 13 for the first two, 13 and 6 for the latter).
I can check every tag, look if there are values that seems off, and report them here.
- Merging similar entries
Probably the result of merging files, I guess that the entries can now be merged now that everything is in the same file. Here's the list of duplicates inside Civ4BuildingInfos.xml:
BUILDING_ARCHERY_RANGE
BUILDING_BAMBOOWORM
BUILDING_EQ_PLUS1
BUILDING_EQ_PLUS10
BUILDING_EQ_PLUS2
BUILDING_EQ_PLUS3
BUILDING_EQ_PLUS4
BUILDING_EQ_PLUS5
BUILDING_EQ_PLUS6
BUILDING_EQ_PLUS7
BUILDING_EQ_PLUS8
BUILDING_EQ_PLUS9
BUILDING_FARM_SUPPLY
BUILDING_PALACE
BUILDING_PALACE
BUILDING_UN_MISSION
- Put the tags in each entry in the same order
Could be any order as long as it's the same everywhere, or the order defined in the schema, or a specific order (see next item).
The idea here is to make it easier to avoid potential errors such as putting the same tag twice as above or to find the value a specific tag for an entry.
- Change the order of each tag
Extending on the last item, the idea here would be to discuss a specific order for the tags, ideally putting together tags in the same "area of influence" (for example <PrereqTech>, <TechTypes><PrereqTech> and <ObsoleteTech>) and putting the most important/frequent tags early (so you don't have to look for <iCost> beyond much less useful tags such as <bAreaCleanPower> or <bAllowsNukes>).
I don't know whether changing the order in the schema would be necessary or useful or impossible by the way.
- Remove unused tags
Some tags never ever have any value for any building, for example <HotKey>. Could be removed altogether to improve readability.
- Harmonize default tags
Extending a bit on the last item, rarely effectively used tags could be removed to improve readability, for example <bAltDown> never has any other value than 0 (and I guess that's the default value). Or buildings that only require one tech should not have anything in <TechTypes><PrereqTech> (instead of <TechTypes><PrereqTech>NONE</PrereqTech><PrereqTech>NONE</PrereqTech><PrereqTech>NONE</PrereqTech><PrereqTech>NONE</PrereqTech></TechTypes> - cf. BUILDING_LIQUORSTORE for an example).
This could also mean agreeing to put again empty or default tags when that improves readability, for example buildings that do not obsolete currently either have a <ObsoleteTech>NONE<ObsoleteTech> instead of <ObsoleteTech><ObsoleteTech> or nothing at all; everything could be set to <ObsoleteTech>NONE<ObsoleteTech>.
- Splitting the BuildingInfo file into different files
Could be for example Great Wonders, National Wonders, ordinary buildings and "pseudobuildings" (diseases, myths...).
- Sorting the entries inside the BuildingInfo file(s)
Could be alphabetical, or chronological by unlocking tech, or anything else.
- Maybe other things I haven't thought of?
Do not hesitate if you have other ideas of things that could be convenient, I'll tell if I think I can do it in a reasonable amount of time.
A little warning, I don't see any risk with the first two items, but the others require going through the table2xml tool I did, which *should* be bugfree by now (I've done many tests with various files) but I can't guarantee it 100% as an entry may have an odd formatting that I might not have taken into account. So going through it will require some playtest afterwards to confirm that nothing went wrong in the process.
Also, attached is the (current) full table of building properties from Civ4BuildingInfos.xml, in csv format, in case it is of help to anyone
View attachment Full building table svn 8478.7z
First, before discussing them more into details, I'd like to know how useful you'd rate the following things ("useful", "not really useful but not problematic either", "should not be done"):
- Check possible errors on a case-by-case basis
I've stumbled upon probable mistakes; for example the following buildings:
BUILDING_INFO_NET
BUILDING_PARADISE_GARDEN
BUILDING_GLOBE_THEATRE
have two <iPrereqPopulation> (twice 13 for the first two, 13 and 6 for the latter).
I can check every tag, look if there are values that seems off, and report them here.
- Merging similar entries
Probably the result of merging files, I guess that the entries can now be merged now that everything is in the same file. Here's the list of duplicates inside Civ4BuildingInfos.xml:
Spoiler :
BUILDING_ARCHERY_RANGE
BUILDING_BAMBOOWORM
BUILDING_EQ_PLUS1
BUILDING_EQ_PLUS10
BUILDING_EQ_PLUS2
BUILDING_EQ_PLUS3
BUILDING_EQ_PLUS4
BUILDING_EQ_PLUS5
BUILDING_EQ_PLUS6
BUILDING_EQ_PLUS7
BUILDING_EQ_PLUS8
BUILDING_EQ_PLUS9
BUILDING_FARM_SUPPLY
BUILDING_PALACE
BUILDING_PALACE
BUILDING_UN_MISSION
- Put the tags in each entry in the same order
Could be any order as long as it's the same everywhere, or the order defined in the schema, or a specific order (see next item).
The idea here is to make it easier to avoid potential errors such as putting the same tag twice as above or to find the value a specific tag for an entry.
- Change the order of each tag
Extending on the last item, the idea here would be to discuss a specific order for the tags, ideally putting together tags in the same "area of influence" (for example <PrereqTech>, <TechTypes><PrereqTech> and <ObsoleteTech>) and putting the most important/frequent tags early (so you don't have to look for <iCost> beyond much less useful tags such as <bAreaCleanPower> or <bAllowsNukes>).
I don't know whether changing the order in the schema would be necessary or useful or impossible by the way.
- Remove unused tags
Some tags never ever have any value for any building, for example <HotKey>. Could be removed altogether to improve readability.
- Harmonize default tags
Extending a bit on the last item, rarely effectively used tags could be removed to improve readability, for example <bAltDown> never has any other value than 0 (and I guess that's the default value). Or buildings that only require one tech should not have anything in <TechTypes><PrereqTech> (instead of <TechTypes><PrereqTech>NONE</PrereqTech><PrereqTech>NONE</PrereqTech><PrereqTech>NONE</PrereqTech><PrereqTech>NONE</PrereqTech></TechTypes> - cf. BUILDING_LIQUORSTORE for an example).
This could also mean agreeing to put again empty or default tags when that improves readability, for example buildings that do not obsolete currently either have a <ObsoleteTech>NONE<ObsoleteTech> instead of <ObsoleteTech><ObsoleteTech> or nothing at all; everything could be set to <ObsoleteTech>NONE<ObsoleteTech>.
- Splitting the BuildingInfo file into different files
Could be for example Great Wonders, National Wonders, ordinary buildings and "pseudobuildings" (diseases, myths...).
- Sorting the entries inside the BuildingInfo file(s)
Could be alphabetical, or chronological by unlocking tech, or anything else.
- Maybe other things I haven't thought of?
Do not hesitate if you have other ideas of things that could be convenient, I'll tell if I think I can do it in a reasonable amount of time.
A little warning, I don't see any risk with the first two items, but the others require going through the table2xml tool I did, which *should* be bugfree by now (I've done many tests with various files) but I can't guarantee it 100% as an entry may have an odd formatting that I might not have taken into account. So going through it will require some playtest afterwards to confirm that nothing went wrong in the process.
Also, attached is the (current) full table of building properties from Civ4BuildingInfos.xml, in csv format, in case it is of help to anyone
View attachment Full building table svn 8478.7z