--- When starting the program on my system (WinXP pro) the window is out of the bounds of my desktop. It may have something to do with me using large font sizes, not sure. When I change the size of the program window the top bar appears and I can move the window around, so it's not a big problem. Just wanted to mention it...
--- AFAIK there's a limit on ID numbers, some 7 digit number IIRC. Using an ID higher than this number can lead to a CTD on loading, or the game complaining about attempting to create a monarch/leader/whatever with an already used ID. I don't know the exact number myself, but I'm sure someone with access to the sourcecode can provide it. Since the error message given by the game is incorrect, I think it's important to include this check.
--- The validator complains about multiple instances of country tags in the revolt.txt. I remember how a few years ago I successfully used a technique which involved multiple country tags with different dates to achieve a revolting nation with different revolting provinces depending on the year of the revolt. I'm not sure whether that was EU2, CK, or HoI2 though. MichaelM, could you comment on the possibility of this method in FTG? Because if that's a valid method, then I suggest checking the date spans of the respective revolter countries before throwing an exception.
--- Please include a validation that technology levels in the scenario file are within the bounds of said technology as defined in \db\technologies.
=o= The validator seems to complain about the "absolutestartyear" header key which is new in FTG. Also it complains about the absence of "startdate" which can be replaced by "startyear".
=o= The validator complains if it doesn't find a "flagname" struct in the header. AFAIK there's no difference between an empty flagname struct and none at all.
=o= The validator complains about NAT not being listed in the playable countries list.
=o= The validator doesn't seem to recognise AI structs directly written in scenario files and inc files, i.e. something like this:
Code:
country = {
tag = MUS
ai = {
expansion = 0
tradingpost = 100
neighbour = 100
enemies = -100
traders = 100
monopoly = 0
war = -400.0
ferocity = no
sreligion = no
naval = 0.0
galleys = no
}
...
}
AFAIK this has been possible and done since EU2.
=o= The validator doesn't recognise "failure" keys in cot structs.
=o= Also, looking at the code I see the validator checks whether the total number of merchants in a cot is <=30, when it should be <=20. Furthermore the validator doesn't check whether a merchant's tag country exists at all.
=o= The validator thinks relation values have to be integers, which they don't. Same with army/navy numbers.
=o= The validator doesn't recognise the short forms art, inf, cav.
I've corrected most of the issues above (the ones marked with =o=) myself and uploaded the updated files here:
happy little link
Further changes: Made all keys in AI files optional if debug mode. Added a few missing keys and created some types (FlagsList, ContinentList, RegionList, AreaList). You should probably check all files against yours with Winmerge or similar differencing tools to make sure I didn't do anything wrong.
BTW I think you should introduce a new type, an integer in float format (like 2.000), because that's the format the game stores most integers in. Or FTG needs to stop saving integers as floats, which would also save space... a bit.
EDIT: Am I correct that "\data\ftg\scenarios.pdox" isn't used anymore and has been superseded by the files in "\data\ftg\scenarios\"?
EDIT2: A few more fixes...
=o= Added a lot of keys to country definition such as stabilitypercentage, landmaintenance, estimation, basevp, loan, elector, ...
I saw you had some of those implemented as untyped childs, which I found very strange. I assume you wanted to include them at a later point and didn't get to it yet. Anyway, I killed these entries.
=o= Units now can have more than one leader assigned.
=o= Provinces in scenarios can now be land or sea provinces, since the "winter" and "storm" bools are valid for sea provinces. You should probably update the code to differentiate between land and sea though.
=o= Updated militaryalliances, wars, etc.
=o= Set geography and colour names to be case-insensitive (only in debug mode).
=o= Event actions can now have more than one "capital" command (only in debug mode).
=o= Added "hre" and "storm" keys to province definition.
=o= Added "running" and "datecompleted" to the city clause.
=o= Added "port" for navies.
=o= Set "natives" key in province clause to integer and added "tolerance" and "ferocity".
The happy little link above has been updated.
MichaelM, can you comment on what the "rank" key in monarch structs is for? It seems the game always sets it to 100 on saving.
Also, the game saves victory points twice, like this:
The second vaue is always zero. I doubt this is intended.
And is the "elector" parameter for countries obsolete? It's not in any Vanilla or AGCEEP files, but if you add it to a country in a scenario the game will pass it on to the savegame.
Is there still a limit of 30 COTs?
EDIT3: Oh and I think I also added something to the event/command files... triggers in actions and other things. You should really check it in Winmerge...
EDIT4: Is it possible that there are exactly three instances in exactly two files in exactly one game (FTG) where "strictness" makes any kind of difference regarding thrown exceptions and such?