
Originally Posted by
crux3D
Fingers crossed, I think I've "fixed" it. I think the problem was the dependencies I was generating for the packfiles created by Symphony - or equally, the lack of dependencies in most mod packs (to be fair, it's probably harder for other tools to generate dependencies). Symphony lists all pack files it loaded data from as dependencies and it looks like mod packs are used to determine dependencies, even if they are not loaded.
This could get confusing, so for the following explanation I'm going to use darthmod_shogun.pack (a pack containing db/units_tables/Darth_units) and DMS_Sounds_Packed.pack (a packfile generated by Symphony, containing sounds_packed/sound_bank_database and sounds_packed/sound_events), replace them with whatever your particular packs are called.
For most mods DMS_Sounds_Packed.pack ends up with darthmod_shogun.pack and patch21.pack as the dependencies. When Shogun 2 loads the packfiles it sees that it has to load darthmod_shogun.pack before DMS_Sounds_Packed.pack and that it must also load patch21.pack (and all its dependencies) before DMS_Sounds_Packed.pack, regardless of whether or not it is going to load DMS_Sounds_packed.pack. What it doesn't know is the relative ordering between darthmod_shogun.pack and patch21.pack. This means that, depending on the name of the mod pack, sometime it will load patch21.pack first and darthmod_shogun.pack second, in which case everything will be fine, and sometimes it will load darthmod_shogun.pack first and patch21.pack second, in which case the contents of darthmod_shogun.pack will be overwritten by the contents of patch21.pack, and you get the result that Darth and Kurisu Paifuaa saw.
I have uploaded a new version of Symphony with the dependency generation disabled. Please give it a go and see if it fixes your problems. Please be sure to delete all previously generated sound packs first!
Alright then, would these rather snazzy user.script commands I just help.
Code:
#this is a comment#
set_pack_file_precedence a.pack b.pack #lhs pack precedes rhs pack (lhs < rhs): lhs will be searched before rhs for files#
exclude_pack_file 1.pack #Exclude pack file from the virtual file system#
#also#
#set_pack_file_dependency <pack file name> <pack file name>#
#lhs pack is required by rhs pack (lhs < rhs): lhs will be loaded first and used by rhs pack#
set_precedence and exclude seem (very rough test) to work as expected though I must admit I didn't test set_pack_file_dependancy because I was busy and couldn't think of a simple test quick test and got bored with how slowly shogun loads.