/* * Elements.h * * Created on: Jan 5, 2012 * Author: Simon */ //#ifndef ELEMENTS_H_ //#define ELEMENTS_H_ //#include "Config.h" //#include "Simulation.h" #define IPL -257.0f #define IPH 257.0f #define ITL MIN_TEMP-1 #define ITH MAX_TEMP+1 // no transition (PT_NONE means kill part) #define NT -1 // special transition - lava ctypes etc need extra code, which is only found and run if ST is given #define ST PT_NUM #define R_TEMP 22 #define MAX_TEMP 9999 #define MIN_TEMP 0 #define O_MAX_TEMP 3500 #define O_MIN_TEMP -273 #define TYPE_PART 0x00001 //1 Powders #define TYPE_LIQUID 0x00002 //2 Liquids #define TYPE_SOLID 0x00004 //4 Solids #define TYPE_GAS 0x00008 //8 Gasses (Includes plasma) #define TYPE_ENERGY 0x00010 //16 Energy (Thunder, Light, Neutrons etc.) #define PROP_CONDUCTS 0x00020 //32 Conducts electricity #define PROP_BLACK 0x00040 //64 Absorbs Photons (not currently implemented or used, a photwl attribute might be better) #define PROP_NEUTPENETRATE 0x00080 //128 Penetrated by neutrons #define PROP_NEUTABSORB 0x00100 //256 Absorbs neutrons, reflect is default #define PROP_NEUTPASS 0x00200 //512 Neutrons pass through, such as with glass #define PROP_DEADLY 0x00400 //1024 Is deadly for stickman #define PROP_HOT_GLOW 0x00800 //2048 Hot Metal Glow #define PROP_LIFE 0x01000 //4096 Is a GoL type #define PROP_RADIOACTIVE 0x02000 //8192 Radioactive #define PROP_LIFE_DEC 0x04000 //2^14 Life decreases by one every frame if > zero #define PROP_LIFE_KILL 0x08000 //2^15 Kill when life value is <= zero #define PROP_LIFE_KILL_DEC 0x10000 //2^16 Kill when life value is decremented to <= zero #define PROP_SPARKSETTLE 0x20000 //2^17 Allow Sparks/Embers to settle #define FLAG_STAGNANT 1 #define FLAG_SKIPMOVE 0x2 // skip movement for one frame, only implemented for PHOT #define ST_NONE 0 #define ST_SOLID 1 #define ST_LIQUID 2 #define ST_GAS 3 #define UPDATE_FUNC_ARGS Simulation* sim, int i, int x, int y, int surround_space, int nt, Particle *parts, int pmap[YRES][XRES] // to call another update function with same arguments: #define UPDATE_FUNC_SUBCALL_ARGS sim, i, x, y, surround_space, nt, parts, pmap #define GRAPHICS_FUNC_ARGS Renderer * ren, Particle *cpart, int nx, int ny, int *pixel_mode, int* cola, int *colr, int *colg, int *colb, int *firea, int *firer, int *fireg, int *fireb #define GRAPHICS_FUNC_SUBCALL_ARGS ren, cpart, nx, ny, pixel_mode, cola, colr, colg, colb, firea, firer, fireg, fireb #define UI_WALLSTART 222 #define UI_ACTUALSTART 122 #define UI_WALLCOUNT 25 #define WL_WALLELEC 122 #define WL_EWALL 123 #define WL_DETECT 124 #define WL_STREAM 125 #define WL_SIGN 126 #define WL_FAN 127 #define WL_FANHELPER 255 #define WL_ALLOWLIQUID 128 #define WL_DESTROYALL 129 #define WL_ERASE 130 #define WL_WALL 131 #define WL_ALLOWAIR 132 #define WL_ALLOWSOLID 133 #define WL_ALLOWALLELEC 134 #define WL_EHOLE 135 #define SPC_AIR 236 #define SPC_HEAT 237 #define SPC_COOL 238 #define SPC_VACUUM 239 #define SPC_WIND 241 #define SPC_PGRV 243 #define SPC_NGRV 244 #define SPC_PROP 246 #define WL_ALLOWGAS 140 #define WL_GRAV 142 #define WL_ALLOWENERGY 145 #define NGT_GOL 0 #define NGT_HLIF 1 #define NGT_ASIM 2 #define NGT_2x2 3 #define NGT_DANI 4 #define NGT_AMOE 5 #define NGT_MOVE 6 #define NGT_PGOL 7 #define NGT_DMOE 8 #define NGT_34 9 #define NGT_LLIF 10 #define NGT_STAN 11 #define NGT_SEED 12 #define NGT_MAZE 13 #define NGT_COAG 14 #define NGT_WALL 15 #define NGT_GNAR 16 #define NGT_REPL 17 #define NGT_MYST 18 #define NGT_LOTE 19 #define NGT_FRG2 20 #define NGT_STAR 21 #define NGT_FROG 22 #define NGT_BRAN 23 #define PT_NONE 0 #define PT_DUST 1 #define PT_WATR 2 #define PT_OIL 3 #define PT_FIRE 4 #define PT_STNE 5 #define PT_LAVA 6 #define PT_GUNP 7 #define PT_NITR 8 #define PT_CLNE 9 #define PT_GAS 10 #define PT_PLEX 11 #define PT_GOO 12 #define PT_ICEI 13 #define PT_METL 14 #define PT_SPRK 15 #define PT_SNOW 16 #define PT_WOOD 17 #define PT_NEUT 18 #define PT_PLUT 19 #define PT_PLNT 20 #define PT_ACID 21 #define PT_VOID 22 #define PT_WTRV 23 #define PT_CNCT 24 #define PT_DSTW 25 #define PT_SALT 26 #define PT_SLTW 27 #define PT_DMND 28 #define PT_BMTL 29 #define PT_BRMT 30 #define PT_PHOT 31 #define PT_URAN 32 #define PT_WAX 33 #define PT_MWAX 34 #define PT_PSCN 35 #define PT_NSCN 36 #define PT_LNTG 37 #define PT_INSL 38 #define PT_BHOL 39 #define PT_WHOL 40 #define PT_RBDM 41 #define PT_LRBD 42 #define PT_NTCT 43 #define PT_SAND 44 #define PT_GLAS 45 #define PT_PTCT 46 #define PT_BGLA 47 #define PT_THDR 48 #define PT_PLSM 49 #define PT_ETRD 50 #define PT_NICE 51 #define PT_NBLE 52 #define PT_BTRY 53 #define PT_LCRY 54 #define PT_STKM 55 #define PT_SWCH 56 #define PT_SMKE 57 #define PT_DESL 58 #define PT_COAL 59 #define PT_LO2 60 #define PT_O2 61 #define PT_INWR 62 #define PT_YEST 63 #define PT_DYST 64 #define PT_THRM 65 #define PT_GLOW 66 #define PT_BRCK 67 #define PT_HFLM 68 #define PT_FIRW 69 #define PT_FUSE 70 #define PT_FSEP 71 #define PT_AMTR 72 #define PT_BCOL 73 #define PT_PCLN 74 #define PT_HSWC 75 #define PT_IRON 76 #define PT_MORT 77 #define PT_LIFE 78 #define PT_DLAY 79 #define PT_CO2 80 #define PT_DRIC 81 #define PT_CBNW 82 #define PT_STOR 83 #define PT_PVOD 84 #define PT_CONV 85 #define PT_CAUS 86 #define PT_LIGH 87 #define PT_TESC 88 #define PT_DEST 89 #define PT_SPNG 90 #define PT_RIME 91 #define PT_FOG 92 #define PT_BCLN 93 #define PT_LOVE 94 #define PT_DEUT 95 #define PT_WARP 96 #define PT_PUMP 97 #define PT_FWRK 98 #define PT_PIPE 99 #define PT_FRZZ 100 #define PT_FRZW 101 #define PT_GRAV 102 #define PT_BIZR 103 #define PT_BIZRG 104 #define PT_BIZRS 105 #define PT_INST 106 #define PT_ISOZ 107 #define PT_ISZS 108 #define PT_PRTI 109 #define PT_PRTO 110 #define PT_PSTE 111 #define PT_PSTS 112 #define PT_ANAR 113 #define PT_VINE 114 #define PT_INVIS 115 #define PT_EQUALVEL 116 //all particles equal their velocities #define PT_SPAWN2 117 #define PT_SPAWN 118 #define PT_SHLD1 119 #define PT_SHLD2 120 #define PT_SHLD3 121 #define PT_SHLD4 122 #define PT_LOLZ 123 #define PT_WIFI 124 #define PT_FILT 125 #define PT_ARAY 126 #define PT_BRAY 127 #define PT_STKM2 128 #define PT_BOMB 129 #define PT_C5 130 #define PT_SING 131 #define PT_QRTZ 132 #define PT_PQRT 133 #define PT_EMP 134 #define PT_BREC 135 #define PT_ELEC 136 #define PT_ACEL 137 #define PT_DCEL 138 #define PT_BANG 139 #define PT_IGNT 140 #define PT_BOYL 141 #define OLD_PT_WIND 147 #define PT_H2 148 #define PT_SOAP 149 #define PT_NBHL 150 #define PT_NWHL 151 #define PT_MERC 152 #define PT_PBCN 153 #define PT_GPMP 154 #define PT_CLST 155 #define PT_WIRE 156 #define PT_GBMB 157 #define PT_FIGH 158 #define PT_FRAY 159 #define PT_REPL 160 #define PT_NUM 161 //#endif /* ELEMENTS_H_ */