IIf someone out there feels like writing a program to translate XML plists to the other format and converts all of oolites plist files, I'll have another go.
To convert XML propertuy lists to old-style ASCII property lists this could be done with a very simple script on a find-and-replace basis.
It would mean that any Windows users would have to convert the contents of expansion packs as well, but if the script were part of the game package...
How about this:
Rewrite the ResourceManager class to load the text file requested for a dictionary as a NSString and check it for a prefix of some part of the <?xml version="1.0" encoding="UTF-8"?>
If it's there, pass the string to a new method (you will have to write) + (NSObject *) parseXMLPropertyListToObjectFromString:(NSString*) plistString
that will parse the content of the string and return a suitable object (NSNumber, NSString, NSArray, NSDictionary).
This method should:
1. replace any 'empty' tags like <true/>, <false/>, <array/>, <dict/> with pairs of tags (use <real>1.0</real> and <real>0.0</real> for </true> and </false>)
2. strip out any tags that aren't <dict></dict>, <string></string>, <integer></integer>, <real></real>, <array></array> or <key></key>
3. consider the outermost tag and either:
3.1 return a simple object if it's <string> or <real> or <integer>
3.2 recursively parse and return collection objects like <array> or <dict>
That's a tedious task, but not too taxing. There may already be pre-existing code in the GNUStep repository that can be borrowed for this.
The linux code could borrow this implementation to avoid the 'unknown DTD' message problem as well.
"The planet Rear is scourged by well-intentioned OXZs."
Oolite models and gear? click here!