summaryrefslogtreecommitdiff
path: root/src/simulation/SimulationData.h
blob: 219db51c7ee41a766278fe21b615836b22f24da8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#include <vector>

#define SC_WALL 0
#define SC_ELEC 1
#define SC_POWERED 2
#define SC_SENSOR 3
#define SC_FORCE 4
#define SC_EXPLOSIVE 5
#define SC_GAS 6
#define SC_LIQUID 7
#define SC_POWDERS 8
#define SC_SOLIDS 9
#define SC_NUCLEAR 10
#define SC_SPECIAL 11
#define SC_LIFE 12
#define SC_TOOL 13
#define SC_DECO 14
#define SC_CRACKER 15
#define SC_CRACKER2 16
#define SC_TOTAL 15

#define UI_WALLCOUNT 16

#define O_WL_WALLELEC	122
#define O_WL_EWALL		123
#define O_WL_DETECT		124
#define O_WL_STREAM		125
#define O_WL_SIGN		126
#define O_WL_FAN		127
#define O_WL_FANHELPER	255
#define O_WL_ALLOWLIQUID	128
#define O_WL_DESTROYALL	129
#define O_WL_ERASE		130
#define O_WL_WALL		131
#define O_WL_ALLOWAIR	132
#define O_WL_ALLOWSOLID	133
#define O_WL_ALLOWALLELEC	134
#define O_WL_EHOLE		135
#define O_WL_ALLOWGAS	140
#define O_WL_GRAV		142
#define O_WL_ALLOWENERGY 145


#define WL_ERASE		0
#define WL_WALLELEC		1
#define WL_EWALL		2
#define WL_DETECT		3
#define WL_STREAM		4
#define WL_FAN			5
#define WL_ALLOWLIQUID	6
#define WL_DESTROYALL	7
#define WL_WALL			8
#define WL_ALLOWAIR		9
#define WL_ALLOWSOLID	10
#define WL_ALLOWALLELEC	11
#define WL_EHOLE		12
#define WL_ALLOWGAS		13
#define WL_GRAV			14
#define WL_ALLOWENERGY	15
#define WL_FLOODHELPER	255

#define OLD_SPC_AIR 236
#define SPC_AIR 256

#define DECO_DRAW	0
#define DECO_ADD	1
#define DECO_SUBTRACT	2
#define DECO_MULTIPLY	3
#define DECO_DIVIDE	4
#define DECO_SMUDGE 5
#define DECO_CLEAR	6

//Old IDs for GOL types
#define GT_GOL 78
#define GT_HLIF 79
#define GT_ASIM 80
#define GT_2x2 81
#define GT_DANI 82
#define GT_AMOE 83
#define GT_MOVE 84
#define GT_PGOL 85
#define GT_DMOE 86
#define GT_34 87
#define GT_LLIF 88
#define GT_STAN 89
#define GT_SEED 134
#define GT_MAZE 135
#define GT_COAG 136
#define GT_WALL 137
#define GT_GNAR 138
#define GT_REPL 139
#define GT_MYST 140
#define GT_LOTE 142
#define GT_FRG2 143
#define GT_STAR 144
#define GT_FROG 145
#define GT_BRAN 146

//New IDs for GOL types
#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

#ifndef SIMULATIONDATA_H_
#define SIMULATIONDATA_H_

//#include "elements/NULLElement.h"
//#include "Simulation.h"

/*class Simulation;
class Renderer;
struct Particle;*/

struct part_type;

struct part_transition;

struct wall_type;

struct gol_menu;

struct menu_section;

struct wall_type;

class SimTool;

class Element;

gol_menu * LoadGOLMenu(int & golMenuCount);

int * LoadGOLTypes(int & golTypeCount);

int * LoadGOLRules(int & golRuleCount);

wall_type * LoadWalls(int & wallCount);

menu_section * LoadMenus(int & menuCount);

unsigned int * LoadLatent(int & elementCount);

#endif /* SIMULATIONDATA_H_ */