1 //Copyright Paul Reiche, Fred Ford. 1992-2002 2 3 /* 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 */ 18 19 #ifndef UQM_PLANETS_ELEMDATA_H_ 20 #define UQM_PLANETS_ELEMDATA_H_ 21 22 #include "libs/compiler.h" 23 24 #if defined(__cplusplus) 25 extern "C" { 26 #endif 27 28 /*------------------------------ Type Defines ----------------------------- */ 29 enum 30 { 31 COMMON = 0, 32 CORROSIVE, 33 BASE_METAL, 34 NOBLE, 35 RARE_EARTH, 36 PRECIOUS, 37 RADIOACTIVE, 38 EXOTIC, 39 40 NUM_ELEMENT_CATEGORIES 41 }; 42 43 #define ElementCategory(et) (Elements[et] & 0x7) 44 45 /*------------------------------ Global Data ------------------------------ */ 46 47 enum 48 { 49 HYDROGEN, 50 HELIUM, 51 LITHIUM, 52 BERYLLIUM, 53 BORON, 54 CARBON, 55 NITROGEN, 56 OXYGEN, 57 FLUORINE, 58 NEON, 59 SODIUM, 60 MAGNESIUM, 61 ALUMINUM, 62 SILICON, 63 PHOSPHORUS, 64 SULFUR, 65 CHLORINE, 66 ARGON, 67 POTASSIUM, 68 CALCIUM, 69 SCANDIUM, 70 TITANIUM, 71 VANADIUM, 72 CHROMIUM, 73 MANGANESE, 74 IRON, 75 COBALT, 76 NICKEL, 77 COPPER, 78 ZINC, 79 GALLIUM, 80 GERMANIUM, 81 ARSENIC, 82 SELENIUM, 83 BROMINE, 84 KRYPTON, 85 RUBIDIUM, 86 STRONTIUM, 87 YTTRIUM, 88 ZIRCONIUM, 89 NIOBIUM, 90 MOLYBDENUM, 91 TECHNETIUM, 92 RUTHENIUM, 93 RHODIUM, 94 PALLADIUM, 95 SILVER, 96 CADMIUM, 97 INDIUM, 98 TIN, 99 ANTIMONY, 100 TELLURIUM, 101 IODINE, 102 XENON, 103 CESIUM, 104 BARIUM, 105 LANTHANUM, 106 CERIUM, 107 PRASEODYMIUM, 108 NEODYMIUM, 109 PROMETHIUM, 110 SAMARIUM, 111 EUROPIUM, 112 GADOLINIUM, 113 TERBIUM, 114 DYPROSIUM, 115 HOLMIUM, 116 ERBIUM, 117 THULIUM, 118 YTTERBIUM, 119 LUTETIUM, 120 HAFNIUM, 121 TANTALUM, 122 TUNGSTEN, 123 RHENIUM, 124 OSMIUM, 125 IRIDIUM, 126 PLATINUM, 127 GOLD, 128 MERCURY, 129 THALLIUM, 130 LEAD, 131 BISMUTH, 132 POLONIUM, 133 ASTATINE, 134 RADON, 135 FRANCIUM, 136 RADIUM, 137 ACTINIUM, 138 THORIUM, 139 PROTACTINIUM, 140 URANIUM, 141 NEPTUNIUM, 142 PLUTONIUM, 143 NUMBER_OF_NORMAL, 144 145 OZONE = NUMBER_OF_NORMAL, 146 FREE_RADICALS, 147 CARBON_DIOXIDE, 148 CARBON_MONOXIDE, 149 AMMONIA, 150 METHANE, 151 SULFURIC_ACID, 152 HYDROCHLORIC_ACID, 153 HYDROCYANIC_ACID, 154 FORMIC_ACID, 155 PHOSPHORIC_ACID, 156 FORMALDEHYDE, 157 CYANOACETYLENE, 158 METHANOL, 159 ETHANOL, 160 SILICON_MONOXIDE, 161 TITANIUM_OXIDE, 162 ZIRCONIUM_OXIDE, 163 WATER, 164 SILICON_COMPOUNDS, 165 METAL_OXIDES, 166 QUANTUM_BH, 167 NEUTRONIUM, 168 MAGNETIC_MONOPOLES, 169 DEGENERATE_MATTER, 170 RT_SUPER_FLUID, 171 AGUUTI_NODULES, 172 IRON_COMPOUNDS, 173 ALUMINUM_COMPOUNDS, 174 NITROUS_OXIDE, 175 RADIOACTIVE_COMPOUNDS, 176 HYDROCARBONS, 177 CARBON_COMPOUNDS, 178 ANTIMATTER, 179 CHARON_DUST, 180 REISBURG_HELICES, 181 TZO_CRYSTALS, 182 CALCIUM_COMPOUNDS, 183 NITRIC_ACID, 184 185 NUMBER_OF_ELEMENTS 186 }; 187 #define NUMBER_OF_SPECIAL (NUMBER_OF_ELEMENTS - NUMBER_OF_NORMAL) 188 189 #define CHANCE_MASK ((1 << 2) - 1) 190 191 #define FEW 1 192 #define MODERATE 4 193 #define NUMEROUS 8 194 195 enum 196 { 197 LIGHT = 0, 198 MEDIUM, 199 HEAVY 200 }; 201 #define NOTHING (BYTE)(~0) 202 203 #define MINERAL_DEPOSIT(qn,ql) MAKE_BYTE (qn, ql) 204 #define DEPOSIT_QUANTITY(md) LONIBBLE (md) 205 #define DEPOSIT_QUALITY(md) HINIBBLE (md) 206 207 #define MAX_ELEMENT_UNITS 0xF 208 209 extern const BYTE *Elements; 210 211 #if defined(__cplusplus) 212 } 213 #endif 214 215 #endif /* UQM_PLANETS_ELEMDATA_H_ */ 216