Camera Properties Crash 2/3
Contents
- 1 First camera item
- 1.1 Property 0x29: cameramode
- 1.2 Property 0x4B: vectors/path
- 1.3 Property 0xC9: ?
- 1.4 Property 0x103: SLST
- 1.5 Property 0x109: path links
- 1.6 Property 0x130: camera's field of view
- 1.7 Property 0x162: ?
- 1.8 Property 0x16D: camera path related
- 1.9 Property 0x173: camera path number in zone
- 1.10 Property 0x174: camera path item number
- 1.11 Property 0x176: camera path number of links
- 1.12 Property 0x1AA: camera path related
First camera item
Property 0x29: cameramode
00000001 000000MM
- MM = mode
MM = 01; 3d views (normal route/game over screen/titles)
MM = 02; limited input? (platform routes/cutscenes)
MM = 03; sideviews MM = 04; all round view (warp rooms)
MM = 08; limited input? (transitional space/no man's land )
Property 0x4B: vectors/path
CCCCCCCC + CCCCCCCC x [XXXX ZZZZ YYYY]
- CCCCCCCC = count of path points
- XXXX = X-coordinate
- ZZZZ = Z-coordinate
- YYYY = Y-coordinate
Property 0xC9: ?
T.b.d. Might be related to bonus or transportation platforms
Property 0x103: SLST
Contains the EID of the accompanying SLST entry
Property 0x109: path links
This property contains information about which (neighbouring) paths and zones are linked with the current path. It consists of 4-byte words, with the 'path beginning/ending' as the main building block.
The property can have different lengths and formats depending on the type of situation. A path can begin where another one ends/end where another begins, be the very end/beginning of the level or converge from/split up in multiple paths.
A path beginning/ending contains the following data:
MMZZPP**
- MM = begin/end flag, 01 is for beginnings, 02 for endings
- ZZ = (neighbouring) zone index where this path begins if (MM=01) / ends if (MM=02)
- PP = (neighbouring) zone's path index where this path begins if (MM=01) / ends if (MM=02)
- ** = unknown; (neighbouring) zone's path's point index where this path begins if (MM=01) / ends if (MM=02)
The indices refer to the zones in the order as they come in the zone's header. The first zone is always a reference to the itself (index 0x00), i.e. the zone where the header is in.
Type 1 and 2: (first word == 1)
Type 1: path with single end and beginning (MM second word == 00)
00000001 0000CCCC 01ZZPP** 02ZZPP**
- CCCC = count of path points - 1 (end is at)
Type 2: path with single beginning (MM second word == 01)
00000001 01ZZPP**
Type 3 and 4: (first word !== 1)
Type 3: path with single end (MM second word == 02)
CCCC0001 02ZZPP**
- CCCC = count of path points - 1 (end is at)
Type 4: path with multiple endings/beginnings (MM second word !== 02)
EEEEBBBB CCCC0000 + BBBB x [01ZZPP**] + EEEE x [02ZZPP**]
- EEEE = count of endings
- BBBB = count of beginnings
- CCCC = count of path points - 1 (ends are at)
Property 0x130: camera's field of view
00000001 FFFFFFFF
- FFFFFFFF = field of view; the default value is 0x120
Property 0x162: ?
T.b.d. Might be an ID, value seems to be increase throughout the level
T.b.d.
Property 0x173: camera path number in zone
00000001 NNNNNNNN
- NNNNNNNN = camera path number in the zone, the first one being 0
Property 0x174: camera path item number
00000001 NNNNNNNN
- NNNNNNNN = camera path item number in the zone; is either 0, 1, 2
Property 0x176: camera path number of links
00000001 NNNNNNNN EEEEBBBB
- CCCCCCCC = count of path points - 1
- EEEE = number of linked paths at end
- BBBB = number of linked paths at beginning
T.b.d.