Azurian
The Azurian
Alberts I was wondering if their could be a third option called Directories (show only errors).
C:\Users\C2c\Desktop\Sid Meier's Civilization 4\Beyond the Sword\Mods\code\trunk\Assets\Modules\Custom_Civilizations\Polynesia\Soundpack\
Assets\Modules\Custom_Civilizations\Polynesia\Soundpack\
-----------------------------------
\Assets\Modules\Custom_Civilizations\Argentina\Soundpack\Argentina_AudioDefines.xml
:17,3: The element 'AudioDefines' in namespace 'x-schema:Argentina_AudioDefinesSchema.xml' has incomplete content. List of possible elements expected: 'x-schema:Argentina_AudioDefinesSchema.xml:ContextTypes'.
-----------------------------------
@Alberts2
Does your XML Validator still work with the current SVN?
Because the test for the Infos object first tests for the existence of the ClassInfos object which you have turned off before it gets to test the dependency.
Of course it will introduce problems since a person has to do twice as much work. It is always better to get the computer to do the work where possible. The computer is less likely to be interrupted while doing stuff and forget something.
First statement says everything about how to avoid this being a problem from a user perspective.No the dependencies are always checked first.
But you can't have a Building as dependency in a BuildingClass because Buildings are loaded later so the dependency always fails. This is because whoever build this loading process did not build it for this kind of usage or it's unfinished. It would be possible use something else like a ArtInfo which is defined in the same module as dependency.
First statement says everything about how to avoid this being a problem from a user perspective.
The second points out how if the loading sequence was reversed you'd just have the same problem... in reverse.
So the building CAN be made dependent ON the Building Class but then the Building Class would have to be made dependent on something else (that loads before building classes.)
So the sequence of what loads when having been adjusted on some occasions might be what's really causing DH to find he can't do some things as he was used to doing them before - some objects may no longer be ok for buildings to be dependent on as they used to be.
But it makes sense that there'd be no way to make the building and its building class both be dependent on each other entirely.
My suggestions are a way of making sure that typos are reported as errors but that WoC eliminated stuff is not shown as errors since they should not be it just needs more work to remove the hanging classes afterwards.
The only thing that I think has changed since WoC is that errors are being reported and you cant tell if they are real ie typos or because you turned off some module and some modder has something (buildingclass, building, unitclass or unit usually) somewhere dependent on what is in that module. This is because the action WoC should be doing after it removes the infos is to check if that the classes that those infos belong to now have no infos elements at all then remove them. After that check to see if all classes have at least one infos.
I tried having both a class and an infos both dependent on something totally different but the same eg both require the same art define but I then got an XML error saying that there was no class for the infos. I will redo this test to make sure and get back to you.
edit My test of putting the test on both infos and classinfos does not cause an error, so my last test was wrong, sorry.
However I think it fraught to have to put the same dependency code into both files since humans make errors. It also doubles the amount of work I now have to do
My suggestions are a way of making sure that typos are reported as errors but that WoC eliminated stuff is not shown as errors since they should not be it just needs more work to remove the hanging classes afterwards.
The only thing that I think has changed since WoC is that errors are being reported and you cant tell if they are real ie typos or because you turned off some module and some modder has something (buildingclass, building, unitclass or unit usually) somewhere dependent on what is in that module. This is because the action WoC should be doing after it removes the infos is to check if that the classes that those infos belong to now have no infos elements at all then remove them. After that check to see if all classes have at least one infos.
I tried having both a class and an infos both dependent on something totally different but the same eg both require the same art define but I then got an XML error saying that there was no class for the infos. I will redo this test to make sure and get back to you.
edit My test of putting the test on both infos and classinfos does not cause an error, so my last test was wrong, sorry.
However I think it fraught to have to put the same dependency code into both files since humans make errors. It also doubles the amount of work I now have to do
It's not possible to test if something is missing because a Module was turned off. Files in disabled modules aren't loaded and doing so would be alot work. Also how should the computer know if you made a typo or not since we don't have spell checking in our dll?.
While doing WoC processing of Infos XML element
if not removed by dependencies
do as usual
else
[B]write Class and Infos to new file[/B]
do rest as usual.
...
When Checking for errors in Class XML
If Class has no Infos
[B] check to see if class is in the new file
if not
error[/B]
this mean that we'd need to DOUBLE up on the memory usage for every piece of data in the game?write Class and Infos to new file
Correct me if I'm wrong but wouldn't:
this mean that we'd need to DOUBLE up on the memory usage for every piece of data in the game?
While doing WoC processing of Infos XML element
if not removed by dependencies
do as usual
else
write Class to new file
do rest as usual.
...
[B]After WoC processing of matching Class and Infos (but still during WoC processing)
If Class has no Infos
check to see if class is in the new file
if it is
remove Class as if it was removed due to dependency
[/B]
...
Do normal testing