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]] |