EvilEngine/SURF: Difference between revisions

m
Seil moved page SURF to EvilEngine/SURF
Battlepedia>Seil
m (Seil moved page SURF to EvilEngine/SURF)
 
(11 intermediate revisions by 4 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 || '''Flags 1game_damage_type''' ||
* 0x00 = ?
* 0x01 = ?
Line 19 ⟶ 24:
* 0x06 = Hazard?
|-
| 0x09 || bytechar || '''Flags 2game_sticky''', || always 0
|-
| 0x0A || bytechar || '''Flags 3game_damage_flags''' ||
* 0x00 = ?
* 0x01 = ?
|-
| 0x0B || bytechar || '''Flags 4surf_type''', || always 0
|-
| 0x0C || bytechar || '''Flags 5phys_pad''', || padding (always 0null)
|-
| 0x0D || bytechar || '''Flags 6sld_start''' || probably in degrees
* 0x14 = ?
* 0x1E = ?
* 0x23 = ?
* 0x2D = ?
|-
| 0x0E || bytechar || '''Flags 7sld_stop''' || probably in degrees
* 0x0A = ?
* 0x14 = ?
* 0x28 = ?
|-
| 0x0F || bytechar || '''Flags 8phys_flags''' ||
* 0x00 = ?Slide Off Player
* 0x02 = ?Angle Player
* 0x03 = ?
* 0x04 = ?No Stand
* 0x08 = ?Out Of Bounds
* 0x10 = ?Wall Jump
* 0x20 = ?Ledge Grab
* 0x48 = ?
|-
| 0x10 || float || '''Unknownfriction''', || range = 0 to 1?
|-
| 0x14 || int[[#zSurfMatFX|zSurfMatFX]] || '''Unknownmatfx''' ||
* 0 = ?
* 1 = ?
* 8 = ?
|-
| 0x180x2C || ?[[#zSurfColorFX|zSurfColorFX]] || '''Unknowncolorfx''' (null)||
|-
| 0x1C0x34 || [[AssetID]] ([[RWTX|Texture]])uint || '''Env Map Texture?texture_anim_flags''' || 0 or 1?
|-
| 0x38 || [[#zSurfTextureAnim|zSurfTextureAnim]][2] || '''texture_anim''' ||
| 0x20 || float || '''Unknown Env Map Value'''
|-
| 0x240x50 || ?uint || '''Unknownuvfx_flags''' (null)|| related to UV anim? 0 or 1?
|-
| 0x280x54 || ?[[#zSurfUVFX|zSurfUVFX]][2] || '''Unknownuvfx''' (null)||
|-
| 0x2C0x114 || shortchar || '''Unknownon''', always|| 0 or 0x000E1
|-
| 0x2E0x115 || shortchar[3] || '''Unknownpad''', always|| 0padding
|-
| 0x300x118 || float || '''Unknownoob_delay''' ||
|-
| 0x340x11C || intfloat || '''UV Anim Mode?walljump_scale_xz''' ||
* 0 = disabled?
* 1 = enabled?
|-
| 0x380x120 || intfloat || '''Unknownwalljump_scale_y''' ||
|-
| 0x124 || float || '''damage_timer''' || little endian
|-
| 0x128 || float || '''damage_bounce''' || little endian
|-
! colspan="34" | Events
|-
| 0x12C || Event[numberOfEvents] || '''[[Events]]''' ||
|}
 
===zSurfMatFX===
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || uint || '''flags''' ||
* 0 = ?
* 21 = ?
* 0x148 = ?
|-
| 0x3C0x04 || [[AssetID]] ([[GRUP|Group]]) || '''Texture Group?bumpmapID''' For|| UVusually animnull
|-
| 0x400x08 || float[[AssetID]] || '''UnknownenvmapID''' ||
|-
| 0x440x0C || ?float || '''Unknownshininess''' (null)||
|-
| 0x480x10 || ?float || '''Unknownbumpiness''' (null)|| usually 0
|-
| 0x4C0x14 || float[[AssetID]] || '''UnknowndualmapID''' || usually null
|}
 
===zSurfColorFX===
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x500x00 || intushort || '''Unknownflags''', related to|| UValways anim?0x000E
* 0 = disabled?
* 1 = enabled?
|-
| 0x540x02 || ?ushort || '''Unknownmode''' (null)|| always 0
|-
| 0x580x04 || ?float || '''Unknownspeed''' (null)||
|}
 
===zSurfTextureAnim===
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x5C0x00 || floatushort || '''Unknownpad''' || padding (always null)
|-
| 0x600x02 || floatushort || '''Unknownmode''' ||
* 0x1E0 = ?
* 0x232 = ?
|-
| 0x640x04 || float[[AssetID]] || '''Unknowngroup''' ||
|-
| 0x680x08 || ?float || '''Unknownspeed''' (null)||
|}
 
===zSurfUVFX===
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x6C0x54 || floatint || '''UV Animation Xmode''' || always 0
|-
| 0x700x58 || float || '''UV Animation Yrot''' || always 0
|-
| 0x740x5C || ?float || '''Unknownrot_spd''' (null)||
|-
| 0x780x60 || float[[Vector3]] || '''Unknowntrans''' || Z is always 0
|-
| 0x7C0x6C || float[[Vector3]] || '''Unknowntrans_spd''' || Z is always 0
|-
| 0x800x78 || ?[19[Vector3]] || '''Unknownscale''' (null)|| Z is always 0
|-
| 0x84 || [[Vector3]] || '''scale_spd''' || usually (0, 0, 0)
! colspan="3" | Events
|-
| 0xCC0x90 || Event[numberOfEvents[Vector3]] || '''[[Events]]min''' || usually (0, 0, 0)
|-
| 0x9C || [[Vector3]] || '''max''' || usually (0, 0, 0)
|-
| 0xA8 || [[Vector3]] || '''minmax_spd''' || usually (0, 0, 0)
|}
 
{{Assets}}
{{AutoGameNavs}}
 
[[Category:Asset]]