ICE Take Dictionary

From Burnout Wiki
ICETakeDictionary
aka ICEDictionary
No Example
Resource names StandardICETakes
Type ID 0x41
Category Generic
Memory
distribution
Main Memory only
Imports Unknown
Imported by Unknown
Editor
available?
No

The ICE (In-game Camera Editor) take dictionary stores the camera cuts for things such as race starts, Picture Paradise and Super Jumps. It is only found in CAMERAS.BUNDLE.

This resource type supersedes the earlier ICE List and ICE Data types.

Structures

CgsContainers::Dictonary<ICE::ICETakeData>

32-bit

Offset Length Type Name Description Comments
0x0 0xC SimpleDictionary<ICE::ICETakeData> Base class

64-bit

Offset Length Type Name Description Comments
0x0 0x10 SimpleDictionary<ICE::ICETakeData> Base class

CgsContainers::SimpleDictionary<ICE::ICETakeData>

32-bit

Offset Length Type Name Description Comments
0x0 0xC DictionaryBase Base class

64-bit

Offset Length Type Name Description Comments
0x0 0x10 DictionaryBase Base class

CgsContainers::DictionaryBase

32-bit

Offset Length Type Name Description Comments
0x0 0x4 int32_t miNumEntries Number of Dictionary entries
0x4 0x4 int32_t miDictionarySize Dictionary size (file size minus DictionaryBase length)
0x8 0x4 DictEntry* mpaIndex Dictionary entries

64-bit

Offset Length Type Name Description Comments
0x0 0x4 int32_t miNumEntries Number of Dictionary entries
0x4 0x4 int32_t miDictionarySize Dictionary size (file size minus DictionaryBase length)
0x8 0x8 DictEntry* mpaIndex Dictionary entries

CgsContainers::DictEntry

32-bit

Offset Length Type Name Description Comments
0x0 0x8 DictionaryKey mKey CRC32 hash of lowercase macTakeName
0x8 0x4 char* mpData ICE take data See ICETakeData
0xC 0x4 int32_t mxUserFlags Always 0x80000000

64-bit

Offset Length Type Name Description Comments
0x0 0x8 DictionaryKey mKey CRC32 hash of lowercase macTakeName
0x8 0x8 char* mpData ICE take data See ICETakeData
0x10 0x4 int32_t mxUserFlags Always 0x80000000
0x14 0x4 Padding

ICE::ICETakeData

Hmmm...
Hmmm...
To do:
Data after this is variable. Array of uint16s, array of floats, and camera data? PS4 has an additional value.

32-bit

Offset Length Type Name Description Comments
0x0 0x8 bTNode<ICE::ICETakeData> Base class
0x8 0x4 int32_t miGuid GameDB ID
0xC 0x20 char[32] macTakeName ICE Take Name
0x2C 0x4 float32_t mfLength Take length in seconds
0x30 0x4 uint32_t muAllocated
0x34 0x30 ICEElementCount[12] mElementCounts One for each of the 12 channels

64-bit

Offset Length Type Name Description Comments
0x0 0x10 bTNode<ICE::ICETakeData> Base class
0x10 0x4 int32_t miGuid GameDB ID
0x14 0x20 char[32] macTakeName ICE Take Name
0x34 0x4 float32_t mfLength Take length in seconds
0x38 0x4 uint32_t muAllocated
0x3C 0x30 ICEElementCount[12] mElementCounts One for each of the 12 channels

ICE::bTNode<ICE::ICETakeData>

32-bit

Offset Length Type Name Description Comments
0x0 0x8 bNode Base class

64-bit

Offset Length Type Name Description Comments
0x0 0x10 bNode Base class

ICE::bNode

32-bit

Offset Length Type Name Description Comments
0x0 0x4 bNode* Next Populated in memory
0x4 0x4 bNode* Prev Populated in memory

64-bit

Offset Length Type Name Description Comments
0x0 0x8 bNode* Next Populated in memory
0x4 0x8 bNode* Prev Populated in memory

ICE::ICEElementCount

Offset Length Type Name Description Comments
0x0 0x2 uint16_t mu16Intervals
0x2 0x2 uint16_t mu16Keys

Typedefs

CgsContainers::DictEntry::DictionaryKey

Name Type Length Comments
DictionaryKey int64_t 0x8 CRC32 hash of lowercase macTakeName

Enumerations

ICE::ICEChannels

Name Value Comments
eICE_CHANNEL_MAIN 0
eICE_CHANNEL_BLEND? 1
eICE_CHANNEL_RAWFOCUS 2
eICE_CHANNEL_SHAKE 3
eICE_CHANNEL_TIME 4
eICE_CHANNEL_TAG 5
eICE_CHANNEL_OVERLAY 6
eICE_CHANNEL_LETTERBOX 7
eICE_CHANNEL_FADE 8
eICE_CHANNEL_POSTFX? 9
eICE_CHANNEL_ASSEMBLY 10
eICE_CHANNEL_SHAKE_DATA 11
eICE_NUM_CHANNELS 12