#Particle System loader # Data is: # i E [x, y, z] # Pi = position scale # Vi = velocity scale # Ai = acceleration scale # Ni = normal scale (normal usually means direction of movement) # ANDi = and value # Di = diff value # # Formulas are: # Velocity V = Vi * ( (rand() & ANDi) - Di ) + Ni * normal[i] # Position P = position[i] * Pi * Velocity[i] # { gravity, if use gravity # Acceleration A ={ Ai * Velocity[i] + gravity, if add gravity # { Ai * Velocity[i], otherwise # dIntensity = dIntensity - ( rand() & dIntensity_AND ) # Expire time = SYSTEM_EXPIRE_TIME - ( rand() & expireAnd ) # # Colors are: # PALETTE_BASE_RED 0x10 # PALETTE_BASE_INDIAN_SUMMER 0x20 # PALETTE_BASE_ORANGE 0x30 # PALETTE_BASE_BURNT_SIENNA 0x40 # PALETTE_BASE_YELLOW 0x50 # PALETTE_LIGHT_BROWN 0x60 # PALETTE_LIGHT_TAN 0x70 # PALETTE_PALE_LIME 0x80 # PALETTE_BASE_GRAY 0x90 # PALETTE_LIGHT_GRAY 0xA0 # PALETTE_LIGHT_BLUE 0xB0 # PALETTE_BASE_BLUE 0xC0 # PALETTE_BASE_INDIGO 0xD0 # PALETTE_BASE_VIOLET 0xE0 # PALETTE_BASE_CONFETTI 0xF0 # #The format follows: # number of particles # duration of particles # use player direction (0 = TRUE, 1 = FALSE ) # number of systems # [For each system i] # scale position of subsystem i: Px Py Pz # scale velocity of subsystem i: Vx Vy Vz # and value of subsystem i: ANDx ANDy ANDz (HEX) # diff value of subsystem i: Dx Dy Dz (HEX) # scale normal of subsystem i: Nx Ny Nz # use_gravity(0/1) add_gravity(0/1) # scale acceler. of subsystem i: Ax Ay Az # chance of subsystem i # particle size of subsystem i # color of subsystem i (HEX) # dIntensity of subsystem i (HEX) # dIntensity_AND value of subsystem i (HEX) # Maximum intensity of subsystem i (HEX) # Minimum intensity of subsystem i (HEX) # ddIntensity of subsystem i (HEX) # expireAnd of subsystem i (HEX) # 2 1000 0 1 100.0 100.0 100.0 0.00001 0.00001 0.00001 0xff 0xff 0xff 0x80 0x80 0x80 0.0 0.0 0.0 0 0 -0.0003 -0.0003 -0.0003 100 20 0x10 -0x40 0x7f 0xfffff 0x70000 0 0x1ff