Changes

Jump to navigation Jump to search
2,575 bytes added ,  21:39, 2 October 2017
m
→‎Engine and class IDs: Added explanation for the non-existing engine 00
Line 5: Line 5:  
== Organisation ==
 
== Organisation ==
   −
Classes are organised into 16 groups called ''engines''. Each class can also be subdivided into a number of ''chunks''. These three indices are laid out in the class ID as follows:
+
Classes are organised into groups called ''engines''. Each class can also be subdivided into a number of ''chunks''. These three indices are laid out in the class ID as follows:
    
  engine class chunk
 
  engine class chunk
Line 14: Line 14:  
== Engine and class IDs ==
 
== Engine and class IDs ==
   −
These are all the existing engines and classes as found in TrackMania Forever.
+
These are all the existing engines and classes as found in TrackMania Forever, supplemented by some new classes of Maniaplanet.
    
  engine
 
  engine
Line 21: Line 21:     
  00
 
  00
     105 CMwCmdExpStringConcat
+
     105 CMwCmdExpStringConcat (never corrected typo, should be 01051000, there is no engine 00)
    
  01 MwFoundations
 
  01 MwFoundations
Line 677: Line 677:  
     051 CPlugTreeGenerator
 
     051 CPlugTreeGenerator
 
     052 CPlugRessourceStrings
 
     052 CPlugRessourceStrings
 +
    053 CPlugGpuCompileCache
 +
    054 CPlugFileTextScript
 
     055 CPlugFileI18n
 
     055 CPlugFileI18n
 
     056 CPlugVertexStream
 
     056 CPlugVertexStream
Line 744: Line 746:  
     0A4 CPlugModelFences
 
     0A4 CPlugModelFences
 
     0A6 CPlugFurWind
 
     0A6 CPlugFurWind
 +
    0AD CPlugFileExr
 +
    0B0 CPlugAnimFile
 +
    0BB CPlugSolid2Model
 +
    0DB CPlugFileWebP
 +
    0F4 CPlugGameSkin
 +
    108 CPlugFileWebM
    
  0A Scene
 
  0A Scene
Line 891: Line 899:  
     021 COalAudioBufferKeeper
 
     021 COalAudioBufferKeeper
 
     022 COalDevice
 
     022 COalDevice
 +
 +
11 Script
 +
    000 CScriptSetting
 +
    001 CScriptTraitsPersistent
 +
    002 CScriptTraitsMetadata
 +
    003 CScriptInterfacableValue
    
  12 Net
 
  12 Net
Line 932: Line 946:  
     00B CInputDeviceDx8Keyboard
 
     00B CInputDeviceDx8Keyboard
 
     00C CInputDeviceDx8Pad
 
     00C CInputDeviceDx8Pad
 +
    00D CInputReplay
    
  14 Xml
 
  14 Xml
Line 948: Line 963:  
     00D CHdrText
 
     00D CHdrText
 
     00E CHdrUnknown
 
     00E CHdrUnknown
 +
 +
21 VirtualSkipper
 +
    000 CVirtualSkipperEngine
 +
    001 CVirtualSkipper
 +
    002 CVskRegatta
 +
    003 CVskPlayer
 +
    004 CVskControlPlayer
 +
    005 CVskControlACTeamCard
 +
    006 CVskMasterServer
 +
    007 CVskControlNetworkServerInfoCard
 +
    008 CVskReplayRaceState
 +
    02A CVskPlayerInfo
 +
    034 CVsk3Config
 +
    04B CVsk3Editor
 +
    04E CVsk3Race
 +
    04F CVsk3EditorBlock
 +
    070 CVskCourse
 +
    080 CConstructionChallengeVsk
 +
    083 CVskTrafficObjectInfo
 +
    084 CVskISAF
 +
    085 CVskCollection
 +
    086 CVskControlPlayerReplay
 +
    087 CVsk3UIPlayer
 +
    088 CControlVsk3UiRadar
 +
    089 CVskPlayerProfile
 +
    08B CConstructionChallengeVskParams
 +
    08C CVskPlayerCameraSet
 +
    08D CVskReplayRecord
 +
    08E CCtnMediaBlockEventVsk
 +
    08F CVskISAFConcurrent
 +
    091 CVskAC
 +
    092 CVskACModel
 +
    093 CVskACTeam
 +
    094 CVskRaceBoatInterface
 +
    095 CVskControlScores
    
  24 TrackMania
 
  24 TrackMania
Line 1,010: Line 1,060:  
     007 CGameObjectVisModel
 
     007 CGameObjectVisModel
 
     008 CGameCtnPlaygroundActionModel
 
     008 CGameCtnPlaygroundActionModel
 +
    009 CGameWaypointSpecialProperty
 +
    00A CGameActionFxResources
 +
    00B CGameGateModel
 +
    00C CGameTeleporterModel
 +
    00D CGameArmorModel
 +
    00E CGameSpawnModel
 +
    00F CGameCaptureZoneModel
 +
    010 CGameTurbineModel
 +
    011 CGameGhostData
 +
    012 CGameModulePlaygroundModel
 +
    013 CGameModuleNodForPropertyList
 +
    014 CGameModuleMenuModel
 +
    015 CGameModuleModelCommon
 +
    016 CGameModulePlaygroundInventoryModel
 +
    017 CGameModulePlaygroundScoresTableModel
 +
    018 CGameModulePlaygroundStoreModel
 +
    019 CGameModulePlaygroundHudModel
 +
    01A CGameModuleMenuPageModel
 +
    01B CGameEditorModel
 +
    024 CGamePixelArtModel
 +
    025 CGameBlockItem
 +
    026 CGameCommonItemEntityModelEdition
 +
    027 CGameCommonItemEntityModel
 +
    028 CGameCustomBlockModel
    
== Class ID mappings ==
 
== Class ID mappings ==
   −
The last engine in the list of engines is 0x24, "TrackMania". It used to contain a lot of classes which have now been moved to more generic engines, like 0x03 (Game). This is the case for e.g. challenges, which used to be 24 003 000 but are now 03 043 000.
+
The engine with the number 0x24 belongs to the namespace "TrackMania". It used to contain a lot of classes which have now been moved to more generic engines, like 0x03 (Game). This is the case for e.g. challenges, which used to be 24 003 000 but are now 03 043 000.
    
Since the GameBox engine needs to stay compatible with older .gbx files, it maps old class IDs to new ones when loading the file. This only happens up to the class level; chunk indices stay the same.
 
Since the GameBox engine needs to stay compatible with older .gbx files, it maps old class IDs to new ones when loading the file. This only happens up to the class level; chunk indices stay the same.
 +
 +
0301A000 -> 2E001000
 +
0301C000 -> 2E002000
 +
03031000 -> 090F4000
 +
0313B000 -> 2E009000
 +
 +
0900D000 -> 0900F000
 +
09063000 -> 09026000
 +
 +
21080000 -> 24003000
 +
2108D000 -> 2403F000
 +
21089000 -> 2404A000
    
  24003000 -> 03043000
 
  24003000 -> 03043000
Line 1,161: Line 1,247:  
  240CE000 -> 030C7000
 
  240CE000 -> 030C7000
 
  240CF000 -> 03083000
 
  240CF000 -> 03083000
0900D000 -> 0900F000
  −
09063000 -> 09026000
  −
0301A000 -> 2E001000
  −
0301C000 -> 2E002000
      
== Class IDs by file extension ==
 
== Class IDs by file extension ==
Line 1,175: Line 1,257:  
  .cry        09041000 (CPlugFileText)
 
  .cry        09041000 (CPlugFileText)
 
  .dds        09024000 (CPlugFileDds)
 
  .dds        09024000 (CPlugFileDds)
 +
.exr        090AD000 (CPlugFileExr)
 
  .fnt        0902D000 (CPlugFileFont)
 
  .fnt        0902D000 (CPlugFileFont)
 
  .fx        09094000 (CPlugFileGpuFxD3d)
 
  .fx        09094000 (CPlugFileGpuFxD3d)
Line 1,206: Line 1,289:  
  .vsh.txt    09042000 (CPlugFileVsh)
 
  .vsh.txt    09042000 (CPlugFileVsh)
 
  .wav        09031000 (CPlugFileWav)
 
  .wav        09031000 (CPlugFileWav)
 +
.webm      09108000 (CPlugFileWebM)
 +
.webp      090DB000 (CPlugFileWebP)
 
  .zip        09084000 (CPlugFileZip)
 
  .zip        09084000 (CPlugFileZip)
 +
 +
== Tools ==
 +
 +
* [http://www.wolfgang-rolke.de/gbxdump/gbxclassinfo.zip GbxClassInfo download] - a Windows tool that extracts class information from a given GbxGame.exe (includes source code).
    
[[Category:Internals]]
 
[[Category:Internals]]

Navigation menu