summaryrefslogtreecommitdiff
path: root/src/simulation/Elements.h
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-19 13:44:59 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-19 13:44:59 (GMT)
commit44639a6423c03552a3c0faafab27ef8f395f73a6 (patch)
tree1a4fc49a56060759fcbec6f18e9159cf126e8606 /src/simulation/Elements.h
parent4a60b97c700c2f1843b7e99313554cb89fb5da4e (diff)
downloadpowder-44639a6423c03552a3c0faafab27ef8f395f73a6.zip
powder-44639a6423c03552a3c0faafab27ef8f395f73a6.tar.gz
Some folder changes, started search and client
Diffstat (limited to 'src/simulation/Elements.h')
-rw-r--r--src/simulation/Elements.h280
1 files changed, 280 insertions, 0 deletions
diff --git a/src/simulation/Elements.h b/src/simulation/Elements.h
new file mode 100644
index 0000000..204460c
--- /dev/null
+++ b/src/simulation/Elements.h
@@ -0,0 +1,280 @@
+/*
+ * 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 (not currently implemented or used)
+#define PROP_NEUTPASS 0x00200 //512 Neutrons pass through, such as with glass
+#define PROP_DEADLY 0x00400 //1024 Is deadly for stickman (not currently implemented or used)
+#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 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_ */