FANDOM


This page describes fixed files retrieved and loaded by the game, used internally for mechanics and data sources that end up as the basic data tables and resources that are consumed at runtime.

Keep in mind that while these hashcodes, loading order and format are all set in stone, the files themselves (as well as their names and contents) are not, other than their general structure.

The files are listed in chronological order since game startup, unless otherwise indicated.

Game boot Edit

Hidden loading bar and nothing else gets rendered.

HT_File_F01_Bootup ./_bin_PC/F01_Boot.edb Sphinx\Grafix\Maps\Misc\FE_Bootup.elf

One bootup file for all languages, even if there are multiple ELFs they decided to use the English version.

After this, we also need to load the language-dependent pickups file; which includes the main font and the memcard dialog. Because every language has its own font, with a different set of Unicode glyphs, we need it now.

HT_File_O01_PickUps

HT_File_O01_PickUps_French

HT_File_O01_PickUps_Italian

HT_File_O01_PickUps_German

HT_File_O01_PickUps_Spanish

HT_File_O01_PickUps_Korean

./_bin_PC/O01_Pick.edb

./_bin_PC/O01_Fren.edb

./_bin_PC/O01_Ital.edb

./_bin_PC/O01_Germ.edb

./_bin_PC/O01_Span.edb

./_bin_PC/O01_Kore.edb

Grafix\Maps\Misc\FE_Misc.ELF

Grafix\Maps\Misc\FE_Misc_French.ELF

Grafix\Maps\Misc\FE_Misc_Italian.ELF

Grafix\Maps\Misc\FE_Misc_German.ELF

Grafix\Maps\Misc\FE_Misc_Spanish.ELF

Grafix\Maps\Misc\FE_Misc_Korean.ELF

At this time we also start loading the text file, at least the section zero for the memcard text. Keep in mind that this file is pretty big, and only the basic header and the needed sections are actually relocated on RAM. Everything else persists on disc.

HT_File_Text ./_bin_PC/Text.edb Section 0 Sphinx\Grafix\Maps\Misc\Text.ELF

Black until now. After all these files are synchronously loaded HT_Script_Bootup_MainScript is retrieved and starts showing. This script has a special HudScript_Button scripted event of type HT_HudScriptButton_Memcard_StartupCheck that will wait for the memcard to be ready before proceeding. The button sets the next chained script to HT_Script_Bootup_LegalScreen, that will become active when reaching the HudScript_Jump event at the end of the timeline. So the only hardcoded part is that this main script is loaded, most of the other events are configurable.

The initial legal screen script (HT_Script_Bootup_LegalScreen) should start after the HudScript jump, the game waits for the legal script to start before proceeding any further and starting the hidden loading screen, all the previous synchronous files should be loaded at this point.

One-off static data initialisation Edit

All these spreadsheets and resources are asynchronously loaded, their data imported and their EDB files unloaded, all this is only done once while the legal screen is showing. It won't fade out until all these files are processed.

HT_File_ContextActions OO_Actio.edb Maps\Misc\OO_Actions.elf
HT_File_InventoryItems OO_Inven.edb Maps\Misc\oo_InventoryItems.elf
HT_File_LoadScreensGC

HT_File_LoadScreensXB

HT_File_LoadScreensPS2

OO_LSGC.edb

OO_LSXB.edb

OO_LSPS2.edb

HT_SpreadSheet_LoadScreensGC

HT_SpreadSheet_LoadScreensXB

HT_SpreadSheet_LoadScreensPS2

Maps\Misc\OO_LoadScreenGC.elf

Maps\Misc\OO_LoadScreenXB.elf

Maps\Misc\OO_LoadScreenPS2.elf

HT_File_LevelData oo_ldata.edb Maps\Misc\OO_LevelData.elf
HT_File_ShopPrices oo_shopp.edb Maps\Misc\oo_ShopPrices.elf
HT_File_CharacterSounds oo_chars.edb Maps\Misc\OO_CharSnd.elf
HT_File_Hud oo_Hud.edb Animations\Scripts\oo_Hud.elf
HT_File_BOS_Obj oo_BosOb.edb Animations\Scripts\oo_BosObj.elf
HT_File_MonsterTweaks MonsterT.edb Animations\MonsterTweaks.elf
HT_File_SurfaceTypes Surfaces.edb Maps\Misc\Surfaces.elf
HT_File_Icons1 OO_Icons.edb Animations\Scripts\OO_Icons1.ELF

Front-end Edit

These are normal, technically playable Mummy maps, at least at surface level. Due to the way each of these files are loaded, they receive a somewhat special treatment from the game. Each language has its own clone of the main menu map, Eurocom calls it the FrontEnd. Depending on the current language these and their PickUps counterparts are conditionally loaded, falling back to the English version if the format isn't supported.

HT_File_F00_FrontEnd

HT_File_F00_FrontEnd_German

HT_File_F00_FrontEnd_French

HT_File_F00_FrontEnd_Italian

HT_File_F00_FrontEnd_Spanish

HT_File_F00_FrontEnd_Korean

F00_Fron.edb

F00_Germ.edb

F00_Fren.edb

F00_Ital.edb

F00_Span.edb

F00_Kore.edb

Sphinx\Grafix\Maps\Misc\FE_Main.elf

Sphinx\Grafix\Maps\Misc\FE_Main_German.elf

Sphinx\Grafix\Maps\Misc\FE_Main_French.elf

Sphinx\Grafix\Maps\Misc\FE_Main_Italian.elf

Sphinx\Grafix\Maps\Misc\FE_Main_Spanish.elf

Sphinx\Grafix\Maps\Misc\FE_Main_Korean.elf

The front end level can also be loaded from the pause menu. Each of these files contain the Uruk map itself, a simple script that works as a cutscene and has the choreographed camera movement loop, another HudScript that lays out the main menu buttons and submenus, which is also extensively configurable. With the limitation of using special HT_HudScriptButton_ types for hardcoded behavior, like triggering the memcard dialogs, loading or creating a new game, launching the video player or for the inner working of the dynamic settings and their labels.

Incidentally, the other major HudScript is the pause menu. Counter intuitively, neither the HUD itself nor the item rotator nor the Book of Sphinx use HudScripts, choosing to use hardcoded entities and scripts whose behavior is directly controlled by the game's code, instead of being laid out in EuroLand via a simple event timeline.

EngineX script → not to be confused with a map gamescript (which is a piece of code used in a map trigger instance), scripts are Adobe Flash-like scenes; visual timelines used to lay out timed events in 2D or 3D. They are mainly used for cutscenes, as well as working as the final container for character animations when configuring their AI, attack patterns, collisions, weak points and behavior. They are extremely flexible.
They can contain animated characters, particle effects, loop points, animated cameras, timeline-animated entity instances and much more. For example: a breakable vase might be made out of a few static entities (a normal version plus a version broken into several pieces) and particle effects, the script is where all those ingredients are turned into the final object; maybe the first frame shows the unbroken vase, and the timeline is tagged to be frozen there with a special event tag that will play the rest whenever a hit happens. The other frames will animate the instances of the flying pieces and the object slowly fading away frame-per-frame until reaching a stop point.
HudScript → a special type of EngineX script with clickable buttons and conditional jump points that can be configured directly via EuroLand using a few specific event primitives. It can call and contain animated movement, as well as other sub-scripts; for example, reusable button templates. Again, it's made out of normal 2D and 2.5D entities. For example: the game over screen and its swirling background.
Hardcoded screen elements → special game windows that are overlaid over the in-game camera and can use fixed entities, texture regions, text and scripts and affect them programmatically. The assets are usually referenced by hashcode, so they can be skinned, but we can't add or alter buttons without changing the game's source code. For example: the health bar with the Gold Ankhs or the Bronze Scarab counter.

Level initialisation Edit

Farmer Brothers This article is under construction.
You can help the Sphinx and the Cursed Mummy Wiki by editing it.

Each time we switch to a playable level, several things happen.

HT_File_BOS_Obj OO_BosOb.edb Animations\Scripts\oo_BosObj.elf HT_Script_BOS_Notes

HT_Script_BOS_Artifacts

...

HT_File_Icons1 HT_SubFile_File02

HT_SubFile_File03

HT_SubFile_File01

HT_Texture_HUD_ButtonTexturesGC

HT_Texture_HUD_ButtonTexturesXB

HT_Texture_HUD_ButtonTexturesPS2

HT_File_Fonts1 HT_SubFile_File01

HT_SubFile_File02

HT_SubFile_File03

HT_SubFile_File04

HT_SubFile_File05

HT_SubFile_File06

HT_SubFile_File07

HT_SubFile_File08

HT_Font_Default_US

HT_Font_Default_UK

HT_Font_Default_FRENCH

HT_Font_Default_GERMAN

HT_Font_Default_ITALIAN

HT_Font_Default_SPANISH

HT_Font_Default_JAPAN

HT_Font_Default_KOREAN

HT_File_Hud HT_SubFile_File01

HT_SubFile_File03

HT_SubFile_File02

GC

XB

PS2

Reload localised pickups file
Start loading the current map
HT_File_PickUps
HT_File_IN02_tru

HT_File_IN03_blu

HT_File_IN04_sap

HT_File_IN05_Pin

HT_File_IN06_cra

If Sphinx is active.
HT_File_IN18_ony If the Mummy/Tut is active.
HT_File_FX_MummyGeneral

HT_File_FX_General

If the Mummy/Tut is active.
HT_File_FX_Sword If Sphinx is active.
HT_File_FX_Shield If Sphinx is active and the Character Anim Files field in LevelData sets the AnimDataFlag_Shield flag.
HT_File_FX_Blowpipe If Sphinx is active and the Character Anim Files field in LevelData sets the AnimDataFlag_Blowpipe flag.
HT_File_FX_General

HT_File_FX_Water

HT_File_FX_Beetle

If Sphinx is active.
HT_File_FX_Generic
Deactivate players, move them to {0,0,0} and reset camera if this is the FrontEnd.
Deload previous soundbanks. Grab the combat music from LevelData or fall back to MFX_Danger1, MFX_Danger2 and MFX_Danger3. Either load the alternate level soundbank (as specified in the load level trigger) or the one specified in LevelData.
HT_File_Sphinx If Sphinx is active.
HT_File_Tut /

HT_File_Mummy

If the Mummy/Tut is active. Depends on the player spawn Tut flag.
Load IO file from LevelData, if any. External file for trigger objects, common.
Load CS file from LevelData, if any. External file for cutscenes. Less common.

HT_SubFile_File01

https://gist.github.com/Swyter/dc660d27204a14323256e2ca8dc42fe2

HT_File_Text ./_bin_PC/Text.edb Section assigned in LevelData Sphinx\Grafix\Maps\Misc\Text.ELF

A map can only contain at most 128 submaps.

Community content is available under CC-BY-SA unless otherwise noted.