Flapt File: Difference between revisions

12,956 bytes added ,  7 months ago
Added infobox and normalized some content.
(Created page with "{| class="wikitable" ! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments |- | 0x0 || 0x1 || uint8_t || muVersion || || 12 || |- | 0x1 || 0x3 || || || padding || || |- | 0x4 || 0x4 || uint32_t || muSizeInBytes || || || |- | 0x8 || 0x4 || float32_t || mfTimePerFrame || || || |- | 0xC || 0x4 || uint32_t || muNumMovieClips || || || |- | 0x10 || 0x4 || MovieClip * || mpaMovieClips || || MovieClip format || |- | 0x14 || 0x4 || uint3...")
 
(Added infobox and normalized some content.)
 
(5 intermediate revisions by 2 users not shown)
Line 1:
{{ParadiseResourceTypeInfobox
| name = FlaptFile
| resourcenames = FLAPTHUD
| id = 0x10020
| category = Game-specific<br />(Burnout Paradise)
| memdist = Main Memory only
| imports = [[Texture]]
}}
 
The Flapt resource, stored in FLAPTHUD.BUNDLE, is a major GUI component in ''Burnout Paradise''. Though it is not thoroughly researched, it is thought to be related to the EasyDrive menu as the name, Flapt, may mean Friends List Apt. The original EasyDrive menu was exclusively [https://youtu.be/oVkRTg0XczQ?t=99 used to view/invite friends].
 
= Structures =
=== BrnFlapt::FlaptFile ===
==== 32-bit ====
{| class="wikitable"
! Offset !! SizeLength !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x0 || 0x1 || uint8_t || muVersion || || 12 ||
|-
| 0x1 || 0x3 || || || padding || Padding ||
|-
| 0x4 || 0x4 || uint32_t || muSizeInBytes || || ||
|-
| 0x8 || 0x4 || float32_t || mfTimePerFrame || || ||
|-
| 0xC || 0x4 || uint32_t || muNumMovieClips || || ||
|-
| 0x10 || 0x4 || [[#BrnFlapt::MovieClip |MovieClip]]* || mpaMovieClips || || MovieClip format ||
|-
| 0x14 || 0x4 || uint32_t || muNumTextures || || ||
|-
| 0x18 || 0x4 || [[#BrnFlapt::FlaptFile::GuiTexture |GuiTexture]]* * || mpapTextures || || See Texture spec ||
|-
| 0x1C || 0x4 || uint32_t || muNumVerts || || ||
|-
| 0x20 || 0x4 || [[#BrnFlapt::FlaptFile::GuiVertex |GuiVertex]]* || mpaVerts || || GuiVertex format ||
|-
| 0x24 || 0x4 || uint32_t || muNumFontStyles || || ||
|-
| 0x28 || 0x4 || [[#BrnFlapt::FontStyle |FontStyle]]* || mpaFontStyles || || FontStyle format ||
|-
| 0x2C || 0x4 || uint32_t || muNumComponents || || ||
|-
| 0x30 || 0x4 || [[#BrnFlapt::HashedString |HashedString]]* || mpaComponentNames || || HashedString format ||
|-
| 0x34 || 0x4 || [[#BrnFlapt::IndexPath |IndexPath]]* || mpaComponentPaths || || IndexPath format ||
|-
| 0x38 || 0x4 || uint32_t || muNumTriggerParameters || || ||
|-
| 0x3C || 0x4 || [[#BrnFlapt::TriggerParameters |TriggerParameters]]* || mpaTriggerParameters || || TriggerParameters format ||
|-
| 0x40 || 0x4 || uint32_t || muNumStrings || || ||
|-
| 0x44 || 0x4 || [[CgsUtf8 ]]* * || mpapStrings || || ||
|-
| 0x48 || 0x4 || uint32_t || muNumSpecialTextures || || ||
|-
| 0x4C || 0x4 || [[CgsUtf8 ]]* * || mpapSpecialTextureNames || || ||
|-
| 0x50 || 0x8 || [[#BrnFlapt::FileDebugData|FileDebugData]] || mDEBUGData || || FileDebugData format ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || uint8_t || muVersion || || 12
|-
| 0x1 || 0x3 || || || Padding ||
|-
| 0x4 || 0x4 || uint32_t || muSizeInBytes || ||
|-
| 0x8 || 0x4 || float32_t || mfTimePerFrame || ||
|-
| 0xC || 0x4 || uint32_t || muNumMovieClips || ||
|-
| 0x10 || 0x8 || [[#BrnFlapt::MovieClip|MovieClip]]* || mpaMovieClips || ||
|-
| 0x18 || 0x4 || uint32_t || muNumTextures || ||
|-
| 0x1C || 0x4 || || || Padding ||
|-
| 0x20 || 0x8 || [[#BrnFlapt::FlaptFile::GuiTexture|GuiTexture]]** || mpapTextures || ||
|-
| 0x28 || 0x4 || uint32_t || muNumVerts || ||
|-
| 0x2C || 0x4 || || || Padding ||
|-
| 0x30 || 0x8 || [[#BrnFlapt::FlaptFile::GuiVertex|GuiVertex]]* || mpaVerts || ||
|-
| 0x38 || 0x4 || uint32_t || muNumFontStyles || ||
|-
| 0x3C || 0x4 || || || Padding ||
|-
| 0x40 || 0x8 || [[#BrnFlapt::FontStyle|FontStyle]]* || mpaFontStyles || ||
|-
| 0x48 || 0x4 || uint32_t || muNumComponents || ||
|-
| 0x4C || 0x4 || || || Padding ||
|-
| 0x50 || 0x8 || [[#BrnFlapt::HashedString|HashedString]]* || mpaComponentNames || ||
|-
| 0x58 || 0x8 || [[#BrnFlapt::IndexPath|IndexPath]]* || mpaComponentPaths || ||
|-
| 0x60 || 0x4 || uint32_t || muNumTriggerParameters || ||
|-
| 0x64 || 0x4 || || || Padding ||
|-
| 0x68 || 0x8 || [[#BrnFlapt::TriggerParameters|TriggerParameters]]* || mpaTriggerParameters || ||
|-
| 0x70 || 0x4 || uint32_t || muNumStrings || ||
|-
| 0x74 || 0x4 || || || Padding ||
|-
| 0x78 || 0x8 || [[CgsUtf8]]** || mpapStrings || ||
|-
| 0x80 || 0x4 || uint32_t || muNumSpecialTextures || ||
|-
| 0x84 || 0x4 || || || Padding ||
|-
| 0x88 || 0x8 || [[CgsUtf8]]** || mpapSpecialTextureNames || ||
|-
| 0x90 || 0x10 || [[#BrnFlapt::FileDebugData|FileDebugData]] || mDEBUGData || ||
|}
 
=== BrnFlapt::MovieClip ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || uint8_t || mxFlags || ||
|-
| 0x1 || 0x1 || uint8_t || muNumChildren || ||
|-
| 0x2 || 0x1 || uint8_t || muNumMeshes || ||
|-
| 0x3 || 0x1 || uint8_t || muNumTextFields || ||
|-
| 0x4 || 0x1 || uint8_t || muNumRenderLayers || ||
|-
| 0x5 || 0x1 || uint8_t || muNumLabelledFrames || ||
|-
| 0x6 || 0x1 || uint8_t || muNumFScriptCommands || ||
|-
| 0x7 || 0x1 || || || Padding ||
|-
| 0x8 || 0x2 || uint16_t || muNumFramesInTimeline || ||
|-
| 0xA || 0x2 || uint16_t || muNumKeyFrames || ||
|-
| 0xC || 0x4 || [[#BrnFlapt::FlaptFile|FlaptFile]]* || mpFile || ||
|-
| 0x10 || 0x4 || uint16_t* || mpauFrameToKeyFrameMap || ||
|-
| 0x14 || 0x4 || [[#BrnFlapt::RenderLayer|RenderLayer]]* || mpaRenderLayers || ||
|-
| 0x18 || 0x4 || [[#BrnFlapt::RenderLayerKeyFrame|RenderLayerKeyFrame]]* || mpaKeyFrames || ||
|-
| 0x1C || 0x4 || [[#BrnFlapt::KeyFrameAnims|KeyFrameAnims]]* || mpaKeyFrameAnims || ||
|-
| 0x20 || 0x4 || [[#BrnFlapt::FScriptCommand|FScriptCommand]]* || mpaFScriptStream || ||
|-
| 0x24 || 0x4 || uint16_t* || mpauChildMovieClips || ||
|-
| 0x28 || 0x4 || [[#BrnFlapt::HashedString|HashedString]]* || mpaChildNames || ||
|-
| 0x2C || 0x4 || [[#BrnFlapt::Mesh|Mesh]]* || mpaMeshes || ||
|-
| 0x30 || 0x4 || [[#BrnFlapt::TextField|TextField]]* || mpaTextFields || ||
|-
| 0x34 || 0x4 || [[#BrnFlapt::HashedString|HashedString]]* || mpaTextFieldNames || ||
|-
| 0x38 || 0x4 || [[#BrnFlapt::HashedString|HashedString]]* || mpaFrameLabels || ||
|-
| 0x3C || 0x4 || uint16_t* || mpauLabelledFrameIds || ||
|-
| 0x40 || 0x4 || char* || mpcComponentName || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || uint8_t || mxFlags || ||
|-
| 0x1 || 0x1 || uint8_t || muNumChildren || ||
|-
| 0x2 || 0x1 || uint8_t || muNumMeshes || ||
|-
| 0x3 || 0x1 || uint8_t || muNumTextFields || ||
|-
| 0x4 || 0x1 || uint8_t || muNumRenderLayers || ||
|-
| 0x5 || 0x1 || uint8_t || muNumLabelledFrames || ||
|-
| 0x6 || 0x1 || uint8_t || muNumFScriptCommands || ||
|-
| 0x7 || 0x1 || || || Padding ||
|-
| 0x8 || 0x2 || uint16_t || muNumFramesInTimeline || ||
|-
| 0xA || 0x2 || uint16_t || muNumKeyFrames || ||
|-
| 0xC || 0x4 || || || Padding ||
|-
| 0x10 || 0x8 || [[#BrnFlapt::FlaptFile|FlaptFile]]* || mpFile || ||
|-
| 0x18 || 0x8 || uint16_t* || mpauFrameToKeyFrameMap || ||
|-
| 0x20 || 0x8 || [[#BrnFlapt::RenderLayer|RenderLayer]]* || mpaRenderLayers || ||
|-
| 0x28 || 0x8 || [[#BrnFlapt::RenderLayerKeyFrame|RenderLayerKeyFrame]]* || mpaKeyFrames || ||
|-
| 0x30 || 0x8 || [[#BrnFlapt::KeyFrameAnims|KeyFrameAnims]]* || mpaKeyFrameAnims || ||
|-
| 0x38 || 0x8 || [[#BrnFlapt::FScriptCommand|FScriptCommand]]* || mpaFScriptStream || ||
|-
| 0x40 || 0x8 || uint16_t* || mpauChildMovieClips || ||
|-
| 0x48 || 0x8 || [[#BrnFlapt::HashedString|HashedString]]* || mpaChildNames || ||
|-
| 0x50 || 0x8 || [[#BrnFlapt::Mesh|Mesh]]* || mpaMeshes || ||
|-
| 0x58 || 0x8 || [[#BrnFlapt::TextField|TextField]]* || mpaTextFields || ||
|-
| 0x60 || 0x8 || [[#BrnFlapt::HashedString|HashedString]]* || mpaTextFieldNames || ||
|-
| 0x68 || 0x8 || [[#BrnFlapt::HashedString|HashedString]]* || mpaFrameLabels || ||
|-
| 0x70 || 0x8 || uint16_t* || mpauLabelledFrameIds || ||
|-
| 0x78 || 0x8 || char* || mpcComponentName || ||
|}
 
=== BrnFlapt::RenderLayer ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || uint8_t || mxFlags || ||
|-
| 0x1 || 0x1 || uint8_t || muMovieClipOffset || ||
|-
| 0x2 || 0x1 || uint8_t || muMovieClipCount || ||
|-
| 0x3 || 0x1 || uint8_t || muMeshOffset || ||
|-
| 0x4 || 0x1 || uint8_t || muMeshCount || ||
|-
| 0x5 || 0x1 || uint8_t || muTextFieldOffset || ||
|-
| 0x6 || 0x1 || uint8_t || muTextFieldCount || ||
|}
 
=== BrnFlapt::RenderLayerKeyFrame ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || mxEnabledMovieClips || ||
|-
| 0x4 || 0x4 || uint32_t || mxEnabledMeshes || ||
|-
| 0x8 || 0x4 || uint32_t || mxEnabledTextFields || ||
|}
 
=== BrnFlapt::KeyFrameAnims ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0xC || uint32_t[3] || maxPlacedChildren || ||
|-
| 0xC || 0x1 || uint8_t || muCommandOffset || ||
|-
| 0xD || 0x1 || uint8_t || muCommandCount || ||
|-
| 0xE || 0x1 || uint8_t || muNumTransforms || ||
|-
| 0xF || 0x1 || uint8_t || muNumColourTransforms || ||
|-
| 0x10 || 0x4 || uint8_t* || mpauTransformObjects || ||
|-
| 0x14 || 0x4 || [[#BrnFlapt::Transform|Transform]]* || mpaTransforms || ||
|-
| 0x18 || 0x4 || uint8_t* || mpauColourTransformObjects || ||
|-
| 0x1C || 0x4 || [[#BrnFlapt::ColourTransform|ColourTransform]]* || mpaColourTransforms || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0xC || uint32_t[3] || maxPlacedChildren || ||
|-
| 0xC || 0x1 || uint8_t || muCommandOffset || ||
|-
| 0xD || 0x1 || uint8_t || muCommandCount || ||
|-
| 0xE || 0x1 || uint8_t || muNumTransforms || ||
|-
| 0xF || 0x1 || uint8_t || muNumColourTransforms || ||
|-
| 0x10 || 0x8 || uint8_t* || mpauTransformObjects || ||
|-
| 0x18 || 0x8 || [[#BrnFlapt::Transform|Transform]]* || mpaTransforms || ||
|-
| 0x20 || 0x8 || uint8_t* || mpauColourTransformObjects || ||
|-
| 0x28 || 0x8 || [[#BrnFlapt::ColourTransform|ColourTransform]]* || mpaColourTransforms || ||
|}
 
=== BrnFlapt::Transform ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || [[Vector4]] || mRightUp || ||
|-
| 0x10 || 0x10 || [[Vector4]] || mOriginXYZ || ||
|}
 
=== BrnFlapt::ColourTransform ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || [[Vector4]] || mScale || ||
|-
| 0x10 || 0x10 || [[Vector4]] || mTranslate || ||
|}
 
=== BrnFlapt::FScriptCommand ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || uint8_t || muCommand || ||
|-
| 0x1 || 0x1 || uint8_t || muParam8 || ||
|-
| 0x2 || 0x2 || uint16_t || muParam16 || ||
|}
 
=== BrnFlapt::HashedString ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || muHash || [[Language hash]] of the string ||
|-
| 0x4 || 0x4 || char* || mpacDEBUGString || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || muHash || [[Language hash]] of the string ||
|-
| 0x4 || 0x4 || || || Padding ||
|-
| 0x8 || 0x8 || char* || mpacDEBUGString || ||
|}
 
=== BrnFlapt::Mesh ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || int8_t || miTextureId || ||
|-
| 0x1 || 0x1 || uint8_t || muNumVerts || ||
|-
| 0x2 || 0x2 || uint16_t || muVertOffset || ||
|}
 
=== BrnFlapt::TextField ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#BrnFlapt::HashedString|HashedString]] || mName || ||
|-
| 0x8 || 0x2 || uint16_t || muInitialStringId || ||
|-
| 0xA || 0x1 || uint8_t || muFontStyleIndex || ||
|-
| 0xB || 0x1 || uint8_t || mxFlags || ||
|-
| 0xC || 0x1 || uint8_t || muAlignment || ||
|-
| 0xD || 0x3 || || || ||
|-
| 0x10 || 0x8 || [[Vector2]] || mTopLeft || ||
|-
| 0x18 || 0x8 || [[Vector2]] || mBottomRight || ||
|}
 
=== CgsGraphics::Basic2dColouredTexturedVertex ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[Vector2]] || mv2Pos || ||
|-
| 0x8 || 0x4 || [[#renderengine::RGBA8|RGBA8]] || mv4Colour || ||
|-
| 0xC || 0x8 || [[Vector2]] || mv2Tex0UV || ||
|}
 
=== renderengine::RGBA8 ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || m_rgba || Color data ||
|}
 
=== BrnFlapt::FontStyle ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || char* || mpacFontName || ||
|-
| 0x4 || 0x4 || uint32_t || muColour || ||
|-
| 0x8 || 0x4 || float32_t || mfFontHeight || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || char* || mpacFontName || ||
|-
| 0x8 || 0x4 || uint32_t || muColour || ||
|-
| 0xC || 0x4 || float32_t || mfFontHeight || ||
|}
 
=== BrnFlapt::IndexPath ===
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || uint8_t || muDepth || ||
|-
| 0x1 || 0x20 || uint8_t[32] || mauIndices || ||
|}
 
=== BrnFlapt::TriggerParameters ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x10 || char*[4] || mapcParameters || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x20 || char*[4] || mapcParameters || ||
|}
 
=== BrnFlapt::FileDebugData ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || muNumStrings || ||
|-
| 0x4 || 0x4 || char** || mpapStrings || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t || muNumStrings || ||
|-
| 0x4 || 0x4 || || || Padding ||
|-
| 0x8 || 0x8 || char** || mpapStrings || ||
|}
 
= Typedefs =
=== BrnFlapt::FlaptFile::GuiTexture ===
{| class="wikitable"
! Name !! Type !! Length !! Comments
|-
| GuiTexture || [[Texture]] || || See platform-specific specs for details
|}
 
=== BrnFlapt::FlaptFile::GuiVertex ===
{| class="wikitable"
! Name !! Type !! Length !! Comments
|-
| GuiVertex || [[#CgsGraphics::ImCommandBatchTransformTextureBlendRender::Im2dVertex|Im2dVertex]] || 0x14 ||
|}
 
=== CgsGraphics::ImCommandBatchTransformTextureBlendRender::Im2dVertex ===
{| class="wikitable"
! Name !! Type !! Length !! Comments
|-
| Im2dVertex || [[#CgsGraphics::Basic2dColouredTexturedVertex|Basic2dColouredTexturedVertex]] || 0x14 ||
|}