This is a list of useful variables and usages of them inside the source.
|Variable||What it returns|
|pmap[y][x]||Particle-map. (pmap[y][x]&0xFF) returns the particle type at (x,y), (pmap[y][x]>>8) returns the index of the particle at (x,y). Energy particles are not stored in, here you need to use photons.|
|sim->photons[y][x]||Photon-map. This works exactly like pmap, but only PHOT, NEUT, ELEC, and PROT are stored here (any particle with TYPE_ENERGY)|
|sim->bmap[y][x]||Block-map. Returns wall at [y][x]. Wall constants are defined in src/simulation/SimulationData.h|
|sim->emap[y][x]||Electronics-map. Used for conductive walls. If it is 1, that means the wall at that location is conducting.|
|r||usually preset to pmap[y][x]|
|parts[i]||the particle that has index i|
|sim->pv[y/CELL][x/CELL]||The pressure at x,y. Pressure is on a 4x4 grid like walls. Is a float(0.0f for 0).|
|sim->vx[y/CELL][x/CELL]||The air velocity in the x direction at x,y. Uses a 4x4 grid like walls. Is a float(0.0f for 0).|
|sim->vy[y/CELL][x/CELL]||The air velocity in the y direction at x,y. Uses a 4x4 grid like walls. Is a float(0.0f for 0).|
|sim->hv[y/CELL][x/CELL]||The ambient heat at x,y. It is on a 4x4 grid like walls and pressure. Is a float(0.0f for 0).|
|t||Current particle type in some places. ex. PT_DUST|
To get information from a particle, use parts[i].1, where i is the particle index. The index may also be stored as r>>8 instead of i. This is normally used in the update functions for particles. i is the index of the particle that is being updated, and r>>8 is the index of a particle surrounding it that it might react with or modify. To get the type of the particle from the variable r, use (r&0xFF).
|Variable||What it returns|
|parts.type||Contains the particle's current type.|
|parts.life||Contains the particle's life.|
|parts.ctype||Contains the particle's previous type (for example LAVA/SPRK) or the type of particle it is cloning (CLNE/...) usually.|
|parts.x||Contains the particle's x coordinate. It is not an integer, it's a float. To get the exact coordinate, add .5 to it before changing it to an int.|
|parts.y||Contains the particle's y coordinate. It is not an integer, it's a float. To get the exact coordinate, add .5 to it before changing it to an int.|
|parts.vx||Contains the particle's x velocity. It is a float.|
|parts.vy||Contains the particle's y velocity. It is a float|
|parts.temp||Contains the particle's temperature. It's a float(0.0f for 0K, which is -273.15C). All temps are stored in Kelvins.|
|parts.flags||Rarely used; doesn't save.|
|parts.tmp||Contains a value which can be used for anything.|
|parts.tmp2||Contains another value.|
|parts.dcolour||Contains the particle's decoration color, 32bit ARGB|
|parts.pavg||Mainly used for pressure or storing properties of particles inside PIPE|
1 - use type, ctype, life, temp, tmp, etc.
2 - use either r>>8 or i. See above (Particle) for more info.