Camera Properties Crash 2/3

From Crash Bandicoot Hacking Wiki
Revision as of 16:31, 12 December 2018 by Wikia>Warenhuis (Property 0x4B: vectors/paths)
Jump to navigation Jump to search

 First camera item

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