Nyerguds 102 Posted November 21, 2010 This topic is mostly here to show potential mod or language pack makers exactly which files have priority over which others, and which settings are needed to make your addons replace certain game elements correctly. I'll start with the modding system. This is basically the order of function calls on game startup. Note that this is the new system I just implemented for 1.06c revision 2, but most of it is pretty much the same in revision 1. The only really new thing is the addition of custom music and rules ini files, and the fact string override files can now also be put in language settings. Which is mostly for language support in mods, though. Here is the read order: -------------------------------------------- [sTARTUP SETTINGS READ] 1. Command line parameters are read (settings priority: highest) 2. Conquer.ini is read (settings priority: lowest) Command line parameters should always take priority over ini settings, since ini settings are 'saved defaults' while parameters are run-specific settings. In this case, the settings in question are the mod name and -cd status. Note that v1.06c revision 2 will disable TFD's "-cdcovert" parameter to make the ini-based no-cd options work correctly. -------------------------------------------- [LANGUAGE & MOD FILES AND SETTINGS READ] 1. Load cclocal.mix (mix priority: highest) - contains: conquer.eng/ger/fre strings files mouse.shp file font files ccmenu.pal palette used for startup error messages. - These files cannot be overridden, unless you change the filename the game uses with the language & mod controls. Such controls are available for all files besides the ccmenu palette. I'm considering changing the reading order to make it load after the mod and language files though. 2. Load mod & language mixfiles 2.1 Load mod mixfile (mix priority: second) 2.1.1 Load mod-specific settings from the mod's ini file - loads: filename overrides: MouseCursor / ScoresFile / RulesFile 2.1.2 Load extra mod mixfiles specified in the mod's ini file (mix priority: third) 2.2 Load language mixfile (mix priority: fourth) 3. Read sc*.mix / ss*.mix files (mix priority: fifth) 4. Read updat*.mix / updtr*.mix files (mix priority: sixth) - These contain the game title screens, default language ini settings, GUI elements, and video stretch palettes. 5. Read language settings (language settings priority: lowest) - loads: ini tag overrides: MisNametag / MisBrieftag language filename overrides: StringsExt / Brieffile CD folder for language: CDDir mix filename overrides: MIXSpeech / MIXTalk / MIXIcnh SHP filename overrides: SHPPips / SHPRepair / SHPSell / SHPMap Font filename overrides: FNTGrad6 / FNT12green / FNT12grngrd / FNT8fat / FNTVcr animations/images filename overrides: WSAMulScore / CPSAttract title screen overrides: PCXTitleLo/PCXTitleHi/PCXTitleHi2 (PCXTitleHi2 = 1024x640 title screen) name of ini file with string overrides: CustomStringsFile 6. Read mod-overrides of language settings (language settings priority: highest) --------------------------------- [APPLYING RULES & LOADING GAME FILES] 1. Rules settings are read from ini files: music game rules string overrides 2. Original "capturable" states of all buildings are read and backed up. 3. Game fonts are loaded 4. Mouse SHP is loaded 5. Language file is loaded 6. Startup error messages palette (CCMENU.PAL) is loaded 7. CD check 8. Game mixfiles are read 9. Intro movie plays, main menu loads -------------------------------------------- As you see, mixfiles that are read first are seen as highest priority. The system that looks for a file in the mixfiles does so in the order in which the mixfiles are loaded, and the first file it finds is used. For the language settings, the opposite applies. Settings are overwritten by settings that are read later, meaning a mod first loads the language settings, and then adds its own modifications to them before any game files are actually loaded. I'll post information on the reading order of strings later, more specifically concerning the language-specific names in the New Missions and multiplayer maps list, and the briefing text for missions, to make it clear which string is used for each specific case. Share this post Link to post