Difference between revisions of "Camera Properties Crash 2/3"

From Crash Bandicoot Hacking Wiki
Jump to navigation Jump to search
m (Property 0x29: cameramode)
(Property 0x29: cameramode)
Line 3: Line 3:
 
=== Property 0x29: cameramode ===
 
=== Property 0x29: cameramode ===
 
<u>00000001</u> <u>000000MM</u>
 
<u>00000001</u> <u>000000MM</u>
 
+
* MM = modeMM =  01; 3d views (normal route/game over screen/titles)
MM =  01; 3d views (normal route/game over screen/titles)
 
  
 
MM =  02; limited input? (platform routes/cutscenes)
 
MM =  02; limited input? (platform routes/cutscenes)

Revision as of 18:03, 12 December 2018

 First camera item

Property 0x29: cameramode

00000001 000000MM

  • MM = modeMM = 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

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 (CCCC == pathcount) 

CCCC0001 02ZZPP**

  • CCCC = count of path points - 1

Type 4: path with multiple endings/beginnings (CCCC !== pathcount) 

EEEEBBBB CCCC0000 + EEEE x [01ZZPP**] + BBBB x [02ZZPP**] 

  • EEEE = count of endings
  • BBBB = count of beginnings
  • CCCC = count of path points - 1