]> git.localhorst.tv Git - l2e.git/blob - test-data/test.l2s
tuned menu selected cusor animation
[l2e.git] / test-data / test.l2s
1 include "ikaris.l2h"
2 include "items.l2h"
3 include "spells.l2h"
4
5 Number frameTime 33
6 Number twoFramesTime 66
7 Number fourFramesTime 132
8 Number fiveFramesTime 165 // darn, i really need to implement expressions
9
10 export PartyLayout monstersLayout {
11         positions: [
12                 < 88, 88>,
13                 <128, 88>,
14                 <168, 88>,
15                 <208, 88>
16         ]
17 }
18 export PartyLayout heroesLayout {
19         positions: [
20                 < 48,136>,
21                 <128,136>,
22                 < 80,152>,
23                 <160,152>,
24                 <216,144>
25         ]
26 }
27
28 Sprite lizardSprite {
29         image: :"monster.png",
30         size: <64,64>
31 }
32
33 export Monster lizard {
34         name: "Lizard",
35         sprite: lizardSprite,
36         level: 1,
37         maxHealth: 8,
38         health: 8,
39         stats: Stats {
40                 atp: 14,
41                 dfp:  6,
42                 str:  6,
43                 agl:  6,
44                 int:  6,
45                 gut:  6,
46                 mgr:  6
47         },
48         attackAnimation: ComplexAnimation {
49                 sprite: lizardSprite,
50                 frametime: fourFramesTime,
51                 repeat: false,
52                 frames:
53                 [ ComplexAnimationFrame
54                         { column: 0, row: 1, disposition: < 0, 16> },
55                         { column: 0, row: 0, disposition: < 0, 16> },
56                         { column: 0, row: 1, disposition: < 0, 16> },
57                         { column: 0, row: 0, disposition: < 0, 16> }
58                 ]
59         },
60         meleeAnimation: SimpleAnimation {
61                 sprite: Sprite {
62                         image: :"attack-monster.png",
63                         size: <96,64>
64                 },
65                 frametime: frameTime,
66                 framecount: 14
67         }
68 }
69
70 Sprite maximSprite {
71         image: :"maxim.png",
72         size: <64,64>
73 }
74 export Hero maxim {
75         name: "Maxim",
76         level: 1,
77         battleSprite: maximSprite,
78         maxHealth: 33,
79         health: 33,
80         maxMana: 20,
81         mana: 20,
82         ip: 0,
83         stats: Stats {
84                 atp:  28,
85                 dfp:  22,
86                 str:  28,
87                 agl:  17,
88                 int:  14,
89                 gut: 100,
90                 mgr:  10
91         },
92         ladder: [
93                 10
94         ],
95         useMask: maskMaxim,
96         attackAnimation: ComplexAnimation {
97                 sprite: maximSprite,
98                 frametime: frameTime,
99                 repeat: false,
100                 frames:
101                 [ ComplexAnimationFrame
102                         { column: 1, row: 0, disposition: < 0, 0> },
103                         { column: 1, row: 0, disposition: < 0, 0> },
104                         { column: 1, row: 0, disposition: < 0, 0> },
105                         { column: 1, row: 0, disposition: < 0, 0> },
106                         { column: 1, row: 0, disposition: < 0, 0> },
107                         { column: 1, row: 0, disposition: < 0, 0> },
108                         { column: 1, row: 0, disposition: < 0, 0> },
109                         { column: 1, row: 0, disposition: < 4,-1> },
110                         { column: 1, row: 0, disposition: < 4,-1> },
111                         { column: 2, row: 0, disposition: < 4,-2> },
112                         { column: 2, row: 0, disposition: < 4,-2> },
113                         { column: 2, row: 0, disposition: < 6,-2> },
114                         { column: 2, row: 0, disposition: < 6,-2> },
115                         { column: 2, row: 1, disposition: < 6,-1> },
116                         { column: 2, row: 1, disposition: < 3,-1> },
117                         { column: 2, row: 1, disposition: < 3,-1> },
118                         { column: 2, row: 1, disposition: < 0, 0> },
119                         { column: 2, row: 2, disposition: < 0, 0> },
120                         { column: 2, row: 2, disposition: < 0, 0> },
121                         { column: 2, row: 2, disposition: < 2, 0> },
122                         { column: 1, row: 0, disposition: < 0, 0> },
123                         { column: 1, row: 0, disposition: < 0, 0> },
124                         { column: 1, row: 0, disposition: < 0, 0> },
125                         { column: 1, row: 0, disposition: < 0, 0> },
126                         { column: 1, row: 0, disposition: < 0, 0> },
127                         { column: 1, row: 0, disposition: < 0, 0> },
128                         { column: 1, row: 0, disposition: < 0, 0> }
129                 ]
130         },
131         spellAnimation: ComplexAnimation {
132                 sprite: maximSprite,
133                 frametime: fiveFramesTime,
134                 repeat: false,
135                 frames:
136                 [ ComplexAnimationFrame
137                         { column: 3, row: 0, disposition: < 0, 0> },
138                         { column: 3, row: 0, disposition: < 0, 0> },
139                         { column: 3, row: 1, disposition: < 0, 0> }
140                 ]
141         },
142         meleeAnimation: SimpleAnimation {
143                 sprite: Sprite {
144                         image: :"melee-maxim.png",
145                         size: <96,96>
146                 },
147                 frametime: twoFramesTime,
148                 framecount: 4
149         },
150         mapEntity: Entity {
151                 animation: SimpleAnimation{
152                         sprite: Sprite {
153                                 image: :"maxim-map.png",
154                                 size: <32,64>
155                         },
156                         frametime: 120,
157                         framecount: 2
158                 },
159                 spriteOffset: <0,-32>
160         }
161 }
162
163 Sprite selanSprite {
164         image: :"selan.png",
165         size: <64,64>
166 }
167 export Hero selan {
168         name: "Selan",
169         level: 1,
170         battleSprite: selanSprite,
171         maxHealth: 28,
172         health: 28,
173         maxMana: 23,
174         mana: 23,
175         ip: 0,
176         stats: Stats {
177                 atp: 23,
178                 dfp: 21,
179                 str: 23,
180                 agl: 19,
181                 int: 22,
182                 gut: 80,
183                 mgr: 13
184         },
185         useMask: maskSelan,
186         attackAnimation: ComplexAnimation {
187                 sprite: selanSprite,
188                 frametime: frameTime,
189                 repeat: false,
190                 frames:
191                 [ ComplexAnimationFrame
192                         { column: 1, row: 0, disposition: < 4, 0> },
193                         { column: 1, row: 0, disposition: < 4, 0> },
194                         { column: 1, row: 0, disposition: < 8, 2> },
195                         { column: 2, row: 0, disposition: <10, 4> },
196                         { column: 2, row: 0, disposition: <14, 4> },
197                         { column: 2, row: 0, disposition: <12, 2> },
198                         { column: 2, row: 0, disposition: <12, 2> },
199                         { column: 2, row: 0, disposition: <12, 2> },
200                         { column: 2, row: 1, disposition: <14, 2> },
201                         { column: 2, row: 1, disposition: <14, 2> },
202                         { column: 2, row: 1, disposition: < 2, 0> },
203                         { column: 2, row: 2, disposition: <-2,-4> },
204                         { column: 2, row: 2, disposition: <-8,-8> },
205                         { column: 2, row: 2, disposition: < 0, 0> }
206                 ]
207         },
208         spellAnimation: ComplexAnimation {
209                 sprite: selanSprite,
210                 frametime: frameTime,
211                 repeat: false,
212                 frames:
213                 [ ComplexAnimationFrame
214                         { column: 3, row: 0, disposition: < 0, 0> },
215                         { column: 3, row: 0, disposition: < 0, 0> },
216                         { column: 3, row: 0, disposition: < 0, 0> },
217                         { column: 3, row: 1, disposition: < 0, 0> },
218                         { column: 3, row: 1, disposition: < 0, 0> },
219                         { column: 3, row: 2, disposition: < 0, 0> },
220                         { column: 3, row: 2, disposition: < 0, 0> },
221                         { column: 3, row: 2, disposition: < 0, 0> },
222                         { column: 3, row: 3, disposition: < 0, 0> },
223                         { column: 3, row: 3, disposition: < 0, 0> }
224                 ]
225         },
226         meleeAnimation: SimpleAnimation {
227                 sprite: Sprite {
228                         image: :"melee-selan.png",
229                         size: <96,96>
230                 },
231                 frametime: twoFramesTime,
232                 framecount: 4
233         },
234         mapEntity: Entity {
235                 animation: SimpleAnimation{
236                         sprite: Sprite {
237                                 image: :"selan-map.png",
238                                 size: <32,64>
239                         },
240                         frametime: 120,
241                         framecount: 2
242                 },
243                 spriteOffset: <0,-32>
244         }
245 }
246
247 Sprite guySprite {
248         image: :"guy.png",
249         size: <64,64>
250 }
251 export Hero guy {
252         name: "Guy",
253         level: 1,
254         battleSprite: guySprite,
255         maxHealth: 38,
256         health: 38,
257         maxMana: 0,
258         mana: 0,
259         ip: 0,
260         stats: Stats {
261                 atp: 38,
262                 dfp: 25,
263                 str: 38,
264                 agl: 13,
265                 int:  8,
266                 gut: 90,
267                 mgr:  8
268         },
269         useMask: maskGuy,
270         attackAnimation: ComplexAnimation {
271                 sprite: guySprite,
272                 frametime: frameTime,
273                 repeat: false,
274                 frames:
275                 [ ComplexAnimationFrame
276                         { column: 1, row: 0, disposition: <-4, 0> },
277                         { column: 1, row: 0, disposition: <-4, 0> },
278                         { column: 1, row: 0, disposition: <-8, 0> },
279                         { column: 1, row: 0, disposition: <-8, 0> },
280                         { column: 2, row: 0, disposition: <-8, 0> },
281                         { column: 2, row: 0, disposition: <-8, 0> },
282                         { column: 2, row: 0, disposition: <-4, 0> },
283                         { column: 2, row: 0, disposition: < 0, 0> },
284                         { column: 2, row: 0, disposition: < 0, 0> },
285                         { column: 2, row: 1, disposition: < 0, 0> },
286                         { column: 2, row: 1, disposition: < 4, 0> },
287                         { column: 2, row: 1, disposition: <10, 0> },
288                         { column: 2, row: 2, disposition: <10, 0> },
289                         { column: 2, row: 2, disposition: < 0, 0> }
290                 ]
291         },
292         meleeAnimation: SimpleAnimation {
293                 sprite: Sprite {
294                         image: :"melee-guy.png",
295                         size: <96,96>
296                 },
297                 frametime: fourFramesTime,
298                 framecount: 4
299         },
300         mapEntity: Entity {
301                 animation: SimpleAnimation{
302                         sprite: Sprite {
303                                 image: :"guy-map.png",
304                                 size: <32,64>
305                         },
306                         frametime: 120,
307                         framecount: 2
308                 },
309                 spriteOffset: <0,-32>
310         }
311 }
312
313 Sprite dekarSprite {
314         image: :"dekar.png",
315         size: <64,64>
316 }
317 export Hero dekar {
318         name: "Dekar",
319         level: 1,
320         battleSprite: dekarSprite,
321         maxHealth: 38,
322         health: 38,
323         maxMana: 0,
324         mana: 0,
325         ip: 0,
326         stats: Stats {
327                 atp:  46,
328                 dfp:  29,
329                 str:  46,
330                 agl:  13,
331                 int:   7,
332                 gut: 100,
333                 mgr:   5
334         },
335         useMask: maskDekar,
336         attackAnimation: ComplexAnimation {
337                 sprite: dekarSprite,
338                 frametime: frameTime,
339                 repeat: false,
340                 frames:
341                 [ ComplexAnimationFrame
342                         { column: 1, row: 0, disposition: < 4, 0> },
343                         { column: 1, row: 0, disposition: < 8, 2> },
344                         { column: 2, row: 0, disposition: <12, 4> },
345                         { column: 2, row: 0, disposition: <16, 4> },
346                         { column: 2, row: 0, disposition: <10, 2> },
347                         { column: 2, row: 0, disposition: <10, 2> },
348                         { column: 2, row: 0, disposition: <10, 2> },
349                         { column: 2, row: 0, disposition: <10, 2> },
350                         { column: 2, row: 1, disposition: < 6, 2> },
351                         { column: 2, row: 1, disposition: < 0, 0> },
352                         { column: 2, row: 2, disposition: <-2, 0> },
353                         { column: 2, row: 2, disposition: < 0, 0> },
354                         { column: 2, row: 2, disposition: < 0, 0> },
355                         { column: 2, row: 2, disposition: < 0, 0> }
356                 ]
357         },
358         spellAnimation: ComplexAnimation {
359                 sprite: dekarSprite,
360                 frametime: twoFramesTime,
361                 repeat: false,
362                 frames:
363                 [ ComplexAnimationFrame
364                         { column: 3, row: 0, disposition: < 0, 0> },
365                         { column: 3, row: 0, disposition: < 0, 0> },
366                         { column: 3, row: 0, disposition: < 0, 0> },
367                         { column: 3, row: 0, disposition: < 0, 0> },
368                         { column: 3, row: 0, disposition: < 0, 0> },
369                         { column: 3, row: 0, disposition: < 0, 0> },
370                         { column: 3, row: 1, disposition: < 0, 0> },
371                         { column: 3, row: 1, disposition: < 0, 0> },
372                         { column: 3, row: 2, disposition: < 0, 0> },
373                         { column: 3, row: 2, disposition: < 0, 0> },
374                         { column: 3, row: 2, disposition: < 0, 0> }
375                 ]
376         },
377         meleeAnimation: SimpleAnimation {
378                 sprite: Sprite {
379                         image: :"melee-dekar.png",
380                         size: <96,96>
381                 },
382                 frametime: twoFramesTime,
383                 framecount: 4
384         },
385         mapEntity: Entity {
386                 animation: SimpleAnimation{
387                         sprite: Sprite {
388                                 image: :"dekar-map.png",
389                                 size: <32,64>
390                         },
391                         frametime: 120,
392                         framecount: 2
393                 },
394                 spriteOffset: <0,-32>
395         }
396 }
397
398 Sprite handCursor {
399         image: :"cursor-hand.png",
400         size: <32,32>
401 }
402
403 Font normalFont {
404         sprite: Sprite {
405                 image: :"normal-font.png",
406                 size: <16,16>
407         },
408         rowoffset: -2
409 }
410
411 Font disabledFont {
412         sprite: Sprite {
413                 image: :"disabled-font.png",
414                 size: <16,16>
415         },
416         rowoffset: -2
417 }
418
419 export BattleResources battleResources {
420         swapCursor: Sprite {
421                 image: :"swap-cursor.png",
422                 size: <32,32>
423         },
424         attackIcons: Sprite {
425                 image: :"attack-type-icons.png",
426                 size: <32,32>
427         },
428         attackChoiceIcons: Sprite {
429                 image: :"attack-choice-icons.png",
430                 size: <16,16>
431         },
432         moveIcons: Sprite {
433                 image: :"move-icons.png",
434                 size: <32,32>
435         },
436
437         titleFrame: Frame {
438                 image: :"title-frame.png",
439                 border: <16,16>
440         },
441         titleFont: Font {
442                 sprite: Sprite {
443                         image: :"large-font.png",
444                         size: <16,32>
445                 },
446                 rowoffset: -2
447         },
448
449         numberAnimationPrototype: ComplexAnimation {
450                 frametime: frameTime,
451                 repeat: false,
452                 frames:
453                 [ ComplexAnimationFrame
454                         { column: 0, row: 0, disposition: <  0,  0> },
455                         { column: 0, row: 0, disposition: <  0,-26> },
456                         { column: 0, row: 0, disposition: <  0,-42> },
457                         { column: 0, row: 0, disposition: <  0,-48> },
458                         { column: 0, row: 0, disposition: <  0,-42> },
459                         { column: 0, row: 0, disposition: <  0,-26> },
460                         { column: 0, row: 0, disposition: <  0,  0> },
461                         { column: 0, row: 0, disposition: <  0,-12> },
462                         { column: 0, row: 0, disposition: <  0,-20> },
463                         { column: 0, row: 0, disposition: <  0,-24> },
464                         { column: 0, row: 0, disposition: <  0,-20> },
465                         { column: 0, row: 0, disposition: <  0,-12> },
466                         { column: 0, row: 0, disposition: <  0,  0> },
467                         { column: 0, row: 0, disposition: <  0, -6> },
468                         { column: 0, row: 0, disposition: <  0,-10> },
469                         { column: 0, row: 0, disposition: <  0,-12> },
470                         { column: 0, row: 0, disposition: <  0,-10> },
471                         { column: 0, row: 0, disposition: <  0, -6> },
472                         { column: 0, row: 0, disposition: <  0,  0> },
473                         { column: 0, row: 0, disposition: <  0,  0> },
474                         { column: 0, row: 0, disposition: <  0,  0> },
475                         { column: 0, row: 0, disposition: <  0,  0> },
476                         { column: 0, row: 0, disposition: <  0,  0> },
477                         { column: 0, row: 0, disposition: <  0,  0> },
478                         { column: 0, row: 0, disposition: <  0,  0> },
479                         { column: 0, row: 0, disposition: <  0,  0> },
480                         { column: 0, row: 0, disposition: <  0,  0> },
481                         { column: 0, row: 0, disposition: <  0,  0> },
482                         { column: 0, row: 0, disposition: <  0,  0> },
483                         { column: 0, row: 0, disposition: <  0,  0> },
484                         { column: 0, row: 0, disposition: <  0,  0> },
485                         { column: 0, row: 0, disposition: <  0,  0> },
486                         { column: 0, row: 0, disposition: <  0,-36> },
487                         { column: 0, row: 0, disposition: <  0,-32> },
488                         { column: 0, row: 0, disposition: <  0,-18> }
489                 ]
490         },
491         bigNumberSprite: Sprite {
492                 image: :"big-numbers.png",
493                 size: <16,32>
494         },
495         greenNumberSprite: Sprite {
496                 image: :"big-green-numbers.png",
497                 size: <16,32>
498         },
499
500         heroTagLabels: Sprite {
501                 image: :"hero-tag-sprites.png",
502                 size: <32,16>
503         },
504         levelLabelCol: 0,
505         levelLabelRow: 0,
506         healthLabelCol: 0,
507         healthLabelRow: 1,
508         manaLabelCol: 0,
509         manaLabelRow: 2,
510         moveLabelCol: 0,
511         moveLabelRow: 3,
512         ikariLabelCol: 0,
513         ikariLabelRow: 4,
514         heroTagFont: Font {
515                 sprite: Sprite {
516                         image: :"numbers.png",
517                         size: <16,16>
518                 },
519                 rowoffset: -3
520         },
521
522         activeHeroTagFrame: Frame {
523                 image: :"tag-frames.png",
524                 border: <16,16>
525         },
526         heroTagFrame: Frame {
527                 image: :"tag-frames.png",
528                 border: <16,16>,
529                 offset: < 0,33>
530         },
531
532         smallHeroTagFrame: Frame {
533                 image: :"small-tag-frame.png",
534                 border: <8,16>
535         },
536         lastSmallHeroTagFrame: Frame {
537                 image: :"small-tag-frame.png",
538                 border: <8,16>,
539                 offset: <0,33>
540         },
541         heroesBgColor: (24, 40, 49),
542
543         healthGauge: Gauge {
544                 image: :"gauges.png",
545                 full:  <0,16>,
546                 empty: <0, 0>,
547                 height: 16,
548                 start:   6,
549                 repeat:  1,
550                 end:     6
551         },
552         manaGauge: Gauge {
553                 image: :"gauges.png",
554                 full:  <0,32>,
555                 empty: <0, 0>,
556                 height: 16,
557                 start:   6,
558                 repeat:  1,
559                 end:     6
560         },
561         ikariGauge: Gauge {
562                 image: :"gauges.png",
563                 full:  <0,48>,
564                 empty: <0, 0>,
565                 height: 16,
566                 start:   6,
567                 repeat:  1,
568                 end:     6
569         },
570
571         selectFrame: Frame {
572                 image: :"select-frame.png",
573                 border: <16,16>
574         },
575         normalFont: normalFont,
576         disabledFont: disabledFont,
577         menuCursor: Sprite {
578                 image: :"cursor-hand.png",
579                 size: <32,32>
580         },
581
582         weaponTargetCursor: Sprite {
583                 image: :"targeting-icons.png",
584                 size: <32,32>
585         },
586         magicTargetCursor: Sprite {
587                 image: :"targeting-icons.png",
588                 size: <32,32>,
589                 offset: <0,32>
590         },
591         itemTargetCursor: Sprite {
592                 image: :"targeting-icons.png",
593                 size: <32,32>,
594                 offset: <0,64>
595         },
596
597         weaponMenuIcon: swordIcon,
598         armorMenuIcon: armorIcon,
599         shieldMenuIcon: shieldIcon,
600         helmetMenuIcon: helmetIcon,
601         ringMenuIcon: ringIcon,
602         jewelMenuIcon: jewelIcon,
603
604         spellMenuHeadline: "Please choose a spell.",
605         spellMenuProperties: MenuProperties {
606                 font: normalFont,
607                 disabledFont: disabledFont,
608                 cursor: handCursor,
609                 charsPerEntry: 9,
610                 rows: 6,
611                 rowGap: 8,
612                 iconSpace: 0,
613                 cols: 2,
614                 colGap: 32,
615                 charsPerNumber: 2,
616                 delimiter: ":"
617         },
618
619         itemMenuHeadline: "Please choose an item.",
620         itemMenuProperties: MenuProperties {
621                 font: normalFont,
622                 disabledFont: disabledFont,
623                 cursor: handCursor,
624                 charsPerEntry: 15,
625                 rows: 6,
626                 rowGap: 8,
627                 iconSpace: 16,
628                 cols: 1,
629                 colGap: 32,
630                 charsPerNumber: 2,
631                 delimiter: ":"
632         },
633
634         ikariMenuHeadline: "Please choose equipment.",
635         ikariMenuProperties: MenuProperties {
636                 font: normalFont,
637                 disabledFont: disabledFont,
638                 cursor: handCursor,
639                 charsPerEntry: 12,
640                 rows: 6,
641                 rowGap: 8,
642                 iconSpace: 16,
643                 cols: 1,
644                 colGap: 32,
645                 charsPerAdditionalText: 12,
646                 additionalTextGap: 16
647         },
648         noEquipmentText: "No equip",
649
650         escapeText: "Escapes."
651 }
652
653 Font menuFont {
654         sprite: Sprite {
655                 image: :"menu-font.png",
656                 size: <16, 16>
657         },
658         rowoffset: -2
659 }
660 Font menuInactiveFont {
661         sprite: Sprite {
662                 image: :"menu-font-inactive.png",
663                 size: <16, 16>
664         },
665         rowoffset: -2
666 }
667 Sprite menuCursor {
668         image: :"menu-cursor.png",
669         size: <32, 16>
670 }
671 Sprite menuActiveCursor {
672         image: :"menu-cursor-active.png",
673         size: <32, 18>
674 }
675 SimpleAnimation menuCursorAnimation {
676         sprite: menuCursor,
677         frametime: fourFramesTime,
678         framecount: 6,
679         repeat: true
680 }
681 ComplexAnimation menuActiveCursorAnimation {
682         sprite: menuActiveCursor,
683         frametime: fourFramesTime,
684         repeat: true,
685         frames:
686         [ ComplexAnimationFrame
687                 { row: 0 },
688                 { row: 0 },
689                 { row: 0 },
690                 { row: 0 },
691                 { row: 0 },
692                 { row: 0 },
693                 { row: 0 },
694                 { row: 0 },
695                 { row: 1 },
696                 { row: 2 },
697                 { row: 3 },
698                 { row: 4 }
699         ]
700 }
701
702 export MenuResources menuResources {
703         menubg: Texture {
704                 image: :"menubg.png",
705                 size: <64, 64>
706         },
707         normalFont: menuFont,
708         inactiveFont: menuInactiveFont,
709         statusFont: normalFont,
710         statusLabels: Sprite {
711                 image: :"status-labels.png",
712                 size: <32, 16>
713         },
714         statusFrame: Frame {
715                 image: :"status-frame.png",
716                 border: <32, 32>,
717                 repeat: <32, 32>
718         },
719         mainMenu: MenuProperties {
720                 cols: 2,
721                 rows: 4,
722                 charsPerEntry: 8,
723                 rowGap: 8,
724                 colGap: 32,
725                 cursor: menuCursor,
726                 cursorAnimation: menuCursorAnimation,
727                 font: menuFont,
728                 disabledFont: menuInactiveFont,
729                 wrapX: true,
730                 wrapY: true
731         },
732         mainMenuItemText: "ITEM",
733         mainMenuSpellText: "SPELL",
734         mainMenuCapsuleText: "CAPSULE",
735         mainMenuEquipmentText: "EQUIP",
736         mainMenuStatusText: "STATUS",
737         mainMenuChangeText: "CHANGE",
738         mainMenuConfigText: "CONFIG",
739         mainMenuScenarioText: "SCENARIO",
740         mainMenuTimeText: "TIME",
741         mainMenuGoldText: "GOLD",
742         heroCursor: Sprite {
743                 image: :"hero-cursor.png",
744                 size: <64, 16>
745         },
746         heroCursorBlinkTime: 532,
747         noEquipmentText: "No equip",
748         shoulderNav: Sprite {
749                 image: :"shoulder-nav.png",
750                 size: <160, 16>
751         },
752         atpLabel: "ATP",
753         dfpLabel: "DFP",
754         strLabel: "STR",
755         aglLabel: "AGL",
756         intLabel: "INT",
757         gutLabel: "GUT",
758         mgrLabel: "MGR",
759         hpLabel: "HP",
760         ipLabel: "IP",
761         levelLabel: "LEVEL",
762         experienceLabel: "NOW EXP",
763         nextLevelLabel: "NEXT LEVEL",
764         statusMenu: MenuProperties {
765                 cols: 2,
766                 rows: 1,
767                 charsPerEntry: 6,
768                 colGap: 16,
769                 cursor: menuCursor,
770                 cursorAnimation: menuCursorAnimation,
771                 font: menuFont,
772                 wrapX: true
773         },
774         nextLabel: "NEXT",
775         returnLabel: "RETURN",
776         itemMenu: MenuProperties {
777                 cols: 3,
778                 rows: 1,
779                 charsPerEntry: 5,
780                 rowGap: 8,
781                 colGap: 16,
782                 cursor: menuCursor,
783                 selectedCursor: menuActiveCursor,
784                 cursorAnimation: menuCursorAnimation,
785                 selectedCursorAnimation: menuActiveCursorAnimation,
786                 font: menuFont,
787                 wrapX: true,
788                 wrapY: true
789         },
790         itemMenuUseText: "USE",
791         itemMenuSortText: "SORT",
792         itemMenuDropText: "DROP",
793         itemMenuSelectText: "SELECT",
794         inventoryMenu: MenuProperties {
795                 cols: 1,
796                 rows: 6,
797                 charsPerEntry: 13,
798                 rowGap: 8,
799                 cursor: menuCursor,
800                 selectedCursor: menuActiveCursor,
801                 cursorAnimation: menuCursorAnimation,
802                 selectedCursorAnimation: menuActiveCursorAnimation,
803                 font: menuFont,
804                 disabledFont: menuInactiveFont,
805                 iconSpace: 16,
806                 charsPerNumber: 2,
807                 delimiter: ":",
808                 thirdColumnHack: 1
809         },
810         spellMenu: MenuProperties {
811                 cols: 2,
812                 rows: 6,
813                 charsPerEntry: 8,
814                 rowGap: 8,
815                 colGap: 48,
816                 cursor: menuCursor,
817                 selectedCursor: menuActiveCursor,
818                 cursorAnimation: menuCursorAnimation,
819                 selectedCursorAnimation: menuActiveCursorAnimation,
820                 font: menuFont,
821                 disabledFont: menuInactiveFont,
822                 charsPerNumber: 2,
823                 delimiter: ":"
824         },
825         equipmentActionMenu: MenuProperties {
826                 cols: 1,
827                 rows: 5,
828                 charsPerEntry: 10,
829                 rowGap: 8,
830                 cursor: menuCursor,
831                 selectedCursor: menuActiveCursor,
832                 cursorAnimation: menuCursorAnimation,
833                 selectedCursorAnimation: menuActiveCursorAnimation,
834                 font: menuFont
835         },
836         equipmentMenu: MenuProperties {
837                 cols: 1,
838                 rows: 6,
839                 charsPerEntry: 12,
840                 rowGap: 16,
841                 cursor: menuCursor,
842                 selectedCursor: menuActiveCursor,
843                 cursorAnimation: menuCursorAnimation,
844                 selectedCursorAnimation: menuActiveCursorAnimation,
845                 font: normalFont,
846                 iconSpace: 16,
847                 wrapY: true
848         },
849         equipMenuEquipLabel: "EQUIP",
850         equipMenuStrongestLabel: "STRONGEST",
851         equipMenuRemoveLabel: "REMOVE",
852         equipMenuRemoveAllLabel: "REMOVE ALL",
853         equipMenuDropLabel: "DROP",
854         configMenu: MenuProperties {
855                 cols: 1,
856                 rows: 4,
857                 charsPerEntry: 8,
858                 rowGap: 32,
859                 cursor: menuCursor,
860                 cursorAnimation: menuCursorAnimation,
861                 font: menuFont,
862                 wrapY: true
863         },
864         configMessageSpeedLabel: "MESSAGE\n   SPEED",
865         configMessageSpeedFast: "FAST",
866         configMessageSpeedNormal: "NORMAL",
867         configMessageSpeedSlow: "SLOW",
868         configBattleCursorLabel: "BATTLE\n  CURSOR",
869         configStatusCursorLabel: "STATUS\n  CURSOR",
870         configCursorClear: "CLEAR",
871         configCursorMemory: "MEMORY",
872         configMusicLabel: "MUSIC",
873         configMusicStereo: "STEREO",
874         configMusicMono: "MONO",
875         scenarioMenu: MenuProperties {
876                 cols: 1,
877                 rows: 6,
878                 charsPerEntry: 14,
879                 rowGap: 8,
880                 cursor: menuCursor,
881                 cursorAnimation: menuCursorAnimation,
882                 font: menuFont
883         },
884         scenarioMenuHeadline: "SCENARIO ITEM",
885         capsulebg: Texture {
886                 image: :"capsulebg.png",
887                 size: <64, 64>
888         },
889         capsuleMenu: MenuProperties {
890                 cols: 3,
891                 rows: 1,
892                 charsPerEntry: 7,
893                 cursor: menuCursor,
894                 selectedCursor: menuActiveCursor,
895                 cursorAnimation: menuCursorAnimation,
896                 selectedCursorAnimation: menuActiveCursorAnimation,
897                 font: menuFont,
898                 thirdColumnHack: 2
899         },
900         capsuleFeedMenu: MenuProperties {
901                 cols: 2,
902                 rows: 1,
903                 charsPerEntry: 7,
904                 colGap: 32,
905                 cursor: menuCursor,
906                 selectedCursor: menuActiveCursor,
907                 cursorAnimation: menuCursorAnimation,
908                 selectedCursorAnimation: menuActiveCursorAnimation,
909                 font: menuFont
910         },
911         capsuleFeedLabel: "FEED",
912         capsuleChangeLabel: "CHANGE",
913         capsuleNameLabel: "NAME",
914         capsuleClassLabel: "CLASS",
915         capsuleAlignmentLabel: "ALI.",
916         capsuleTribeLabel: "TRIBE",
917         capsuleAttack1Label: "SP.1",
918         capsuleAttack2Label: "SP.2",
919         capsuleAttack3Label: "SP.3",
920         capsuleNoAttackText: "Nothing",
921         capsuleNotHungryText: "I'm not hungry.",
922         capsuleNameSelect: CharSelect {
923                 font: menuFont,
924                 cursor: Sprite {
925                         image: :"alpha-cursor.png",
926                         size: <20, 28>
927                 },
928                 chars: "0123456789ABCDEabcdeFGHIJfghijKLMNOklmnoPQRSTpqrstUVWXYuvwxyZ!?  z!?  ",
929                 width: 10,
930                 groupX: 5
931         },
932         capsuleSelectTopLeft: Sprite {
933                 image: :"capsule-sprites.png",
934                 size: <32, 8>,
935                 offset: <64, 0>
936         },
937         capsuleSelectTopRight: Sprite {
938                 image: :"capsule-sprites.png",
939                 size: <32, 8>,
940                 offset: <128, 0>
941         },
942         capsuleSelectTopRepeat: Texture {
943                 image: :"capsule-sprites.png",
944                 size: <32, 8>,
945                 offset: <96, 0>
946         },
947         capsuleSelectBottomLeft: Sprite {
948                 image: :"capsule-sprites.png",
949                 size: <32, 32>,
950                 offset: <0, 32>
951         },
952         capsuleSelectBottomRight: Sprite {
953                 image: :"capsule-sprites.png",
954                 size: <32, 32>,
955                 offset: <128, 64>
956         },
957         capsuleSelectBottomRepeat: Sprite {
958                 image: :"capsule-sprites.png",
959                 size: <32, 32>,
960                 offset: <0, 64>
961         },
962         capsuleSelectLeftRepeat: Texture {
963                 image: :"capsule-sprites.png",
964                 size: <32, 32>
965         },
966         capsuleSelectRightRepeat: Texture {
967                 image: :"capsule-sprites.png",
968                 size: <32, 32>,
969                 offset: <128, 32>
970         },
971         capsuleSelectLadder: Sprite {
972                 image: :"capsule-sprites.png",
973                 size: <32, 24>,
974                 offset: <64, 8>
975         },
976         capsuleSelectCursor: Sprite {
977                 image: :"capsule-sprites.png",
978                 size: <32, 24>,
979                 offset: <128, 8>
980         },
981         capsuleAlignmentWheel: Sprite {
982                 image: :"capsule-sprites.png",
983                 size: <128, 128>,
984                 offset: <0, 128>
985         },
986         capsuleAlignmentCursor: Sprite {
987                 image: :"capsule-sprites.png",
988                 size: <32, 32>,
989                 offset: <128, 128>
990         },
991         capsuleGrowthLabel: Sprite {
992                 image: :"capsule-feed.png",
993                 size: <32, 10>
994         },
995         capsuleGrowthBar: Sprite {
996                 image: :"capsule-feed.png",
997                 size: <8, 10>,
998                 offset: <8, 10>
999         },
1000         capsuleGrowthBarFilled: Sprite {
1001                 image: :"capsule-feed.png",
1002                 size: <8, 10>,
1003                 offset: <0, 10>
1004         }
1005 }