EvilEngine/PARE: Difference between revisions
Content added Content deleted
m (4 revisions imported) |
No edit summary |
||
Line 1: | Line 1: | ||
<onlyinclude> |
|||
{{AssetInfobox |
|||
{{#vardefine:typeid|PARE}}<nowiki/> |
|||
|subtitle=Particle Emitter |
|||
{{#vardefine:name|Particle Emitter}}<nowiki/> |
|||
|type=[[Base]] |
|||
{{#vardefine:type|[[Base]]}}<nowiki/> |
|||
|objectid=0x26 |
|||
{{#vardefine:basetype|0x26}}<nowiki/> |
|||
|games=Night of 100 Frights<br>Battle for Bikini Bottom<br>The SpongeBob SquarePants Movie<br>Rise of the Underminer |
|||
{{#vardefine:games|Scooby BFBB TSSM ROTU}}<nowiki/> |
|||
{{#vardefine:sourcecode|[https://github.com/bfbbdecomp/bfbb/blob/master/src/Core/x/xParEmitter.h xParEmitter.h]}}<nowiki/> |
|||
{{#vardefine:image|}}<nowiki/> |
|||
</onlyinclude> |
|||
{{AutoAssetInfobox}} |
|||
==Format== |
==Format== |
||
Line 200: | Line 204: | ||
{{Assets}} |
{{Assets}} |
||
{{AutoGameNavs}} |
|||
[[Category:Asset]] |
[[Category:Asset]] |
Revision as of 23:20, 25 May 2021
PARE | |
---|---|
Particle Emitter | |
Type | Base |
Base Type | 0x26 |
Games used | Night of 100 Frights Battle for Bikini Bottom |
Source code | xParEmitter.h |
Format
A Particle Emitter asset is defined by a xParEmitterAsset struct, which inherits xBaseAsset (Object Asset):
struct xParEmitterAsset : xBaseAsset
{
unsigned char emit_flags;
unsigned char emit_type;
unsigned short pad;
unsigned int propID;
union
{
xPECircle e_circle;
_tagEmitSphere e_sphere;
_tagEmitRect e_rect;
_tagEmitLine e_line;
_tagEmitVolume e_volume;
_tagEmitOffsetPoint e_offsetp;
xPEVCyl e_vcyl;
xPEEntBone e_entbone;
xPEEntBound e_entbound;
};
unsigned int attachToID;
xVec3 pos;
xVec3 vel;
float vel_angle_variation;
unsigned int cull_mode;
float cull_dist_sqr;
};
- emit_flags
- 0x1 - On/Off?
- emit_type
- Point (0)
- Circle Edge (1)
- Circle (2)
- Rect Edge (3)
- Rect (4)
- Line (5)
- Volume (6)
- Sphere Edge (7)
- Sphere (8)
- Offset Point (9)
- Sphere Edge (10)
- Sphere Edge (11)
- VCyl Edge (12)
- OCircle Edge (13)
- OCircle (14)
- Entity Bone (15)
- Entity Bound (16)
- propID is the ID of the Particle Emitter Property asset to use.
- e_circle
- e_sphere
- e_rect
- e_line
- e_volume
- e_offsetp
- e_vcyl
- e_entbone
- e_entbound
- attachToID is the ID of an Object Asset (when emit_type == Entity Bone/Entity Bound?) or Marker (when emit_type == Point?).
- pos is the position of the particle emitter.
- vel
- vel_angle_variation
- cull_mode
- cull_dist_sqr
At the end of the xParEmitterAsset is a list of Links.
struct xPECircle
{
float radius;
float deflection;
xVec3 dir;
};
- radius
- deflection
- dir
struct _tagEmitSphere
{
float radius;
};
- radius
struct _tagEmitRect
{
float x_len;
float z_len;
};
- x_len
- z_len
struct _tagEmitLine
{
xVec3 pos1;
xVec3 pos2;
float radius;
};
- pos1
- pos2
- radius
struct _tagEmitVolume
{
unsigned int emit_volumeID;
};
- emit_volumeID
struct _tagEmitOffsetPoint
{
xVec3 offset;
};
- offset
struct xPEVCyl
{
float height;
float radius;
float deflection;
};
- height
- radius
- deflection
struct xPEEntBone
{
unsigned char flags;
unsigned char type;
unsigned char bone;
unsigned char pad1;
xVec3 offset;
float radius;
float deflection;
};
- flags
- type
- bone
- offset
- radius
- deflection
struct xPEEntBound
{
unsigned char flags;
unsigned char type;
unsigned char pad1;
unsigned char pad2;
float expand;
float deflection;
};
- flags
- type
- expand
- deflection