EvilEngine/PARP: Difference between revisions

m
Seil moved page PARP to EvilEngine/PARP
Battlepedia>Seil
No edit summary
m (Seil moved page PARP to EvilEngine/PARP)
 
(8 intermediate revisions by 4 users not shown)
Line 1:
<onlyinclude>
{{AssetInfobox
{{#vardefine:typeid|PARP}}<nowiki/>
|subtitle=Particle Emitter Property
{{#vardefine:name|Particle Emitter Property}}<nowiki/>
|type=[[Object]]
{{#vardefine:type|[[Base]]}}<nowiki/>
|objectid=0x2E
{{#vardefine:basetype|0x2E}}<nowiki/>
|games=Battle for Bikini Bottom<br>The SpongeBob SquarePants Movie<br>Rise of the Underminer}}
{{#vardefine:games|BFBB TSSM ROTU RatProto}}<nowiki/>
{{#vardefine:sourcecode|[https://github.com/bfbbdecomp/bfbb/blob/master/src/Core/x/xParEmitter.h xParEmitter.h]}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
</onlyinclude>
{{AutoAssetInfobox}}
 
A '''Particle Emitter Property''' asset contains settings for particles created by a [[PARE|Particle Emitter]].
Line 10 ⟶ 15:
A Particle Emitter Property asset describes how a particle changes over its lifetime, such as its color, size, and velocity. Each of these properties are defined by an xParInterp struct:
 
<source lang=cpp>
<nowiki>
struct xParInterp
{
Line 17 ⟶ 22:
float freq;
float oofreq;
};
};</nowiki>
</source>
 
* '''val''' is an array of 2 floats. The 1st float is the start ("A") value of the interpolation, and the 2nd float is the end ("B") value.
* '''interp''' is the interpolation mode, which determines how the current value of the interpolation is computed over time, where time starts at 0.0 and ends at 1.0:
** ConstA (0 or 0x48e48e7a) - Always the Astart value.
** ConstB (1 or 0x48e48e7b) - Always the Bend value.
** Random (2 or 0x0fe111bf) - A new random value between the Astart and Bend value, refreshed every '''freq''' seconds.
** Linear (3 or 0xb7353b79) - A value between Athe start and Bend value, found by using linear interpolation.
** Sine (4 or 0x0b326f01) - A value between Athe start and Bend value, found by using sine interpolation.
** Cosine (5 or 0x498d7119) - A value between Athe start and Bend value, found by using cosine interpolation.
** Time (unused, 6) - The current time of the interpolation.
** Unused/Unknown (6)
** Step (7 or 0x0b354bd4) - The Astart value ifuntil time*'''freq''' <>= 0.5, andthen the Bend value if time >= 0.5.
* '''freq''' is the frequency of the interpolation when using Random, Linear, or Step mode.
* Either '''freq''' or '''oofreq''' determines the frequency (scale) of time for the interpolation. '''freq''' is used when the interpolation mode is either Linear or Step, and '''oofreq''' is used when the interpolation mode is either Sine or Cosine. A value of 1.0 means that the interpolation will be the same length/speed as the lifetime, a value of 2.0 means that the interpolation will be half the length/double the speed, etc. When '''freq''' is used, '''oofreq''' is set to 0, and vice versa.
* '''oofreq''' is the frequency of the interpolation when using Sine or Cosine mode.
 
The actual asset is defined by an xParEmitterPropsAsset struct, which inherits xBaseAsset ([[Object Asset]]):
 
<source lang=cpp>
<nowiki>struct xParEmitterPropsAsset : xBaseAsset
{
unsigned int parSysID;
Line 57 ⟶ 65:
unsigned int emit_limit;
float emit_limit_reset_time;
};
};</nowiki>
</source>
 
* '''parSysID''' is the ID of the [[PARS|Particle System]] that the [[PARE|Particle Emitter]] should use.
* '''rate''' is how many times per second a particle is emitted.
* '''rate'''
* '''life''' is the lifetime in seconds of a particle.
* '''size_birth''' is the start size in units of a particle.
* '''size_death''' is the end size in units of a particle.
* '''color_birth''' is the start color of a particle (red, green, blue, and alpha).
* '''color_death''' is the end color of a particle (red, green, blue, and alpha).
* '''vel_scale''' is unknown/unused (all set to 0).
* '''vel_angle''' is unknown/unused (all set to 0).
* '''vel''' is unknown/unused (all set to 0).
* '''emit_limit''' is always -1.
* '''emit_limit_reset_time''' is unknown (usually set to 0 but sometimes not).
 
At the end of the xParEmitterPropsAsset is a list of [[Events#Links|Link]]s.
 
==Events==
|subtitle=Particle Emitter Property has no events.
 
{{Assets}}
{{AutoGameNavs}}
 
[[Category:Asset]]