weather_particle_system

🚧 This incomplete article needs help! Please submit tips and info by pull requests or issues or contacting a maintainer.

...

Known issues

When the player is within a dense fog with a nearby opaque distance, weather particles will stop drawing even if set for the cluster containing fog. Ensure the opaque distance is sufficiently far away if weather particles in fog are desired.

Structure and fields

Field Type Comments
flags bitfield
Flag Mask Comments
unused 0x1
particle types Block
  • HEK max count: 8
  • Processed during compile
Field Type Comments
name TagString
Field Type Comments
buffer char[32]
flags bitfield
Flag Mask Comments
interpolate colors in hsv 0x1
along long hue path 0x2
random rotation 0x4
fade in start distance float
  • Unit: world units
fade in end distance float
  • Unit: world units
fade out start distance float
  • Unit: world units
fade out end distance float
  • Unit: world units
fade in start height float
  • Unit: world units
fade in end height float
  • Unit: world units
fade out start height float
  • Unit: world units
fade out end height float
  • Unit: world units
particle count Bounds
  • Unit: particles per cubic world unit
Field Type Comments
min float
max float
physics

TagDependency: point_physics

acceleration magnitude Bounds?
acceleration turning rate float
acceleration change rate float
particle radius Bounds?
  • Unit: world units
animation rate Bounds?
  • Unit: frames per second
rotation rate Bounds
  • Unit: degrees per second
Field Type Comments
min float
max float
color lower bound ColorARGB
Field Type Comments
alpha float
red float
green float
blue float
color upper bound ColorARGB?
sprite size float
  • Cache only
sprite bitmap

TagDependency: bitmap

  • Non-null
render mode enum
Option Value Comments
screen facing 0x0
parallel to direction 0x1
perpendicular to direction 0x2
render direction source enum
Option Value Comments
from velocity 0x0
from acceleration 0x1
not broken uint32
  • Cache only
shader flags bitfield
Flag Mask Comments
sort bias 0x1
nonlinear tint 0x2
don't overdraw fp weapon 0x4
framebuffer blend function enum
Option Value Comments
alpha blend 0x0
multiply 0x1
double multiply 0x2
add 0x3
subtract 0x4
component min 0x5
component max 0x6
alpha multiply add 0x7
framebuffer fade mode enum
Option Value Comments
none 0x0
fade when perpendicular 0x1
fade when parallel 0x2
map flags bitfield
Flag Mask Comments
unfiltered 0x1
bitmap

TagDependency: bitmap

anchor enum
Option Value Comments
with primary 0x0
with screen space 0x1
zsprite 0x2
flags 1 bitfield?
u animation source enum
Option Value Comments
none 0x0
a out 0x1
b out 0x2
c out 0x3
d out 0x4
u animation function enum
Option Value Comments
one 0x0
zero 0x1
cosine 0x2
cosine variable period 0x3
diagonal wave 0x4
diagonal wave variable period 0x5
slide 0x6
slide variable period 0x7
noise 0x8
jitter 0x9
wander 0xA
spark 0xB
u animation period float
  • Unit: seconds
u animation phase float
u animation scale float
  • Unit: repeats
v animation source enum?
v animation function enum?
v animation period float
  • Unit: seconds
v animation phase float
v animation scale float
  • Unit: repeats
rotation animation source enum?
rotation animation function enum?
rotation animation period float
  • Unit: seconds
rotation animation phase float
rotation animation scale float
rotation animation center Point2D
Field Type Comments
x float
y float
zsprite radius scale float

Acknowledgements

Thanks to the following individuals for their research or contributions to this topic:

  • Kavawuvi (Invader tag definitions)
  • MosesOfEgypt (Tag structure research)