ScummVM API documentation
statics.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 TOT_STATICS_H
23#define TOT_STATICS_H
24
25#include "common/str.h"
26#include "common/keyboard.h"
27
28namespace Tot {
29
30static const char *const animMessages[2][290] = {
31//Spanish
32{
33 "Las \xA3ltimas encuestas realizadas",
34 "acerca de la siniestralidad en ",
35 "los transportes arrojan resultados",
36 "alentadores...",
37 "",
38 // 5
39 "El cien por cien de los encuestados",
40 "declararon no haber sufrido nunca un",
41 "accidente mortal...",
42 "",
43 "",
44 // 10
45 "Es una noticia que nos anima a salir",
46 "de viaje con m\xA0s seguridad.",
47 "",
48 "",
49 "",
50 // 15
51 "\xAD""\xAD""Por un tornillo!!...",
52 "Por un m\xA1sero y simple",
53 "tornillo del tr\xA1""fugo",
54 "del trapecio...",
55 "",
56 // 20
57 "Si lo hubiese apretado",
58 "bien, no estar\xA1""a ahora",
59 "sin trabajo...",
60 "",
61 "",
62 // 25
63 "\xAD""\xAD""Noticia de \xA3""ltima hora!!",
64 "",
65 "",
66 "",
67 "",
68 // 30
69 "Llevo sin dormir toda",
70 "la noche, pensando qu\x82",
71 "voy a hacer.",
72 "",
73 "",
74 // 35
75 "Seguramente no podr\x82",
76 "encontrar trabajo en",
77 "mucho tiempo...",
78 "Aunque ponga mucha f\x82",
79 "la oficina de empleo.",
80 // 40
81 "Y para animarme m\xA0s",
82 "todav\xAD""a, ma\xA4""ana noche",
83 "es HALLOWEEN...",
84 "",
85 "Es que tengo la negra.",
86 // 45
87 "Grave accidente en TWELVE MOTORS...",
88 "un empleado olvid\xA2 apretar un tornillo",
89 "y media cadena de montaje ha quedado",
90 "para chatarra...",
91 "las p\x82rdidas se estiman cuantiosas...",
92 // 50
93 "No se descartan las acciones legales",
94 "contra ese inconsciente...",
95 "",
96 "",
97 "",
98 // 55
99 "\xAD""Dios mio!... hasta en",
100 "la televisi\xA2n...",
101 "Seguro que hasta mi",
102 "perro encuentra curro",
103 "antes que yo...",
104 // 60
105 "\xAD""HORROR!...una factura",
106 "",
107 "",
108 "",
109 "",
110 // 65
111 "\xA8"
112 "Oficina de empleo?...",
113 "\xA8"
114 "y para m\xA1?...",
115 "",
116 "\xAD""Se habr\xA0""n equivocado!", "",
117 // 70
118 "\xA8Tan pronto lograron",
119 "encontrarme trabajo?",
120 "",
121 "Claro... antes de ver",
122 "las noticias...",
123 // 75
124 "Estimado se\xA4or: Nos dirigimos a",
125 "usted para comunicarle que su",
126 "solicitud n\xA7:93435 fu\x82 aceptada",
127 "y le hemos encontrado un puesto",
128 "de acuerdo con sus aptitudes...",
129 // 80
130 "Deber\xA0 presentarse ma\xA4""ana, dia",
131 "31 de Octubre en la direcci\xA2n",
132 "abajo indicada, para ocupar el",
133 "puesto de ENCARGADO GENERAL.",
134 "",
135 //85
136 "Le adjuntamos las credenciales",
137 "de presentaci\xA2n.",
138 "Deseando no verle por aqu\xA1 en",
139 "mucho tiempo se despide:",
140 " Leonor Scott.",
141 // 90
142 "\xAD""\xAD""Que ilu!! encargado",
143 "general... si ya me",
144 "lo decia mi madre...",
145 "<<nene tienes cara de",
146 "encargado general>>",
147 // 95
148 "Tendr\x82 que conseguir",
149 "ropa m\xA0s de acuerdo",
150 "con mi nuevo cargo.",
151 "",
152 "Manos a la obra...",
153 // 100
154 "\xAD""V\xA0""yase!... no queremos vendedores...",
155 "y menos de planes de jubilaci\xA2n.",
156 "",
157 "",
158 "",
159 // 105
160 "No soy ning\xA3n vendedor... me envia la oficina",
161 "de empleo... tenga mis credenciales.",
162 "",
163 "",
164 "",
165 // 110
166 "\xAD""Vaya! eres t\xA3""...llegas con retraso. Los ancianos est\xA0""n",
167 "esper\xA0ndote en el sal\xA2n. Debes cuidarlos muy bien.",
168 "",
169 "",
170 "",
171 // 115
172 "Lo siento, no sab\xA1""a a que hora deb\xA1""a presentarme, en",
173 "la oficina de empleo no me lo dijeron.",
174 "",
175 "",
176 "",
177 // 120
178 "Bueno... no importa... ya est\xA0s aqu\xA1.",
179 "Ese coche es tuyo \xA8no?...",
180 "",
181 "",
182 "",
183 // 125
184 "Si... es precioso \xA8verdad?...",
185 "",
186 "",
187 "",
188 "",
189 // 130
190 "Vaya... 200 caballos... elevalunas el\x82""ctricos... ",
191 "inyecci\xA2n electr\xA2nica, llantas de aleaci\xA2n...",
192 "",
193 "",
194 "",
195 // 135
196 "Pues si...",
197 "",
198 "",
199 "",
200 "",
201 // 140
202 "Airbag... asientos envolventes... aire acondicionado",
203 "",
204 "",
205 "",
206 "",
207 // 145
208 "Es el m\xA0s alto de la gama...",
209 "",
210 "",
211 "",
212 "",
213 // 150
214 "ABS, equipo de m\xA3sica con CD, estructura reforzada",
215 "indeformable, detector de radar...",
216 "",
217 "",
218 "",
219 // 155
220 "Parece que te gusta, \xA8no?", "", "", "", "",
221 // 160
222 "Bueno, no est\xA0 mal... pero... gracias de todos modos.", "", "", "", "",
223 // 165
224 "\xA8Gracias?... \xA8qu\x82?... \xAD"
225 "espera!... ese es mi coche...",
226 "",
227 "",
228 "",
229 "",
230 // 170
231 "Toma una copita, te la has ganado...", "", "", "", "",
232 // 175
233 "\xA8""Donde estoy? ... \xA8Qu\x82 me ha pasado?", "", "", "", "",
234 // 180
235 "Tranquilizate, no est\xA0s muerto...",
236 "Est\xA0s tras la puerta de acero...",
237 "",
238 "",
239 "",
240 // 185
241 "Te necesitamos para encontrar a Jacob,",
242 "nuestro Gran Maestre.",
243 "",
244 "",
245 "",
246 // 190
247 "Hace unos dias se puso a estudiar el libro",
248 "que me diste y desapareci\xA2...",
249 "",
250 "",
251 "",
252 // 195
253 "Creemos que realiz\xA2 un conjuro sin darse cuenta...",
254 "",
255 "",
256 "",
257 "",
258 // 200
259 "Por fortuna, pudimos ponernos en contacto",
260 "con \x82l, y nos dijo que est\xA0 en problemas...",
261 "",
262 "",
263 "",
264 // 205
265 "Nos pidi\xA2 que envi\xA0semos a alguien en su ayuda,",
266 "y TU eres el elegido...",
267 "",
268 "",
269 "",
270 // 210
271 "Para ir a las CAVERNAS ETERNAS debes morir...",
272 "Ning\xA3n cuerpo con alma puede estar all\xA1...",
273 "",
274 "",
275 "",
276 // 215
277 "Haremos un ritual para crear un v\xA1nculo entre tu",
278 "cuerpo y tu alma, s\xA2lo as\xA1 podr\xA0s volver a la vida...",
279 "",
280 "",
281 "",
282 // 220
283 "Si rescatas a Jacob, el v\xA1nculo te traer\xA0 de regreso...", "", "", "", "",
284 // 225
285 "Ahora... \xAD""Prep\xA0""rate!... Ha llegado tu hora...", "", "", "", "",
286 // 230
287 "\xAD""Gracias ILUSO!...", "", "", "", "",
288 // 235
289 "Ahora tendr\x82 un cuerpo nuevo y podr\x82",
290 "volver a la vida...",
291 "",
292 "",
293 "",
294 // 240
295 "Tu mientras tanto, puedes seguir en",
296 "las CAVERNAS ETERNAS...",
297 "",
298 "",
299 "",
300 // 245
301 "No te preocupes, seguro que nos mandan",
302 "otro encargado... JA,JA,JA...",
303 "",
304 "",
305 "",
306 // 250
307 "I knew I shouldn't of",
308 "listened to her. \"Oh,",
309 "it'll only take you a",
310 "minute. I Know it's",
311 "supposed to be Henry's",
312 // 255
313 "by saying that he would have more",
314 "to say on that subject in a week",
315 "or two!",
316 "",
317 "",
318 // 260
319 "be his own reputation",
320 "that he's thinking of.",
321 "",
322 "",
323 ""
324},
325//English
326{
327 "The latest nationwide car safety",
328 "surveys have shown very positive",
329 "results regarding accidental",
330 "accidents...",
331 "",
332 // 5
333 "100% of the people interviewed",
334 "reported that never in their lives",
335 "had they ever suffered a fatal",
336 "accident...",
337 "",
338 // 10
339 "This being very reassuring news",
340 "indeed for today's motorist...",
341 "",
342 "",
343 "",
344 // 15
345 "I don't believe it!",
346 "Sacked again! And",
347 "for what? One little",
348 "screw on the boss's",
349 "wife's car!",
350 // 20
351 "responsability but",
352 "who'll ever know?\"",
353 "How could I have been",
354 "so stupid?",
355 "supposed to be Henry's",
356 // 25
357 "In other news. The Prime Minister",
358 "was questioned today in the Commons",
359 "today about his being a constant",
360 "procrastinator. He infatically",
361 "denied the alegations and responded",
362 // 30
363 "I knew I should have",
364 "let Holmes do it. He",
365 "was always better",
366 "than me and his tools",
367 "were far superior!",
368 // 35
369 "I probably won't work",
370 "in this area ever",
371 "again. Henry Fjord",
372 "has a lot of say in",
373 "this town and it'll",
374 // 40
375 "Trust this to happen",
376 "to me just before",
377 "Halloween. This is",
378 "definately not my",
379 "week!",
380 // 45
381 "This just in. A major incident has been",
382 "reported within the Fjord Motor Group.",
383 "",
384 "",
385 "",
386 // 50
387 "Legal action is being considered...",
388 "",
389 "",
390 "",
391 "",
392 // 55
393 "Oh bugger! It's on",
394 "T.V. Legal action?!",
395 "How the hell can",
396 "I afford that?",
397 "",
398 // 60
399 "Hello? What's this?","","","","",
400 // 65
401 "Employment Services?!",
402 "For me?! This must be",
403 "a mistake. How could",
404 "they know already?",
405 "",
406 // 70
407 "More to the point,",
408 "how could they have",
409 "found me a job?!",
410 "Let's see what this",
411 "says...",
412 // 75
413 "\"Dear Sir. We would like to inform",
414 "you that your application form",
415 "no:666 has been processed. We are",
416 "also pleased to tell you that we",
417 "",
418 // 80
419 "have found you a job best suited",
420 "to your abilities\"",
421 "",
422 "",
423 "",
424 //85
425 "We enclose the necessary documents",
426 "for you records. We wish you every",
427 "success and sincerly hope never to",
428 "see you again. Signed: R. Sole.\"",
429 "",
430 // 90
431 "Care Assistant!?!",
432 "Someone's obviously",
433 "taking the...",
434 "",
435 "",
436 // 95
437 "Fjord! I bet he's been",
438 "on the phone to the",
439 "Unemployment Office and",
440 "told them to give me",
441 "something naff!... ",
442 // 100
443 "Sod off!... We don't wan't any more salesmen!",
444 "",
445 "",
446 "",
447 "",
448 // 105
449 "I'm not a salesman, I work here!",
450 "",
451 "",
452 "",
453 "",
454 // 110
455 "So you're the new Care Assistant I requested!...",
456 "Well I must say that I'm very pleased to meet you.",
457 "",
458 "",
459 "",
460 // 115
461 "Hey wait a minute! What am I supposed",
462 "to do around here?",
463 "",
464 "",
465 "",
466 // 120
467 "The geriatrics will tell you all that",
468 "you need to know. I'm out of here! ...",
469 "",
470 "",
471 "",
472 // 125
473 "Eh! Er, yes it is. Beware what exactly!",
474 "",
475 "",
476 "",
477 "",
478 // 130
479 "Wow!... 200Bhp... Electric everything...",
480 "Fuel injection... Alloy wheels...",
481 "",
482 "",
483 "",
484 // 135
485 "Er, excuse me! Beware what?",
486 "",
487 "",
488 "",
489 "",
490 // 140
491 "Twin overhead cams... Dual airbags...",
492 "Bucket seats... Air conditioning...",
493 "",
494 "",
495 "",
496 // 145
497 "Hey man, I hate to break you away from your",
498 "car review...",
499 "",
500 "",
501 "",
502 // 150
503 "A.B.S... C.D. system... Side impact protection",
504 "system... Wow! A radar detector ...",
505 "",
506 "",
507 "",
508 // 155
509 "Have I?",
510 "",
511 "",
512 "",
513 "",
514 // 160
515 "Ooohhh yes!","","","","",
516 // 165
517 "Hey wait! That's my car! Come back!",
518 "",
519 "",
520 "",
521 "",
522 // 170
523 "Here, have a drink. You've earned it!", "", "", "", "",
524 // 175
525 "What happened? Where am I? Why am I strapped",
526 "down like this? Is this some kinda pervy",
527 "thing or something?",
528 "",
529 "",
530 // 180
531 "SILENCE! We drugged you! You are behind the",
532 "\"Steel Door.\" And no it isn't!",
533 "",
534 "",
535 "",
536 // 185
537 "We need you to venture into the unknown to",
538 "find Jacob! The master! Some days ago he",
539 "began to study the book that you found for",
540 "me. However shortly afterward he disappeared!",
541 "",
542 // 190
543 "We think he passed over to the... OTHER SIDE!",
544 "",
545 "",
546 "",
547 "",
548 // 195
549 "Fortunately I had read some of the sacred",
550 "pages of the book for myself and I believe",
551 "that we can retrieve him!",
552 "",
553 "",
554 // 200
555 "It is therefore my belief that if another",
556 "soul is sent to search for his, he can be",
557 "brought back to us. That soul is YOURS!!",
558 "",
559 "",
560 // 205
561 "However in order to enter the Eternal Caverns,",
562 "you must DIE!!! No material substance may dwell",
563 "there.",
564 "",
565 "",
566 // 210
567 "So we will perform an ancient ritual in which",
568 "a beast is slaughtered to summon the link",
569 "between this world and the next, and YOU will",
570 "be sacrificed to carry out the task!",
571 "",
572 // 215
573 "If you rescue Jacob, your body will be brought",
574 "back to life.",
575 "",
576 "",
577 "",
578 // 220
579 "Enough of this! Your time has come!",
580 "Prepare to die!...", "", "", "",
581 // 225
582 "Horribly!!!", "", "", "", "",
583 // 230
584 "Thank you my nieve young friend...", "", "", "", "",
585 // 235
586 "Now I have a new young body to return",
587 "to the material world with. I'll live",
588 "once more!",
589 "",
590 "",
591 // 240
592 "However I'm afraid you'll have to",
593 "remain here for a while; probably",
594 "only for eternity!",
595 "",
596 "",
597 // 245
598 "But don't worry, I'm sure we'll find a new",
599 "Care Assistant to take care of the house.",
600 "Oh, by the way. If it's any consolation,",
601 "I'm ETERNALLY grateful!",
602 " HA, HA, HA, HA, HAAAAAAAAAA......",
603 // 250
604 "I knew I shouldn't of",
605 "listened to her. \"Oh,",
606 "it'll only take you a",
607 "minute. I Know it's",
608 "supposed to be Henry's",
609 // 255
610 "by saying that he would have more",
611 "to say on that subject in a week",
612 "or two!",
613 "",
614 "",
615 // 260
616 "be his own reputation",
617 "that he's thinking of.",
618 "",
619 "",
620 "",
621 // 265
622 "\"As from October 31st you will begin",
623 "you new job at the care home for the",
624 "elderly at Devillsville as:",
625 " CARE ASSISTANT.",
626 "",
627 // 270
628 "Well stuff you Henry,",
629 "I'm taking the job",
630 "anyway! Besides I",
631 "need the money!",
632 "",
633 // 275
634 "You can find the geriatrics in the livingroom.",
635 "... Good luck!",
636 "",
637 "",
638 "",
639 // 280
640 "Oh!, one more thing though... Beware the...",
641 "... Hey is that your car?",
642 "",
643 "",
644 "",
645 // 285
646 "... And look at this! ...",
647 "You've even left the keys in it!",
648 "",
649 "",
650 ""
651}
652};
653
654static const char *const fullScreenMessages[2][59] = {
655 // Spanish
656 {
657 // intro
658 " ... Despu\x82s de estar durante ocho horas",
659 "conduciendo, haberte perdido tres veces",
660 "y haber hecho doscientos kil\xA2metros de m\xA0s",
661 "llegas a una casa que se encuentra en un",
662 "paraje muy tranquilo y apartado del mundanal",
663 "ruido. (\xAD""\xAD""Y TAN APARTADO!!) ...",
664 "Pero esto no tiene importancia ... ",
665 "Hay que encarar el trabajo con una actitud",
666 "optimista y positiva...",
667 // sacrifice scene
668 // 9
669 " A pesar de todo, no lo has hecho tan mal.",
670 " Has conseguido todo lo que te pidieron, y",
671 " van a poder celebrar su fiesta de Halloween.",
672 " Es todo un detalle que t\xA3 seas el invitado",
673 " de honor...",
674 // 14
675 " Como recompensa a tus esfuerzos te mandan a",
676 " darte una vuelta por ah\xA1 mientras ellos se",
677 " encargan de los preparativos de la fiesta.",
678 " T\xA3, obviamente, aceptas de inmediato y te",
679 " vas a tomar el fresco un rato...",
680 //19
681 " Horas m\xA0s tarde... ",
682 " La fiesta ya est\xA0 preparada, regresas al",
683 " sal\xA2n a recibir tus merecidos honores, tras",
684 " un completo dia de trabajo... ",
685 // 23
686 " Despu\x82s de todo lo que hice por ellos...",
687 " Todos mis esfuerzos y desvelos para esto...",
688 " Morir envenenado, ese era mi destino...",
689 // 26
690 " Presta atenci\xA2n, pues esta puede ser la \xA3ltima",
691 " vez que hablemos contigo. Definitivamente est\xA0s",
692 " muerto, pero a\xA3n es posible reunir tu alma con",
693 " tu cuerpo, para ello debes buscar a Jacob y",
694 " liberarlo de aquello que lo retenga. Cuando lo",
695 " consigas podremos traeros a ambos de vuelta al",
696 " mundo de los vivos.",
697 // 33
698 " Pero debes darte prisa pues el v\xA1nculo con tu",
699 " cuerpo se debilita y tu alma podr\xA1""a quedar",
700 " atrapada para siempre en las Cavernas Eternas.",
701 " Si necesitaras m\xA0s energ\xA1""a de la que tienes, ",
702 " recuerda que all\xA0 donde vas un cuerpo contiene",
703 " m\xA0s energ\xA1""a que un alma al contrario que en el",
704 " mundo f\xA1sico.",
705 // 40
706 " No te demores y recuerda...",
707 " Si triunfas, el premio es la vida, si no...",
708 " LA MUERTE ETERNA.",
709 // 43
710 " Al fin lo has conseguido....",
711 " \xAD""\xAD""\xAD""Soy LIBREEEEE!!!",
712 // WC
713 // 45
714 "... MMPFFFF!! ...",
715 "... PPTRRFF!! ...",
716 "... GGNNNNN!! ...",
717 "... AAAHHHHH!! ...",
718 // Diploma
719 // 49
720 "CERTIFICADO N\xA7:",
721 "Yo, Jacob, el Gran Maestre ",
722 "de la Hermandad de Sek Umh Nejl",
723 "certifico que: ",
724 "me ha liberado de las Cavernas",
725 "Eternas, por lo cual le estar\x82 ",
726 "por siempre agradecido.",
727 // 56
728 " him back! If you achieve this your body will",
729 " live once more.",
730 "PROCESANDO......"
731 },
732
733 // English
734 {
735 // intro
736 "... After driving around in circles for what ",
737 "seemed like hours, you arrive at your new place ",
738 "of employment. It's a grim looking place and ",
739 "not a terrific job at best, but it's the most ",
740 "that you could hope for right now. With that in ",
741 "mind you pull up and decide to give it your all...",
742 "",
743 "",
744 "",
745 // sacrifice scene
746 // 9
747 " You didn't do too bad after all! You got them ",
748 " everything that they asked for. Now they can ",
749 " have their fun and celebrate Halloween the way ",
750 " they want to. Although you begin to wonder why ",
751 " you are to be their... \"special guest.\"",
752 // 14
753 " As a reward, they let you go on a break for half",
754 " an hour while they prepare the party.",
755 " Obviously you jump at the chance and step out",
756 " for a breath of fresh air...",
757 "",
758 //19
759 " A while later the party is set...",
760 "You return to find them in the living room, looking",
761 "a bit suspicious...",
762 "",
763 // 23
764 " Those bloody, old, ba^%$?ds!",
765 " They've poisoned me! After all the kindness",
766 " and affection that I've shown them! Oh, Bugger!",
767 // 26
768 " As the knife plunges deep into your chest, you ",
769 " feel all of your life being drained from you. ",
770 " But through it all you hear a voice. \"Listen ",
771 " carfully, for this might be the last time you ",
772 " hear us. You're dead! But it still is possible ",
773 " for your body to return. You must find Jacob,",
774 " and free him from whoever or whatever is holding ",
775
776 // 33
777 " However you must hurry, for the link between ",
778 " your body and soul will deminish and your soul ",
779 " will be trapped in the Eternal Caverns... FOREVER!",
780 // 36
781 " Si necesitaras m\xA0s energ\xA1""a de la que tienes, ",
782 " recuerda que all\xA0 donde vas un cuerpo contiene",
783 " m\xA0s energ\xA1""a que un alma al contrario que en el",
784 " mundo f\xA1sico.",
785 // 40
786 " Remember.",
787 " If you succed, the prize will be life!",
788 " If you fail... ETERNAL DEATH!!!",
789 // 43
790 " You did it!",
791 " I'M FREEEEEEEEEEE!!!",
792 // WC
793 // 45
794 "... MMPFFFF!! ...",
795 "... PPTRRFF!! ...",
796 "... GGNNNNN!! ...",
797 "... AAAHHHHH!! ...",
798 // Diploma
799 // 49
800 "CERTIFICATE No:",
801 "I, Jacob, the Great Master",
802 "of the Sek Umh Fraternity",
803 "certify that: ",
804 "has liberated me from the",
805 "Eternal Caverns, and I shall be",
806 "greatful to him forever.",
807 // 56
808 " him back! If you achieve this your body will",
809 " live once more.",
810 "PROCESSING......"
811 },
812};
813
814static const char *const errorMessages[2][114] = {
815{
816 // 0
817 "Error 1: Función no existe.",
818 "Error 2: Fichero no encontrado.",
819 "Error 3: Camino no encontrado.",
820 "Error 4: Demasiados ficheros abiertos.",
821 "Error 5: Acceso denegado.",
822 // 5
823 "Error 6: Asignacion de fichero incorrecta.",
824 "Error 12: C\xA2""digo de acceso a fichero incorrecto.",
825 "Error %d: \xA8" "Alguien ha visto por ah\xA1 un bol\xA1grafo?.",
826 "Error 15: Unidad incorrecta.",
827 "Error 16: No se puede borrar el directorio.",
828 // 10
829 "Error 17: No se puede renombrar en distintas unidades.",
830 "Error 18: No hay m\xA0s ficheros.",
831 "Error 100: No se pudo leer del disco.",
832 "Error 101: No se pudo escribir en el disco.",
833 "Error 102: Fichero sin asignar.",
834 // 15
835 "Error 103: Fichero sin abrir.",
836 "Error 104: Fichero abierto para salida.",
837 "Error 105: Fichero abierto para entrada.",
838 "Error 106: Formato num\x82rico no v\xA0lido.",
839 "Error 150: Disco protegido contra escritura.",
840 // 20
841 "Error 151: El driver del disco devuelve una estructura incorrecta.",
842 "Error 152: Unidad no preparada.",
843 "Error 153: JOZU!! que Barbari\xA0.",
844 "Error 154: Comprobaci\xA2n err\xA2nea en el control de redundancia c\xA1""clica.",
845 "Error %d: Cerrado por vacaciones.",
846 // 25
847 "Error 156: Posicionamiento err\xA2neo en el fichero.",
848 "Error 157: Disco de formato desconocido.",
849 "Error 158: Sector no encontrado en el disco.",
850 "Error 159: Impresora sin papel.",
851 "Error 160: No se pudo escribir en el dispositivo.",
852 // 30
853 "Error 161: No se pudo leer del dispositivo.",
854 "Error 162: Problema con el dispositivo.",
855 "Error 200: Division por cero.",
856 "Error 201: Variable fuera de rango.",
857 "Error 202: Desbordamiento en la pila.",
858 // 35
859 "Error 203: Desbordamiento en la memoria din\xA0mica.",
860 "Error 204: Operaci\xA2n err\xA2nea con un puntero.",
861 "Error 205: Desbordamiento en coma flotante.",
862 "Error 206: Desbordamiento negativo en coma flotante.",
863 "Error 207: Operaci\xA2n err\xA2nea de coma flotante.",
864 // 40
865 "Error 208: Gestor de solapamiento sin instalar.",
866 "Error 209: Lectura err\xA2nea del fichero de solapamiento.",
867 "Error 210: Objeto sin inicializar.",
868 "Error 211: Llamada a un metodo abstracto.",
869 "Error 212: Cadena de asignaci\xA2n del objeto err\xA2nea.",
870 // 45
871 "Error 213: Indice para colecci\xA2n fuera de rango.",
872 "Error 214: Desbordamiento en la colecci\xA2n.",
873 "Error 215: Desbordamiento en operaci\xA2n aritm\x82tica.",
874 "Error 216: Acceso a memoria sin asignar.",
875 "Error 250: El driver de AdLib no est\xA0 instalado.",
876 // 50
877 "Error 251: Libre para AdLib.",
878 "Error 252: No se encontr\xA2 el fichero de efectos para SBlaster.",
879 "Error 253: No se encontr\xA2 el fichero de m\xA3sica para SBlaster.",
880 "Error 254: Libre para el fichero de configuraci\xA2n del sonido.",
881 "Error 255: Detectado Ctrl-Break.",
882 // 55
883 "Error 256: La tarjeta de video no soporta el modo gr\xA0""fico requerido.",
884 "Error 257: El tipo de pantalla no es correcto.",
885 "Error 258: No se encontr\xA2 el fichero con la imagen del menu.",
886 "Error 259: Clave de protecci\xA2n erronea.",
887 "Error 260: No se encontr\xA2 el driver del modo X de v\xA1""deo.",
888 // 60
889 "Error 261: No se encontr\xA2 el fichero de datos de los objetos.",
890 "Error 262: No se encontr\xA2 el fichero de los BITMAP.",
891 "Error 263: No se encontr\xA2 el fichero de paleta para la imagen girando.",
892 "Error 264: Se desbord\xA2 la pila de montaje de bitmaps",
893 "Error 265: No se encontr\xA2 el fichero de la animaci\xA2n.",
894 // 65
895 "Error 266: No se encontr\xA2 el fichero del efecto de sonido.",
896 "Error 267: No se encontr\xA2 el fichero de la melodia.",
897 "Error 268: No se encontr\xA2 el driver de sonido MIDI.",
898 "Error 269: No se pudo capturar un vector de interrupci\xA2n.",
899 "Error 270: No se encontr\xA2 el fichero de los cr\x82""ditos.",
900 // 70
901 "Error 271: No se encontr\xA2 el fichero del BitMap del sello.",
902 "Error 272: No se encontr\xA2 el fichero de la animaci\xA2n.",
903 "Error 273: No se encontraron los \xA1ndices de los modos X de acceso a v\xA1""deo.",
904 "Error 274: Fichero de datos corrupto, instale de nuevo el programa.",
905 "Error 275: Posici\xA2n incorrecta del Sprite.",
906 // 75
907 "Error 276: Alineaci\xA2n incorrecta del driver de sonido.",
908 "Error 277: No se encontr\xA2 el fichero de la animaci\xA2n.",
909 "Error 278: No se encontr\xA2 el fichero para la actualizaci\xA2n.",
910 "Error 279: No se actualiz\xA2 el puntero del rat\xA2n.",
911 "Error 280: No se encontr\xA2 el puntero de video.",
912 // 80
913 "Error 281: No se actualiz\xA2 el puntero de video.",
914 "Error 282: No se actualiz\xA2 el flag del trace.",
915 "Error 299: No se pudo reubicar los datos en la memoria XMS.",
916 "Error 300: No hay memoria XMS suficiente.",
917 "Error 301: No se pudo reservar memoria XMS suficiente.",
918 // 85
919 "Error 302: No se pudo liberar la memoria XMS.",
920 "Error 303: No se encuentra disponible un handle para XMS.",
921 "Error 304: No se encontr\xA2 el fichero de gr\xA0""ficos.",
922 "Error 305: Necesita una versi\xA2n 6.0 o posterior del driver del rat\xA2n.",
923 "Error 306: No se pudo inicializar correctamente el driver del rat\xA2n.",
924 // 90
925 "Error 307: No hay memoria baja suficiente.",
926 "Error 308: No se pudo inicializar correctamente el modo gr\xA0""fico.",
927 "Error 309: No se pudieron inicializar correctamente los tipos de letra.",
928 "Error 310: No se encontr\xA2 el fichero de paleta.",
929 "Error 311: No se encontr\xA2 el fichero de paleta para fundido.",
930 // 95
931 "Error 312: No se encontr\xA2 el fichero de los BITMAP del inventario.",
932 "Error 313: No se encontr\xA2 el fichero de hipertexto.",
933 "Error 314: No se encontr\xA2 el fichero del arbol de conversaciones.",
934 "Error 315: No se encontr\xA2 el fichero de la pantalla a pintar.",
935 "Error 316: No se encontr\xA2 el fichero de la pantalla a cargar.",
936 // 100
937 "Error 317: No se encontr\xA2 el fichero de las mascaras del rat\xA2n.",
938 "Error 318: No se encontr\xA2 el fichero del diploma.",
939 "Error 319: No se encontr\xA2 el fichero de los objetos en pantalla.",
940 "Error 320: No se encontr\xA2 el fichero de la rejilla de pantalla.",
941 "Error 321: No se encontr\xA2 el fichero del objeto rotando.",
942 // 105
943 "Error 322: No se encontr\xA2 el fichero de la partida salvada.",
944 "Error 323: No se encontr\xA2 el fichero de configuraci\xA2n.",
945 "Error %d: Espera... Espera... La placa madre est\xA0 teniendo gemelos",
946 "Error %d: Mi, mi, mi, mi, mi.... etc.",
947 "Error %d: Tr\xA0""fico intenso en el bus de datos.",
948 // 110
949 "Error %d: No sabe, no contesta.",
950 "Error %d: Dios mio... estoy lleno de chips.",
951 "Error %d: Coffe not found. Operator Halted.",
952 "Error %d: La parab\xA2lica est\xA0 mal orientada."
953},
954{
955 "Error 1: Function not found.",
956 "Error 2: File not found.",
957 "Error 3: Path not found.",
958 "Error 4: Too many files opened.",
959 "Error 5: Access denied.",
960
961 "Error 6: Ilegal file assign.",
962 "Error 12: Ilegal file access.",
963 "Error %d: Somebody has seen my pen?",
964 "Error 15: Ilegal drive access.",
965 "Error 16: Ilegal directory manipulation.",
966 // 10
967 "Error 17: That's imposible.",
968 "Error 18: No more files allowed.",
969 "Error 100: Disk read crash.",
970 "Error 101: Disk write crash.",
971 "Error 102: File?... What file?.",
972 // 15
973 "Error 103: File not open.",
974 "Error 104: File open for output.",
975 "Error 105: File open for input.",
976 "Error 106: Missing numeric format.",
977 "Error 150: Disk said NO.",
978 // 20
979 "Error 151: Invalid drive parameters.",
980 "Error 152: Drive not ready.",
981 "Error %d: JOZU!! que Barbari\xA0. in spanish in the original",
982 "Error 154: CRC crash.",
983 "Error %d: Close for holidays.",
984 // 25
985 "Error 156: Ilegal file seek.",
986 "Error 157: Ilegal drive media.",
987 "Error 158: Sector not found.",
988 "Error 159: No paper.",
989 "Error 160: Writing access crash.",
990 // 30
991 "Error 161: Reading access crash.",
992 "Error 162: Hardware not response.",
993 "Error 200: Division by zero.",
994 "Error 201: Range check crash.",
995 "Error 202: Stack overflow.",
996 // 35
997 "Error 203: Heap overflow.",
998 "Error 204: Ilegal pointer operation.",
999 "Error 205: Floating overflow.",
1000 "Error 206: Floating underflow.",
1001 "Error 207: Ilegal floating operation.",
1002 // 40
1003 "Error 208: Overlay manager crash.",
1004 "Error 209: Reading overlay crash.",
1005 "Error 210: Ilegal Object operation.",
1006 "Error 211: Abstract method call crash.",
1007 "Error 212: Object string crash.",
1008 // 45
1009 "Error 213: Index collection overflow.",
1010 "Error 214: Collection overflow.",
1011 "Error 215: Aritmethic overflow.",
1012 "Error 216: Ilegal memory access.",
1013 "Error 250: AdLib Driver crash.",
1014 // 50
1015 "Error 251: Free for AdLib.",
1016 "Error 252: FX file not found for SBlaster.",
1017 "Error 253: Music file not found for SBlaster.",
1018 "Error 254: Free for sound configuration file.",
1019 "Error 255: Ctrl-Break flag detected.",
1020 // 55
1021 "Error 256: Video mode not supported.",
1022 "Error 257: Video driver not supported.",
1023 "Error 258: Menu data file not found.",
1024 "Error 259: Ilegal password.",
1025 "Error 260: Tweacked mode failure.",
1026 // 60
1027 "Error 261: Object data file not found.",
1028 "Error 262: BITMAP data file not found.",
1029 "Error 263: Spiring palette file not found.",
1030 "Error 264: Bitmaps heap overflow.",
1031 "Error 265: Animation data file not found.",
1032 // 65
1033 "Error 266: FX data file not found.",
1034 "Error 267: Music data file not found.",
1035 "Error 268: MIDI driver not found.",
1036 "Error 269: Interrupt vector not available.",
1037 "Error 270: Credits data file not found.",
1038 // 70
1039 "Error 271: Stamp data file not found.",
1040 "Error 272: Animation data file not found.",
1041 "Error 273: Index video acces data not found.",
1042 "Error 274: File corrupt, install again.",
1043 "Error 275: Ilegal sprite position.",
1044 // 75
1045 "Error 276: Ilegal Sound driver position.",
1046 "Error 277: Animation file data not found.",
1047 "Error 278: Temporary file not found.",
1048 "Error 279: Mouse pointer not actualized.",
1049 "Error 280: Video pointer not found.",
1050 // 80
1051 "Error 281: Video pointer not actualized.",
1052 "Error 282: Ilegal trace flag operation.",
1053 "Error 299: XMS relocation failure.",
1054 "Error 300: Not enough XMS available.",
1055 "Error 301: Reserving XMS crash.",
1056 // 85
1057 "Error 302: Releasing XMS crash.",
1058 "Error 303: Handle for XMS not available.",
1059 "Error 304: Graph data file not found.",
1060 "Error 305: Mouse driver Ver 6.0 or higher needed.",
1061 "Error 306: Mouse driver crash.",
1062 // 90
1063 "Error 307: Not enough memory. ",
1064 "Error 308: Video mode crash.",
1065 "Error 309: Font types crash.",
1066 "Error 310: Palette data file not found.",
1067 "Error 311: Palette data file for FX not found.",
1068 // 95
1069 "Error 312: Inventory data file not found.",
1070 "Error 313: Text data file not found.",
1071 "Error 314: Text tree data file not found.",
1072 "Error 315: Drawing screen data file not found.",
1073 "Error 316: Loading screen data file not found.",
1074 // 100
1075 "Error 317: Mouse mask data file not found.",
1076 "Error 318: Certify data file not found.",
1077 "Error 319: Screen object data file not found.",
1078 "Error 320: Screen paths data not found.",
1079 "Error 321: Spiring object data file not found.",
1080 // 105
1081 "Error 322: Saved game data file not found.",
1082 "Error 323: Configuration data file not found.",
1083 "Error %d: Wait... the mother board is having twin.",
1084 "Error %d: Mi, mi, mi, mi, mi.... etc.",
1085 "Error %d: Data bus collapsed.",
1086 // 110
1087 "Error %d: I'm innocent.",
1088 "Error %d: My God... I'm full of chips.",
1089 "Error %d: Coffe not found. Operator halted.",
1090 "Error %d: Satellite plate with wrong orientation",
1091}
1092};
1093
1094static const char *const actionLine_ES[] = {
1095 "IR A ",
1096 "HABLAR CON ",
1097 "COGER ",
1098 "MIRAR ",
1099 "USAR ",
1100 "ABRIR ",
1101 "CERRAR ",
1102 " CON ",
1103};
1104
1105static const char *const actionLine_EN[] = {
1106 "GO TO ",
1107 "TALK TO ",
1108 "TAKE ",
1109 "LOOK ",
1110 "USE ",
1111 "OPEN ",
1112 "CLOSE ",
1113 " WITH ",
1114};
1115
1116static const char *const hardcodedTexts_ES[] = {
1117 "LISTA ", // 0
1118 "LISTA", // 1
1119 "CARBON", // 2
1120 "BOMBILLA", // 3
1121 "HORNACINA", // 4
1122 "ESTATUA DIVINA", // 5
1123 "MANUAL DE ALFARERO", // 6
1124 "ESTATUA GROTESCA",// 7
1125 "PARED", // 8
1126 "TORNO", // 9
1127 "VACIO",
1128 "DISPONIBLE %d",
1129 "Mira en la fila %d y columna %d"
1130};
1131
1132static const char *const hardcodedTexts_EN[] = {
1133 "LIST ",
1134 "LIST",
1135 "COAL",
1136 "LIGHT BULB",
1137 "NICHE",
1138 "DIVINE STATUE",
1139 "POTTER'S HANDBOOK",
1140 "GROTESQUE STATUE",
1141 "WALL",
1142 "POTTER'S WHEEL",
1143 "FREE",
1144 "AVAILABLE %d",
1145 "Search in row %d and column %d"
1146};
1147
1148static const char *const keys[2][8]{
1149 // Spanish
1150 {// TALK
1151 "h",
1152 // PICKUP
1153 "c",
1154 // LOOKAT
1155 "m",
1156 // USE
1157 "u",
1158 // OPEN
1159 "a",
1160 // CLOSE
1161 "e",
1162 // YES
1163 "s",
1164 // NO
1165 "n"
1166 },
1167
1168 // English
1169 {// TALK
1170 "t",
1171 // PICKUP
1172 "a",
1173 // LOOKAT
1174 "l",
1175 // USE
1176 "u",
1177 // OPEN
1178 "o",
1179 // CLOSE
1180 "c",
1181 // YES
1182 "y",
1183 // NO
1184 "n"
1185 }
1186 };
1187
1188const int FONT_LITT_OFFSET_ES = 153584;
1189const int FONT_EURO_OFFSET_ES = 159681;
1190const int FONT_LITT_OFFSET_EN = 153010;
1191const int FONT_EURO_OFFSET_EN = 159107;
1192const int FONT_LITT_OFFSET_DEMO = 159073;
1193const int FONT_EURO_OFFSET_DEMO = 165170;
1194
1195
1196static const int32 menuOffsets_ES[8][2] = {
1197 {0, 16004},
1198 {16004, 24535},
1199 {40539, 24535},
1200 {65074, 26745},
1201 {91819, 16004},
1202 {107823, 24535},
1203 {132358, 14969},
1204 {147327, 7148},
1205};
1206
1207static const int32 menuOffsets_EN[8][2] = {
1208 {0, 16004},
1209 {16004, 24535},
1210 {40539, 24535},
1211 {65074, 26745},
1212 {91819, 16004},
1213 {107823, 24535},
1214 {132358, 14417},
1215 {146775, 7148},
1216};
1217
1218static const int32 flcOffsets[2][32] = {
1219 {
1220 0, // Logo
1221 837602, // Menu reveal
1222 // 2 - Intro vids
1223 888366, // Tv speaks
1224 908896,
1225 972458, // opens car and gets to door
1226 1269108, // knocks on door
1227 1284784, // talks to door
1228 1299404, // doorman opens door
1229 1321354, // doorman speaks,
1230 1334608, // talks to doorman at door
1231 1349402, // doorman walks to car
1232 1463880, // doorman talks next to car
1233
1234 1471630, // talks to doorman next to car
1235 1480982, // doorman opens car
1236 1500902, // doorman talks with car open
1237 1508036, // doorman leaves with car
1238 1701780, // main char speaks alone
1239 // 17 Sacrifice
1240 1712400, // character drinks from cup,
1241 1783054, // prayers
1242 1806212, // sacrifice
1243 // 20 Others
1244 2124896, // Use sharp scythe with statue,
1245 2216848, // change feather for scythe
1246 2209158, // Use ring with pedestal,
1247 2076280, // Use urn with altar
1248 2441804, // Sharpen scythe
1249 2361800, // Use rope with precipice
1250 2382552, // Trident with dent
1251 2464240, // Rock with mural
1252 2296092, // Press button of oven with the jar
1253 2231140, // Press button of oven with no jar
1254 // 30 Ending
1255 2481274, // Part 1
1256 2554766 // Part 2
1257 },
1258 {
1259 0, // Logo
1260 837602, // Menu reveal
1261 // Intro vids
1262 894900, // tv speaks
1263 915430,
1264 978992, // opens car and gets to door
1265 1275642, // knocks door
1266 1291318, // talks to door
1267 1305938, // doorman opens door
1268 1327888, // doorman speaks
1269 1341142, // talks to doorman at door,
1270 1355936, // doorman walks to car
1271 1470414, // doorman talks next to car
1272 1478164, // talks to doorman next to car
1273 1487516, // doorman opens car
1274 1507436, // doorman talks with car open
1275 1514570, // doorman leaves with car
1276 1708314, // main char speaks alone
1277 // 17 Sacrifice
1278 1718934, // character drinks from cup
1279 1789588, // prayers
1280 1812746, // sacrifice
1281 // 20 others
1282 2399068, // Use sharp scythe with statue
1283 2491020, // change feather for scythe
1284 2483330, // Use ring with pedestal
1285 2350452, // Use urn with altar
1286 2715976, // Sharpen scythe
1287 2635972, // Use rope with precipice
1288 2656724, // Trident with dent
1289 2738412, // Rock with mural
1290 2570264, // Press button of oven with the jar
1291 2505312, // Press button of oven with no jar,
1292 // 30 Ending
1293 2082814, // Part 1
1294 2156306 // Part 2
1295 }};
1296
1297} // End of namespace Tot
1298#endif