As the name suggests, Civ4Modder is a modding utility for Sid Meier's Civilization IV. It can take in any mod directory, figure out the differences with the original files and combine multiple such differential mods.
Future plans include adding a mod editor.
CivModder is distributed under the GPL. See the file License.txt for more details.
Civ4Modder Version 0.4 readme Copyright Â© 2005-2006 Mikko Rasa As the name suggests, Civ4Modder is a modding utility for Sid Meier's Civilization IV. It can take in any mod directory, figure out the differences with the original files and combine multiple such differential mods. Future plans include adding a mod editor. CivModder is distributed under the GPL. See the file License.txt for more details. Known problems, limitations and caveats - Removing stuff is not supported (although whole lists can be replaced) - Blindset element type is not yet implemented - The program doesn't (and can't) know about game patches. Mods created for old versions will have extraneous changes and are more likely to conflist with others. - Conflict resolution only reports the first conflicting file - Memory allocations are not checked. The program is likely to crash on large mods if you're low on RAM. Version history 0.1 (released 2005-11-19) - First release 0.2 (released 2005-11-28) - Only load the headers from mods on startup - Add progress bar for applying and creating mods - Report errors to user - Add conflict checking - Implement mod properties dialog - Actually do something with the checkboxes in the list - Clean up the CustomAssets directory before applying - Bugfixes - Diffs (for .py files) can now be applied successfully 0.3 (released 2005-12-23) - Add support for plain lists in XML files - Read the ini file of the mod to determine name and description - Add warnings for weird CustomAssets directories - Add about dialog 0.3.1 (released 2005-12-27) - No conflict if two mods modify the same thing in the same way - Bugfixes - Various crashes in creating mods are now fixed 0.4 (released 2006-06-23) - Revamp the XML diffing system - Element types moved to an external file - Lists are stored as whole if changed - Support value sets - Enforce sensible element types - Add version field to mod properties - Include a very simple text editor for editing mods - XML changes are nicely formatted - Allow selecting precedence when a mod conflict is detected - Start browsing for mod from the Civ4 Mods directory 0.5 (released 2006-07-04) - Add support for more xml files (thanks Impaler) - No conflict for two mods adding a file with exactly same contents - Handle containers/objects with duplicate elements correctly - Remove the previous entry when recreating a mod - Bugfixes - The conflict resolution dialog actually has some effect now - Don't treat CR and LF as binary when determining need for base64 encoding Internals In order to determine differences between XML files, the document tree is traversed depth-first, starting from the root element. Each element is processed according to its category: toplevel Pass through and process first child element. Possible other elemnets are ignored. container Contains any number of sub-elements. Each element must either have a unique name or be an object with a unique key. Modified or added sub-elements are stored. object Much like a container, but also has a key element which is used to identify the object instead of element name. list Contains any number of value sub-elements. Element names are ignored. The whole list is treated as one unit. set Like a list, but each value is considered separately, and their order is ignored. Only added values are stored. value The default element type. Contains a single value and no sub-elements.
There are no comments yet. Be the first!