Jump to content
Sign in to follow this  
Nyerguds

A little insight into the workings of C&C95 v1.06c

Recommended Posts

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:

  1. music
  2. game rules
  3. 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×