Filetypes: Difference between revisions

From Arx Libertatis Wiki
Jump to navigation Jump to search
mNo edit summary
 
(15 intermediate revisions by the same user not shown)
Line 3: Line 3:
== Audio ==
== Audio ==


{| class="wikitable sortable" style="width:800px"
{| class="wikitable sortable center_0"
! Ext
! Ext
! Description
! Description
Line 9: Line 9:
|-
|-
| <b>aef</b>
| <b>aef</b>
| Audio environment parameters
| [[AEF file format|Audio environment parameters]]
| <code>audio/AudioEnvironment.cpp</code> (<code><b>audio::createEnvironment</b></code>)
| <code>audio/AudioEnvironment.cpp</code> (<code><b>audio::createEnvironment</b></code>)
|-
|-
| <b>amb</b>
| <b>amb</b>
| Ambient audio
| [[AMB file format|Ambient audio]]
| <code>audio/Ambiance.cpp</code> (<code><b>audio::createAmbiance</b></code>)
| <code>audio/Ambiance.cpp</code> (<code><b>audio::createAmbiance</b></code>)
|-
|-
| <b>ini</b>
| <b>ini</b>
| Per-sample volume factors
| [[Presence file format|Per-sample volume factors]]
| <code>scene/GameSound.cpp</code> (<code><b>ARX_SOUND_CreatePresenceMap</b></code>)
| <code>scene/GameSound.cpp</code> (<code><b>ARX_SOUND_CreatePresenceMap</b></code>)
|-
|-
| <b>ini</b>
| <b>ini</b>
| Collision sounds
| [[Collision sounds file format|Collision sounds]]
| <code>scene/GameSound.cpp</code> (<code><b>ARX_SOUND_CreateCollisionMaps</b></code>)
| <code>scene/GameSound.cpp</code> (<code><b>ARX_SOUND_CreateCollisionMaps</b></code>)
|-
|-
| <b>wav</b>
| <b>wav</b>
| Audio sample
| [[wp:WAV file|Audio sample]]
| <code>audio/codec/WAV.cpp</code> (<code><b>audio::createSample</b></code>)
| <code>audio/codec/WAV.cpp</code> (<code><b>audio::createSample</b></code>)
|}
|}
Line 35: Line 35:
== Levels / scenes ==
== Levels / scenes ==


{| class="wikitable sortable" style="width:800px"
{| class="wikitable sortable center_0"
! Ext
! Ext
! Description
! Description
Line 41: Line 41:
|-
|-
| <b>dlf</b>
| <b>dlf</b>
| Level
| [[DLF file format|Level]]
| <code>scene/LoadLevel.cpp</code> (<code><b>DanaeLoadLevel</b></code>)
| <code>scene/LoadLevel.cpp</code> (<code><b>DanaeLoadLevel</b></code>)
|-
|-
| <b>fts</b>
| <b>fts</b>
| Compiled scene
| [[FTS file format|Compiled scene]]
| <code>graphics/data/Mesh.cpp</code> (<code><b>FastSceneLoad</b></code>)
| <code>graphics/data/Mesh.cpp</code> (<code><b>FastSceneLoad</b></code>)
|-
|-
| <b>llf</b>
| <b>llf</b>
| Level lighting
| [[LLF file format|Level lighting]]
| <code>scene/LoadLevel.cpp</code> (in <code><b>DanaeLoadLevel</b></code>)
| <code>scene/LoadLevel.cpp</code> (in <code><b>DanaeLoadLevel</b></code>)
|-
|-
| <b>scn</b>
| <b>scn</b>
| Raw scene (TSCN)
| [[TSCN file format|Raw scene (TSCN)]]
| <code>scene/Object.cpp</code> (<code><b>PAK_MultiSceneToEerie</b></code>)
| <code>scene/Object.cpp</code> (<code><b>PAK_MultiSceneToEerie</b></code>)
|}
|}
Line 61: Line 61:
<b>.dlf</b> reference the scene files belonging to the level and contain dynamic scene data: initial interactive object positions, paths/zones for pathfinding and scripting, fogs, lighting.
<b>.dlf</b> reference the scene files belonging to the level and contain dynamic scene data: initial interactive object positions, paths/zones for pathfinding and scripting, fogs, lighting.


For some (all?) versions if <b>.dlf</b> files, the lighting data is split into a separate <b>.llf</b> file.
For some (all?) versions of <b>.dlf</b> files, the lighting data is split into a separate <b>.llf</b> file.


== Objects ==
== Objects ==


{| class="wikitable sortable" style="width:800px"
{| class="wikitable sortable center_0"
! Ext
! Ext
! Description
! Description
Line 71: Line 71:
|-
|-
| <b>ftl</b>
| <b>ftl</b>
| Compiled object / mesh
| [[FTL file format|Compiled object / mesh]]
| <code>graphics/data/FTL.cpp</code> (<code><b>ARX_FTL_Load</b></code>)
| <code>graphics/data/FTL.cpp</code> (<code><b>ARX_FTL_Load</b></code>)
|-
|-
| <b>tea</b>
| <b>tea</b>
| Animation (THEA)
| [[THEA file format|Animation (THEA)]]
| <code>scene/Object.cpp</code> (<code><b>TheaToEerie</b></code>)
| <code>scene/Object.cpp</code> (<code><b>TheaToEerie</b></code>)
|-
|-
| <b>teo</b>
| <b>teo</b>
| Raw object / mesh (THEO)
| [[THEO file format|Raw object / mesh (THEO)]]
| <code>scene/Object.cpp</code> (<code><b>TheoToEerie</b></code>)
| <code>scene/Object.cpp</code> (<code><b>TheoToEerie</b></code>)
|-
|-
| <b>too</b>
| <b>too</b>
| Raw object / mesh (only 3 files)
| [[THEO file format|Raw object / mesh (only 3 files)]]
| <code>scene/Object.cpp</code> (<code><b>TheoToEerie</b></code>)
| <code>scene/Object.cpp</code> (<code><b>TheoToEerie</b></code>)
|}
|}
Line 91: Line 91:
== Other files ==
== Other files ==


{| class="wikitable sortable" style="width:800px"
{| class="wikitable sortable center_0"
! Ext
! Ext
! Description
! Description
Line 97: Line 97:
|-
|-
| <b>asl</b>
| <b>asl</b>
| Script
| [[Arx scripting language|Script]]
| <code>scripting/Script.cpp</code> and <code>scripting/ScriptEvent.cpp</code>
| <code>scripting/Script.cpp</code> and <code>scripting/ScriptEvent.cpp</code>
|-
|-
| <b>cin</b>
| <b>cin</b>
| Cinematic (panning images during cutscenes)
| [[Cinematic file format|Cinematic]] (panning images during cutscenes)
| <code>io/CinematicLoad.cpp</code> (<code><b>loadCinematic</b></code>)
| <code>io/CinematicLoad.cpp</code> (<code><b>loadCinematic</b></code>)
|-
|-
Line 110: Line 110:
| <b>flg</b>
| <b>flg</b>
| (only one file)
| (only one file)
|  
| (not loaded?)
|-
|-
| <b>ini</b>
| <b>ini</b>
| Configuration
| [[Settings]]
| <code>core/Config.cpp</code> (<code><b>Config::init</b></code>)
| <code>core/Config.cpp</code> (<code><b>Config::init</b></code>)
|-
|-
| <b>ini</b>
| <b>ini</b>
| Localisation
| [[Localisation format|Localisation]]
| <code>core/Localisation.cpp</code> (<code><b>initLocalisation</b></code>)
| <code>core/Localisation.cpp</code> (<code><b>initLocalisation</b></code>)
|-
|-
| <b>ini</b>
| <b>ini</b>
| Minimap offsets (not in .ini format)
| [[Minimap offsets file format]] (not in .ini format)
| <code>gui/MiniMap.cpp</code> (<code><b>ARX_MINIMAP_Load_Offsets</b></code>)
| <code>gui/MiniMap.cpp</code> (<code><b>ARX_MINIMAP_Load_Offsets</b></code>)
|-
|-
| <b>ini</b>
| <b>ini</b>
| Texture "refinement" map (not in .ini format)
| [[Texture refinement file format|Texture "refinement" map]] (not in .ini format)
| <code>graphics/data/TextureContainer.cpp</code> (<code><b>LoadRefinementMap</b></code>)
| <code>graphics/data/TextureContainer.cpp</code> (<code><b>LoadRefinementMap</b></code>)
|-
|-
| <b>pak</b>
| <b>pak</b>
| [[PAK file format|Package files]]
| [[PAK file format|Package / archive files]]
| <code>io/resource/PakReader.cpp</code>
| <code>io/resource/PakReader.cpp</code>
|-
|-
| <b>sav</b>
| <b>sav</b>
| [[Save file format|Save files]]
| [[Save file format|Save files]] ([[Save file container format|.sav container]])
| <code>io/SaveBlock.cpp</code> and <code>scene/ChangeLevel.cpp</code>
| <code>io/SaveBlock.cpp</code> and <code>scene/ChangeLevel.cpp</code>
|-
|-
| <b>txt</b>
| <b>txt</b>
| Credits
| [[Credits file format|Credits]]
| <code>gui/Credits.cpp</code> (<code><b>ARX_Menu_Resources_Create</b></code>)
| <code>gui/Credits.cpp</code> (<code><b>ARX_Menu_Resources_Create</b></code>)
|}
|}
Line 144: Line 144:
* Standard image formats (<b>bmp</b>, <b>jpg</b> and <b>tga</b>), loaded in <code>graphics/image/Image.cpp</code>.
* Standard image formats (<b>bmp</b>, <b>jpg</b> and <b>tga</b>), loaded in <code>graphics/image/Image.cpp</code>.
* True Type (<b>ttf</b>) font files, loaded in <code>graphics/font/*</code>.
* True Type (<b>ttf</b>) font files, loaded in <code>graphics/font/*</code>.
[[Category:Development information]]

Latest revision as of 17:28, 18 October 2022

This page provides an overview of the file formats used by Arx Fatalis as well as references to the code responsible for loading them.

Audio

Ext Description Code
aef Audio environment parameters audio/AudioEnvironment.cpp (audio::createEnvironment)
amb Ambient audio audio/Ambiance.cpp (audio::createAmbiance)
ini Per-sample volume factors scene/GameSound.cpp (ARX_SOUND_CreatePresenceMap)
ini Collision sounds scene/GameSound.cpp (ARX_SOUND_CreateCollisionMaps)
wav Audio sample audio/codec/WAV.cpp (audio::createSample)

Audio environments (.aef) are not really integrated - only alley.aef is used.

Ambiances (.amb) have multiple tracks where samples are played at different positions - they provide the background sounds as well as some cutscene music.

Levels / scenes

Ext Description Code
dlf Level scene/LoadLevel.cpp (DanaeLoadLevel)
fts Compiled scene graphics/data/Mesh.cpp (FastSceneLoad)
llf Level lighting scene/LoadLevel.cpp (in DanaeLoadLevel)
scn Raw scene (TSCN) scene/Object.cpp (PAK_MultiSceneToEerie)

.scn files contain/reference the static scene including meshes, textures and portal data. These are pre-processed into one .fts file per level. Only the preprocessed .fts files are included in the game data.

.dlf reference the scene files belonging to the level and contain dynamic scene data: initial interactive object positions, paths/zones for pathfinding and scripting, fogs, lighting.

For some (all?) versions of .dlf files, the lighting data is split into a separate .llf file.

Objects

Ext Description Code
ftl Compiled object / mesh graphics/data/FTL.cpp (ARX_FTL_Load)
tea Animation (THEA) scene/Object.cpp (TheaToEerie)
teo Raw object / mesh (THEO) scene/Object.cpp (TheoToEerie)
too Raw object / mesh (only 3 files) scene/Object.cpp (TheoToEerie)

.teo files are not shipped with the game data, only the preprocessed .ftl files. .too is most likely just a typo.

Other files

Ext Description Code
asl Script scripting/Script.cpp and scripting/ScriptEvent.cpp
cin Cinematic (panning images during cutscenes) io/CinematicLoad.cpp (loadCinematic)
doc (not loaded?)
flg (only one file) (not loaded?)
ini Settings core/Config.cpp (Config::init)
ini Localisation core/Localisation.cpp (initLocalisation)
ini Minimap offsets file format (not in .ini format) gui/MiniMap.cpp (ARX_MINIMAP_Load_Offsets)
ini Texture "refinement" map (not in .ini format) graphics/data/TextureContainer.cpp (LoadRefinementMap)
pak Package / archive files io/resource/PakReader.cpp
sav Save files (.sav container) io/SaveBlock.cpp and scene/ChangeLevel.cpp
txt Credits gui/Credits.cpp (ARX_Menu_Resources_Create)

Also used but loaded by external libraries:

  • Standard image formats (bmp, jpg and tga), loaded in graphics/image/Image.cpp.
  • True Type (ttf) font files, loaded in graphics/font/*.