AI Sections

Revision as of 10:31, 7 April 2022 by Derneuere (talk | contribs) (Created page with "=== AISectionsData === {| class="wikitable" ! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments |- | 0x0 || 0x4 || AISection * || mpaSections || || AISection format || |- | 0x4 || 0x4 || SectionResetPair * || mpaSectionResetPairs || || SectionResetPair format || |- | 0x8 || 0x14 || float32_t[5] || mafSectionMinSpeeds || || || |- | 0x1C || 0x14 || float32_t[5] || mafSectionMaxSpeeds || || || |- | 0x30 || 0x4 || uint32_t || muNumSectio...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

AISectionsData

Offset Size Type Name Description More Information Comments
0x0 0x4 AISection * mpaSections AISection format
0x4 0x4 SectionResetPair * mpaSectionResetPairs SectionResetPair format
0x8 0x14 float32_t[5] mafSectionMinSpeeds
0x1C 0x14 float32_t[5] mafSectionMaxSpeeds
0x30 0x4 uint32_t muNumSections
0x34 0x4 uint32_t muNumSectionResetPairs
0x38 0x4 uint32_t muVersion 12
0x3C 0x4 uint32_t muSizeInBytes

AISection

Offset Size Type Name Description More Information Comments
0x0 0x4 Portal * mpaPortals Portal format
0x4 0x4 BoundaryLine * mpaNoGoLines BoundaryLine format
0x8 0x4 Vector2 * mpaCorners
0xC 0x4 AISectionId mId Section GameDB ID
0x10 0x2 SpanIndex miSpanIndex
0x12 0x2 uint16_t muNumNoGoLines
0x14 0x1 uint8_t mu8NumPortals
0x15 0x1 uint8_t muSpeed SectionSpeed 0x0 = E_SECTION_SPEED_VERY_SLOW
0x1 = E_SECTION_SPEED_SLOW
0x2 = E_SECTION_SPEED_NORMAL
0x3 = E_SECTION_SPEED_FAST
0x4 = E_SECTION_SPEED_VERY_FAST
0x5 = E_SECTION_SPEED_COUNT
0x16 0x1 uint8_t mu8eDistrict District Always null
0x17 0x1 uint8_t mx8Flags 0x01 (Bit 0) = IsShortcut
0x02 (Bit 1) = IsNoReset No reset on track point
0x04 (Bit 2) = IsInAir Typically right before jumps
0x08 (Bit 3) = IsTerminator Indicates walls etc. May not be end of the road
0x10 (Bit 4) = IsJunction Likely required for events
0x20 (Bit 5) = IsSplit Road split, like at Moore/E. Crawford
0x40 (Bit 6) = IsAIShortcut
0x80 (Bit 7) = IsInterstateExit

Portal

Offset Size Type Name Description More Information Comments
0x0 0x4 float32_t mPositionX
0x4 0x4 float32_t mPositionY
0x8 0x4 float32_t mPositionZ
0xC 0x4 BoundaryLine * mpaBoundaryLines BoundaryLine format
0x10 0x2 uint16_t mu16LinkSection Section index
0x12 0x1 uint8_t mu8NumBoundaryLines
0x13 0x1 uint8_t[1] mau8Pad padding

BoundaryLine

Offset Size Type Name Description More Information Comments
0x0 0x10 Vector4 mVerts

SectionResetPair

Offset Size Type Name Description More Information Comments
0x0 0x4 uint32_t meResetSpeed EResetSpeedType 0x00 = E_RESET_SPEED_TYPE_CUSTOM
0x01 = E_RESET_SPEED_TYPE_NONE
0x02 = E_RESET_SPEED_TYPE_SLOW
0x03 = E_RESET_SPEED_TYPE_FAST
0x04 = E_RESET_SPEED_TYPE_SLOW_NORTH_FACE
0x05 = E_RESET_SPEED_TYPE_SLOW_SOUTH_FACE
0x06 = E_RESET_SPEED_TYPE_SLOW_EAST_FACE
0x07 = E_RESET_SPEED_TYPE_SLOW_WEST_FACE
0x08 = E_RESET_SPEED_TYPE_SLOW_REVERSE
0x09 = E_RESET_SPEED_TYPE_STOP_REVERSE
0x0A = E_RESET_SPEED_TYPE_STOP_NORTH_FACE
0x0B = E_RESET_SPEED_TYPE_STOP_SOUTH_FACE
0x0C = E_RESET_SPEED_TYPE_STOP_EAST_FACE
0x0D = E_RESET_SPEED_TYPE_STOP_WEST_FACE
0x0E = E_RESET_SPEED_TYPE_STOP_NORTH_EAST_FACE
0x0F = E_RESET_SPEED_TYPE_STOP_SOUTH_WEST_FACE
0x10 = E_RESET_SPEED_TYPE_NONE_AND_IGNORE
0x11 = E_RESET_SPEED_TYPE_WEST_AND_IGNORE
0x12 = E_RESET_SPEED_TYPE_REVERSE_AND_IGNORE
0x13 = E_RESET_SPEED_TYPE_REVERSE_AND_IGNORE_SLOW
0x14 = E_RESET_SPEED_TYPE_COUNT
0x4 0x2 uint16_t muStartSectionIndex
0x6 0x2 uint16_t muResetSectionIndex

AISectionPointMap

Offset Size Type Name Description More Information Comments
0x0 0x4 int32_t miGridWidth AISectionPointMap unused in file
0x4 0x4 int32_t miGridHeight
0x8 0x8 padding
0x10 0x10 Vector2 mvGridUnitSize
0x20 0x10 Vector2 mvGridMin
0x30 0x4 Vector3 * mpPoints
0x34 0x4 uint16_t * mpuSections
0x38 0x4 uint16_t * mpuGridUnitMap
0x3C 0x4 uint16_t * mpuGridUnitPointIndices
0x40 0x4 uint16_t * mpuGridUnitPointCount
0x44 0xC padding

BoundingBox

Offset Size Type Name Description More Information Comments
0x0 0x80 Vector3[8] maCorners BoundingBox unused in file

DrivingCollisionTriangle

Offset Size Type Name Description More Information Comments
0x0 0x30 Vector3[3] maVerts DrivingCollisionTriangle unused in file

PS4

AISectionsData

Offset Size Type Name Description More Information Comments
0x0 0x8 AISection * mpaSections AISection format
0x8 0x8 SectionResetPair * mpaSectionResetPairs SectionResetPair format
0x10 0x14 float32_t[5] mafSectionMinSpeeds
0x24 0x14 float32_t[5] mafSectionMaxSpeeds
0x38 0x4 uint32_t muNumSections
0x3C 0x4 uint32_t muNumSectionResetPairs
0x40 0x4 uint32_t muVersion 12
0x44 0x4 uint32_t muSizeInBytes

AISection

Offset Size Type Name Description More Information Comments
0x0 0x8 Portal * mpaPortals Portal format
0x8 0x8 BoundaryLine * mpaNoGoLines BoundaryLine format
0x10 0x8 Vector2 * mpaCorners
0x18 0x4 AISectionId mId Section GameDB ID
0x1C 0x2 SpanIndex miSpanIndex
0x1E 0x2 uint16_t muNumNoGoLines
0x20 0x1 uint8_t mu8NumPortals
0x21 0x1 uint8_t muSpeed SectionSpeed 0x0 = E_SECTION_SPEED_VERY_SLOW
0x1 = E_SECTION_SPEED_SLOW
0x2 = E_SECTION_SPEED_NORMAL
0x3 = E_SECTION_SPEED_FAST
0x4 = E_SECTION_SPEED_VERY_FAST
0x5 = E_SECTION_SPEED_COUNT
0x22 0x1 uint8_t mu8eDistrict District Always null
0x23 0x1 uint8_t mx8Flags 0x01 (Bit 0) = IsShortcut
0x02 (Bit 1) = IsNoReset No reset on track point
0x04 (Bit 2) = IsInAir Typically right before jumps
0x08 (Bit 3) = IsTerminator Indicates walls etc. May not be end of the road
0x10 (Bit 4) = IsJunction Likely required for events
0x20 (Bit 5) = IsSplit Road split, like at Moore/E. Crawford
0x40 (Bit 6) = IsAIShortcut
0x80 (Bit 7) = IsInterstateExit
0x24 0x4 padding

Portal

Offset Size Type Name Description More Information Comments
0x0 0x4 float32_t mPositionX
0x4 0x4 float32_t mPositionY
0x8 0x4 float32_t mPositionZ
0xC 0x4 padding
0x10 0x8 BoundaryLine * mpaBoundaryLines BoundaryLine format
0x18 0x4 padding
0x1C 0x2 uint16_t mu16LinkSection Section index
0x1E 0x1 uint8_t mu8NumBoundaryLines
0x1F 0x1 uint8_t[1] mau8Pad padding

BoundaryLine

Offset Size Type Name Description More Information Comments
0x0 0x10 Vector4 mVerts

SectionResetPair

Offset Size Type Name Description More Information
0x0 0x4 uint32_t meResetSpeed EResetSpeedType 0x00 = E_RESET_SPEED_TYPE_CUSTOM
0x01 = E_RESET_SPEED_TYPE_NONE
0x02 = E_RESET_SPEED_TYPE_SLOW
0x03 = E_RESET_SPEED_TYPE_FAST
0x04 = E_RESET_SPEED_TYPE_SLOW_NORTH_FACE
0x05 = E_RESET_SPEED_TYPE_SLOW_SOUTH_FACE
0x06 = E_RESET_SPEED_TYPE_SLOW_EAST_FACE
0x07 = E_RESET_SPEED_TYPE_SLOW_WEST_FACE
0x08 = E_RESET_SPEED_TYPE_SLOW_REVERSE
0x09 = E_RESET_SPEED_TYPE_STOP_REVERSE
0x0A = E_RESET_SPEED_TYPE_STOP_NORTH_FACE
0x0B = E_RESET_SPEED_TYPE_STOP_SOUTH_FACE
0x0C = E_RESET_SPEED_TYPE_STOP_EAST_FACE
0x0D = E_RESET_SPEED_TYPE_STOP_WEST_FACE
0x0E = E_RESET_SPEED_TYPE_STOP_NORTH_EAST_FACE
0x0F = E_RESET_SPEED_TYPE_STOP_SOUTH_WEST_FACE
0x10 = E_RESET_SPEED_TYPE_NONE_AND_IGNORE
0x11 = E_RESET_SPEED_TYPE_WEST_AND_IGNORE
0x12 = E_RESET_SPEED_TYPE_REVERSE_AND_IGNORE
0x13 = E_RESET_SPEED_TYPE_REVERSE_AND_IGNORE_SLOW
0x14 = E_RESET_SPEED_TYPE_COUNT
0x4 0x2 uint16_t muStartSectionIndex
0x6 0x2 uint16_t muResetSectionIndex

AISectionPointMap

Offset Size Type Name Description More Information Comments
0x0 0x4 int32_t miGridWidth AISectionPointMap unused in file, PS4 structure guessed
0x4 0x4 int32_t miGridHeight
0x8 0x8 padding
0x10 0x10 Vector2 mvGridUnitSize
0x20 0x10 Vector2 mvGridMin
0x30 0x8 Vector3 * mpPoints
0x38 0x8 uint16_t * mpuSections
0x40 0x8 uint16_t * mpuGridUnitMap
0x48 0x8 uint16_t * mpuGridUnitPointIndices
0x50 0x8 uint16_t * mpuGridUnitPointCount
0x58 0x8 padding

BoundingBox

Offset Size Type Name Description More Information Comments
0x0 0x80 Vector3[8] maCorners BoundingBox unused in file

DrivingCollisionTriangle

Offset Size Type Name Description More Information Comments
0x0 0x30 Vector3[3] maVerts DrivingCollisionTriangle unused in file