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 
25 namespace StarTrek {
26 
27 enum 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 
103 struct 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.)
113 const 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 
255 const int NUM_ITEMS = ARRAYSIZE(g_itemList) - 64; // 0x49
256 
257 } // End of namespace StarTrek
258 
259 #endif
#define ARRAYSIZE(x)
Definition: util.h:91
Definition: items.h:103
Definition: action.h:27