~ubuntu-branches/ubuntu/raring/scummvm/raring

« back to all changes in this revision

Viewing changes to tools/create_kyradat/games.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Moritz Muehlenhoff
  • Date: 2011-05-25 19:02:23 UTC
  • mto: (21.1.2 sid)
  • mto: This revision was merged to the branch mainline in revision 24.
  • Revision ID: james.westby@ubuntu.com-20110525190223-fiqm0oaec714xk31
Tags: upstream-1.3.0
ImportĀ upstreamĀ versionĀ 1.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
8
 
 * modify it under the terms of the GNU General Public License
9
 
 * as published by the Free Software Foundation; either version 2
10
 
 * of the License, or (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, write to the Free Software
19
 
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20
 
 *
21
 
 * $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/tags/release-1-2-1/tools/create_kyradat/games.cpp $
22
 
 * $Id: games.cpp 51834 2010-08-07 14:38:07Z athrxx $
23
 
 *
24
 
 */
25
 
 
26
 
#include "create_kyradat.h"
27
 
 
28
 
// Game tables
29
 
 
30
 
namespace {
31
 
 
32
 
const Game kyra1Games[] = {
33
 
        // Demos
34
 
        { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "7b7504c8560ffc914d34c44c71b3094c", 0 } },
35
 
        { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieDemoVersion, { "226fdba99cb11ef1047131d9a50e6292", 0 } },
36
 
 
37
 
        // Amiga
38
 
        { kKyra1, { EN_ANY, -1, -1 }, kPlatformAmiga, kNoSpecial, { "b620564b6b7e0787b053ca9e35bd9f52", 0 } },
39
 
        { kKyra1, { DE_DEU, -1, -1 }, kPlatformAmiga, kNoSpecial, { "ceddb4bd4df51698e3851e75106d117a", 0 } },
40
 
 
41
 
        // Floppy
42
 
        { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "76a4fc84e173cadb6369785787e1546e", 0 } },
43
 
        { kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "9442d6f7db6a41f3dd4aa4de5d36e107", 0 } },
44
 
        { kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "aa9d6d78d8b199deaf48efeca6d19af2", 0 } },
45
 
        { kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "5d7550306b369a3492f9f3402702477c", 0 } },
46
 
        { kKyra1, { ES_ESP, -1, -1 }, kPlatformPC, kNoSpecial, { "9ff130d2558bcd674d4074849d93c362", 0 } },
47
 
 
48
 
        // Talkie
49
 
        { kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieVersion, { "1ebc18f3e7fbb72474a55cb0fa089ed4", 0 } },
50
 
        { kKyra1, { DE_DEU, -1, -1 }, kPlatformPC, kTalkieVersion, { "c65d381184f98ac26d9efd2d45baef51", 0 } },
51
 
        { kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kTalkieVersion, { "307c5d4a554d9068ac3d326e350ae4a6", 0 } },
52
 
        { kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kTalkieVersion, { "d0f1752098236083d81b9497bd2b6989", 0 } }, // Italian fan translation
53
 
 
54
 
        // FM-TOWNS
55
 
        { kKyra1, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "5a3ad60ccd0f2e29463e0368cd14a60d", 0 } },
56
 
 
57
 
        // PC-98
58
 
        { kKyra1, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "b9c06ac5177f5bf1f1acc0eea3937f6d", 0 } },
59
 
 
60
 
        GAME_DUMMY_ENTRY
61
 
};
62
 
 
63
 
const Game kyra2Games[] = {
64
 
        // demos
65
 
        { kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "a620a37579dd44ab0403482285e3897f", 0 } },
66
 
 
67
 
        { kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieDemoVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "fa54d8abfe05f9186c05f7de7eaf1480" } },
68
 
 
69
 
        // floppy games
70
 
        { kKyra2, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "9b0f5e57b5a2ed88b5b989cbb402b6c7", "7c3eadbe5122722cf2e5e1611e19dfb9" } },
71
 
        { kKyra2, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "df31cc9e37e1cf68df2fdc75ddf2d87b", "fc2c6782778e6c6d5a553d1cb73c98ad" } },
72
 
        { kKyra2, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "0ca4f9a1438264a4c63c3218e064ed3b", "0d9b0eb7b0ad889ec942d74d80dde1bf" } },
73
 
        { kKyra2, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "178d3ab913f61bfba21d2fb196405e8c", "3a61ed6b7c00ddae383a0361799e2ba6" } },
74
 
 
75
 
        // talkie games
76
 
        { kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "e20d0d2e500f01e399ec588247a7e213" } },
77
 
        { kKyra2, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "130795aa8f2333250c895dae9028b9bb", "e20d0d2e500f01e399ec588247a7e213" } }, // Italian Fan Translation
78
 
 
79
 
        // FM-TOWNS games
80
 
        { kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformFMTowns, kNoSpecial, { "74f50d79c919cc8e7196c24942ce43d7", "a9a7fd4f05d00090e9e8bda073e6d431" } },
81
 
 
82
 
        // PC-98
83
 
        { kKyra2, { EN_ANY, JA_JPN, -1 }, kPlatformPC98, kNoSpecial, { "9bbf9a69be956db072b485929b416082", "f55fda3e60c4956ce6e72b24d2ae1a07" } },
84
 
 
85
 
        GAME_DUMMY_ENTRY
86
 
};
87
 
 
88
 
const Game kyra3Games[] = {
89
 
        // DOS CD (multi language version, with no language specific strings)
90
 
        { kKyra3, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } },
91
 
        { kKyra3, { EN_ANY, IT_ITA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum
92
 
        { kKyra3, { ES_ESP, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "bf68701eb591d0b72219f314c0d32688", 0 } }, // Fan translation // TODO: Verify md5sum
93
 
 
94
 
        GAME_DUMMY_ENTRY
95
 
};
96
 
 
97
 
const Game lolGames[] = {
98
 
        // DOS demo
99
 
        { kLol, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "30bb5af87d38adb47d3e6ce06b1cb042", 0 } },
100
 
 
101
 
        // DOS floppy (no language specifc strings)
102
 
        { kLol, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "0cc764a204f7ba8cefe1a5f14c479619", 0 } },
103
 
        { kLol, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } },
104
 
 
105
 
        // PC98 (no language specifc strings)
106
 
        { kLol, { JA_JPN, -1, -1 }, kPlatformPC98, kNoSpecial, { "6d5bd4a2f5ce433365734ca6b7a8d984", "1b0a457c48ae6908da301b656fe0aab4" } },
107
 
 
108
 
        // DOS CD (multi language version, with no language specific strings)
109
 
        { kLol, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } },
110
 
 
111
 
        GAME_DUMMY_ENTRY
112
 
};
113
 
 
114
 
} // end of anonymous namespace
115
 
 
116
 
const Game * const gameDescs[] = {
117
 
        kyra1Games,
118
 
        kyra2Games,
119
 
        kyra3Games,
120
 
        lolGames,
121
 
        0
122
 
};
123
 
 
124
 
// Need tables
125
 
 
126
 
namespace {
127
 
 
128
 
const int kyra1FloppyNeed[] = {
129
 
        k1KallakWritingSeq,
130
 
        k1MalcolmTreeSeq,
131
 
        k1WestwoodLogoSeq,
132
 
        k1KyrandiaLogoSeq,
133
 
        k1KallakMalcolmSeq,
134
 
        k1ForestSeq,
135
 
        k1IntroCPSStrings,
136
 
        k1IntroCOLStrings,
137
 
        k1IntroWSAStrings,
138
 
        k1IntroStrings,
139
 
        k1RoomList,
140
 
        k1RoomFilenames,
141
 
        k1CharacterImageFilenames,
142
 
        k1DefaultShapes,
143
 
        k1ItemNames,
144
 
        k1TakenStrings,
145
 
        k1PlacedStrings,
146
 
        k1DroppedStrings,
147
 
        k1NoDropStrings,
148
 
        k1AmuleteAnimSeq,
149
 
        k1SpecialPalette1,
150
 
        k1SpecialPalette2,
151
 
        k1SpecialPalette3,
152
 
        k1SpecialPalette4,
153
 
        k1SpecialPalette5,
154
 
        k1SpecialPalette6,
155
 
        k1SpecialPalette7,
156
 
        k1SpecialPalette8,
157
 
        k1SpecialPalette9,
158
 
        k1SpecialPalette10,
159
 
        k1SpecialPalette11,
160
 
        k1SpecialPalette12,
161
 
        k1SpecialPalette13,
162
 
        k1SpecialPalette14,
163
 
        k1SpecialPalette15,
164
 
        k1SpecialPalette16,
165
 
        k1SpecialPalette17,
166
 
        k1SpecialPalette18,
167
 
        k1SpecialPalette19,
168
 
        k1SpecialPalette20,
169
 
        k1SpecialPalette21,
170
 
        k1SpecialPalette22,
171
 
        k1SpecialPalette23,
172
 
        k1SpecialPalette24,
173
 
        k1SpecialPalette25,
174
 
        k1SpecialPalette26,
175
 
        k1SpecialPalette27,
176
 
        k1SpecialPalette28,
177
 
        k1SpecialPalette29,
178
 
        k1SpecialPalette30,
179
 
        k1SpecialPalette31,
180
 
        k1SpecialPalette32,
181
 
        k1SpecialPalette33,
182
 
        k1PutDownString,
183
 
        k1WaitAmuletString,
184
 
        k1BlackJewelString,
185
 
        k1HealingTipString,
186
 
        k1PoisonGoneString,
187
 
        k1Healing1Shapes,
188
 
        k1Healing2Shapes,
189
 
        k1ThePoisonStrings,
190
 
        k1FluteStrings,
191
 
        k1PoisonDeathShapes,
192
 
        k1FluteShapes,
193
 
        k1Winter1Shapes,
194
 
        k1Winter2Shapes,
195
 
        k1Winter3Shapes,
196
 
        k1DrinkShapes,
197
 
        k1WispShapes,
198
 
        k1MagicAnimShapes,
199
 
        k1BranStoneShapes,
200
 
        k1WispJewelStrings,
201
 
        k1MagicJewelStrings,
202
 
        k1FlaskFullString,
203
 
        k1FullFlaskString,
204
 
        k1OutroReunionSeq,
205
 
        k1OutroHomeString,
206
 
        k1VeryCleverString,
207
 
        k1GUIStrings,
208
 
        k1NewGameString,
209
 
        k1ConfigStrings,
210
 
        k1AudioTracks,
211
 
        k1AudioTracksIntro,
212
 
        -1
213
 
};
214
 
 
215
 
const int kyra1CDNeed[] = {
216
 
        k1KallakWritingSeq,
217
 
        k1MalcolmTreeSeq,
218
 
        k1WestwoodLogoSeq,
219
 
        k1KyrandiaLogoSeq,
220
 
        k1KallakMalcolmSeq,
221
 
        k1ForestSeq,
222
 
        k1IntroCPSStrings,
223
 
        k1IntroCOLStrings,
224
 
        k1IntroWSAStrings,
225
 
        k1IntroStrings,
226
 
        k1RoomList,
227
 
        k1RoomFilenames,
228
 
        k1CharacterImageFilenames,
229
 
        k1DefaultShapes,
230
 
        k1ItemNames,
231
 
        k1TakenStrings,
232
 
        k1PlacedStrings,
233
 
        k1DroppedStrings,
234
 
        k1NoDropStrings,
235
 
        k1AmuleteAnimSeq,
236
 
        k1SpecialPalette1,
237
 
        k1SpecialPalette2,
238
 
        k1SpecialPalette3,
239
 
        k1SpecialPalette4,
240
 
        k1SpecialPalette5,
241
 
        k1SpecialPalette6,
242
 
        k1SpecialPalette7,
243
 
        k1SpecialPalette8,
244
 
        k1SpecialPalette9,
245
 
        k1SpecialPalette10,
246
 
        k1SpecialPalette11,
247
 
        k1SpecialPalette12,
248
 
        k1SpecialPalette13,
249
 
        k1SpecialPalette14,
250
 
        k1SpecialPalette15,
251
 
        k1SpecialPalette16,
252
 
        k1SpecialPalette17,
253
 
        k1SpecialPalette18,
254
 
        k1SpecialPalette19,
255
 
        k1SpecialPalette20,
256
 
        k1SpecialPalette21,
257
 
        k1SpecialPalette22,
258
 
        k1SpecialPalette23,
259
 
        k1SpecialPalette24,
260
 
        k1SpecialPalette25,
261
 
        k1SpecialPalette26,
262
 
        k1SpecialPalette27,
263
 
        k1SpecialPalette28,
264
 
        k1SpecialPalette29,
265
 
        k1SpecialPalette30,
266
 
        k1SpecialPalette31,
267
 
        k1SpecialPalette32,
268
 
        k1SpecialPalette33,
269
 
        k1PutDownString,
270
 
        k1WaitAmuletString,
271
 
        k1BlackJewelString,
272
 
        k1HealingTipString,
273
 
        k1PoisonGoneString,
274
 
        k1Healing1Shapes,
275
 
        k1Healing2Shapes,
276
 
        k1ThePoisonStrings,
277
 
        k1FluteStrings,
278
 
        k1PoisonDeathShapes,
279
 
        k1FluteShapes,
280
 
        k1Winter1Shapes,
281
 
        k1Winter2Shapes,
282
 
        k1Winter3Shapes,
283
 
        k1DrinkShapes,
284
 
        k1WispShapes,
285
 
        k1MagicAnimShapes,
286
 
        k1BranStoneShapes,
287
 
        k1WispJewelStrings,
288
 
        k1MagicJewelStrings,
289
 
        k1FlaskFullString,
290
 
        k1FullFlaskString,
291
 
        k1OutroReunionSeq,
292
 
        k1OutroHomeString,
293
 
        k1VeryCleverString,
294
 
        k1GUIStrings,
295
 
        k1NewGameString,
296
 
        k1ConfigStrings,
297
 
        k1AudioTracks,
298
 
        k1AudioTracksIntro,
299
 
        -1
300
 
};
301
 
 
302
 
const int kyra1DemoNeed[] = {
303
 
        k1WestwoodLogoSeq,
304
 
        k1KyrandiaLogoSeq,
305
 
        k1IntroCPSStrings,
306
 
        k1IntroCOLStrings,
307
 
        k1IntroWSAStrings,
308
 
        k1IntroStrings,
309
 
        k1Demo1Seq,
310
 
        k1Demo2Seq,
311
 
        k1Demo3Seq,
312
 
        k1Demo4Seq,
313
 
        k1AudioTracksIntro,
314
 
        -1
315
 
};
316
 
 
317
 
const int kyra1DemoCDNeed[] = {
318
 
        k1KallakWritingSeq,
319
 
        k1MalcolmTreeSeq,
320
 
        k1WestwoodLogoSeq,
321
 
        k1KyrandiaLogoSeq,
322
 
        k1KallakMalcolmSeq,
323
 
        k1ForestSeq,
324
 
        k1IntroCPSStrings,
325
 
        k1IntroCOLStrings,
326
 
        k1IntroWSAStrings,
327
 
        k1IntroStrings,
328
 
        k1AudioTracksIntro,
329
 
        -1
330
 
};
331
 
 
332
 
const int kyra1TownsNeed[] = {
333
 
        k1KallakWritingSeq,
334
 
        k1MalcolmTreeSeq,
335
 
        k1WestwoodLogoSeq,
336
 
        k1KyrandiaLogoSeq,
337
 
        k1KallakMalcolmSeq,
338
 
        k1ForestSeq,
339
 
        k1IntroCPSStrings,
340
 
        k1IntroCOLStrings,
341
 
        k1IntroWSAStrings,
342
 
        k1IntroStrings,
343
 
        k1RoomList,
344
 
        k1RoomFilenames,
345
 
        k1CharacterImageFilenames,
346
 
        k1DefaultShapes,
347
 
        k1ItemNames,
348
 
        k1TakenStrings,
349
 
        k1PlacedStrings,
350
 
        k1DroppedStrings,
351
 
        k1NoDropStrings,
352
 
        k1AmuleteAnimSeq,
353
 
        k1SpecialPalette1,
354
 
        k1SpecialPalette2,
355
 
        k1SpecialPalette3,
356
 
        k1SpecialPalette4,
357
 
        k1SpecialPalette5,
358
 
        k1SpecialPalette6,
359
 
        k1SpecialPalette7,
360
 
        k1SpecialPalette8,
361
 
        k1SpecialPalette9,
362
 
        k1SpecialPalette10,
363
 
        k1SpecialPalette11,
364
 
        k1SpecialPalette12,
365
 
        k1SpecialPalette13,
366
 
        k1SpecialPalette14,
367
 
        k1SpecialPalette15,
368
 
        k1SpecialPalette16,
369
 
        k1SpecialPalette17,
370
 
        k1SpecialPalette18,
371
 
        k1SpecialPalette19,
372
 
        k1SpecialPalette20,
373
 
        k1SpecialPalette21,
374
 
        k1SpecialPalette22,
375
 
        k1SpecialPalette23,
376
 
        k1SpecialPalette24,
377
 
        k1SpecialPalette25,
378
 
        k1SpecialPalette26,
379
 
        k1SpecialPalette27,
380
 
        k1SpecialPalette28,
381
 
        k1SpecialPalette29,
382
 
        k1SpecialPalette30,
383
 
        k1SpecialPalette31,
384
 
        k1SpecialPalette32,
385
 
        k1SpecialPalette33,
386
 
        k1PutDownString,
387
 
        k1WaitAmuletString,
388
 
        k1BlackJewelString,
389
 
        k1HealingTipString,
390
 
        k1PoisonGoneString,
391
 
        k1Healing1Shapes,
392
 
        k1Healing2Shapes,
393
 
        k1ThePoisonStrings,
394
 
        k1FluteStrings,
395
 
        k1PoisonDeathShapes,
396
 
        k1FluteShapes,
397
 
        k1Winter1Shapes,
398
 
        k1Winter2Shapes,
399
 
        k1Winter3Shapes,
400
 
        k1DrinkShapes,
401
 
        k1WispShapes,
402
 
        k1MagicAnimShapes,
403
 
        k1BranStoneShapes,
404
 
        k1WispJewelStrings,
405
 
        k1MagicJewelStrings,
406
 
        k1FlaskFullString,
407
 
        k1FullFlaskString,
408
 
        k1OutroReunionSeq,
409
 
        k1OutroHomeString,
410
 
        k1VeryCleverString,
411
 
        k1GUIStrings,
412
 
        k1NewGameString,
413
 
        k1ConfigStrings,
414
 
 
415
 
        k1TownsMusicFadeTable,
416
 
        k1TownsMusicFadeTable,
417
 
        k1TownsSFXwdTable,
418
 
        k1TownsSFXbtTable,
419
 
        k1TownsCDATable,
420
 
        k1AudioTracks,
421
 
        k1CreditsStrings,
422
 
        -1
423
 
};
424
 
 
425
 
const int kyra1PC98Need[] = {
426
 
        k1KallakWritingSeq,
427
 
        k1MalcolmTreeSeq,
428
 
        k1WestwoodLogoSeq,
429
 
        k1KyrandiaLogoSeq,
430
 
        k1KallakMalcolmSeq,
431
 
        k1ForestSeq,
432
 
        k1IntroCPSStrings,
433
 
        k1IntroCOLStrings,
434
 
        k1IntroWSAStrings,
435
 
        k1IntroStrings,
436
 
        k1RoomList,
437
 
        k1RoomFilenames,
438
 
        k1CharacterImageFilenames,
439
 
        k1DefaultShapes,
440
 
        k1ItemNames,
441
 
        k1TakenStrings,
442
 
        k1PlacedStrings,
443
 
        k1DroppedStrings,
444
 
        k1NoDropStrings,
445
 
        k1AmuleteAnimSeq,
446
 
        k1SpecialPalette1,
447
 
        k1SpecialPalette2,
448
 
        k1SpecialPalette3,
449
 
        k1SpecialPalette4,
450
 
        k1SpecialPalette5,
451
 
        k1SpecialPalette6,
452
 
        k1SpecialPalette7,
453
 
        k1SpecialPalette8,
454
 
        k1SpecialPalette9,
455
 
        k1SpecialPalette10,
456
 
        k1SpecialPalette11,
457
 
        k1SpecialPalette12,
458
 
        k1SpecialPalette13,
459
 
        k1SpecialPalette14,
460
 
        k1SpecialPalette15,
461
 
        k1SpecialPalette16,
462
 
        k1SpecialPalette17,
463
 
        k1SpecialPalette18,
464
 
        k1SpecialPalette19,
465
 
        k1SpecialPalette20,
466
 
        k1SpecialPalette21,
467
 
        k1SpecialPalette22,
468
 
        k1SpecialPalette23,
469
 
        k1SpecialPalette24,
470
 
        k1SpecialPalette25,
471
 
        k1SpecialPalette26,
472
 
        k1SpecialPalette27,
473
 
        k1SpecialPalette28,
474
 
        k1SpecialPalette29,
475
 
        k1SpecialPalette30,
476
 
        k1SpecialPalette31,
477
 
        k1SpecialPalette32,
478
 
        k1SpecialPalette33,
479
 
        k1PutDownString,
480
 
        k1WaitAmuletString,
481
 
        k1BlackJewelString,
482
 
        k1HealingTipString,
483
 
        k1PoisonGoneString,
484
 
        k1Healing1Shapes,
485
 
        k1Healing2Shapes,
486
 
        k1ThePoisonStrings,
487
 
        k1FluteStrings,
488
 
        k1PoisonDeathShapes,
489
 
        k1FluteShapes,
490
 
        k1Winter1Shapes,
491
 
        k1Winter2Shapes,
492
 
        k1Winter3Shapes,
493
 
        k1DrinkShapes,
494
 
        k1WispShapes,
495
 
        k1MagicAnimShapes,
496
 
        k1BranStoneShapes,
497
 
        k1WispJewelStrings,
498
 
        k1MagicJewelStrings,
499
 
        k1FlaskFullString,
500
 
        k1FullFlaskString,
501
 
        k1OutroReunionSeq,
502
 
        k1OutroHomeString,
503
 
        k1VeryCleverString,
504
 
        k1GUIStrings,
505
 
        k1NewGameString,
506
 
        k1ConfigStrings,
507
 
 
508
 
        k1PC98StoryStrings,
509
 
        k1PC98IntroSfx,
510
 
        k1CreditsStrings,
511
 
        -1
512
 
};
513
 
 
514
 
const int kyra1AmigaNeed[] = {
515
 
        k1KallakWritingSeq,
516
 
        k1MalcolmTreeSeq,
517
 
        k1WestwoodLogoSeq,
518
 
        k1KyrandiaLogoSeq,
519
 
        k1KallakMalcolmSeq,
520
 
        k1ForestSeq,
521
 
        k1IntroCPSStrings,
522
 
        k1IntroWSAStrings,
523
 
        k1IntroCOLStrings,
524
 
        k1IntroStrings,
525
 
        k1RoomList,
526
 
        k1RoomFilenames,
527
 
        k1CharacterImageFilenames,
528
 
        k1DefaultShapes,
529
 
        k1ItemNames,
530
 
        k1TakenStrings,
531
 
        k1PlacedStrings,
532
 
        k1DroppedStrings,
533
 
        k1NoDropStrings,
534
 
        k1AmuleteAnimSeq,
535
 
        k1PutDownString,
536
 
        k1WaitAmuletString,
537
 
        k1BlackJewelString,
538
 
        k1HealingTipString,
539
 
        k1PoisonGoneString,
540
 
        k1Healing1Shapes,
541
 
        k1Healing2Shapes,
542
 
        k1ThePoisonStrings,
543
 
        k1FluteStrings,
544
 
        k1PoisonDeathShapes,
545
 
        k1FluteShapes,
546
 
        k1Winter1Shapes,
547
 
        k1Winter2Shapes,
548
 
        k1Winter3Shapes,
549
 
        k1DrinkShapes,
550
 
        k1WispShapes,
551
 
        k1MagicAnimShapes,
552
 
        k1BranStoneShapes,
553
 
        k1WispJewelStrings,
554
 
        k1MagicJewelStrings,
555
 
        k1FlaskFullString,
556
 
        k1FullFlaskString,
557
 
        k1OutroReunionSeq,
558
 
        k1OutroHomeString,
559
 
        k1VeryCleverString,
560
 
        k1GUIStrings,
561
 
        k1NewGameString,
562
 
        k1ConfigStrings,
563
 
        k1CreditsStrings,
564
 
        k1AmigaIntroSFXTable,
565
 
        k1AmigaGameSFXTable,
566
 
        -1
567
 
};
568
 
 
569
 
const int kyra2CDNeed[] = {
570
 
        k2SeqplayPakFiles,
571
 
        k2SeqplayCredits,
572
 
        k2SeqplayCreditsSpecial,
573
 
        k2SeqplayStrings,
574
 
        k2SeqplaySfxFiles,
575
 
        k2SeqplayTlkFiles,
576
 
        k2SeqplaySeqData,
577
 
        k2SeqplayIntroTracks,
578
 
        k2SeqplayFinaleTracks,
579
 
        k2IngameSfxFiles,
580
 
        k2IngameSfxIndex,
581
 
        k2IngameTracks,
582
 
        k2IngameTalkObjIndex,
583
 
        k2IngameShapeAnimData,
584
 
        -1
585
 
};
586
 
 
587
 
const int kyra2CDDemoNeed[] = {
588
 
        k2SeqplayPakFiles,
589
 
        k2SeqplayCredits,
590
 
        k2SeqplayCreditsSpecial,
591
 
        k2SeqplayStrings,
592
 
        k2SeqplaySfxFiles,
593
 
        k2SeqplayTlkFiles,
594
 
        k2SeqplaySeqData,
595
 
        k2SeqplayIntroTracks,
596
 
        k2SeqplayFinaleTracks,
597
 
        k2IngameSfxFiles,
598
 
        k2IngameSfxIndex,
599
 
        k2IngameTracks,
600
 
        k2IngameTalkObjIndex,
601
 
        k2IngameShapeAnimData,
602
 
        k2IngameTlkDemoStrings,
603
 
        -1
604
 
};
605
 
 
606
 
const int kyra2FloppyNeed[] = {
607
 
        k2SeqplayPakFiles,
608
 
        k2SeqplayStrings,
609
 
        k2SeqplaySfxFiles,
610
 
        k2SeqplayIntroTracks,
611
 
        k2SeqplayFinaleTracks,
612
 
        k2SeqplaySeqData,
613
 
        k2IngamePakFiles,
614
 
        k2IngameSfxFiles,
615
 
        k2IngameSfxIndex,
616
 
        k2IngameTracks,
617
 
        k2IngameTalkObjIndex,
618
 
        k2IngameShapeAnimData,
619
 
        -1
620
 
};
621
 
 
622
 
const int kyra2TownsNeed[] = {
623
 
        k2SeqplayPakFiles,
624
 
        k2SeqplayStrings,
625
 
        k2SeqplaySfxFiles,
626
 
        k2SeqplaySeqData,
627
 
        k2SeqplayIntroCDA,
628
 
        k2SeqplayFinaleCDA,
629
 
        k2IngamePakFiles,
630
 
        k2IngameSfxFiles,
631
 
        k2IngameSfxIndex,
632
 
        k2IngameCDA,
633
 
        k2IngameTalkObjIndex,
634
 
        k2IngameTimJpStrings,
635
 
        k2IngameShapeAnimData,
636
 
        -1
637
 
};
638
 
 
639
 
const int kyra2PC98Need[] = {
640
 
        k2SeqplayPakFiles,
641
 
        k2SeqplayStrings,
642
 
        k2SeqplaySfxFiles,
643
 
        k2SeqplaySeqData,
644
 
        k2IngamePakFiles,
645
 
        k2IngameSfxFiles,
646
 
        k2IngameSfxIndex,
647
 
        k2IngameTalkObjIndex,
648
 
        k2IngameTimJpStrings,
649
 
        k2IngameShapeAnimData,
650
 
        -1
651
 
};
652
 
 
653
 
const int kyra2DemoNeed[] = {
654
 
        k2SeqplayPakFiles,
655
 
        k2SeqplaySeqData,
656
 
        k2SeqplaySfxFiles,
657
 
        k2SeqplayIntroTracks,
658
 
        k2SeqplayShapeAnimData,
659
 
        -1
660
 
};
661
 
 
662
 
const int kyra3Need[] = {
663
 
        k3MainMenuStrings,
664
 
        k3MusicFiles,
665
 
        k3ScoreTable,
666
 
        k3SfxFiles,
667
 
        k3SfxMap,
668
 
        k3ItemAnimData,
669
 
        k3ItemMagicTable,
670
 
        k3ItemStringMap,
671
 
        -1
672
 
};
673
 
 
674
 
const int lolFloppyNeed[] = {
675
 
        kLolIngamePakFiles,
676
 
 
677
 
        kLolCharacterDefs,
678
 
        kLolIngameSfxFiles,
679
 
        kLolIngameSfxIndex,
680
 
        kLolMusicTrackMap,
681
 
        kLolIngameGMSfxIndex,
682
 
        kLolIngameMT32SfxIndex,
683
 
        kLolIngamePcSpkSfxIndex,
684
 
        kLolSpellProperties,
685
 
        kLolGameShapeMap,
686
 
        kLolSceneItemOffs,
687
 
        kLolCharInvIndex,
688
 
        kLolCharInvDefs,
689
 
        kLolCharDefsMan,
690
 
        kLolCharDefsWoman,
691
 
        kLolCharDefsKieran,
692
 
        kLolCharDefsAkshel,
693
 
        kLolExpRequirements,
694
 
        kLolMonsterModifiers,
695
 
        kLolMonsterShiftOffsets,
696
 
        kLolMonsterDirFlags,
697
 
        kLolMonsterScaleY,
698
 
        kLolMonsterScaleX,
699
 
        kLolMonsterScaleWH,
700
 
        kLolFlyingObjectShp,
701
 
        kLolInventoryDesc,
702
 
 
703
 
        kLolLevelShpList,
704
 
        kLolLevelDatList,
705
 
        kLolCompassDefs,
706
 
        kLolStashSetup,
707
 
        kLolDscUnk1,
708
 
        kLolDscShapeIndex,
709
 
        kLolDscOvlMap,
710
 
        kLolDscScaleWidthData,
711
 
        kLolDscScaleHeightData,
712
 
        kLolDscX,
713
 
        kLolDscY,
714
 
        kLolDscTileIndex,
715
 
        kLolDscUnk2,
716
 
        kLolDscDoorShapeIndex,
717
 
        kLolDscDimData1,
718
 
        kLolDscDimData2,
719
 
        kLolDscBlockMap,
720
 
        kLolDscDimMap,
721
 
        kLolDscOvlIndex,
722
 
        kLolDscBlockIndex,
723
 
        kLolDscDoor1,
724
 
        kLolDscDoorScale,
725
 
        kLolDscDoor4,
726
 
        kLolDscDoorX,
727
 
        kLolDscDoorY,
728
 
 
729
 
        kLolScrollXTop,
730
 
        kLolScrollYTop,
731
 
        kLolScrollXBottom,
732
 
        kLolScrollYBottom,
733
 
 
734
 
        kLolButtonDefs,
735
 
        kLolButtonList1,
736
 
        kLolButtonList1,
737
 
        kLolButtonList2,
738
 
        kLolButtonList3,
739
 
        kLolButtonList4,
740
 
        kLolButtonList5,
741
 
        kLolButtonList6,
742
 
        kLolButtonList7,
743
 
        kLolButtonList8,
744
 
 
745
 
        kLolLegendData,
746
 
        kLolMapCursorOvl,
747
 
        kLolMapStringId,
748
 
 
749
 
        kLolSpellbookAnim,
750
 
        kLolSpellbookCoords,
751
 
        kLolHealShapeFrames,
752
 
        kLolLightningDefs,
753
 
        kLolFireballCoords,
754
 
 
755
 
        -1
756
 
};
757
 
 
758
 
const int lolPC98Need[] = {
759
 
        kLolIngamePakFiles,
760
 
 
761
 
        kLolCharacterDefs,
762
 
        kLolIngameSfxFiles,
763
 
        kLolIngameSfxIndex,
764
 
        kLolSpellProperties,
765
 
        kLolGameShapeMap,
766
 
        kLolSceneItemOffs,
767
 
        kLolCharInvIndex,
768
 
        kLolCharInvDefs,
769
 
        kLolCharDefsMan,
770
 
        kLolCharDefsWoman,
771
 
        kLolCharDefsKieran,
772
 
        kLolCharDefsAkshel,
773
 
        kLolExpRequirements,
774
 
        kLolMonsterModifiers,
775
 
        kLolMonsterShiftOffsets,
776
 
        kLolMonsterDirFlags,
777
 
        kLolMonsterScaleY,
778
 
        kLolMonsterScaleX,
779
 
        kLolMonsterScaleWH,
780
 
        kLolFlyingObjectShp,
781
 
        kLolInventoryDesc,
782
 
 
783
 
        kLolLevelShpList,
784
 
        kLolLevelDatList,
785
 
        kLolCompassDefs,
786
 
        kLolStashSetup,
787
 
        kLolDscUnk1,
788
 
        kLolDscShapeIndex,
789
 
        kLolDscOvlMap,
790
 
        kLolDscScaleWidthData,
791
 
        kLolDscScaleHeightData,
792
 
        kLolDscX,
793
 
        kLolDscY,
794
 
        kLolDscTileIndex,
795
 
        kLolDscUnk2,
796
 
        kLolDscDoorShapeIndex,
797
 
        kLolDscDimData1,
798
 
        kLolDscDimData2,
799
 
        kLolDscBlockMap,
800
 
        kLolDscDimMap,
801
 
        kLolDscOvlIndex,
802
 
        kLolDscBlockIndex,
803
 
        kLolDscDoor1,
804
 
        kLolDscDoorScale,
805
 
        kLolDscDoor4,
806
 
        kLolDscDoorX,
807
 
        kLolDscDoorY,
808
 
 
809
 
        kLolScrollXTop,
810
 
        kLolScrollYTop,
811
 
        kLolScrollXBottom,
812
 
        kLolScrollYBottom,
813
 
 
814
 
        kLolButtonDefs,
815
 
        kLolButtonList1,
816
 
        kLolButtonList1,
817
 
        kLolButtonList2,
818
 
        kLolButtonList3,
819
 
        kLolButtonList4,
820
 
        kLolButtonList5,
821
 
        kLolButtonList6,
822
 
        kLolButtonList7,
823
 
        kLolButtonList8,
824
 
 
825
 
        kLolLegendData,
826
 
        kLolMapStringId,
827
 
 
828
 
        kLolSpellbookAnim,
829
 
        kLolSpellbookCoords,
830
 
        kLolHealShapeFrames,
831
 
        kLolLightningDefs,
832
 
        kLolFireballCoords,
833
 
 
834
 
        kLolCredits,
835
 
 
836
 
        -1
837
 
};
838
 
 
839
 
const int lolCDNeed[] = {
840
 
        kLolHistory,
841
 
        kLolCharacterDefs,
842
 
        kLolIngameSfxFiles,
843
 
        kLolIngameSfxIndex,
844
 
        kLolMusicTrackMap,
845
 
        kLolIngameGMSfxIndex,
846
 
        kLolIngameMT32SfxIndex,
847
 
        kLolIngamePcSpkSfxIndex,
848
 
        kLolSpellProperties,
849
 
        kLolGameShapeMap,
850
 
        kLolSceneItemOffs,
851
 
        kLolCharInvIndex,
852
 
        kLolCharInvDefs,
853
 
        kLolCharDefsMan,
854
 
        kLolCharDefsWoman,
855
 
        kLolCharDefsKieran,
856
 
        kLolCharDefsAkshel,
857
 
        kLolExpRequirements,
858
 
        kLolMonsterModifiers,
859
 
        kLolMonsterShiftOffsets,
860
 
        kLolMonsterDirFlags,
861
 
        kLolMonsterScaleY,
862
 
        kLolMonsterScaleX,
863
 
        kLolMonsterScaleWH,
864
 
        kLolFlyingObjectShp,
865
 
        kLolInventoryDesc,
866
 
 
867
 
        kLolLevelShpList,
868
 
        kLolLevelDatList,
869
 
        kLolCompassDefs,
870
 
        kLolItemPrices,
871
 
        kLolStashSetup,
872
 
        kLolDscUnk1,
873
 
        kLolDscShapeIndex,
874
 
        kLolDscOvlMap,
875
 
        kLolDscScaleWidthData,
876
 
        kLolDscScaleHeightData,
877
 
        kLolDscX,
878
 
        kLolDscY,
879
 
        kLolDscTileIndex,
880
 
        kLolDscUnk2,
881
 
        kLolDscDoorShapeIndex,
882
 
        kLolDscDimData1,
883
 
        kLolDscDimData2,
884
 
        kLolDscBlockMap,
885
 
        kLolDscDimMap,
886
 
        kLolDscOvlIndex,
887
 
        kLolDscBlockIndex,
888
 
        kLolDscDoor1,
889
 
        kLolDscDoorScale,
890
 
        kLolDscDoor4,
891
 
        kLolDscDoorX,
892
 
        kLolDscDoorY,
893
 
 
894
 
        kLolScrollXTop,
895
 
        kLolScrollYTop,
896
 
        kLolScrollXBottom,
897
 
        kLolScrollYBottom,
898
 
 
899
 
        kLolButtonDefs,
900
 
        kLolButtonList1,
901
 
        kLolButtonList1,
902
 
        kLolButtonList2,
903
 
        kLolButtonList3,
904
 
        kLolButtonList4,
905
 
        kLolButtonList5,
906
 
        kLolButtonList6,
907
 
        kLolButtonList7,
908
 
        kLolButtonList8,
909
 
 
910
 
        kLolLegendData,
911
 
        kLolMapCursorOvl,
912
 
        kLolMapStringId,
913
 
 
914
 
        kLolSpellbookAnim,
915
 
        kLolSpellbookCoords,
916
 
        kLolHealShapeFrames,
917
 
        kLolLightningDefs,
918
 
        kLolFireballCoords,
919
 
        -1
920
 
};
921
 
 
922
 
const int lolDemoNeed[] = {
923
 
        k2SeqplayPakFiles,
924
 
        k2SeqplayStrings,
925
 
        k2SeqplaySeqData,
926
 
        k2SeqplaySfxFiles,
927
 
        k2SeqplayIntroTracks,
928
 
        -1
929
 
};
930
 
 
931
 
struct GameNeed {
932
 
        int game;
933
 
        int platform;
934
 
        int special;
935
 
 
936
 
        const int *entries;
937
 
};
938
 
 
939
 
const GameNeed gameNeedTable[] = {
940
 
        { kKyra1, kPlatformPC, kNoSpecial, kyra1FloppyNeed },
941
 
        { kKyra1, kPlatformAmiga, kNoSpecial, kyra1AmigaNeed },
942
 
 
943
 
        { kKyra1, kPlatformPC, kTalkieVersion, kyra1CDNeed },
944
 
 
945
 
        { kKyra1, kPlatformFMTowns, kNoSpecial, kyra1TownsNeed },
946
 
 
947
 
        { kKyra1, kPlatformPC98, kNoSpecial, kyra1PC98Need },
948
 
 
949
 
        { kKyra1, kPlatformPC, kDemoVersion, kyra1DemoNeed },
950
 
 
951
 
        { kKyra1, kPlatformPC, kTalkieDemoVersion, kyra1DemoCDNeed },
952
 
 
953
 
        { kKyra2, kPlatformPC, kNoSpecial, kyra2FloppyNeed },
954
 
 
955
 
        { kKyra2, kPlatformPC, kTalkieVersion, kyra2CDNeed },
956
 
 
957
 
        { kKyra2, kPlatformPC, kTalkieDemoVersion, kyra2CDDemoNeed },
958
 
 
959
 
        { kKyra2, kPlatformFMTowns, kNoSpecial, kyra2TownsNeed },
960
 
 
961
 
        { kKyra2, kPlatformPC98, kNoSpecial, kyra2PC98Need },
962
 
 
963
 
        { kKyra2, kPlatformPC, kDemoVersion, kyra2DemoNeed },
964
 
 
965
 
        { kLol, kPlatformPC, kDemoVersion, lolDemoNeed },
966
 
 
967
 
        { kKyra3, kPlatformPC, kTalkieVersion, kyra3Need },
968
 
 
969
 
        { kLol, kPlatformPC, kNoSpecial, lolFloppyNeed },
970
 
        { kLol, kPlatformPC98, kNoSpecial, lolPC98Need },
971
 
 
972
 
        { kLol, kPlatformPC, kTalkieVersion, lolCDNeed },
973
 
 
974
 
        { -1, -1, -1, 0 }
975
 
};
976
 
 
977
 
} // end of anonymous namespace
978
 
 
979
 
const int *getNeedList(const Game *g) {
980
 
        for (const GameNeed *need = gameNeedTable; need->game != -1; ++need) {
981
 
                if (need->game == g->game && g->platform == need->platform && need->special == g->special)
982
 
                        return need->entries;
983
 
        }
984
 
 
985
 
        return 0;
986
 
}
987