2012-01-08 11:39:03 -06:00
/*
* 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
2012-04-17 10:04:48 -05:00
# define PROP_NEUTABSORB 0x00100 //256 Absorbs neutrons, reflect is default
2012-01-08 11:39:03 -06:00
# define PROP_NEUTPASS 0x00200 //512 Neutrons pass through, such as with glass
2012-04-17 10:04:48 -05:00
# define PROP_DEADLY 0x00400 //1024 Is deadly for stickman
2012-01-08 11:39:03 -06:00
# 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
2012-04-17 12:07:22 -05:00
# define FLAG_SKIPMOVE 0x2 // skip movement for one frame, only implemented for PHOT
2012-01-08 11:39:03 -06:00
# 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_NUM 159
//#endif /* ELEMENTS_H_ */