Geoff the Medio wrote:
Oddity: If the first line of techs.xml has a space before <?xml version="1.0"?>, the tech-check.exe crashes and gives this output:
Code:
C:\FreeOrion>tech-check
Loading tech tree file "default/techs.xml" ...
Assertion failed: !m_techs.empty(), file C:\Documents and Settings\tzlaine\Deskt
op\FreeOrion\universe\Tech.cpp, line 336
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
C:\FreeOrion>
You might want to put a warning about that somewhere, or just strip the leading whitespace...
If that causes a problem, don't do that.
Quote:
Sometimes, if I put a nonexistant tech as a prerequisite, I get:
Code:
C:\FreeOrion>tech-check
Loading tech tree file "default/techs.xml" ...
main() caught unknown exception.
C:\FreeOrion>
This isn't consistent though... A techs.xml with just a single tech and a nonexistant prereq just lists the single tech as having no prereqs...
In any case, I strongly encourage you to put in some useful output for the case of techs having nonexistant prereqs... It's horridly tedious and time consuming to have to go through the tree taking things out (and removing any new broken prereqs this creates) to find the problematic one.
Then don't add problematic ones. Adding techs and running tech-check on them one at a time will catch this in a non-"horrid" way. Welcome to programming. This program isn't your mother. It's just supposed to find the most glaring mistakes.
Quote:
Also, the circular dependency issue mentioned above is still present with the new tech-check.exe, which gives the same output as in the previous post on the subject.
Also also, I notice you've added the RefineBuildingType effect which can add effects groups to building descriptions. Is there any chance we'll be able to remove effects groups as well?
No chance. If you want to remove an effect, add its inverse, if that's possible.
Quote:
Edit: I'm getting an error message about redudnant dependencies from tech-check. Why is this disallowed?
Because they're redundant, obviously. It's just plain unnatural to say that tech A requires tech B,
twice. If you were to see what the redundant dependency lines look like in the actual tech tree layout, you wouldn't ask this question. It's confusing as hell.