Jump to content

Anniversary Edition/Framework: Difference between revisions

→‎Installation: oops, I forgot to document the steps after the .oni->.dat part
m (→‎Installation: indentation for better readability)
(→‎Installation: oops, I forgot to document the steps after the .oni->.dat part)
Line 13: Line 13:
After this, the user can choose some mods to install. When the Install button is clicked, the Installer (AEI) performs the following actions:
After this, the user can choose some mods to install. When the Install button is clicked, the Installer (AEI) performs the following actions:


1. Look at which levels will be altered by current selection of mods, and delete those levels' .dat/.raw(/.sep) files from AE's GDF.
1. Look at which levels will be altered by comparing the current selection of mods to the set of previously installed mods, and delete those levels' .dat/.raw(/.sep) files from AE's GDF.


2. Collect .oni files that will be patched by an XML patch mod by calling OniSplit with -export: switch. The .oni files are stored in a system temporary directory, so they will be automatically deleted by the OS later.
2. Collect .oni files that will be patched by an XML patch mod by calling OniSplit with -export: switch. The .oni files are stored in a system temporary directory, so they will be automatically deleted by the OS later.
Line 33: Line 33:
6. Build new level files by calling OniSplit with "pack -out" switch.
6. Build new level files by calling OniSplit with "pack -out" switch.


:For each level, the AEI passes OniSplit the location of the vanilla AE .dat (in AE/AEInstaller/vanilla/) plus a list of directories that contain .oni files meant for that level, in ascending order by mod number so that higher-numbered mods override lower ones*. The last directory in the list is the temporary directory containing the patched .oni files from step 5, so that the patched files override any other versions of those resources. The final .dat/.raw(/.sep) files have now been created in the AE's GDF.
:For each level, the AEI passes OniSplit the location of the vanilla AE .dat (in AE/AEInstaller/vanilla/) plus a list of directories that contain .oni files meant for that level in ascending order by mod number, so that higher-numbered mods override lower ones*. The last directory in the list is the temporary directory containing the patched .oni files from step 5, so that the patched files override any other versions of those resources. The final .dat/.raw(/.sep) files have now been created in the AE's GDF.


:<nowiki>*</nowiki>Note that this is on a file-by-file basis. So a package numbered 11111 will only override package 11110 wherever their files conflict, when they are both installed. Thus a package numbered 11111 could be used intentionally to override only certain files in 11110, e.g., to improve or fix them. On the other hand, a partial override by a higher package might be an undesirable interaction. It's the responsibility of the modders to be aware when there's an unwanted interaction and to mark their mod as being incompatible with the other one using the Incompatibility flag described in [[Making a mod package]].
::<nowiki>*</nowiki>Note that this is on a file-by-file basis. So a package numbered 11111 will only override package 11110 wherever their files conflict, when they are both installed. Thus a package numbered 11111 could be used intentionally to override only certain files in 11110, e.g., to improve or fix them. On the other hand, a partial override by a higher package might be an undesirable interaction. It's the responsibility of the modders to be aware when there's an unwanted interaction and to mark their mod as being incompatible with the other one using the Incompatibility flag described in [[Making a mod package]].
 
7. BSL files are treated similarly to .oni files. Mods with bsl/ folders are considered in ascending order and the highest-numbered mod that affects a given level has its BSL files copied to the AE IGMD folder. The special case with BSL is the "addon" feature. When a mod's Mod_Info.cfg uses the "HasBSL->Addon" flag, those mods' BSL files are considered after the highest-numbered regular BSL mod (or vanilla BSL, in the absence of any mod) is installed for each level. The addon BSL files are copied into the desired level folders, overwriting whatever file by the same name already exists there.
 
:Secret feature: If a modder is experimenting with his own script in a given level's BSL folder, he can place an ignore.txt file in that folder (no contents necessary) in order to prevent the AEI from wiping out the BSL in that folder in case a mod tries to affect it.
 
8. Plain files (files in a mod's plain/ directory) are copied into the directory specified within the platform folders within the plain/ folder. E.g., if the mod contains the directory plain/common/Tools/, then the files in that directory will be copied into a Tools folder in the AE/ directory.
 
9. If the user's AEI preferences call for it, the intro and/or outro videos are copied from the vanilla Oni GDF to the AE GDF.
 
10. Any new levels that were added by mods to the game are unlocked by editing persist.dat so that they are accessible from the Load Game dialog.


[[Category:Anniversary Edition]]
[[Category:Anniversary Edition]]