AI Sections

From Burnout Wiki
AISections
aka AIMapData
No Example
Resource names WorldMapData
Type ID 0x10001
Category Game-specific
(Burnout Paradise)
Memory
distribution
Main Memory only
Imports Unknown
Imported by Unknown
Editor
available?
No


Development
Information on versions of the AI sections resource type used during development.

The AI sections resource encompasses the routes the AI takes along with details on each section such as speed and shortcut information.

Structures

BrnAI::AISectionsData

32-bit

Offset Length Type Name Description Comments
0x0 0x4 AISection* mpaSections
0x4 0x4 SectionResetPair* mpaSectionResetPairs
0x8 0x14 float32_t[5] mafSectionMinSpeeds
0x1C 0x14 float32_t[5] mafSectionMaxSpeeds
0x30 0x4 uint32_t muNumSections Maximum of 20,000
0x34 0x4 uint32_t muNumSectionResetPairs
0x38 0x4 uint32_t muVersion 12
0x3C 0x4 uint32_t muSizeInBytes

64-bit

Offset Length Type Name Description Comments
0x0 0x8 AISection* mpaSections
0x8 0x8 SectionResetPair* mpaSectionResetPairs
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

BrnAI::AISection

32-bit

Offset Length Type Name Description Comments
0x0 0x4 Portal* mpaPortals
0x4 0x4 BoundaryLine* mpaNoGoLines
0x8 0x4 Vector2* mpaCorners
0xC 0x4 AISectionId mId Section GameDB ID
0x10 0x2 SpanIndex miSpanIndex
0x12 0x2 uint16_t muNumNoGoLines Maximum of 200 walls
0x14 0x1 uint8_t mu8NumPortals Maximum of 32
0x15 0x1 uint8_t muSpeed SectionSpeed See SectionSpeed
0x16 0x1 uint8_t mu8eDistrict District Always null
0x17 0x1 uint8_t mx8Flags Flags See flags

64-bit

Offset Length Type Name Description Comments
0x0 0x8 Portal* mpaPortals
0x8 0x8 BoundaryLine* mpaNoGoLines
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 See SectionSpeed
0x22 0x1 uint8_t mu8eDistrict District Always null
0x23 0x1 uint8_t mx8Flags Flags See flags
0x24 0x4 Padding

BrnAI::Portal

32-bit

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

64-bit

Offset Length Type Name Description Comments
0x0 0x4 float32_t mPositionX
0x4 0x4 float32_t mPositionY
0x8 0x4 float32_t mPositionZ
0xC 0x4 Padding
0x10 0x8 BoundaryLine* mpaBoundaryLines
0x18 0x2 uint16_t mu16LinkSection Section index
0x1A 0x1 uint8_t mu8NumBoundaryLines
0x1B 0x1 uint8_t[1] mau8Pad Padding
0x1C 0x4 Padding

BrnAI::BoundaryLine

Offset Length Type Name Description Comments
0x0 0x10 Vector4 mVerts

BrnAI::SectionResetPair

Offset Length Type Name Description Comments
0x0 0x4 uint32_t meResetSpeed See EResetSpeedType
0x4 0x2 uint16_t muStartSectionIndex
0x6 0x2 uint16_t muResetSectionIndex

Typedefs

BrnAI::AISection::AISectionId

Name Type Length Comments
AISectionId uint32_t 0x4

BrnStreetData::Road::SpanIndex

Name Type Length Comments
SpanIndex int16_t 0x2

Enumerations

BrnAI::SectionSpeed

Name Value Comments
E_SECTION_SPEED_VERY_SLOW 0
E_SECTION_SPEED_SLOW 1
E_SECTION_SPEED_NORMAL 2
E_SECTION_SPEED_FAST 3
E_SECTION_SPEED_VERY_FAST 4
E_SECTION_SPEED_COUNT 5

AISection flags

Name Value Comments
KX_SECTION_FLAG_SHORTCUT 0x1
KX_SECTION_FLAG_NO_RESET 0x2 No reset on track point
KX_SECTION_FLAG_IN_AIR 0x4 Typically right before jumps
KX_SECTION_FLAG_SPLIT 0x8 Road split, like at Moore/E. Crawford
KX_SECTION_FLAG_JUNCTION 0x10 Likely required for events
KX_SECTION_FLAG_TERMINATOR 0x20 Indicates walls etc. May not be end of the road
KX_SECTION_FLAG_AI_SHORTCUT 0x40
KX_SECTION_FLAG_AI_INTERSTATE_EXIT 0x80

BrnAI::EResetSpeedType

Name Value Comments
E_RESET_SPEED_TYPE_CUSTOM 0
E_RESET_SPEED_TYPE_NONE 1
E_RESET_SPEED_TYPE_SLOW 2
E_RESET_SPEED_TYPE_FAST 3
E_RESET_SPEED_TYPE_SLOW_NORTH_FACE 4
E_RESET_SPEED_TYPE_SLOW_SOUTH_FACE 5
E_RESET_SPEED_TYPE_SLOW_EAST_FACE 6
E_RESET_SPEED_TYPE_SLOW_WEST_FACE 7
E_RESET_SPEED_TYPE_SLOW_REVERSE 8
E_RESET_SPEED_TYPE_STOP_REVERSE 9
E_RESET_SPEED_TYPE_STOP_NORTH_FACE 10
E_RESET_SPEED_TYPE_STOP_SOUTH_FACE 11
E_RESET_SPEED_TYPE_STOP_EAST_FACE 12
E_RESET_SPEED_TYPE_STOP_WEST_FACE 13
E_RESET_SPEED_TYPE_STOP_NORTH_EAST_FACE 14
E_RESET_SPEED_TYPE_STOP_SOUTH_WEST_FACE 15
E_RESET_SPEED_TYPE_NONE_AND_IGNORE 16
E_RESET_SPEED_TYPE_WEST_AND_IGNORE 17
E_RESET_SPEED_TYPE_REVERSE_AND_IGNORE 18
E_RESET_SPEED_TYPE_REVERSE_AND_IGNORE_SLOW 19
E_RESET_SPEED_TYPE_COUNT 20