EvilEngine/Assets: Difference between revisions
Content added Content deleted
Battlepedia>Wowaname mNo edit summary |
Battlepedia>Seil No edit summary |
||
Line 1:
==Classes of Assets==
Line 7:
These are assets whose data is composed of a RenderWare binary stream, with the tree structure commonly found in them. These assets can be opened in [https://www.gta-modding.com/area/file-33-rw-analyze.html RW Analyze]. They are: [[BSP]], [[JSP]], [[MODL]], [[RWTX]].
===
Many assets extend from Base Assets (also referred to as object assets), which define objects in the level that can interact with each other by using [[Events#Links|links]]. Base assets start with an 8 byte header, defined by the <code>xBaseAsset</code> struct:
<source lang=cpp>
struct xBaseAsset
{
unsigned int id;
unsigned char baseType;
unsigned char linkCount;
unsigned short baseFlags;
}
</source>
{| class="wikitable"
! Offset
|-
| 0x00
|-
| 0x04
|-
| 0x05 || '''linkCount''' || The number of links present at/near the end of the asset.
|-
| 0x06
*
*
*
*
*
|}
The data that follows this header differs depending on the asset type. Some
These objects have, at the end of their data, an array of [[
===
<source lang=cpp>
struct xEntAsset : xBaseAsset
{
unsigned char flags;
unsigned char subtype;
unsigned char pflags;
unsigned char moreFlags;
unsigned char pad;
unsigned int surfaceID;
xVec3 ang;
xVec3 pos;
xVec3 scale;
float redMult;
float greenMult;
float blueMult;
float seeThru;
float seeThruSpeed;
unsigned int modelInfoID;
unsigned int animListID;
};
</source>
{| class="wikitable"
! Offset
|-
| 0x08
* 1 - '''Visible''', used by [[BOUL]], [[BUTN]], [[DSTR]], [[EGEN]], [[PKUP]], [[PLAT]], [[PLYR]], [[SIMP]], [[TRIG]], [[UI]], [[UIFT]], [[VIL]]
* 2 - '''Stackable'''. Enabling this will cause the object to fall down and stack on top of other objects. This is mainly used for [[DSTR|Destructible Objects]], such as a table with a picture on top of it (when the table is destroyed, the picture falls to the ground). Note that this disables [[PLAT]] movement. Works with [[PLAT]], [[BUTN]], [[DSTR]], [[VIL]] (?), and possibly others. Enabling this on a [[SIMP]] will crash the game.
Line 47 ⟶ 79:
* 128 - Unused
|-
| 0x09
* [[PKUP]] - [[PKUP#Types (0x09)|Pickup types]]
* [[PLAT]] - [[PLAT#Types (0x09)|Platform types]]
* [[TRIG]] - 0 = Box, 1 = Sphere, 2 = Cylinder
|-
| 0x0A
|-
| 0x0B
* 1 - Unused
* 2 - '''Precise Collision'''. When enabled, the collision shape is the exact shape of the model. When disabled, the collision shape is the bounding box of the model. Used by [[BUTN]], [[DSTR]], [[EGEN]], [[PKUP]], [[PLAT]], [[SIMP]], [[UI]], [[UIFT]], [[VIL]]
Line 64 ⟶ 96:
* 128 - '''Unknown''', used by [[PLAT]], [[SIMP]]
|-
| 0x0C
|-
| 0x10
|-
| 0x14 || '''ang''' || A (Yaw, Pitch, Roll) rotation vector (in radians).
|-
| 0x20 || '''pos''' || A (X, Y, Z) position vector.
|-
| 0x2C || '''scale''' || A (X, Y, Z) scale vector.
▲| 0x10 || [[AssetID]] ([[SURF]]) || '''Surface''' || Surface for [[SIMP]], [[PLAT]], [[UI]], [[EGEN]], and possibly others.
|-
|
|-
|
|-
|
|-
|
|-
| 0x48
|-
| 0x4C ||
|-
| 0x50 ||
|}
Line 97 ⟶ 135:
! Description
! Type
!
! 1
! 2
Line 103 ⟶ 141:
! 4
! 5
! Notes
|-
| align=center | [[ALST]]
Line 108 ⟶ 147:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[ANIM]]
Line 114 ⟶ 153:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[ATBL]]
Line 120 ⟶ 159:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[ATKT]]
Line 126 ⟶ 165:
|| Binary
| align=center | -
|| || || || ✔ || ||
|-
| align=center | [[BINK]]
Line 132 ⟶ 171:
|| Binary
| align=center | -
|| || || || ✔ || ✔ ||
|-
| align=center | [[BOUL]]
|| Boulder
||
| align=center | 0x2F
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[BSP]]
Line 144 ⟶ 183:
|| RenderWare
| align=center | -
|| ✔ || || || || ||
|-
| align=center | [[BUTN]]
|| Button
||
| align=center | 0x18
|| ✔ || ✔ || ✔ || ✔ || ||
|-
| align=center | [[CAM]]
|| Camera
||
| align=center | 0x07
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[CCRV]]
|| Camera Curve
||
| align=center | 0x8D
|| || || || || ✔ ||
|-
| align=center | [[CNTR]]
|| Counter
||
| align=center | 0x16
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[COLL]]
Line 174 ⟶ 213:
|| Binary
| align=center | -
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[COND]]
|| Conditional
||
| align=center | 0x1F
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[CRDT]]
Line 186 ⟶ 225:
|| Binary
| align=center | -
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[CSN]]
Line 192 ⟶ 231:
|| Binary
| align=center | -
|| || ✔ || ✔ || ✔ || ||
|-
| align=center | [[CSNM]]
|| Cutscene Mgr
||
| align=center | 0x28
|| ✔ || ✔ || ✔ || ✔ || ||
|-
| align=center | [[CSSS]]
Line 204 ⟶ 243:
|| Binary
| align=center | -
|| || || ✔ || ✔ || ||
|-
| align=center | [[CTOC]]
Line 210 ⟶ 249:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ||
|-
| align=center | [[DEST]]
Line 216 ⟶ 255:
|| Binary
| align=center | -
|| || || ✔ || ✔ || ✔ ||
|-
| align=center | [[DPAT]]
|| Dispatcher
||
| align=center | 0x1E
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[DSCO]]
|| Disco Floor
||
| align=center | 0x00
|| || ✔ || ✔ || || ||
|-
| align=center | [[DSTR]]
|| Destructible Object
||
| align=center | 0x1B
|| ✔ || ✔ || || || ||
|-
| align=center | [[DTRK]]
||
||
| align=center | 0xCD
|| || || || ✔ || ||
|-
| align=center | [[DUPC]]
||
||
| align=center | 0x42
|| || || || ✔ || ||
|-
| align=center | [[DYNA]]
|| Dynamic Type
||
| align=center | 0x00
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[EGEN]]
|| Electric Arc Generator
||
| align=center | 0x29
|| ✔ || ✔ || ✔ || || ||
|-
| align=center | [[ENV]]
|| Environment
||
| align=center | 0x05
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[FLY]]
Line 270 ⟶ 309:
|| Binary
| align=center | -
|| || ✔ || ✔ || || ||
|-
| align=center | [[FOG]]
|| Fog
||
| align=center | 0x24
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[GRSM]]
|| Grass Mesh
||
| align=center | 0xCD
|| || || || ✔ || ||
|-
| align=center | [[GRUP]]
|| Group
||
| align=center | 0x11
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[GUST]]
|| Gust
||
| align=center | 0x1C
|| ✔ || || || || ||
|-
| align=center | [[HANG]]
|| Hangable
||
| align=center | 0x17
|| ✔ || || || || ✔ ||
|-
| align=center | [[JAW]]
Line 306 ⟶ 345:
|| Binary
| align=center | -
|| || ✔ || ✔ || || ✔ ||
|-
| align=center | [[JSP]]
Line 312 ⟶ 351:
|| RenderWare
| align=center | -
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[LITE]]
|| Light
||
| align=center | 0x25
|| ✔ || || || || ||
|-
| align=center | [[LKIT]]
Line 324 ⟶ 363:
|| Binary
| align=center | -
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[LOBM]]
|| LobMaster
||
| align=center | 0x23
|| ✔ || || || || ||
|-
| align=center | [[LODT]]
Line 336 ⟶ 375:
|| Binary
| align=center | -
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[MAPR]]
Line 342 ⟶ 381:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[MINF]]
Line 348 ⟶ 387:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[MODL]]
Line 354 ⟶ 393:
|| RenderWare
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[MPHT]]
Line 360 ⟶ 399:
|| Binary
| align=center | -
|| ✔ || || || || ||
|-
| align=center | [[MRKR]]
Line 366 ⟶ 405:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[MVPT]]
|| Move Point
||
| align=center | 0x0D
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[NGMS]]
|| NavMesh
||
| align=center | 0x9A<br>0xCD
|| || || || ✔ || ✔ || '''
|-
| align=center | [[NPC]]
|| NPC
||
| align=center | 0x02
|| ✔ || || || || ||
|-
| align=center | [[NPCS]]
Line 390 ⟶ 429:
|| Binary
| align=center | -
|| || || || ✔ || ✔ ||
|-
| align=center | [[ONEL]]
Line 396 ⟶ 435:
|| Binary
| align=center | -
|| || || || ✔ || ||
|-
| align=center | [[PARE]]
|| Particle Emitter
||
| align=center | 0x26
|| ✔ || ✔ || ✔ || || ✔ ||
|-
| align=center | [[PARP]]
|| Particle Emitter Property
||
| align=center | 0x2E
|| || ✔ || ✔ || || ✔ ||
|-
| align=center | [[PARS]]
|| Particle System
||
| align=center | 0x27
|| ✔ || ✔ || ✔ || || ✔ ||
|-
| align=center | [[PEND]]
|| Pendulum
||
| align=center | 0x12
|| ✔ || || || || ||
|-
| align=center | [[PGRS]]
|| Prog(?) Script
||
| align=center | 0x75
|| || || || ✔ || ✔ ||
|-
| align=center | [[PICK]]
Line 432 ⟶ 471:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || || ✔ ||
|-
| align=center | [[PIPT]]
Line 438 ⟶ 477:
|| Binary
| align=center | -
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[PKUP]]
|| Pickup
||
| align=center | 0x04
|| ✔ || ✔ || ✔ || || ||
|-
| align=center | [[PLAT]]
|| Platform
||
| align=center | 0x06
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[PLYR]]
|| Player
||
| align=center | 0x03
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[PORT]]
|| Portal
||
| align=center | 0x10
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[PRJT]]
|| Projectile
||
| align=center | 0x22
|| ✔ || || || || ||
|-
| align=center | [[RANM]]
|| Reactive Animation List
||
| align=center | 0x00
|| || || ✔ || ✔ || ||
|-
| align=center | [[RAW]]
Line 480 ⟶ 519:
|| Binary
| align=center | -
|| || ✔ || || ✔ || ✔ ||
|-
| align=center | [[RWTX]]
Line 486 ⟶ 525:
|| RenderWare
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[SCRP]]
|| Script
||
| align=center | 0x2A
|| || || ✔ || ✔ || ✔ ||
|-
| align=center | [[SDFX]]
|| Sound FX
||
| align=center | 0x4B
|| || || ✔ || ✔ || ✔ ||
|-
| align=center | [[SFX]]
|| Sound FX
||
| align=center | 0x13
|| ✔ || ✔ || || || ||
|-
| align=center | [[SGRP]]
|| Sound Group
||
| align=center | 0x4A
|| || || ✔ || ✔ || ✔ ||
|-
| align=center | [[SHDW]]
Line 516 ⟶ 555:
|| Binary
| align=center | -
|| || ✔ || || || ||
|-
| align=center | [[SHRP]]
Line 522 ⟶ 561:
|| Binary
| align=center | -
|| || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[SIMP]]
|| Simple Object
||
| align=center | 0x0B
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[SLID]]
|| Slide Property
||
| align=center | 0x46
|| || || || ✔ || ||
|-
| align=center | [[SND]]
Line 540 ⟶ 579:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[SNDI]]
Line 546 ⟶ 585:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[SNDS]]
Line 552 ⟶ 591:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[SPLN]]
|| Spline
||
| align=center | 0x49
|| || || ✔ || ✔ || ✔ ||
|-
| align=center | [[SPLP]]
Line 564 ⟶ 603:
|| Binary
| align=center | -
|| || || || ✔ || ||
|-
| align=center | [[SSET]]
|| Scene Settings
||
| align=center | 0x54
|| || || || ✔ || ||
|-
| align=center | [[SUBT]]
|| Subtitles
||
| align=center | 0x00
|| || || || ✔ || ✔ ||
|-
| align=center | [[SURF]]
|| Surface
||
| align=center | 0x1A
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[TEXS]]
Line 588 ⟶ 627:
|| Binary
| align=center | -
|| || || ✔ || ✔ || ✔ ||
|-
| align=center | [[TEXT]]
Line 594 ⟶ 633:
|| Binary
| align=center | -
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[TIMR]]
|| Timer
||
| align=center | 0x0E
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[TPIK]]
|| Pickup Types
||
| align=center | 0x00
|| || || || ✔ || ✔ ||
|-
| align=center | [[TRIG]]
|| Trigger
||
| align=center | 0x01
|| ✔ || ✔ || ✔ || ✔ || ✔ ||
|-
| align=center | [[TRWT]]
|| Throwables
||
| align=center | 0x00
|| || || || ✔ || ✔ ||
|-
| align=center | [[UI]]
|| UI
||
| align=center | 0x20
|| ✔ || ✔ || || || ||
|-
| align=center | [[UIFT]]
|| UI Font
||
| align=center | 0x21
|| ✔ || ✔ || || || ||
|-
| align=center | [[UIM]]
|| UI Motion
||
| align=center | 0x53
|| || || ✔ || ✔ || ✔ ||
|-
| align=center | [[VIL]]
|| NPC
||
| align=center | 0x2B
|| || ✔ || || ✔ || ||
|-
| align=center | [[VILP]]
Line 648 ⟶ 687:
|| Binary
| align=center | -
|| || ✔ || || || ||
|-
| align=center | [[VOLU]]
|| Volume
||
| align=center | 0x1D
|| ✔ || || || || ✔ ||
|-
| align=center | [[WIRE]]
Line 660 ⟶ 699:
|| Binary
| align=center | -
|| || || || ✔ || ✔ ||
|-
| align=center | [[ZLIN]]
|| Zip Line
||
| align=center | 0x40
|| || || || ✔ || ||
|}
|