1 #ifndef SIMULATIONDATA_H 2 #define SIMULATIONDATA_H 3 4 #include <vector> 5 #include <array> 6 7 #define SC_WALL 0 8 #define SC_ELEC 1 9 #define SC_POWERED 2 10 #define SC_SENSOR 3 11 #define SC_FORCE 4 12 #define SC_EXPLOSIVE 5 13 #define SC_GAS 6 14 #define SC_LIQUID 7 15 #define SC_POWDERS 8 16 #define SC_SOLIDS 9 17 #define SC_NUCLEAR 10 18 #define SC_SPECIAL 11 19 #define SC_LIFE 12 20 #define SC_TOOL 13 21 #define SC_FAVORITES 14 22 #define SC_DECO 15 23 #define SC_CRACKER 16 24 #define SC_CRACKER2 17 25 #define SC_TOTAL 16 26 27 #define O_WL_WALLELEC 122 28 #define O_WL_EWALL 123 29 #define O_WL_DETECT 124 30 #define O_WL_STREAM 125 31 #define O_WL_SIGN 126 32 #define O_WL_FAN 127 33 #define O_WL_FANHELPER 255 34 #define O_WL_ALLOWLIQUID 128 35 #define O_WL_DESTROYALL 129 36 #define O_WL_ERASE 130 37 #define O_WL_WALL 131 38 #define O_WL_ALLOWAIR 132 39 #define O_WL_ALLOWSOLID 133 40 #define O_WL_ALLOWALLELEC 134 41 #define O_WL_EHOLE 135 42 #define O_WL_ALLOWGAS 140 43 #define O_WL_GRAV 142 44 #define O_WL_ALLOWENERGY 145 45 46 #define WL_ERASE 0 47 #define WL_WALLELEC 1 48 #define WL_EWALL 2 49 #define WL_DETECT 3 50 #define WL_STREAM 4 51 #define WL_FAN 5 52 #define WL_ALLOWLIQUID 6 53 #define WL_DESTROYALL 7 54 #define WL_WALL 8 55 #define WL_ALLOWAIR 9 56 #define WL_ALLOWPOWDER 10 57 #define WL_ALLOWALLELEC 11 58 #define WL_EHOLE 12 59 #define WL_ALLOWGAS 13 60 #define WL_GRAV 14 61 #define WL_ALLOWENERGY 15 62 #define WL_BLOCKAIR 16 63 #define WL_ERASEALL 17 64 #define WL_STASIS 18 65 #define WL_FLOODHELPER 255 66 67 #define UI_WALLCOUNT 19 68 69 #define OLD_SPC_AIR 236 70 #define SPC_AIR 256 71 72 #define DECO_DRAW 0 73 #define DECO_CLEAR 1 74 #define DECO_ADD 2 75 #define DECO_SUBTRACT 3 76 #define DECO_MULTIPLY 4 77 #define DECO_DIVIDE 5 78 #define DECO_SMUDGE 6 79 80 //Old IDs for GOL types 81 #define GT_GOL 78 82 #define GT_HLIF 79 83 #define GT_ASIM 80 84 #define GT_2x2 81 85 #define GT_DANI 82 86 #define GT_AMOE 83 87 #define GT_MOVE 84 88 #define GT_PGOL 85 89 #define GT_DMOE 86 90 #define GT_34 87 91 #define GT_LLIF 88 92 #define GT_STAN 89 93 #define GT_SEED 134 94 #define GT_MAZE 135 95 #define GT_COAG 136 96 #define GT_WALL 137 97 #define GT_GNAR 138 98 #define GT_REPL 139 99 #define GT_MYST 140 100 #define GT_LOTE 142 101 #define GT_FRG2 143 102 #define GT_STAR 144 103 #define GT_FROG 145 104 #define GT_BRAN 146 105 106 //New IDs for GOL types 107 #define NGT_GOL 0 108 #define NGT_HLIF 1 109 #define NGT_ASIM 2 110 #define NGT_2x2 3 111 #define NGT_DANI 4 112 #define NGT_AMOE 5 113 #define NGT_MOVE 6 114 #define NGT_PGOL 7 115 #define NGT_DMOE 8 116 #define NGT_34 9 117 #define NGT_LLIF 10 118 #define NGT_STAN 11 119 #define NGT_SEED 12 120 #define NGT_MAZE 13 121 #define NGT_COAG 14 122 #define NGT_WALL 15 123 #define NGT_GNAR 16 124 #define NGT_REPL 17 125 #define NGT_MYST 18 126 #define NGT_LOTE 19 127 #define NGT_FRG2 20 128 #define NGT_STAR 21 129 #define NGT_FROG 22 130 #define NGT_BRAN 23 131 132 //replace mode / specific delete flags 133 #define REPLACE_MODE 0x1 134 #define SPECIFIC_DELETE 0x2 135 136 struct part_type; 137 struct part_transition; 138 139 struct wall_type; 140 struct gol_menu; 141 struct menu_section; 142 143 class SimTool; 144 class Element; 145 146 std::vector<gol_menu> LoadGOLMenu(); 147 148 std::vector<int> LoadGOLTypes(); 149 150 std::vector<std::array<int, 10> > LoadGOLRules(); 151 152 std::vector<wall_type> LoadWalls(); 153 154 std::vector<menu_section> LoadMenus(); 155 156 std::vector<unsigned int> LoadLatent(); 157 158 #endif /* SIMULATIONDATA_H */ 159