ScummVM API documentation
items.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef STARTREK_ITEMS_H
23#define STARTREK_ITEMS_H
24
25namespace StarTrek {
26
27enum Items {
28 OBJECT_IPHASERS = 64,
29 OBJECT_IPHASERK,
30 OBJECT_IHAND,
31 OBJECT_IROCK,
32 OBJECT_ISTRICOR,
33 OBJECT_IMTRICOR,
34 OBJECT_IDEADGUY,
35 OBJECT_ICOMM,
36 OBJECT_IPBC,
37 OBJECT_IRLG,
38 OBJECT_IWRENCH,
39 OBJECT_IINSULAT,
40 OBJECT_ISAMPLE,
41 OBJECT_ICURE,
42 OBJECT_IDISHES,
43 OBJECT_IRT,
44 OBJECT_IRTWB,
45 OBJECT_ICOMBBIT,
46 OBJECT_IJNKMETL,
47 OBJECT_IWIRING,
48 OBJECT_IWIRSCRP,
49 OBJECT_IPWF,
50 OBJECT_IPWE,
51 OBJECT_IDEADPH,
52 OBJECT_IBOMB,
53 OBJECT_IMETAL,
54 OBJECT_ISKULL,
55 OBJECT_IMINERAL,
56 OBJECT_IMETEOR,
57 OBJECT_ISHELLS,
58 OBJECT_IDEGRIME,
59 OBJECT_ILENSES,
60 OBJECT_IDISKS,
61 OBJECT_IANTIGRA,
62 OBJECT_IN2GAS,
63 OBJECT_IO2GAS,
64 OBJECT_IH2GAS,
65 OBJECT_IN2O,
66 OBJECT_INH3,
67 OBJECT_IH2O,
68 OBJECT_IWROD,
69 OBJECT_IIROD,
70 OBJECT_IREDGEM1,
71 OBJECT_IREDGEM2,
72 OBJECT_IREDGEM3,
73 OBJECT_IGRNGEM1,
74 OBJECT_IGRNGEM2,
75 OBJECT_IGRNGEM3,
76 OBJECT_IBLUGEM1,
77 OBJECT_IBLUGEM2,
78 OBJECT_IBLUGEM3,
79 OBJECT_ICONECT,
80 OBJECT_IS8ROCKS,
81 OBJECT_IIDCARD,
82 OBJECT_ISNAKE,
83 OBJECT_IFERN,
84 OBJECT_ICRYSTAL,
85 OBJECT_IKNIFE,
86 OBJECT_IDETOXIN,
87 OBJECT_IBERRY,
88 OBJECT_IDOOVER,
89 OBJECT_IALIENDV,
90 OBJECT_ICAPSULE,
91 OBJECT_IMEDKIT,
92 OBJECT_IBEAM,
93 OBJECT_IDRILL,
94 OBJECT_IHYPO,
95 OBJECT_IFUSION,
96 OBJECT_ICABLE1,
97 OBJECT_ICABLE2,
98 OBJECT_ILMD,
99 OBJECT_IDECK,
100 OBJECT_ITECH
101};
102
103struct Item {
104 bool have;
105 int16 field2;
106 char name[10];
107 int16 textIndex;
108};
109
110// This is copied to StarTrekEngine::_itemList when the engine initializes.
111// (TODO: it's possible that only the "have" variable ever changes, in which case the
112// whole thing doesn't need to be copied.)
113const Item g_itemList[] = {
114 { true, 0x40, "iphasers", 0x00 },
115 { true, 0x41, "iphaserk", 0x01 },
116 { false, 0x42, "ihand", 0x02 },
117 { false, 0x43, "irock", 0x03 },
118 { true, 0x44, "istricor", 0x04 },
119 { true, 0x45, "imtricor", 0x05 },
120 { false, 0x46, "ideadguy", 0x06 },
121 { true, 0x47, "icomm", 0x07 },
122 { false, 0x48, "ipbc", 0x08 },
123 { false, 0x49, "iRLG", 0x09 },
124 { false, 0x4A, "iWrench", 0x0A },
125 { false, 0x4B, "iInsulat", 0x0B },
126 { false, 0x4C, "iSample", 0x0C },
127 { false, 0x4D, "iCure", 0x0D },
128 { false, 0x4E, "iDishes", 0x0E },
129 { false, 0x4F, "iRT", 0x0F },
130 { false, 0x50, "iRTWB", 0x10 },
131 { false, 0x51, "iCombBit", 0x11 },
132 { false, 0x52, "iJnkmetl", 0x12 },
133 { false, 0x53, "iWiring", 0x13 },
134 { false, 0x54, "iWirscrp", 0x14 },
135 { false, 0x55, "iPWF", 0x15 },
136 { false, 0x56, "iPWE", 0x16 },
137 { false, 0x57, "iDeadPh", 0x17 },
138 { false, 0x58, "iBomb", 0x18 },
139 { false, 0x59, "iMetal", 0x19 },
140 { false, 0x5A, "iSkull", 0x1A },
141 { false, 0x5B, "iMineral", 0x1B },
142 { false, 0x5C, "iMeteor", 0x1C },
143 { false, 0x5D, "iShells", 0x1D },
144 { false, 0x5E, "iDeGrime", 0x1E },
145 { false, 0x5F, "iLenses", 0x1F },
146 { false, 0x60, "iDisks", 0x20 },
147 { false, 0x61, "iAntigra", 0x21 },
148 { false, 0x62, "iN2gas", 0x22 },
149 { false, 0x63, "iO2gas", 0x23 },
150 { false, 0x64, "iH2gas", 0x24 },
151 { false, 0x65, "iN2O", 0x25 },
152 { false, 0x66, "iNH3", 0x26 },
153 { false, 0x67, "iH2O", 0x27 },
154 { false, 0x68, "iWRod", 0x28 },
155 { false, 0x69, "iIRod", 0x29 },
156 { false, 0x6A, "iRedGem", 0x2A },
157 { false, 0x6B, "iRedGem", 0x2B },
158 { false, 0x6C, "iRedGem", 0x2C },
159 { false, 0x6D, "iGrnGem", 0x2D },
160 { false, 0x6E, "iGrnGem", 0x2E },
161 { false, 0x6F, "iGrnGem", 0x2F },
162 { false, 0x70, "iBluGem", 0x30 },
163 { false, 0x71, "iBluGem", 0x31 },
164 { false, 0x72, "iBluGem", 0x32 },
165 { false, 0x73, "iConect", 0x33 },
166 { false, 0x74, "iS8Rocks", 0x34 },
167 { false, 0x75, "iIDCard", 0x35 },
168 { false, 0x76, "iSnake", 0x36 },
169 { false, 0x77, "iFern", 0x37 },
170 { false, 0x78, "iCrystal", 0x38 },
171 { false, 0x79, "iKnife", 0x39 },
172 { false, 0x7A, "idetoxin", 0x3A },
173 { false, 0x7B, "iberry", 0x3B },
174 { false, 0x7C, "idoover", 0x3C },
175 { false, 0x7D, "ialiendv", 0x3D },
176 { false, 0x7E, "icapsule", 0x3E },
177 { true, 0x7F, "imedkit", 0x3F },
178 { false, 0x80, "iBeam", 0x40 },
179 { false, 0x81, "iDrill", 0x41 },
180 { false, 0x82, "iHypo", 0x42 },
181 { false, 0x83, "iFusion", 0x43 },
182 { false, 0x84, "iCable1", 0x44 },
183 { false, 0x85, "iCable2", 0x45 },
184 { false, 0x86, "iLMD", 0x46 },
185 { false, 0x87, "iDeck", 0x47 },
186 { false, 0x88, "iTech", 0x48 },
187
188 // 64 blank rows?
189 { false, 0x00, "", 0x00 },
190 { false, 0x00, "", 0x00 },
191 { false, 0x00, "", 0x00 },
192 { false, 0x00, "", 0x00 },
193 { false, 0x00, "", 0x00 },
194 { false, 0x00, "", 0x00 },
195 { false, 0x00, "", 0x00 },
196 { false, 0x00, "", 0x00 },
197 { false, 0x00, "", 0x00 },
198 { false, 0x00, "", 0x00 },
199 { false, 0x00, "", 0x00 },
200 { false, 0x00, "", 0x00 },
201 { false, 0x00, "", 0x00 },
202 { false, 0x00, "", 0x00 },
203 { false, 0x00, "", 0x00 },
204 { false, 0x00, "", 0x00 },
205 { false, 0x00, "", 0x00 },
206 { false, 0x00, "", 0x00 },
207 { false, 0x00, "", 0x00 },
208 { false, 0x00, "", 0x00 },
209 { false, 0x00, "", 0x00 },
210 { false, 0x00, "", 0x00 },
211 { false, 0x00, "", 0x00 },
212 { false, 0x00, "", 0x00 },
213 { false, 0x00, "", 0x00 },
214 { false, 0x00, "", 0x00 },
215 { false, 0x00, "", 0x00 },
216 { false, 0x00, "", 0x00 },
217 { false, 0x00, "", 0x00 },
218 { false, 0x00, "", 0x00 },
219 { false, 0x00, "", 0x00 },
220 { false, 0x00, "", 0x00 },
221 { false, 0x00, "", 0x00 },
222 { false, 0x00, "", 0x00 },
223 { false, 0x00, "", 0x00 },
224 { false, 0x00, "", 0x00 },
225 { false, 0x00, "", 0x00 },
226 { false, 0x00, "", 0x00 },
227 { false, 0x00, "", 0x00 },
228 { false, 0x00, "", 0x00 },
229 { false, 0x00, "", 0x00 },
230 { false, 0x00, "", 0x00 },
231 { false, 0x00, "", 0x00 },
232 { false, 0x00, "", 0x00 },
233 { false, 0x00, "", 0x00 },
234 { false, 0x00, "", 0x00 },
235 { false, 0x00, "", 0x00 },
236 { false, 0x00, "", 0x00 },
237 { false, 0x00, "", 0x00 },
238 { false, 0x00, "", 0x00 },
239 { false, 0x00, "", 0x00 },
240 { false, 0x00, "", 0x00 },
241 { false, 0x00, "", 0x00 },
242 { false, 0x00, "", 0x00 },
243 { false, 0x00, "", 0x00 },
244 { false, 0x00, "", 0x00 },
245 { false, 0x00, "", 0x00 },
246 { false, 0x00, "", 0x00 },
247 { false, 0x00, "", 0x00 },
248 { false, 0x00, "", 0x00 },
249 { false, 0x00, "", 0x00 },
250 { false, 0x00, "", 0x00 },
251 { false, 0x00, "", 0x00 },
252 { false, 0x00, "", 0x00 }
253};
254
255const int NUM_ITEMS = ARRAYSIZE(g_itemList) - 64; // 0x49
256
257} // End of namespace StarTrek
258
259#endif
#define ARRAYSIZE(x)
Definition: util.h:114
Definition: action.h:27
Definition: items.h:103