Load order and minimal changes.

Would this be possible?

It seems like most mods end up changing the same files which means that someone has to go
through by hand to try and merge separate mods. Plus, even if a mod only changes two ettings
in a table you still need to copy the entire file. I don't know how feasible this would be but I think it would make it easier for modders if they only had to place what they're changing in a table in the root folder instead of the entire file.

For example, I am currently playing through SR4 and making some camera changes to make it more of a "true" third person view instead of the "over the shoulder" third person view. My
mod looks something like this:

camera_free.xtbl
|
- root
|
- Table
|
- Camera
|
- bunch of stuff I'm not touching
|
- submode
|
- exterior close
|
- lookat_offset
- base_fov
- z_dist
- y_dist
- x_shift (my change)
- more stuff
- more stuff I'm not touching
- interior close
|
- lookat_offset
- base_fov
- z_dist
- y_dist
- x_shift (my change)
- more stuff
- more stuff I'm not touching

It would be nice if I could just include what I changed and omit everything else, like the following:

camera_free.xtbl
|
- root
|
- Table
|
- Camera
|
- submode
|
- exterior close
|
- x_shift
- interior close (my changes)
|
- x_shift

This would help me find my changes as I'm trying to tweak them. Plus it would help others trying to learn how a particular mod works by focusing on whats different. And it would help when trying to merge mods. Of course it would probably mean changing the order in which the game loads things. It would have to load the packfile version from the cache folder first and then overwrite table entries with any mod information.

EDIT: The forum flattened the tree but anyone who has looked inside one of the XTBL files should get the idea.
 
I have almost no doubt it's a non-trivial task. Obviously I don't know the inner workings so depending on how they deal with the data once it's loaded it could be more or less difficult to accomplish on their side. If the data gets store in a neat data structure at some point with all sorts of manipulators and such it'd might be easier, if it's read then values are set and the rest discarded, it'll probably be harder. Since console often have tighter memory constraints minimizing overhead probably preferred. But I could be completely wrong.

I could see a some what simple and dirty way of doing it by line and offset edits. It could all be done before the game loads the actual files. Basically you would read files that contain line numbers or offsets with the data to replace the previous. Conflicts would still need to be resolved manually if you alter the same part, probably with the last item taking precedence by default. An override file with the line changes could then be placed in the root directory like we do now then allow thing to proceed as usual. This is something I bet the community could actually do ourselves either with some kind of mod manager program or dll injection. Though the latter is probably some what undesirable.
 
Back
Top