EvilEngine/SURF: Difference between revisions

m
Seil moved page SURF to EvilEngine/SURF
(Created page with "{{AssetInfobox |subtitle=Surface |type=Object |objectid=0x1A |games=Night of 100 Frights<br>Battle for Bikini Bottom<br>The SpongeBob SquarePants Movie<br>The Incredibles<...")
m (Seil moved page SURF to EvilEngine/SURF)
 
(7 intermediate revisions by 3 users not shown)
Line 1:
<onlyinclude>
{{AssetInfobox
{{#vardefine:typeid|SURF}}<nowiki/>
|subtitle=Surface
{{#vardefine:name|Surface}}<nowiki/>
|type=[[Object]]
{{#vardefine:type|[[Base]]}}<nowiki/>
|objectid=0x1A
{{#vardefine:basetype|0x1A}}<nowiki/>
|games=Night of 100 Frights<br>Battle for Bikini Bottom<br>The SpongeBob SquarePants Movie<br>The Incredibles<br>Rise of the Underminer}}
{{#vardefine:games|Scooby BFBB TSSM Incredibles ROTU RatProto}}<nowiki/>
{{#vardefine:sourcecode|[https://github.com/bfbbdecomp/bfbb/blob/master/src/Game/zSurface.h zSurface.h]}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
</onlyinclude>
{{AutoAssetInfobox}}
 
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==
Surfaces are [[Object AssetBase|objectbase assets]], so they start with their 0x54 byte header, then are followed by:
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x08 || bytechar || '''game_damage_type''' ||
* 0x00 = ?
* 0x01 = ?
Line 19 ⟶ 24:
* 0x06 = Hazard?
|-
| 0x09 || bytechar || '''game_sticky''' || always 0
|-
| 0x0A || bytechar || '''game_damage_flags''' ||
* 0x00 = ?
* 0x01 = ?
|-
| 0x0B || bytechar || '''surf_type''' || always 0
|-
| 0x0C || bytechar || '''phys_pad''' || padding (always null)
|-
| 0x0D || bytechar || '''sld_start''' || probably in degrees
|-
| 0x0E || bytechar || '''sld_stop''' || probably in degrees
|-
| 0x0F || bytechar || '''phys_flags''' ||
* 0x00 = ?Slide Off Player
* 0x02 = ?Angle Player
* 0x03 = ?
* 0x04 = ?No Stand
* 0x08 = ?Out Of Bounds
* 0x10 = ?Wall Jump
* 0x20 = ?Ledge Grab
* 0x48 = ?
|-
Line 49 ⟶ 54:
| 0x2C || [[#zSurfColorFX|zSurfColorFX]] || '''colorfx''' ||
|-
| 0x34 || intuint || '''texture_anim_flags''' || 0 or 1?
|-
| 0x38 || [[#zSurfTextureAnim|zSurfTextureAnim]][2] || '''texture_anim''' ||
|-
| 0x50 || intuint || '''uvfx_flags''' || related to UV anim? 0 or 1?
|-
| 0x54 || [[#zSurfUVFX|zSurfUVFX]][2] || '''uvfx''' ||
|-
| 0x114 || bytechar || '''on''' || 0 or 1
|-
| 0x115 || bytechar[3] || '''pad''' || padding
|-
| 0x118 || float || '''oob_delay''' ||
Line 80 ⟶ 85:
! Offset !! Type !! Variable !! Description
|-
| 0x00 || intuint || '''flags''' ||
* 0 = ?
* 1 = ?
* 8 = ?
|-
| 0x04 || [[AssetID]] ([[RWTX|Texture]]?) || '''bumpmapID''' || usually null
|-
| 0x08 || [[AssetID]] ([[RWTX|Texture]]) || '''envmapID''' ||
|-
| 0x0C || float || '''shininess''' ||
Line 93 ⟶ 98:
| 0x10 || float || '''bumpiness''' || usually 0
|-
| 0x14 || [[AssetID]] ([[RWTX|Texture]]?) || '''dualmapID''' || usually null
|}
 
Line 100 ⟶ 105:
! Offset !! Type !! Variable !! Description
|-
| 0x00 || shortushort || '''flags''' || always 0x000E
|-
| 0x02 || shortushort || '''mode''' || always 0
|-
| 0x04 || float || '''speed''' ||
Line 111 ⟶ 116:
! Offset !! Type !! Variable !! Description
|-
| 0x00 || shortushort || '''pad''' || padding (always null)
|-
| 0x02 || shortushort || '''mode''' ||
* 0 = ?
* 2 = ?
|-
| 0x04 || [[AssetID]] ([[GRUP|Group]]) || '''group''' ||
|-
| 0x08 || float || '''speed''' ||
Line 147 ⟶ 152:
| 0xA8 || [[Vector3]] || '''minmax_spd''' || usually (0, 0, 0)
|}
 
{{Assets}}
{{AutoGameNavs}}
 
[[Category:Asset]]