SURF

From BFBB Wiki
Jump to: navigation, search
SURF
Surface
Type Object
Object ID 0x1A
Games used Night of 100 Frights
Battle for Bikini Bottom
The SpongeBob SquarePants Movie
The Incredibles
Rise of the Underminer

This asset defines an entry for a surface, which can be applied to other assets such as PLAT, SIMP, BOUL or even parts of JSP through the MAPR asset. The surface can have properties such as special materials, texture animations or patterns, and properties such as hurt, wall jump, out of bounds, prevent standing on.

Format[edit]

Surfaces are object assets, so they start with their 0x54 byte header, then are followed by:

Offset Type Description
0x08 byte Flags 1
  • 0x00 = ?
  • 0x01 = ?
  • 0x05 = ?
  • 0x06 = Hazard?
0x09 byte Flags 2, always 0
0x0A byte Flags 3
  • 0x00 = ?
  • 0x01 = ?
0x0B byte Flags 4, always 0
0x0C byte Flags 5, always 0
0x0D byte Flags 6
  • 0x14 = ?
  • 0x1E = ?
  • 0x23 = ?
  • 0x2D = ?
0x0E byte Flags 7
  • 0x0A = ?
  • 0x14 = ?
  • 0x28 = ?
0x0F byte Flags 8
  • 0x00 = ?
  • 0x02 = ?
  • 0x03 = ?
  • 0x04 = ?
  • 0x08 = ?
  • 0x10 = ?
  • 0x20 = ?
  • 0x48 = ?
0x10 float Unknown, range = 0 to 1?
0x14 int Unknown
  • 0 = ?
  • 1 = ?
  • 8 = ?
0x18  ? Unknown (null)
0x1C AssetID (Texture) Env Map Texture?
0x20 float Unknown Env Map Value
0x24  ? Unknown (null)
0x28  ? Unknown (null)
0x2C short Unknown, always 0x000E
0x2E short Unknown, always 0
0x30 float Unknown
0x34 int UV Anim Mode?
  • 0 = disabled?
  • 1 = enabled?
0x38 int Unknown
  • 0 = ?
  • 2 = ?
0x3C AssetID (Group) Texture Group? For UV anim
0x40 float Unknown
0x44  ? Unknown (null)
0x48  ? Unknown (null)
0x4C float Unknown
0x50 int Unknown, related to UV anim?
  • 0 = disabled?
  • 1 = enabled?
0x54  ? Unknown (null)
0x58  ? Unknown (null)
0x5C float Unknown
0x60 float Unknown
0x64 float Unknown
0x68  ? Unknown (null)
0x6C float UV Animation X
0x70 float UV Animation Y
0x74  ? Unknown (null)
0x78 float Unknown
0x7C float Unknown
0x80  ?[22] Unknown (null)
0xD8 float Unknown
0xDC float Unknown
0xE0  ?[13] Unknown (null)
0x114 byte Flags 9
  • 0 = ?
  • 1 = ?
0x115 byte Flags 10, always 0
0x116 byte Flags 11, always 0
0x117 byte Flags 12, always 0
0x118 float Unknown
0x11C float Unknown
0x120 float Unknown
0x124 float Unknown, little endian
0x128 float Unknown, little endian
Events
0x12C Event[numberOfEvents] Events