Filetypes: Difference between revisions

From Arx Libertatis Wiki
Jump to navigation Jump to search
(Describe how levels / scenes are stored.)
(Split the file list into multiple sections.)
Line 1: Line 1:
This is a list of filetypes that are used in arx and the code file(s) responsible for loading/parsing them. This list does not include standard file types such as image formats such as bmp, jpg and tga which are loaded in <code>graphics/image/Image.cpp</code> and the wav audio format which is loaded in <code>audio/codec/WAV.cpp</code> and <code>audio/codec/ADPCM.cpp</code>
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 ==


I suppose a lot of this code will become useless when we find a cross platform audio library to replace it.
{| class="wikitable sortable" style="width:800px"
{| class="wikitable sortable" style="width:800px"
! Ext
! Ext
Line 7: Line 8:
! Code
! Code
|-
|-
| aef
| <b>aef</b>
| Audio environment parameters
| Audio environment parameters
| audio/AudioEnvironment.cpp
| <code>audio/AudioEnvironment.cpp</code>
|-
|-
| amb
| <b>amb</b>
| Ambient audio
| Ambient audio
| audio/Ambient.cpp
| <code>audio/Ambiance.cpp</code>
|-
|-
| asl
| <b>wav</b>
| Script
| Audio sample
| scripting/Script.cpp and scripting/ScriptEvent.cpp
| <code>audio/codec/WAV.cpp</code>
|}
 
Ambiances (<b>.amb</b>) have multiple tracks where samples are played at different positions - they provide the background sounds as well as some cutscene music.
 
== Levels / scenes ==
 
{| class="wikitable sortable" style="width:800px"
! Ext
! Description
! Code
|-
|-
| cin
| <b>dlf</b>
| Cinematic (panning images during cutscenes)
| Level
| io/CinematicLoad.cpp
| <code>scene/LoadLevel.cpp</code> (<code><b>DanaeLoadLevel</b></code>)
|-
|-
| dlf
| <b>fts</b>
| Level
| Scene
| scene/LoadLevel.cpp (DanaeLoadLevel)
| <code>graphics/data/Mesh.cpp</code> (<code><b>FastSceneLoad</b></code>)
|-
|-
| doc
| <b>llf</b>
|  
| Level lighting
| (not loaded?)
| <code>scene/LoadLevel.cpp</code> (in <code><b>DanaeLoadLevel</b></code>)
|-
|-
| flg
| <b>scn</b>
| (only one file)
| Raw scene (not shipped)
|  
| <code>scene/Object.cpp</code> (<code><b>PAK_MultiSceneToEerie</b></code>)
|}
 
<b>.scn</b> files contain/reference the static scene including meshes, textures and portal data. These are pre-processed into one <b>.fts</b> file per level. Only the preprocessed <b>.fts</b> files are included in the game data.
 
<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.
 
== Objects ==
 
{| class="wikitable sortable" style="width:800px"
! Ext
! Description
! Code
|-
|-
| ftl
| <b>ftl</b>
| Compiled object / mesh
| Compiled object / mesh
| graphics/data/FTL.cpp
| <code>graphics/data/FTL.cpp</code> (<code><b>ARX_FTL_Load</b></code>)
|-
| <b>tea</b>
| Animation (THEA)
| <code>scene/Object.cpp</code> (<code><b>TheaToEerie</b></code>)
|-
|-
| fts
| <b>teo</b>
| Scene
| Raw object / mesh (THEO)
| graphics/data/Mesh.cpp (FastSceneLoad)
| <code>scene/Object.cpp</code> (<code><b>TheoToEerie</b></code>)
|-
|-
| ini
| <b>too</b>
| Configuration / localization / misc
| Raw object / mesh (only 3 files)
| core/Localization.cpp
| <code>scene/Object.cpp</code> (<code><b>TheoToEerie</b></code>)
|}
 
<b>.teo</b> files are not shipped with the game data, only the preprocessed <b>.ftl</b> files. <b>.too</b> is most likely just a typo.
 
== Other files ==
 
{| class="wikitable sortable" style="width:800px"
! Ext
! Description
! Code
|-
|-
| llf
| <b>asl</b>
| Level lighting
| Script
| scene/LoadLevel.cpp (in DanaeLoadLevel)
| <code>scripting/Script.cpp</code> and <code>scripting/ScriptEvent.cpp</code>
|-
|-
| sav
| <b>cin</b>
| Save files
| Cinematic (panning images during cutscenes)
| io/SaveBlock.cpp and scene/ChangeLevel.cpp
| <code>io/CinematicLoad.cpp</code>
|-
|-
| scn
| <b>doc</b>
| Raw scene (not shipped)
|  
| scene/Object.cpp (PAK_MultiSceneToEerie)
| (not loaded?)
|-
|-
| tea
| <b>flg</b>
| Animation
| (only one file)
| scene/Object.cpp (TheaToEerie)
|  
|-
|-
| teo
| <b>ini</b>
| Raw object / mesh (not shipped)
| Configuration / localization / misc
| scene/Object.cpp (TheoToEerie)
| <code>core/Localization.cpp</code>
|-
|-
| too
| <b>sav</b>
| Raw object / mesh (only 3 files)
| Save files
| scene/Object.cpp (TheoToEerie)
| <code>io/SaveBlock.cpp</code> and <code>scene/ChangeLevel.cpp</code>
|-
|-
| txt
| <b>txt</b>
| Credits
| Credits
| gui/Credits.cpp
| <code>gui/Credits.cpp</code>
|}
|}


== Level / scene files ==
Also used are standard image formats (<b>bmp</b>, <b>jpg</b> and <b>tga</b>) which are loaded in <code>graphics/image/Image.cpp</code>.
 
<b>.scn</b> files contain/reference the static scene including meshes, textures and portal data. These are pre-processed into one <b>.fts</b> file per level. Only the preprocessed <b>.fts</b> files are included in the game data.
 
<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.

Revision as of 10:35, 25 November 2011

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
amb Ambient audio audio/Ambiance.cpp
wav Audio sample audio/codec/WAV.cpp

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 Scene graphics/data/Mesh.cpp (FastSceneLoad)
llf Level lighting scene/LoadLevel.cpp (in DanaeLoadLevel)
scn Raw scene (not shipped) 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 if .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
doc (not loaded?)
flg (only one file)
ini Configuration / localization / misc core/Localization.cpp
sav Save files io/SaveBlock.cpp and scene/ChangeLevel.cpp
txt Credits gui/Credits.cpp

Also used are standard image formats (bmp, jpg and tga) which are loaded in graphics/image/Image.cpp.