1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
|
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
// Actor and Object data tables
#include "saga/saga.h"
#include "saga/itedata.h"
#include "saga/sndres.h"
namespace Saga {
ActorTableData ITE_ActorTable[ITE_ACTORCOUNT] = {
// Original used so called permanent actors for first three and that was designed by
// EXTENDED object flag. They contained frames in more than one resource. We use
// different technique here see "Appending to sprite list" in loadActorResources()
// flags name scene x y z spr frm scp col
// ------------ ---- ---- ---- ----- ---- ---- ---- --- ---- -- -- --
{ kProtagonist | kExtended,
0, 1, 0, 0, 0, 37, 135, 0, 1, 0, 0, 0}, // map party
// spr and frm numbers taken from permanent actors list
{ kFollower | kExtended,
1, 0, 0, 0, 0, 45, 177, 1, 132, 0, 0, 0}, // Okk
{ kFollower | kExtended,
2, 0, 0, 0, 0, 48, 143, 2, 161, 0, 0, 0}, // Eeah
{ 0, 3, 0, 240, 480, 0, 115, 206, 0, 25, 0, 0, 0}, // albino ferret
{ 0, 4, 17, 368, 400, 0, 115, 206, 4, 49, 0, 0, 0}, // moneychanger
{ 0, 5, 11, 552, 412, 0, 54, 152, 1, 171, 0, 0, 0}, // Sist
{ 0, 17, 2, 1192, 888, 0, 57, 153, 17, 49, 0, 0, 0}, // worker ferret 1
{ 0, 17, 2, 816, 1052, 0, 57, 153, 18, 49, 0, 0, 0}, // worker ferret 2
{ 0, 17, 2, 928, 932, 0, 58, 153, 19, 49, 0, 0, 0}, // worker ferret 3
{ 0, 17, 2, 1416, 1160, 0, 58, 153, 20, 49, 0, 0, 0}, // worker ferret 4
{ 0, 19, 49, 1592, 1336, 0, 92, 175, 15, 162, 0, 0, 0}, // faire merchant 1 (bear)
{ 0, 20, 49, 744, 824, 0, 63, 156, 19, 112, 0, 4, 4}, // faire merchant 2 (ferret)
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire merchant 3
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire merchant 4
{ 0, 9, 49, 1560, 1624, 0, 94, 147, 18, 132, 0, 4, 4}, // faire goer 1a (rat)
{ 0, 56, 49, 1384, 792, 0, 95, 193, 20, 72, 0, 0, 0}, // faire goer 1b (otter)
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire goer 2a
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire goer 2b
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire goer 3a
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire goer 3b
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire goer 4a
{ 0, 19, 0, 1592, 1336, 0, 92, 175, 0, 171, 0, 0, 0}, // faire goer 4b
{ 0, 18, 32, 764, 448, 0, 55, 150, 0, 48, 10, 4, 4}, // Scorry
{ 0, 35, 32, 0, 0, 0, 56, 151, 0, 112, 0, 0, 0}, // grand puzzler
{ 0, 36, 32, 0, 0, 0, 105, 142, 0, 155, 0, 0, 0}, // Rhene
{ 0, 32, 32, 0, 0, 0, 91, 190, 0, 98, 0, 0, 0}, // elk captain
{ 0, 31, 32, 0, 0, 0, 90, 189, 0, 171, 0, 0, 0}, // elk guard 1
{ 0, 31, 32, 0, 0, 0, 90, 189, 0, 171, 0, 0, 0}, // elk guard 2
{ 0, 31, 32, 0, 0, 0, 90, 189, 0, 171, 0, 0, 0}, // elk guard 3
{ 0, 31, 32, 0, 0, 0, 79, 172, 0, 18, 0, 0, 0}, // boar sergeant
{ 0, 21, 50, 664, 400, 0, 76, 171, 2, 74, 0, 4, 4}, // boar sentry 1
{ 0, 21, 50, 892, 428, 0, 76, 171, 2, 74, 0, 4, 4}, // boar sentry 2
{ 0, 9, 51, 904, 936, 0, 51, 145, 35, 5, 0, 0, 0}, // hall rat 1
{ 0, 9, 51, 872, 840, 0, 51, 145, 36, 5, 0, 0, 0}, // hall rat 2
{ 0, 9, 51, 1432, 344, 0, 51, 145, 37, 5, 0, 0, 0}, // hall rat 3
{ 0, 9, 51, 664, 472, 0, 51, 145, 38, 5, 0, 0, 0}, // hall rat 4
{ 0, 10, 51, 1368, 1464, 0, 80, 146, 39, 147, 0, 0, 0}, // book rat 1
{ 0, 10, 51, 1416, 1624, 0, 80, 146, 40, 147, 0, 0, 0}, // book rat 2
{ 0, 10, 51, 1752, 120, 0, 80, 146, 41, 147, 0, 0, 0}, // book rat 3
{ 0, 10, 51, 984, 408, 0, 80, 146, 42, 147, 0, 0, 0}, // book rat 4
{ 0, 14, 52, 856, 376, 0, 82, 174, 8, 73, 0, 0, 0}, // grounds servant 1
{ 0, 14, 52, 808, 664, 0, 82, 174, 9, 73, 0, 0, 0}, // grounds servant 2
{ 0, 14, 52, 440, 568, 0, 82, 174, 10, 73, 0, 0, 0}, // grounds servant 3
{ 0, 14, 52, 392, 776, 0, 82, 174, 11, 73, 0, 0, 0}, // grounds servant 4
{ 0, 21, 4, 240, 384, 0, 79, 172, 0, 18, 0, 2, 2}, // boar sentry 3 (by doorway)
{ 0, 23, 4, 636, 268, 0, 77, 173, 0, 74, 0, 4, 4}, // boar courtier
{ 0, 22, 4, 900, 320, 0, 78, 179, 0, 60, 0, 4, 4}, // boar king
{ 0, 14, 4, 788, 264, 0, 75, 170, 0, 171, 0, 2, 2}, // boar servant 1
{ 0, 14, 4, 1088, 264, 0, 75, 170, 0, 171, 0, 6, 6}, // boar servant 2
{ 0, 24, 19, 728, 396, 0, 65, 181, 47, 146, 0, 6, 6}, // glass master
{ 0, 24, 21, -20, -20, 0, 66, 182, 0, 146, 0, 4, 4}, // glass master (with orb)
{ kCycle, 25, 19, 372, 464, 0, 67, 183, 73, 146, 0, 2, 2}, // glass worker
{ 0, 26, 5, 564, 476, 27, 53, 149, 1, 5, 0, 4, 4}, // door rat
{ kCycle, 27, 31, 868, 344, 0, 81, 180, 0, 171, 0, 4, 4}, // bees
{ 0, 28, 73, 568, 380, 0, 83, 176, 30, 120, 0, 4, 4}, // fortune teller
{ 0, 14, 7, 808, 480, 0, 82, 174, 9, 73, 0, 0, 0}, // orb messenger
{ 0, 29, 10, 508, 432, 0, 84, 186, 6, 112, 0, 4, 4}, // elk king
{ 0, 33, 10, 676, 420, 0, 86, 184, 6, 171, 0, 4, 4}, // elk chancellor
{ 0, 30, 10, 388, 452, 0, 88, 185, 6, 171, 0, 4, 4}, // elk courtier 1
{ 0, 30, 10, 608, 444, 0, 89, 185, 6, 171, 0, 4, 4}, // elk courtier 2
{ 0, 31, 10, 192, 468, 0, 90, 189, 6, 171, 0, 4, 4}, // elk throne guard 1
{ 0, 31, 10, 772, 432, 0, 90, 189, 6, 171, 0, 4, 4}, // elk throne guard 2
{ 0, 14, 10, 1340, 444, 0, 87, 188, 6, 171, 0, 4, 4}, // elk servant
{ 0, 20, 18, 808, 360, 7, 60, 154, 64, 88, 0, 4, 4}, // hardware ferret
{ 0, 34, 49, 1128, 1256, 0, 96, 191, 16, 35, 0, 4, 4}, // porcupine
{ 0, 34, 49, 1384, 792, 0, 93, 192, 17, 66, 0, 4, 4}, // faire ram
{ 0, 24, 21, 0, -40, 0, 65, 181, 50, 146, 0, 6, 6}, // glass master 2
{ 0, 3, 21, 0, -40, 0, 64, 158, 49, 112, 0, 0, 0}, // Sakka
{ 0, 17, 21, 0, -40, 0, 62, 157, 74, 48, 0, 0, 0}, // lodge ferret 1
{ 0, 17, 21, 0, -40, 0, 62, 157, 74, 49, 0, 0, 0}, // lodge ferret 2
{ 0, 17, 21, 0, -40, 0, 62, 157, 74, 50, 0, 0, 0}, // lodge ferret 3
{ 0, 12, 244, 1056, 504, 0, 107, 167, 21, 124, 0, 6, 6}, // Elara
{ 0, 8, 33, 248, 440, 0, 68, 169, 14, 112, 0, 0, 0}, // Tycho
{ 0, 11, 23, 308, 424, 0, 106, 166, 6, 48, 0, 2, 2}, // Alamma
{ 0, 17, 2, 1864, 1336, 0, 58, 153, 21, 49, 0, 0, 0}, // worker ferret 5
{ 0, 17, 2, 760, 216, 0, 58, 153, 22, 49, 0, 0, 0}, // worker ferret 6
{ 0, 44, 29, 0, 0, 0, 72, 159, 0, 112, 0, 0, 0}, // Prince
{ 0, 45, 29, 0, 0, 0, 71, 163, 0, 146, 0, 6, 6}, // harem girl 1
{ 0, 45, 29, 0, 0, 0, 71, 163, 0, 124, 0, 2, 2}, // harem girl 2
{ 0, 45, 29, 0, 0, 0, 71, 163, 0, 169, 0, 0, 0}, // harem girl 3
{ 0, 7, 29, 0, 0, 0, 69, 164, 0, 4, 0, 0, 0}, // dog sergeant
{ 0, 7, 29, 0, 0, 0, 70, 165, 0, 4, 0, 0, 0}, // throne dog guard 1
{ 0, 7, 257, 552, 408, 0, 70, 165, 0, 4, 0, 2, 2}, // throne dog guard 2
{ 0, 7, 29, 0, 0, 0, 70, 165, 0, 4, 0, 0, 0}, // throne dog guard 3
{ 0, 7, 29, 0, 0, 0, 70, 165, 0, 4, 0, 0, 0}, // throne dog guard 4
{ 0, 7, 257, 712, 380, 0, 69, 164, 0, 4, 0, 4, 4}, // throne dog guard 5
{ 0, 7, 29, 0, 0, 0, 69, 164, 0, 4, 0, 0, 0}, // throne dog guard 6
{ 0, 7, 29, 0, 0, 0, 69, 164, 0, 4, 0, 0, 0}, // throne dog guard 7
{ 0, 7, 29, 0, 0, 0, 69, 164, 0, 4, 0, 0, 0}, // throne dog guard 8
{ 0, 7, 29, 0, 0, 0, 69, 164, 0, 4, 0, 0, 0}, // throne dog guard 9
{ 0, 7, 0, 0, 0, 0, 69, 164, 0, 4, 0, 0, 0}, // throne dog guard 10
{ 0, 7, 29, 0, 0, 0, 70, 165, 0, 4, 0, 0, 0}, // throne dog guard 11
{ 0, 47, 30, 0, 0, 0, 102, 199, 1, 186, 0, 0, 0}, // old wolf ferryman
{ 0, 48, 69, 0, 0, 0, 109, 202, 35, 26, 0, 0, 0}, // cat village wildcat
{ 0, 49, 69, 0, 0, 0, 109, 202, 35, 26, 0, 0, 0}, // cat village attendant
{ 0, 50, 69, 0, 0, 0, 111, 203, 16, 67, 0, 0, 0}, // cat village Prowwa
{ 0, 51, 20, 0, 0, 0, 112, 204, 15, 26, 0, 0, 0}, // Prowwa hut Mirrhp
{ 0, 50, 20, 0, 0, 0, 111, 203, 14, 67, 0, 0, 0}, // Prowwa hut Prowwa
{ 0, 49, 20, 0, 0, 0, 109, 202, 35, 26, 0, 0, 0}, // Prowwa hut attendant
{ 0, 48, 256, 0, 0, 0, 109, 202, 35, 26, 0, 0, 0}, // wildcat sentry
{ 0, 21, 32, 0, 0, 0, 76, 171, 0, 171, 0, 0, 0}, // boar warrior 1
{ 0, 21, 32, 0, 0, 0, 76, 171, 0, 171, 0, 0, 0}, // boar warrior 2
{ 0, 21, 32, 0, 0, 0, 76, 171, 0, 171, 0, 0, 0}, // boar warrior 3
{ 0, 52, 15, 152, 400, 0, 108, 168, 19, 48, 10, 2, 2}, // Alamma's voice
{ 0, 47, 251, 640, 360, 0, 113, 205, 5, 186, 10, 2, 2}, // ferry on ocean
{ 0, 41, 75, 152, 400, 0, 100, 197, 5, 81, 0, 0, 0}, // Shiala
{ 0, 44, 9, 0, 0, 0, 73, 160, 54, 112, 0, 0, 0}, // Prince (asleep)
{ 0, 0, 22, -20, -20, 0, 118, 209, 0, 171, 0, 0, 0}, // Rif and Eeah (at rockslide)
{ 0, 1, 22, 0, 0, 0, 119, 210, 0, 171, 0, 0, 0}, // Okk (at rockslide)
{ 0, 0, 22, -20, -20, 0, 118, 209, 0, 171, 0, 0, 0}, // Rif and Eeah (at rockslide w. rope)
{ 0, 1, 22, 0, 0, 0, 119, 210, 0, 171, 0, 0, 0}, // Okk (at rockslide w. rope)
{ 0, 53, 42, 640, 400, 0, 104, 201, 8, 141, 0, 0, 0}, // Kylas Honeyfoot
{ 0, 54, 21, -20, -20, 0, 120, 211, 48, 238, 0, 0, 0}, // Orb of Hands
{ 0, 0, 4, -20, -20, 0, 42, 140, 0, 1, 0, 0, 0}, // Rif (muddy)
{ 0, 26, 5, -20, -20, 27, 52, 148, 1, 5, 0, 4, 4}, // door rat (standing)
{ 0, 36, 4, -20, -20, 0, 116, 207, 0, 155, 0, 0, 0}, // boar with Rhene 1
{ 0, 36, 0, -20, -20, 0, 117, 208, 0, 155, 0, 0, 0}, // boar with Rhene 2
{ 0, 46, 252, -20, -20, 0, 74, 162, 29, 34, 0, 0, 0}, // dog jailer
{ 0, 0, 32, -20, -20, 0, 41, 137, 0, 1, 0, 0, 0}, // Rif (tourney)
{ 0, 0, 259, -20, -20, 0, 44, 138, 0, 1, 0, 0, 0}, // cliff rat
{ 0, 0, 5, -20, -20, 0, 43, 139, 0, 1, 0, 0, 0}, // Rif (cloaked)
{ 0, 0, 31, -20, -20, 0, 39, 136, 0, 1, 0, 0, 0}, // Rif (oak tree scene)
{ 0, 0, 252, -20, -20, 0, 39, 136, 0, 1, 0, 0, 0}, // Rif (jail cell scene)
{ 0, 0, 15, -20, -20, 0, 39, 136, 0, 1, 0, 0, 0}, // Rif (outside Alamma's)
{ 0, 0, 20, -20, -20, 0, 39, 136, 0, 1, 0, 0, 0}, // Rif (sick tent)
{ 0, 0, 25, -20, -20, 0, 39, 136, 0, 1, 0, 0, 0}, // Rif (gem room)
{ 0, 0, 272, -20, -20, 0, 40, 141, 0, 1, 0, 0, 0}, // Rif (dragon maze)
{ 0, 0, 50, -20, -20, 0, 39, 136, 0, 1, 0, 0, 0}, // Rif (boar entry gate)
{ 0, 50, 71, -20, -20, 0, 111, 203, 0, 67, 0, 0, 0}, // Prowwa (dog castle back)
{ 0, 50, 274, -20, -20, 0, 111, 203, 0, 67, 0, 0, 0}, // Prowwa (cat festival)
{ 0, 50, 274, -20, -20, 0, 110, 212, 0, 171, 0, 0, 0}, // cat festival dancer 1
{ 0, 50, 274, -20, -20, 0, 110, 212, 0, 171, 0, 0, 0}, // cat festival dancer 2
{ 0, 50, 274, -20, -20, 0, 110, 212, 0, 171, 0, 0, 0}, // cat festival dancer 3
{ 0, 57, 272, 909, 909, 48, 121, 213, 0, 171, 0, 0, 0}, // komodo dragon
{ 0, 58, 15, -20, -20, 0, 122, 214, 0, 171, 0, 0, 0}, // letter from Elara
{ 0, 37, 246, -20, -20, 0, 97, 194, 0, 141, 0, 0, 0}, // Gar (wolves' cage)
{ 0, 38, 246, -20, -20, 0, 98, 195, 0, 27, 0, 0, 0}, // Wrah (wolves' cage)
{ 0, 59, 246, -20, -20, 0, 103, 200, 0, 26, 0, 0, 0}, // Chota (wolves' cage)
{ 0, 41, 245, -20, -20, 0, 100, 197, 0, 81, 0, 0, 0}, // Shiala (wolves' cage)
{ 0, 47, 250, 640, 360, 0, 114, 205, 0, 186, 10, 2, 2}, // ferry on ocean
{ 0, 0, 278, -20, -20, 0, 40, 141, 0, 1, 0, 0, 0}, // Rif (falling in tunnel trap door)
{ 0, 0, 272, -20, -20, 0, 40, 141, 0, 1, 0, 0, 0}, // Rif (falling in dragon maze)
{ 0, 41, 77, -20, -20, 0, 100, 197, 24, 81, 0, 0, 0}, // Shiala (grotto)
{ 0, 37, 261, -20, -20, 0, 97, 194, 0, 141, 0, 0, 0}, // Gar (ambush)
{ 0, 38, 261, -20, -20, 0, 98, 195, 0, 27, 0, 0, 0}, // Wrah (ambush)
{ 0, 39, 261, -20, -20, 0, 99, 196, 0, 5, 0, 0, 0}, // dark claw wolf (ambush)
{ 0, 39, 261, -20, -20, 0, 99, 196, 0, 5, 0, 0, 0}, // dark claw wolf (ambush)
{ 0, 39, 261, -20, -20, 0, 99, 196, 0, 5, 0, 0, 0}, // dark claw wolf (ambush)
{ 0, 39, 261, -20, -20, 0, 99, 196, 0, 5, 0, 0, 0}, // dark claw wolf (ambush)
{ 0, 59, 279, -20, -20, 0, 103, 200, 0, 26, 0, 0, 0}, // Chota (top of dam)
{ 0, 38, 279, -20, -20, 0, 98, 195, 0, 27, 0, 0, 0}, // Wrah (top of dam)
{ 0, 42, 77, -20, -20, 0, 101, 198, 25, 171, 0, 0, 0}, // Shiala's spear
{ 0, 59, 281, -20, -20, 0, 103, 200, 26, 26, 0, 0, 0}, // Chota (lab)
{ 0, 59, 279, -20, -20, 0, 123, 215, 0, 1, 0, 0, 0}, // Rif (finale)
{ 0, 59, 279, -20, -20, 0, 123, 215, 0, 132, 0, 0, 0}, // Okk (finale)
{ 0, 59, 279, -20, -20, 0, 123, 215, 0, 161, 0, 0, 0}, // Eeah (finale)
{ 0, 54, 279, -20, -20, 0, 120, 211, 0, 133, 0, 6, 6}, // Orb of Storms (top of dam)
{ 0, 44, 9, -20, -20, 0, 124, 161, 0, 171, 0, 6, 6}, // Prince's snores
{ 0, 7, 255, 588, 252, 0, 70, 165, 0, 3, 0, 2, 2}, // hall dog guard 1
{ 0, 7, 255, 696, 252, 0, 70, 165, 0, 5, 0, 6, 6}, // hall dog guard 2
{ 0, 36, 4, 0, 0, 0, 105, 142, 0, 155, 0, 0, 0}, // Rhene
{ 0, 44, 272, 1124, 1124, 120, 72, 159, 0, 112, 0, 0, 0}, // Prince (dragon maze)
{ 0, 7, 272, 1124, 1108, 120, 70, 165, 0, 4, 0, 0, 0}, // dog heckler 1 (dragon maze)
{ 0, 7, 272, 1108, 1124, 120, 70, 165, 0, 4, 0, 0, 0}, // dog heckler 2 (dragon maze)
{ 0, 29, 288, 508, 432, 0, 85, 187, 0, 112, 0, 4, 4}, // elk king (finale)
{ 0, 29, 0, 508, 432, 0, 84, 186, 0, 99, 0, 4, 4}, // crowd voice 1 (finale)
{ 0, 29, 0, 508, 432, 0, 84, 186, 0, 98, 0, 4, 4}, // crowd voice 2 (finale)
{ 0, 29, 0, 508, 432, 0, 84, 186, 0, 104, 0, 4, 4}, // crowd voice 3 (finale)
{ 0, 29, 0, 508, 432, 0, 84, 186, 0, 99, 0, 4, 4}, // crowd voice 4 (finale)
{ 0, 36, 288, 0, 0, 0, 105, 142, 0, 155, 0, 0, 0}, // Rhene (finale)
{ 0, 1, 27, -20, -20, 0, 47, 178, 0, 132, 0, 0, 0}, // Okk (temple gate)
{ 0, 1, 252, -20, -20, 0, 47, 178, 0, 132, 0, 0, 0}, // Okk (jail cell)
{ 0, 1, 25, -20, -20, 0, 47, 178, 0, 132, 0, 0, 0}, // Okk (gem room)
{ 0, 1, 259, -20, -20, 0, 47, 178, 0, 132, 0, 0, 0}, // Okk (cliff)
{ 0, 1, 279, -20, -20, 0, 47, 178, 0, 132, 0, 0, 0}, // Okk (dam top)
{ 0, 1, 273, -20, -20, 0, 47, 178, 0, 132, 0, 0, 0}, // Okk (human ruins)
{ 0, 1, 26, -20, -20, 0, 8, 178, 0, 171, 0, 0, 0}, // puzzle pieces
{ 0, 1, 0, -20, -20, 0, 0, 0, 0, 50, 0, 0, 0}, // poker dog 1
{ 0, 1, 0, -20, -20, 0, 0, 0, 0, 82, 0, 0, 0}, // poker dog 2
{ 0, 1, 0, -20, -20, 0, 0, 0, 0, 35, 0, 0, 0}, // poker dog 3
{ 0, 9, 74, -20, -20, 0, 51, 145, 0, 5, 0, 0, 0} // sundial rat
};
ObjectTableData ITE_ObjectTable[ITE_OBJECTCOUNT] = {
{ 8, 49, 1256, 760, 0, 9, 5, kObjNotFlat }, // Magic Hat
{ 9, 52, 1080, 1864, 0, 68, 4, kObjUseWith }, // Berries
{ 10, 259, 744, 524, 0, 79, 42, kObjUseWith }, // Card Key
{ 11, 0, 480, 480, 0, 69, 6, 0 }, // Foot Print
{ 12, 0, 480, 480, 0, 13, 38, kObjUseWith }, // Power Cell
{ 13, 28, 640, 412, 40, 14, 15, kObjUseWith }, // Digital Clock
{ 14, 0, 480, 480, 0, 15, 41, kObjUseWith }, // Oil Lamp
{ 15, 24, 868, 456, 35, 46, 13, kObjUseWith }, // Magnetic Key
{ 16, 0, 480, 480, 0, 17, 7, kObjUseWith }, // Plaster
{ 17, 249, 320, 476, 45, 18, 44, 0 }, // Trophy
{ 18, 0, 480, 480, 0, 19, 20, 0 }, // Coins
{ 19, 19, 600, 480, 0, 20, 8, 0 }, // Lens Fragments
{ 20, 0, 1012, 568, 80, 44, 10, kObjUseWith }, // Key to jail cell
{ 21, 0, 480, 480, 0, 22, 9, 0 }, // Remade lens
{ 22, 0, 480, 480, 0, 23, 21, 0 }, // Tycho's Map
{ 23, 0, 480, 480, 0, 24, 23, 0 }, // Silver Medallion
{ 24, 0, 480, 480, 0, 25, 24, 0 }, // Mud in Fur
{ 25, 0, 480, 480, 0, 26, 25, 0 }, // Gold Ring
{ 27, 13, 1036, 572, 40, 47, 14, kObjUseWith }, // Screwdriver
{ 28, 0, 480, 480, 0, 29, 26, 0 }, // Apple Token
{ 29, 0, 480, 480, 0, 30, 22, kObjUseWith }, // Letter from Elara
{ 30, 0, 164, 440, 0, 31, 16, kObjUseWith }, // Spoon
{ 32, 0, 480, 480, 0, 33, 43, 0 }, // Catnip
{ 33, 31, 580, 392, 0, 45, 11, 0 }, // Twigs
{ 35, 0, 468, 480, 0, 36, 12, kObjUseWith }, // Empty Bowl (also bowl of honey)
{ 37, 0, 480, 480, 0, 38, 45, kObjUseWith }, // Needle and Thread
{ 38, 25, 332, 328, 0, 48, 19, 0 }, // Rock Crystal
{ 39, 0, 480, 480, 0, 40, 0, kObjUseWith }, // Salve
{ 40, 269, 644, 416, 0, 41, 39, kObjNotFlat }, // Electrical Cable
{ 41, 12, 280, 516, 0, 43, 17, kObjUseWith }, // Piece of flint
{ 42, 5, 876, 332, 32, 65, 18, 0 }, // Rat Cloak
{ 43, 52, 556, 1612, 0, 49, 28, kObjUseWith |
kObjNotFlat }, // Bucket
{ 48, 52, 732, 948, 0, 50, 27, kObjUseWith }, // Cup
{ 49, 52, 520, 1872, 0, 53, 29, 0 }, // Fertilizer
{ 50, 52, 1012, 1268, 0, 52, 30, 0 }, // Feeder
{ 51, 252, -20, -20, 0, 71, 32, kObjUseWith |
kObjNotFlat }, // Bowl in jail cell
{ 53, 252, 1148, 388, 0, 70, 33, 0 }, // Loose stone block in jail cell
{ 26, 12, 496, 368, 0, 76, 31, 0 }, // Coil of Rope from Quarry
{ 54, 281, 620, 352, 0, 80, 46, 0 } // Orb of Storms in Dam Lab
};
IteFxTable ITE_SfxTable[ITE_SFXCOUNT] = {
{ 14, 127 }, // Door open
{ 15, 127 }, // Door close
{ 16, 63 }, // Rush water (floppy volume: 127)
{ 16, 26 }, // Rush water (floppy volume: 40)
{ 17, 64 }, // Cricket
{ 18, 84 }, // Porticullis (floppy volume: 127)
{ 19, 64 }, // Clock 1
{ 20, 64 }, // Clock 2
{ 21, 64 }, // Dam machine
{ 21, 40 }, // Dam machine
{ 22, 64 }, // Hum 1
{ 23, 64 }, // Hum 2
{ 24, 64 }, // Hum 3
{ 25, 64 }, // Hum 4
// Note: the following effect was set to 51 for
// some unknown reason
{ 26, 32 }, // Stream
{ 27, 42 }, // Surf (floppy volume: 127)
{ 27, 32 }, // Surf (floppy volume: 64)
{ 28, 64 }, // Fire loop (floppy volume: 96)
{ 29, 84 }, // Scraping (floppy volume: 127)
{ 30, 64 }, // Bee swarm (floppy volume: 96)
{ 30, 26 }, // Bee swarm (floppy volume: 40)
{ 31, 64 }, // Squeaky board
{ 32, 127 }, // Knock
{ 33, 32 }, // Coins (floppy volume: 48)
{ 34, 84 }, // Storm (floppy volume: 127)
{ 35, 84 }, // Door close 2 (floppy volume: 127)
{ 36, 84 }, // Arcweld (floppy volume: 127)
{ 37, 127 }, // Retract orb
{ 38, 127 }, // Dragon
{ 39, 127 }, // Snores
{ 40, 127 }, // Splash
{ 41, 127 }, // Lobby door
{ 42, 26 }, // Chirp loop (floppy volume: 40)
{ 43, 96 }, // Door creak
{ 44, 64 }, // Spoon dig
{ 45, 96 }, // Crow
{ 46, 42 }, // Cold wind (floppy volume: 64)
{ 47, 96 }, // Tool sound 1
{ 48, 127 }, // Tool sound 2
{ 49, 64 }, // Tool sound 3
{ 50, 96 }, // Metal door
{ 51, 32 }, // Water loop S
{ 52, 32 }, // Water loop L (floppy volume: 64)
{ 53, 127 }, // Door open 2
{ 54, 64 }, // Jail door
{ 55, 53 }, // Killing fire (floppy volume: 80)
//{ 56, 0 }, // Dummy FX
// Crowd effects, which exist only in the CD version
{ 57, 64 },
{ 58, 64 },
{ 59, 64 },
{ 60, 64 },
{ 61, 64 },
{ 62, 64 },
{ 63, 64 },
{ 64, 64 },
{ 65, 64 },
{ 66, 64 },
{ 67, 64 },
{ 68, 64 },
{ 69, 64 },
{ 70, 64 },
{ 71, 64 },
{ 72, 64 },
{ 73, 64 }
};
const char *ITEinterfaceTextStrings[][53] = {
{
// Note that the "Load Successful!" string is never used in ScummVM
"Walk to", "Look At", "Pick Up", "Talk to", "Open",
"Close", "Use", "Give", "Options", "Test",
"Demo", "Help", "Quit Game", "Fast", "Slow",
"On", "Off", "Continue Playing", "Load", "Save",
"Game Options", "Reading Speed", "Music", "Sound", "Cancel",
"Quit", "OK", "Mid", "Click", "10%",
"20%", "30%", "40%", "50%", "60%",
"70%", "80%", "90%", "Max", "Quit the Game?",
"Load Successful!", "Enter Save Game Name", "Give %s to %s", "Use %s with %s",
"[New Save Game]",
"I can't pick that up.",
"I see nothing special about it.",
"There's no place to open it.",
"There's no opening to close.",
"I don't know how to do that.",
"Show Dialog",
"What is Rif's reply?",
"Loading a saved game"
},
// German
{
"Gehe zu", "Schau an", "Nimm", "Rede mit", "\231ffne",
"Schlie$e", "Benutze", "Gib", "Optionen", "Test",
"Demo", "Hilfe", "Spiel beenden", "S", "L",
"An", "Aus", "Weiterspielen", "Laden", "Sichern",
"Spieleoptionen", "Lesegeschw.", "Musik", "Sound", "Abbr.",
"Beenden", NULL, "M", "Klick", "10%",
"20%", "30%", "40%", "50%", "60%",
"70%", "80%", "90%", "Max", "Spiel beenden?",
"Spielstand geladen!", "Bitte Namen eingeben", "Gib %s zu %s", "Benutze %s mit %s",
"[Neuer Spielstand]",
"Das kann ich nicht aufnehmen.",
"Ich sehe nichts besonderes.",
"Das kann man nicht \224ffnen.",
"Hier ist keine \231ffnung zum Schlie$en.",
"Ich wei$ nicht, wie ich das machen soll.",
"Text zeigen",
"Wie lautet die Antwort?",
"Spielstand wird geladen"
},
// Italian fan translation
{
"Vai verso", "Guarda", "Prendi", "Parla con", "Apri",
"Chiudi", "Usa", "Dai", "Opzioni", "Test",
"Demo", "Aiuto", "Uscire", "Veloce", "Lento",
"On", "Off", "Continua il Gioco", "Carica", "Salva",
"Controlli", "Velocit\205 testo", "Musica", "Suoni", "Annulla",
"Fine", "OK", "Med", "Click", "10%",
"20%", "30%", "40%", "50%", "60%",
"70%", "80%", "90%", "Max", "Terminare il Gioco?",
"Caricamento OK!", "Immettere un nome", "Dai %s a %s", "Usa %s con %s",
"[Nuovo Salvataggio]",
"Non posso raccoglierlo.",
"Non ci vedo nulla di speciale.",
"Non c'\212 posto per aprirlo.",
"Nessuna apertura da chiudere.",
"Non saprei come farlo.",
"Dialoghi",
"Come risponderebbe Rif?",
"Vuoi davvero caricare il gioco?"
},
// Spanish IHNM
{
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, "Salir del Programa?",
"Load Successful!", "Introduzca Nombre Partida", "Dar %s a %s", "Usar %s con %s",
// Original uses "Partida Grabada" here (saved game), but "nueva partida" (new save
// game) makes more sense (according to jvprat)
"[Nueva partida]",
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
"Cardango una partida guardada"
}
};
const RawPoint pieceOrigins[PUZZLE_PIECES] = {
{ 268, 18 },
{ 270, 51 },
{ 19, 51 },
{ 73, 0 },
{ 0, 34 },
{ 215, 0 },
{ 159, 0 },
{ 9, 69 },
{ 288, 18 },
{ 112, 0 },
{ 27, 88 },
{ 43, 0 },
{ 0, 0 },
{ 262, 0 },
{ 271, 103 }
};
const char *pieceNames[][PUZZLE_PIECES] = {
{ "screwdriver", "pliers", "c-clamp", "wood clamp", "level",
"twine", "wood plane", "claw hammer", "tape measure", "hatchet",
"shears", "ruler", "saw", "mallet", "paint brush"
},
{ "Schraubendreher", "Zange", "Schraubzwinge", "Holzzwinge", "Wasserwaage",
"Bindfaden", "Hobel", "Schusterhammer", "Bandma$", "Beil",
"Schere", "Winkel", "S\204ge", "Hammer", "Pinsel"
},
{ "cacciavite", "pinze", "morsa", "morsa da legno", "livella",
"spago", "pialla", "martello", "metro a nastro", "accetta",
"cesoie", "righello", "sega", "mazza", "pennello"
}
};
const char *hintStr[][4] = {
{ "Check which pieces could fit in each corner first.",
"Check which corner has the least number of pieces that can fit and start from there.",
"Check each new corner and any new side for pieces that fit.",
"I don't see anything out of place."
},
{ "\232berpr\201fe zun\204chst, welche die Eckteile sein k\224nnten.",
"Schau, in welche Ecke die wenigsten Teile passen, und fang dort an.",
"Untersuche jede Ecke und jede Seite auf Teile, die dort passen k\224nnen.",
"Ich sehe nichts an der falschen Stelle."
},
{ "Controlla prima quali pezzi si inseriscono meglio in ogni angolo.",
"Controlla quale angolo ha il minor numero di pezzi che combaciano, e parti da quello.",
"Controlla ogni nuovo angolo e lato per ogni pezzo che combacia.",
"Non vedo nulla fuori posto."
}
};
const char *solicitStr[][NUM_SOLICIT_REPLIES] = {
{ "Hey, Fox! Would you like a hint?",
"Would you like some help?",
"Umm...Umm...",
"Psst! want a hint?",
"I would have done this differently, you know."
},
{ "Hey, Fuchs! Brauchst Du \047nen Tip?",
"M\224chtest Du etwas Hilfe?"
"\231hm...\216hm..."
"Psst! \047n Tip vielleicht?"
"Ja, wei$t Du... ich h\204tte das anders gemacht."
},
{ "Hey, Volpe! Serve un suggerimento?",
"Hai bisogno di aiuto?",
"Umm...Umm...",
"Psst! Serve un aiutino?",
"Io, sai, l'avrei fatto diversamente."
}
};
const char *sakkaStr[][NUM_SAKKA] = {
{ "Hey, you're not supposed to help the applicants!",
"Guys! This is supposed to be a test!",
"C'mon fellows, that's not in the rules!"
},
{ "Hey, Du darfst dem Pr\201fling nicht helfen!",
"Hallo?! Dies soll eine Pr\201fung sein!",
"Also, Jungs. Schummeln steht nicht in den Regeln!"
},
{ "Hey, non si dovrebbero aiutare i candidati!",
"Ragazzi! Questo dovrebbe essere un test!",
"Forza ragazzi, non si pu\225!"
}
};
const char *whineStr[][NUM_WHINES] = {
{ "Aww, c'mon Sakka!",
"One hint won't hurt, will it?",
"Sigh...",
"I think that clipboard has gone to your head, Sakka!",
"Well, I don't recall any specific rule against hinting."
},
{ "Och, sei nicht so, Sakka!"
"EIN Tip wird schon nicht schaden, oder?",
"Seufz..."
"Ich glaube, Du hast ein Brett vor dem Kopf, Sakka!",
"Hm, ich kann mich an keine Regel erinnern, die Tips verbietet."
},
{ "Ooo, suvvia Sakka!",
"Un indizio non guaster\205, no?",
"Sigh...",
"Credo che questa faccenda ti abbia dato alla testa, Sakka!",
"Beh, non ricordo regole specifiche contro i suggerimenti."
}
};
const char *optionsStr[][4] = {
{ "\"I'll do this puzzle later.\"",
"\"Yes, I'd like a hint please.\"",
"\"No, thank you, I'd like to try and solve it myself.\"",
"I think the %s is in the wrong place."
},
{ "\"Ich l\224se das Puzzle sp\204ter.\"",
"\"Ja, ich m\224chte einen Tip, bitte.\"",
"\"Nein danke, ich m\224chte das alleine l\224sen.\"",
"Pssst... %s... falsche Stelle..."
},
{ "\"Far\225 questo puzzle pi\227 tardi.\"",
"\"Si, grazie. Ne avrei bisogno.\"",
"\"No, grazie, voglio provare a risolverlo da solo.\"",
"Penso che la tessera %s sia nel posto sbagliato."
}
};
} // End of namespace Saga
|