EvilEngine/SURF: Difference between revisions

m
Seil moved page SURF to EvilEngine/SURF
Battlepedia>Igorseabra4
(Created page with "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 s...")
 
m (Seil moved page SURF to EvilEngine/SURF)
 
(14 intermediate revisions by 5 users not shown)
Line 1:
<onlyinclude>
{{#vardefine:typeid|SURF}}<nowiki/>
{{#vardefine:name|Surface}}<nowiki/>
{{#vardefine:type|[[Base]]}}<nowiki/>
{{#vardefine:basetype|0x1A}}<nowiki/>
{{#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 || intchar || '''Unknowngame_damage_type''' ||
* 0x00 = ?
* 0x01 = ?
* 0x05 = ?
* 0x06 = Hazard?
|-
| 0x0C0x09 || bytechar || '''Unknowngame_sticky''' || always 0
|-
| 0x0D0x0A || bytechar || '''Unknowngame_damage_flags''' ||
* 0x00 = ?
* 0x01 = ?
|-
| 0x0E0x0B || bytechar || '''Unknownsurf_type''' || always 0
|-
| 0x0F0x0C || bytechar || '''Unknownphys_pad''' || padding (always null)
|-
| 0x100x0D || floatchar || '''Unknownsld_start''' || probably in degrees
|-
| 0x140x0E || intchar || '''Unknownsld_stop''' || probably in degrees
|-
| 0x180x0F || intchar || '''Unknownphys_flags''' ||
* 0x00 = Slide Off Player
* 0x02 = Angle Player
* 0x03 = ?
* 0x04 = No Stand
* 0x08 = Out Of Bounds
* 0x10 = Wall Jump
* 0x20 = Ledge Grab
* 0x48 = ?
|-
| 0x1C0x10 || intfloat || '''Unknownfriction''' || range = 0 to 1?
|-
| 0x200x14 || int[[#zSurfMatFX|zSurfMatFX]] || '''Unknownmatfx''' ||
|-
| 0x240x2C || int[[#zSurfColorFX|zSurfColorFX]] || '''Unknowncolorfx''' ||
|-
| 0x280x34 || intuint || '''Unknowntexture_anim_flags''' || 0 or 1?
|-
| 0x2C0x38 || short[[#zSurfTextureAnim|zSurfTextureAnim]][2] || '''Unknowntexture_anim''' ||
|-
| 0x2E0x50 || shortuint || '''Unknownuvfx_flags''' || related to UV anim? 0 or 1?
|-
| 0x300x54 || float[[#zSurfUVFX|zSurfUVFX]][2] || '''Unknownuvfx''' ||
|-
| 0x340x114 || floatchar || '''Unknownon''' || 0 or 1
|-
| 0x380x115 || floatchar[3] || '''Unknownpad''' || padding
|-
| 0x3C0x118 || float || '''Unknownoob_delay''' ||
|-
| 0x400x11C || float || '''Unknownwalljump_scale_xz''' ||
|-
| 0x440x120 || float || '''Unknownwalljump_scale_y''' ||
|-
| 0x480x124 || float || '''Unknowndamage_timer''' || little endian
|-
| 0x4C0x128 || float || '''Unknowndamage_bounce''' || little endian
|-
! colspan="34" | Events
| 0x50 || int || '''Unknown'''
|-
| 0x540x12C || intEvent[numberOfEvents] || '''Unknown[[Events]]''' ||
|-}
 
===zSurfMatFX===
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x580x00 || intuint || '''Unknownflags''' ||
* 0 = ?
* 1 = ?
* 8 = ?
|-
| 0x5C0x04 || int[[AssetID]] || '''UnknownbumpmapID''' || usually null
|-
| 0x600x08 || int[[AssetID]] || '''UnknownenvmapID''' ||
|-
| 0x640x0C || intfloat || '''Unknownshininess''' ||
|-
| 0x680x10 || intfloat || '''Unknownbumpiness''' || usually 0
|-
| 0x6C0x14 || float[[AssetID]] || '''UV Animation XdualmapID''' || usually null
|-}
 
===zSurfColorFX===
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x700x00 || floatushort || '''UV Animation Xflags''' || always 0x000E
|-
| 0x740x02 || floatushort || '''Unknownmode''' || always 0
|-
| 0x780x04 || float || '''Unknownspeed''' ||
|-}
 
===zSurfTextureAnim===
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x7C0x00 || floatushort || '''Unknownpad''' || padding (always null)
|-
| 0x800x02 || floatushort || '''Unknownmode''' ||
* 0 = ?
* 2 = ?
|-
| 0x840x04 || float[[AssetID]] || '''Unknowngroup''' ||
|-
| 0x880x08 || float || '''Unknownspeed''' ||
|-}
 
===zSurfUVFX===
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x8C0x54 || floatint || '''Unknownmode''' || always 0
|-
| 0x900x58 || float || '''Unknownrot''' || always 0
|-
| 0x940x5C || float || '''Unknownrot_spd''' ||
|-
| 0x980x60 || float[[Vector3]] || '''Unknowntrans''' || Z is always 0
|-
| 0x9C0x6C || float[[Vector3]] || '''Unknowntrans_spd''' || Z is always 0
|-
| 0x1000x78 || float[[Vector3]] || '''Unknownscale''' || Z is always 0
|-
| 0x1040x84 || float[[Vector3]] || '''Unknownscale_spd''' || usually (0, 0, 0)
|-
| 0x1080x90 || float[[Vector3]] || '''Unknownmin''' || usually (0, 0, 0)
|-
| 0x10C0x9C || float[[Vector3]] || '''Unknownmax''' || usually (0, 0, 0)
|-
| 0x1100xA8 || float[[Vector3]] || '''Unknownminmax_spd''' || usually (0, 0, 0)
|-
| 0x114 || byte || '''Unknown'''
|-
| 0x115 || byte || '''Unknown'''
|-
| 0x116 || byte || '''Unknown'''
|-
| 0x117 || byte || '''Unknown'''
|-
| 0x118 || float || '''Unknown'''
|-
| 0x11C || float || '''Unknown'''
|-
| 0x120 || float || '''Unknown'''
|-
| 0x124 || float || '''Unknown'''
|-
| 0x128 || float || '''Unknown'''
|-
! colspan="3" | Events
|-
| 0x12C || Event[numberOfEvents] || '''[[Events]]'''
|}
 
{{Assets}}
{{AutoGameNavs}}
 
[[Category:Asset]]