{ "char_z.ypos", "3" },
{ "char_z.frames", "1" },
- { "char_ae", "RocksFontEM.pcx" },
- { "char_ae.xpos", "11" },
- { "char_ae.ypos", "3" },
- { "char_ae.frames", "1" },
-
- { "char_oe", "RocksFontEM.pcx" },
- { "char_oe.xpos", "12" },
- { "char_oe.ypos", "3" },
- { "char_oe.frames", "1" },
-
- { "char_ue", "RocksFontEM.pcx" },
- { "char_ue.xpos", "13" },
- { "char_ue.ypos", "3" },
- { "char_ue.frames", "1" },
-
- { "char_copyright", "RocksFontEM.pcx" },
- { "char_copyright.xpos", "14" },
- { "char_copyright.ypos", "3" },
- { "char_copyright.frames", "1" },
+ { "char_bracketleft", "RocksFontEM.pcx" },
+ { "char_bracketleft.xpos", "11" },
+ { "char_bracketleft.ypos", "3" },
+ { "char_bracketleft.frames", "1" },
+
+ { "char_backslash", "RocksFontEM.pcx" },
+ { "char_backslash.xpos", "12" },
+ { "char_backslash.ypos", "3" },
+ { "char_backslash.frames", "1" },
+
+ { "char_bracketright", "RocksFontEM.pcx" },
+ { "char_bracketright.xpos", "13" },
+ { "char_bracketright.ypos", "3" },
+ { "char_bracketright.frames", "1" },
+
+ { "char_asciicircum", "RocksFontEM.pcx" },
+ { "char_asciicircum.xpos", "14" },
+ { "char_asciicircum.ypos", "3" },
+ { "char_asciicircum.frames", "1" },
{ "char_underscore", "RocksFontEM.pcx" },
{ "char_underscore.xpos", "15" },
{ "char_underscore.ypos", "3" },
{ "char_underscore.frames", "1" },
- { "char_empty", "RocksFontEM.pcx" },
- { "char_empty.xpos", "0" },
- { "char_empty.ypos", "4" },
- { "char_empty.frames", "1" },
+ { "char_copyright", "RocksFontEM.pcx" },
+ { "char_copyright.xpos", "0" },
+ { "char_copyright.ypos", "4" },
+ { "char_copyright.frames", "1" },
+
+ { "char_aumlaut", "RocksFontEM.pcx" },
+ { "char_aumlaut.xpos", "1" },
+ { "char_aumlaut.ypos", "4" },
+ { "char_aumlaut.frames", "1" },
+
+ { "char_oumlaut", "RocksFontEM.pcx" },
+ { "char_oumlaut.xpos", "2" },
+ { "char_oumlaut.ypos", "4" },
+ { "char_oumlaut.frames", "1" },
+
+ { "char_uumlaut", "RocksFontEM.pcx" },
+ { "char_uumlaut.xpos", "3" },
+ { "char_uumlaut.ypos", "4" },
+ { "char_uumlaut.frames", "1" },
{ "char_degree", "RocksFontEM.pcx" },
- { "char_degree.xpos", "1" },
+ { "char_degree.xpos", "4" },
{ "char_degree.ypos", "4" },
{ "char_degree.frames", "1" },
- { "char_tm", "RocksFontEM.pcx" },
- { "char_tm.xpos", "2" },
- { "char_tm.ypos", "4" },
- { "char_tm.frames", "1" },
+ { "char_trademark", "RocksFontEM.pcx" },
+ { "char_trademark.xpos", "5" },
+ { "char_trademark.ypos", "4" },
+ { "char_trademark.frames", "1" },
{ "char_cursor", "RocksFontEM.pcx" },
- { "char_cursor.xpos", "3" },
+ { "char_cursor.xpos", "6" },
{ "char_cursor.ypos", "4" },
{ "char_cursor.frames", "1" },
#define EL_CHAR_X (EL_CHAR_ASCII0 + 88)
#define EL_CHAR_Y (EL_CHAR_ASCII0 + 89)
#define EL_CHAR_Z (EL_CHAR_ASCII0 + 90)
-#define EL_CHAR_AE (EL_CHAR_ASCII0 + 91)
-#define EL_CHAR_OE (EL_CHAR_ASCII0 + 92)
-#define EL_CHAR_UE (EL_CHAR_ASCII0 + 93)
-#define EL_CHAR_COPYRIGHT (EL_CHAR_ASCII0 + 94)
+#define EL_CHAR_BRACKETLEFT (EL_CHAR_ASCII0 + 91)
+#define EL_CHAR_BACKSLASH (EL_CHAR_ASCII0 + 92)
+#define EL_CHAR_BRACKETRIGHT (EL_CHAR_ASCII0 + 93)
+#define EL_CHAR_ASCIICIRCUM (EL_CHAR_ASCII0 + 94)
#define EL_CHAR_UNDERSCORE (EL_CHAR_ASCII0 + 95)
-#define EL_CHAR_EMPTY (EL_CHAR_ASCII0 + 96)
-#define EL_CHAR_DEGREE (EL_CHAR_ASCII0 + 97)
-#define EL_CHAR_TM (EL_CHAR_ASCII0 + 98)
-#define EL_CHAR_CURSOR (EL_CHAR_ASCII0 + 99)
+#define EL_CHAR_COPYRIGHT (EL_CHAR_ASCII0 + 96)
+#define EL_CHAR_AUMLAUT (EL_CHAR_ASCII0 + 97)
+#define EL_CHAR_OUMLAUT (EL_CHAR_ASCII0 + 98)
+#define EL_CHAR_UUMLAUT (EL_CHAR_ASCII0 + 99)
+#define EL_CHAR_DEGREE (EL_CHAR_ASCII0 + 100)
+#define EL_CHAR_TRADEMARK (EL_CHAR_ASCII0 + 101)
+#define EL_CHAR_CURSOR (EL_CHAR_ASCII0 + 102)
#endif /* CONF_CHR_C */
IMG_CHAR_Z
},
{
- EL_CHAR_AE, -1, -1,
- IMG_CHAR_AE
+ EL_CHAR_BRACKETLEFT, -1, -1,
+ IMG_CHAR_BRACKETLEFT
},
{
- EL_CHAR_OE, -1, -1,
- IMG_CHAR_OE
+ EL_CHAR_BACKSLASH, -1, -1,
+ IMG_CHAR_BACKSLASH
},
{
- EL_CHAR_UE, -1, -1,
- IMG_CHAR_UE
+ EL_CHAR_BRACKETRIGHT, -1, -1,
+ IMG_CHAR_BRACKETRIGHT
},
{
- EL_CHAR_COPYRIGHT, -1, -1,
- IMG_CHAR_COPYRIGHT
+ EL_CHAR_ASCIICIRCUM, -1, -1,
+ IMG_CHAR_ASCIICIRCUM
},
{
EL_CHAR_UNDERSCORE, -1, -1,
IMG_CHAR_UNDERSCORE
},
{
- EL_CHAR_EMPTY, -1, -1,
- IMG_CHAR_EMPTY
+ EL_CHAR_COPYRIGHT, -1, -1,
+ IMG_CHAR_COPYRIGHT
+ },
+ {
+ EL_CHAR_AUMLAUT, -1, -1,
+ IMG_CHAR_AUMLAUT
+ },
+ {
+ EL_CHAR_OUMLAUT, -1, -1,
+ IMG_CHAR_OUMLAUT
+ },
+ {
+ EL_CHAR_UUMLAUT, -1, -1,
+ IMG_CHAR_UUMLAUT
},
{
EL_CHAR_DEGREE, -1, -1,
IMG_CHAR_DEGREE
},
{
- EL_CHAR_TM, -1, -1,
- IMG_CHAR_TM
+ EL_CHAR_TRADEMARK, -1, -1,
+ IMG_CHAR_TRADEMARK
},
{
EL_CHAR_CURSOR, -1, -1,
{ ".position", ARG_UNDEFINED, TYPE_STRING },
{ ".draw_xoffset", "0", TYPE_INTEGER },
{ ".draw_yoffset", "0", TYPE_INTEGER },
- { ".format", ARG_UNDEFINED, TYPE_STRING },
{ ".name", ARG_UNDEFINED, TYPE_STRING },
{ NULL, NULL, 0 }
{ "font.initial_1.height", "14" },
{ "font.initial_2", "RocksFontSmall.pcx" },
{ "font.initial_2.x", "0" },
- { "font.initial_2.y", "56" },
+ { "font.initial_2.y", "70" },
{ "font.initial_2.width", "14" },
{ "font.initial_2.height", "14" },
{ "font.initial_3", "RocksFontSmall.pcx" },
{ "font.initial_3.x", "0" },
- { "font.initial_3.y", "112" },
+ { "font.initial_3.y", "140" },
{ "font.initial_3.width", "14" },
{ "font.initial_3.height", "14" },
{ "font.initial_4", "RocksFontSmall.pcx" },
{ "font.initial_4.x", "0" },
- { "font.initial_4.y", "168" },
+ { "font.initial_4.y", "210" },
{ "font.initial_4.width", "14" },
{ "font.initial_4.height", "14" },
{ "font.title_1", "RocksFontBig.pcx" },
{ "font.title_1.x", "0" },
- { "font.title_1.y", "384" },
+ { "font.title_1.y", "480" },
{ "font.title_1.width", "32" },
{ "font.title_1.height", "32" },
{ "font.title_1.LEVELS", "RocksFontBig.pcx" },
{ "font.title_1.LEVELS.x", "0" },
- { "font.title_1.LEVELS.y", "256" },
+ { "font.title_1.LEVELS.y", "320" },
{ "font.title_1.LEVELS.width", "32" },
{ "font.title_1.LEVELS.height", "32" },
{ "font.title_2", "RocksFontSmall.pcx" },
{ "font.menu_1", "RocksFontBig.pcx" },
{ "font.menu_1.x", "0" },
- { "font.menu_1.y", "256" },
+ { "font.menu_1.y", "320" },
{ "font.menu_1.width", "32" },
{ "font.menu_1.height", "32" },
{ "font.menu_2", "RocksFontMedium.pcx" },
{ "font.menu_2.x", "0" },
- { "font.menu_2.y", "256" },
+ { "font.menu_2.y", "320" },
{ "font.menu_2.width", "16" },
{ "font.menu_2.height", "32" },
{ "font.text_1", "RocksFontSmall.pcx" },
{ "font.text_1.x", "0" },
- { "font.text_1.y", "112" },
+ { "font.text_1.y", "140" },
{ "font.text_1.width", "14" },
{ "font.text_1.height", "14" },
{ "font.text_1.LEVELS", "RocksFontMedium.pcx" },
{ "font.text_1.LEVELS.height", "32" },
{ "font.text_1.SCORES", "RocksFontBig.pcx" },
{ "font.text_1.SCORES.x", "0" },
- { "font.text_1.SCORES.y", "256" },
+ { "font.text_1.SCORES.y", "320" },
{ "font.text_1.SCORES.width", "32" },
{ "font.text_1.SCORES.height", "32" },
{ "font.text_1.PREVIEW", "RocksFontEM.pcx" },
{ "font.text_1.PREVIEW.height", "16" },
{ "font.text_2", "RocksFontSmall.pcx" },
{ "font.text_2.x", "0" },
- { "font.text_2.y", "168" },
+ { "font.text_2.y", "210" },
{ "font.text_2.width", "14" },
{ "font.text_2.height", "14" },
{ "font.text_2.LEVELS", "RocksFontMedium.pcx" },
{ "font.text_2.LEVELS.x", "0" },
- { "font.text_2.LEVELS.y", "128" },
+ { "font.text_2.LEVELS.y", "160" },
{ "font.text_2.LEVELS.width", "16" },
{ "font.text_2.LEVELS.height", "32" },
{ "font.text_2.SCORES", "RocksFontMedium.pcx" },
{ "font.text_2.SCORES.x", "0" },
- { "font.text_2.SCORES.y", "384" },
+ { "font.text_2.SCORES.y", "480" },
{ "font.text_2.SCORES.width", "16" },
{ "font.text_2.SCORES.height", "32" },
{ "font.text_2.PREVIEW", "RocksFontEM.pcx" },
{ "font.text_3.height", "14" },
{ "font.text_3.LEVELS", "RocksFontMedium.pcx" },
{ "font.text_3.LEVELS.x", "0" },
- { "font.text_3.LEVELS.y", "256" },
+ { "font.text_3.LEVELS.y", "320" },
{ "font.text_3.LEVELS.width", "16" },
{ "font.text_3.LEVELS.height", "32" },
{ "font.text_3.SCORES", "RocksFontBig.pcx" },
{ "font.text_3.PREVIEW.height", "16" },
{ "font.text_4", "RocksFontSmall.pcx" },
{ "font.text_4.x", "0" },
- { "font.text_4.y", "56" },
+ { "font.text_4.y", "70" },
{ "font.text_4.width", "14" },
{ "font.text_4.height", "14" },
{ "font.text_4.LEVELS", "RocksFontMedium.pcx" },
{ "font.text_4.LEVELS.x", "0" },
- { "font.text_4.LEVELS.y", "384" },
+ { "font.text_4.LEVELS.y", "480" },
{ "font.text_4.LEVELS.width", "16" },
{ "font.text_4.LEVELS.height", "32" },
{ "font.text_4.SCORES", "RocksFontMedium.pcx" },
{ "font.input", "RocksFontSmall.pcx" },
{ "font.input.x", "0" },
- { "font.input.y", "168" },
+ { "font.input.y", "210" },
{ "font.input.width", "14" },
{ "font.input.height", "14" },
{ "font.input.MAIN", "RocksFontBig.pcx" },
{ "font.input.active.height", "14" },
{ "font.input.active.MAIN", "RocksFontBig.pcx" },
{ "font.input.active.MAIN.x", "0" },
- { "font.input.active.MAIN.y", "384" },
+ { "font.input.active.MAIN.y", "480" },
{ "font.input.active.MAIN.width", "32" },
{ "font.input.active.MAIN.height", "32" },
{ "font.input.active.SETUP", "RocksFontBig.pcx" },
{ "font.option_off", "RocksFontBig.pcx" },
{ "font.option_off.x", "0" },
- { "font.option_off.y", "128" },
+ { "font.option_off.y", "160" },
{ "font.option_off.width", "32" },
{ "font.option_off.height", "32" },
{ "font.option_on", "RocksFontBig.pcx" },
{ "font.option_on.x", "0" },
- { "font.option_on.y", "384" },
+ { "font.option_on.y", "480" },
{ "font.option_on.width", "32" },
{ "font.option_on.height", "32" },
{ "font.value_1", "RocksFontBig.pcx" },
{ "font.value_1.x", "0" },
- { "font.value_1.y", "384" },
+ { "font.value_1.y", "480" },
{ "font.value_1.width", "32" },
{ "font.value_1.height", "32" },
{ "font.value_2", "RocksFontMedium.pcx" },
{ "font.value_2.x", "0" },
- { "font.value_2.y", "384" },
+ { "font.value_2.y", "480" },
{ "font.value_2.width", "16" },
{ "font.value_2.height", "32" },
{ "font.value_old", "RocksFontBig.pcx" },
{ "font.value_old.x", "0" },
- { "font.value_old.y", "128" },
+ { "font.value_old.y", "160" },
{ "font.value_old.width", "32" },
{ "font.value_old.height", "32" },
{ "font.level_number", "RocksFontSmall.pcx" },
{ "font.level_number.x", "0" },
- { "font.level_number.y", "280" },
+ { "font.level_number.y", "350" },
{ "font.level_number.width", "10" },
{ "font.level_number.height", "14" },
{ "font.tape_recorder", "RocksFontSmall.pcx" },
{ "font.tape_recorder.x", "0" },
- { "font.tape_recorder.y", "224" },
+ { "font.tape_recorder.y", "280" },
{ "font.tape_recorder.width", "11" },
{ "font.tape_recorder.height", "14" },
#define IMG_CHAR_X 638
#define IMG_CHAR_Y 639
#define IMG_CHAR_Z 640
-#define IMG_CHAR_AE 641
-#define IMG_CHAR_OE 642
-#define IMG_CHAR_UE 643
-#define IMG_CHAR_COPYRIGHT 644
+#define IMG_CHAR_BRACKETLEFT 641
+#define IMG_CHAR_BACKSLASH 642
+#define IMG_CHAR_BRACKETRIGHT 643
+#define IMG_CHAR_ASCIICIRCUM 644
#define IMG_CHAR_UNDERSCORE 645
-#define IMG_CHAR_EMPTY 646
-#define IMG_CHAR_DEGREE 647
-#define IMG_CHAR_TM 648
-#define IMG_CHAR_CURSOR 649
-#define IMG_CUSTOM_1 650
-#define IMG_CUSTOM_2 651
-#define IMG_CUSTOM_3 652
-#define IMG_CUSTOM_4 653
-#define IMG_CUSTOM_5 654
-#define IMG_CUSTOM_6 655
-#define IMG_CUSTOM_7 656
-#define IMG_CUSTOM_8 657
-#define IMG_CUSTOM_9 658
-#define IMG_CUSTOM_10 659
-#define IMG_CUSTOM_11 660
-#define IMG_CUSTOM_12 661
-#define IMG_CUSTOM_13 662
-#define IMG_CUSTOM_14 663
-#define IMG_CUSTOM_15 664
-#define IMG_CUSTOM_16 665
-#define IMG_CUSTOM_17 666
-#define IMG_CUSTOM_18 667
-#define IMG_CUSTOM_19 668
-#define IMG_CUSTOM_20 669
-#define IMG_CUSTOM_21 670
-#define IMG_CUSTOM_22 671
-#define IMG_CUSTOM_23 672
-#define IMG_CUSTOM_24 673
-#define IMG_CUSTOM_25 674
-#define IMG_CUSTOM_26 675
-#define IMG_CUSTOM_27 676
-#define IMG_CUSTOM_28 677
-#define IMG_CUSTOM_29 678
-#define IMG_CUSTOM_30 679
-#define IMG_CUSTOM_31 680
-#define IMG_CUSTOM_32 681
-#define IMG_CUSTOM_33 682
-#define IMG_CUSTOM_34 683
-#define IMG_CUSTOM_35 684
-#define IMG_CUSTOM_36 685
-#define IMG_CUSTOM_37 686
-#define IMG_CUSTOM_38 687
-#define IMG_CUSTOM_39 688
-#define IMG_CUSTOM_40 689
-#define IMG_CUSTOM_41 690
-#define IMG_CUSTOM_42 691
-#define IMG_CUSTOM_43 692
-#define IMG_CUSTOM_44 693
-#define IMG_CUSTOM_45 694
-#define IMG_CUSTOM_46 695
-#define IMG_CUSTOM_47 696
-#define IMG_CUSTOM_48 697
-#define IMG_CUSTOM_49 698
-#define IMG_CUSTOM_50 699
-#define IMG_CUSTOM_51 700
-#define IMG_CUSTOM_52 701
-#define IMG_CUSTOM_53 702
-#define IMG_CUSTOM_54 703
-#define IMG_CUSTOM_55 704
-#define IMG_CUSTOM_56 705
-#define IMG_CUSTOM_57 706
-#define IMG_CUSTOM_58 707
-#define IMG_CUSTOM_59 708
-#define IMG_CUSTOM_60 709
-#define IMG_CUSTOM_61 710
-#define IMG_CUSTOM_62 711
-#define IMG_CUSTOM_63 712
-#define IMG_CUSTOM_64 713
-#define IMG_CUSTOM_65 714
-#define IMG_CUSTOM_66 715
-#define IMG_CUSTOM_67 716
-#define IMG_CUSTOM_68 717
-#define IMG_CUSTOM_69 718
-#define IMG_CUSTOM_70 719
-#define IMG_CUSTOM_71 720
-#define IMG_CUSTOM_72 721
-#define IMG_CUSTOM_73 722
-#define IMG_CUSTOM_74 723
-#define IMG_CUSTOM_75 724
-#define IMG_CUSTOM_76 725
-#define IMG_CUSTOM_77 726
-#define IMG_CUSTOM_78 727
-#define IMG_CUSTOM_79 728
-#define IMG_CUSTOM_80 729
-#define IMG_CUSTOM_81 730
-#define IMG_CUSTOM_82 731
-#define IMG_CUSTOM_83 732
-#define IMG_CUSTOM_84 733
-#define IMG_CUSTOM_85 734
-#define IMG_CUSTOM_86 735
-#define IMG_CUSTOM_87 736
-#define IMG_CUSTOM_88 737
-#define IMG_CUSTOM_89 738
-#define IMG_CUSTOM_90 739
-#define IMG_CUSTOM_91 740
-#define IMG_CUSTOM_92 741
-#define IMG_CUSTOM_93 742
-#define IMG_CUSTOM_94 743
-#define IMG_CUSTOM_95 744
-#define IMG_CUSTOM_96 745
-#define IMG_CUSTOM_97 746
-#define IMG_CUSTOM_98 747
-#define IMG_CUSTOM_99 748
-#define IMG_CUSTOM_100 749
-#define IMG_CUSTOM_101 750
-#define IMG_CUSTOM_102 751
-#define IMG_CUSTOM_103 752
-#define IMG_CUSTOM_104 753
-#define IMG_CUSTOM_105 754
-#define IMG_CUSTOM_106 755
-#define IMG_CUSTOM_107 756
-#define IMG_CUSTOM_108 757
-#define IMG_CUSTOM_109 758
-#define IMG_CUSTOM_110 759
-#define IMG_CUSTOM_111 760
-#define IMG_CUSTOM_112 761
-#define IMG_CUSTOM_113 762
-#define IMG_CUSTOM_114 763
-#define IMG_CUSTOM_115 764
-#define IMG_CUSTOM_116 765
-#define IMG_CUSTOM_117 766
-#define IMG_CUSTOM_118 767
-#define IMG_CUSTOM_119 768
-#define IMG_CUSTOM_120 769
-#define IMG_CUSTOM_121 770
-#define IMG_CUSTOM_122 771
-#define IMG_CUSTOM_123 772
-#define IMG_CUSTOM_124 773
-#define IMG_CUSTOM_125 774
-#define IMG_CUSTOM_126 775
-#define IMG_CUSTOM_127 776
-#define IMG_CUSTOM_128 777
-#define IMG_TOON_1 778
-#define IMG_TOON_2 779
-#define IMG_TOON_3 780
-#define IMG_TOON_4 781
-#define IMG_TOON_5 782
-#define IMG_TOON_6 783
-#define IMG_TOON_7 784
-#define IMG_TOON_8 785
-#define IMG_TOON_9 786
-#define IMG_TOON_10 787
-#define IMG_TOON_11 788
-#define IMG_TOON_12 789
-#define IMG_TOON_13 790
-#define IMG_TOON_14 791
-#define IMG_TOON_15 792
-#define IMG_TOON_16 793
-#define IMG_TOON_17 794
-#define IMG_TOON_18 795
-#define IMG_TOON_19 796
-#define IMG_TOON_20 797
-#define IMG_MENU_CALIBRATE_RED 798
-#define IMG_MENU_CALIBRATE_BLUE 799
-#define IMG_MENU_CALIBRATE_YELLOW 800
-#define IMG_MENU_BUTTON 801
-#define IMG_MENU_BUTTON_ACTIVE 802
-#define IMG_MENU_BUTTON_LEFT 803
-#define IMG_MENU_BUTTON_RIGHT 804
-#define IMG_MENU_BUTTON_UP 805
-#define IMG_MENU_BUTTON_DOWN 806
-#define IMG_MENU_BUTTON_LEFT_ACTIVE 807
-#define IMG_MENU_BUTTON_RIGHT_ACTIVE 808
-#define IMG_MENU_BUTTON_UP_ACTIVE 809
-#define IMG_MENU_BUTTON_DOWN_ACTIVE 810
-#define IMG_MENU_SCROLLBAR 811
-#define IMG_MENU_SCROLLBAR_ACTIVE 812
-#define IMG_FONT_INITIAL_1 813
-#define IMG_FONT_INITIAL_2 814
-#define IMG_FONT_INITIAL_3 815
-#define IMG_FONT_INITIAL_4 816
-#define IMG_FONT_TITLE_1 817
-#define IMG_FONT_TITLE_1_LEVELS 818
-#define IMG_FONT_TITLE_2 819
-#define IMG_FONT_MENU_1 820
-#define IMG_FONT_MENU_2 821
-#define IMG_FONT_TEXT_1 822
-#define IMG_FONT_TEXT_1_LEVELS 823
-#define IMG_FONT_TEXT_1_SCORES 824
-#define IMG_FONT_TEXT_1_PREVIEW 825
-#define IMG_FONT_TEXT_2 826
-#define IMG_FONT_TEXT_2_LEVELS 827
-#define IMG_FONT_TEXT_2_SCORES 828
-#define IMG_FONT_TEXT_2_PREVIEW 829
-#define IMG_FONT_TEXT_3 830
-#define IMG_FONT_TEXT_3_LEVELS 831
-#define IMG_FONT_TEXT_3_SCORES 832
-#define IMG_FONT_TEXT_3_PREVIEW 833
-#define IMG_FONT_TEXT_4 834
-#define IMG_FONT_TEXT_4_LEVELS 835
-#define IMG_FONT_TEXT_4_SCORES 836
-#define IMG_FONT_INPUT 837
-#define IMG_FONT_INPUT_MAIN 838
-#define IMG_FONT_INPUT_ACTIVE 839
-#define IMG_FONT_INPUT_ACTIVE_MAIN 840
-#define IMG_FONT_INPUT_ACTIVE_SETUP 841
-#define IMG_FONT_OPTION_OFF 842
-#define IMG_FONT_OPTION_ON 843
-#define IMG_FONT_VALUE_1 844
-#define IMG_FONT_VALUE_2 845
-#define IMG_FONT_VALUE_OLD 846
-#define IMG_FONT_LEVEL_NUMBER 847
-#define IMG_FONT_TAPE_RECORDER 848
-#define IMG_GLOBAL_BORDER 849
-#define IMG_GLOBAL_DOOR 850
-#define IMG_EDITOR_ELEMENT_BORDER 851
-#define IMG_BACKGROUND 852
-#define IMG_BACKGROUND_MAIN 853
-#define IMG_BACKGROUND_LEVELS 854
-#define IMG_BACKGROUND_SCORES 855
-#define IMG_BACKGROUND_EDITOR 856
-#define IMG_BACKGROUND_INFO 857
-#define IMG_BACKGROUND_SETUP 858
-#define IMG_BACKGROUND_DOOR 859
-#define IMG_INFO_FONT_EM_1 860
-#define IMG_INFO_FONT_EM_2 861
-#define IMG_INFO_FONT_EM_3 862
-#define IMG_INFO_FONT_EM_4 863
-#define IMG_INFO_FONT_EM_5 864
+#define IMG_CHAR_COPYRIGHT 646
+#define IMG_CHAR_AUMLAUT 647
+#define IMG_CHAR_OUMLAUT 648
+#define IMG_CHAR_UUMLAUT 649
+#define IMG_CHAR_DEGREE 650
+#define IMG_CHAR_TRADEMARK 651
+#define IMG_CHAR_CURSOR 652
+#define IMG_CUSTOM_1 653
+#define IMG_CUSTOM_2 654
+#define IMG_CUSTOM_3 655
+#define IMG_CUSTOM_4 656
+#define IMG_CUSTOM_5 657
+#define IMG_CUSTOM_6 658
+#define IMG_CUSTOM_7 659
+#define IMG_CUSTOM_8 660
+#define IMG_CUSTOM_9 661
+#define IMG_CUSTOM_10 662
+#define IMG_CUSTOM_11 663
+#define IMG_CUSTOM_12 664
+#define IMG_CUSTOM_13 665
+#define IMG_CUSTOM_14 666
+#define IMG_CUSTOM_15 667
+#define IMG_CUSTOM_16 668
+#define IMG_CUSTOM_17 669
+#define IMG_CUSTOM_18 670
+#define IMG_CUSTOM_19 671
+#define IMG_CUSTOM_20 672
+#define IMG_CUSTOM_21 673
+#define IMG_CUSTOM_22 674
+#define IMG_CUSTOM_23 675
+#define IMG_CUSTOM_24 676
+#define IMG_CUSTOM_25 677
+#define IMG_CUSTOM_26 678
+#define IMG_CUSTOM_27 679
+#define IMG_CUSTOM_28 680
+#define IMG_CUSTOM_29 681
+#define IMG_CUSTOM_30 682
+#define IMG_CUSTOM_31 683
+#define IMG_CUSTOM_32 684
+#define IMG_CUSTOM_33 685
+#define IMG_CUSTOM_34 686
+#define IMG_CUSTOM_35 687
+#define IMG_CUSTOM_36 688
+#define IMG_CUSTOM_37 689
+#define IMG_CUSTOM_38 690
+#define IMG_CUSTOM_39 691
+#define IMG_CUSTOM_40 692
+#define IMG_CUSTOM_41 693
+#define IMG_CUSTOM_42 694
+#define IMG_CUSTOM_43 695
+#define IMG_CUSTOM_44 696
+#define IMG_CUSTOM_45 697
+#define IMG_CUSTOM_46 698
+#define IMG_CUSTOM_47 699
+#define IMG_CUSTOM_48 700
+#define IMG_CUSTOM_49 701
+#define IMG_CUSTOM_50 702
+#define IMG_CUSTOM_51 703
+#define IMG_CUSTOM_52 704
+#define IMG_CUSTOM_53 705
+#define IMG_CUSTOM_54 706
+#define IMG_CUSTOM_55 707
+#define IMG_CUSTOM_56 708
+#define IMG_CUSTOM_57 709
+#define IMG_CUSTOM_58 710
+#define IMG_CUSTOM_59 711
+#define IMG_CUSTOM_60 712
+#define IMG_CUSTOM_61 713
+#define IMG_CUSTOM_62 714
+#define IMG_CUSTOM_63 715
+#define IMG_CUSTOM_64 716
+#define IMG_CUSTOM_65 717
+#define IMG_CUSTOM_66 718
+#define IMG_CUSTOM_67 719
+#define IMG_CUSTOM_68 720
+#define IMG_CUSTOM_69 721
+#define IMG_CUSTOM_70 722
+#define IMG_CUSTOM_71 723
+#define IMG_CUSTOM_72 724
+#define IMG_CUSTOM_73 725
+#define IMG_CUSTOM_74 726
+#define IMG_CUSTOM_75 727
+#define IMG_CUSTOM_76 728
+#define IMG_CUSTOM_77 729
+#define IMG_CUSTOM_78 730
+#define IMG_CUSTOM_79 731
+#define IMG_CUSTOM_80 732
+#define IMG_CUSTOM_81 733
+#define IMG_CUSTOM_82 734
+#define IMG_CUSTOM_83 735
+#define IMG_CUSTOM_84 736
+#define IMG_CUSTOM_85 737
+#define IMG_CUSTOM_86 738
+#define IMG_CUSTOM_87 739
+#define IMG_CUSTOM_88 740
+#define IMG_CUSTOM_89 741
+#define IMG_CUSTOM_90 742
+#define IMG_CUSTOM_91 743
+#define IMG_CUSTOM_92 744
+#define IMG_CUSTOM_93 745
+#define IMG_CUSTOM_94 746
+#define IMG_CUSTOM_95 747
+#define IMG_CUSTOM_96 748
+#define IMG_CUSTOM_97 749
+#define IMG_CUSTOM_98 750
+#define IMG_CUSTOM_99 751
+#define IMG_CUSTOM_100 752
+#define IMG_CUSTOM_101 753
+#define IMG_CUSTOM_102 754
+#define IMG_CUSTOM_103 755
+#define IMG_CUSTOM_104 756
+#define IMG_CUSTOM_105 757
+#define IMG_CUSTOM_106 758
+#define IMG_CUSTOM_107 759
+#define IMG_CUSTOM_108 760
+#define IMG_CUSTOM_109 761
+#define IMG_CUSTOM_110 762
+#define IMG_CUSTOM_111 763
+#define IMG_CUSTOM_112 764
+#define IMG_CUSTOM_113 765
+#define IMG_CUSTOM_114 766
+#define IMG_CUSTOM_115 767
+#define IMG_CUSTOM_116 768
+#define IMG_CUSTOM_117 769
+#define IMG_CUSTOM_118 770
+#define IMG_CUSTOM_119 771
+#define IMG_CUSTOM_120 772
+#define IMG_CUSTOM_121 773
+#define IMG_CUSTOM_122 774
+#define IMG_CUSTOM_123 775
+#define IMG_CUSTOM_124 776
+#define IMG_CUSTOM_125 777
+#define IMG_CUSTOM_126 778
+#define IMG_CUSTOM_127 779
+#define IMG_CUSTOM_128 780
+#define IMG_TOON_1 781
+#define IMG_TOON_2 782
+#define IMG_TOON_3 783
+#define IMG_TOON_4 784
+#define IMG_TOON_5 785
+#define IMG_TOON_6 786
+#define IMG_TOON_7 787
+#define IMG_TOON_8 788
+#define IMG_TOON_9 789
+#define IMG_TOON_10 790
+#define IMG_TOON_11 791
+#define IMG_TOON_12 792
+#define IMG_TOON_13 793
+#define IMG_TOON_14 794
+#define IMG_TOON_15 795
+#define IMG_TOON_16 796
+#define IMG_TOON_17 797
+#define IMG_TOON_18 798
+#define IMG_TOON_19 799
+#define IMG_TOON_20 800
+#define IMG_MENU_CALIBRATE_RED 801
+#define IMG_MENU_CALIBRATE_BLUE 802
+#define IMG_MENU_CALIBRATE_YELLOW 803
+#define IMG_MENU_BUTTON 804
+#define IMG_MENU_BUTTON_ACTIVE 805
+#define IMG_MENU_BUTTON_LEFT 806
+#define IMG_MENU_BUTTON_RIGHT 807
+#define IMG_MENU_BUTTON_UP 808
+#define IMG_MENU_BUTTON_DOWN 809
+#define IMG_MENU_BUTTON_LEFT_ACTIVE 810
+#define IMG_MENU_BUTTON_RIGHT_ACTIVE 811
+#define IMG_MENU_BUTTON_UP_ACTIVE 812
+#define IMG_MENU_BUTTON_DOWN_ACTIVE 813
+#define IMG_MENU_SCROLLBAR 814
+#define IMG_MENU_SCROLLBAR_ACTIVE 815
+#define IMG_FONT_INITIAL_1 816
+#define IMG_FONT_INITIAL_2 817
+#define IMG_FONT_INITIAL_3 818
+#define IMG_FONT_INITIAL_4 819
+#define IMG_FONT_TITLE_1 820
+#define IMG_FONT_TITLE_1_LEVELS 821
+#define IMG_FONT_TITLE_2 822
+#define IMG_FONT_MENU_1 823
+#define IMG_FONT_MENU_2 824
+#define IMG_FONT_TEXT_1 825
+#define IMG_FONT_TEXT_1_LEVELS 826
+#define IMG_FONT_TEXT_1_SCORES 827
+#define IMG_FONT_TEXT_1_PREVIEW 828
+#define IMG_FONT_TEXT_2 829
+#define IMG_FONT_TEXT_2_LEVELS 830
+#define IMG_FONT_TEXT_2_SCORES 831
+#define IMG_FONT_TEXT_2_PREVIEW 832
+#define IMG_FONT_TEXT_3 833
+#define IMG_FONT_TEXT_3_LEVELS 834
+#define IMG_FONT_TEXT_3_SCORES 835
+#define IMG_FONT_TEXT_3_PREVIEW 836
+#define IMG_FONT_TEXT_4 837
+#define IMG_FONT_TEXT_4_LEVELS 838
+#define IMG_FONT_TEXT_4_SCORES 839
+#define IMG_FONT_INPUT 840
+#define IMG_FONT_INPUT_MAIN 841
+#define IMG_FONT_INPUT_ACTIVE 842
+#define IMG_FONT_INPUT_ACTIVE_MAIN 843
+#define IMG_FONT_INPUT_ACTIVE_SETUP 844
+#define IMG_FONT_OPTION_OFF 845
+#define IMG_FONT_OPTION_ON 846
+#define IMG_FONT_VALUE_1 847
+#define IMG_FONT_VALUE_2 848
+#define IMG_FONT_VALUE_OLD 849
+#define IMG_FONT_LEVEL_NUMBER 850
+#define IMG_FONT_TAPE_RECORDER 851
+#define IMG_GLOBAL_BORDER 852
+#define IMG_GLOBAL_DOOR 853
+#define IMG_EDITOR_ELEMENT_BORDER 854
+#define IMG_BACKGROUND 855
+#define IMG_BACKGROUND_MAIN 856
+#define IMG_BACKGROUND_LEVELS 857
+#define IMG_BACKGROUND_SCORES 858
+#define IMG_BACKGROUND_EDITOR 859
+#define IMG_BACKGROUND_INFO 860
+#define IMG_BACKGROUND_SETUP 861
+#define IMG_BACKGROUND_DOOR 862
+#define IMG_INFO_FONT_EM_1 863
+#define IMG_INFO_FONT_EM_2 864
+#define IMG_INFO_FONT_EM_3 865
+#define IMG_INFO_FONT_EM_4 866
+#define IMG_INFO_FONT_EM_5 867
-#define NUM_IMAGE_FILES 865
+#define NUM_IMAGE_FILES 868
#endif /* CONF_GFX_H */
-#define COMPILE_DATE_STRING "[2003-04-05 01:37]"
+#define COMPILE_DATE_STRING "[2003-04-06 02:20]"
EL_CHAR('X'),
EL_CHAR('Y'),
EL_CHAR('Z'),
- EL_CHAR('Ä'),
+ EL_CHAR('['),
- EL_CHAR('Ö'),
- EL_CHAR('Ü'),
+ EL_CHAR('\\'),
+ EL_CHAR(']'),
EL_CHAR('^'),
EL_CHAR('_'),
- EL_CHAR(' '),
+ EL_CHAR('©'),
+ EL_CHAR('Ä'),
+ EL_CHAR('Ö'),
+ EL_CHAR('Ü'),
+
EL_CHAR('°'),
- EL_CHAR('´'),
- EL_CHAR('|')
+ EL_CHAR('®'),
+ EL_CHAR(FONT_ASCII_CURSOR),
+ EL_CHAR(' ')
};
static int num_editor_el_chars = SIZEOF_ARRAY_INT(editor_el_chars);
if (letter >= 'a' && letter <= 'z')
letter_element = EL_CHAR_ASCII0 + letter + (int)('A' - 'a');
else if (letter == 'ä' || letter == 'Ä')
- letter_element = EL_CHAR_AE;
+ letter_element = EL_CHAR_AUMLAUT;
else if (letter == 'ö' || letter == 'Ö')
- letter_element = EL_CHAR_OE;
+ letter_element = EL_CHAR_OUMLAUT;
else if (letter == 'ü' || letter == 'Ü')
- letter_element = EL_CHAR_UE;
+ letter_element = EL_CHAR_UUMLAUT;
else if (letter == '^')
letter_element = EL_CHAR_COPYRIGHT;
else
int font_bitmap_id = font_info[i].special_bitmap_id[j];
int graphic = font_info[i].special_graphic[j];
+ /* set 'graphic_info' for font entries, if uninitialized */
+ if (graphic_info[graphic].anim_frames < MIN_NUM_CHARS_PER_FONT)
+ {
+ graphic_info[graphic].anim_frames = DEFAULT_NUM_CHARS_PER_FONT;
+ graphic_info[graphic].anim_frames_per_line= DEFAULT_NUM_CHARS_PER_LINE;
+ }
+
/* copy font relevant information from graphics information */
font_bitmap_info[font_bitmap_id].bitmap = graphic_info[graphic].bitmap;
font_bitmap_info[font_bitmap_id].src_x = graphic_info[graphic].src_x;
font_bitmap_info[font_bitmap_id].height = graphic_info[graphic].height;
font_bitmap_info[font_bitmap_id].draw_x = graphic_info[graphic].draw_x;
font_bitmap_info[font_bitmap_id].draw_y = graphic_info[graphic].draw_y;
+
+ font_bitmap_info[font_bitmap_id].num_chars =
+ graphic_info[graphic].anim_frames;
+ font_bitmap_info[font_bitmap_id].num_chars_per_line =
+ graphic_info[graphic].anim_frames_per_line;
}
}
static void set_graphic_parameters(int graphic, char **parameter_raw)
{
Bitmap *src_bitmap = getBitmapFromImageID(graphic);
- int num_xtiles = (src_bitmap ? src_bitmap->width : TILEX) / TILEX;
- int num_ytiles = (src_bitmap ? src_bitmap->height * 2 / 3 : TILEY) / TILEY;
int parameter[NUM_GFX_ARGS];
+ int num_xtiles = 1, num_ytiles = 1;
int i;
/* get integer values from string parameters */
if (parameter[GFX_ARG_HEIGHT] != ARG_UNDEFINED_VALUE)
graphic_info[graphic].height = parameter[GFX_ARG_HEIGHT];
- /* correct x or y offset dependant of vertical or horizontal frame order */
- if (parameter[GFX_ARG_VERTICAL]) /* frames are ordered vertically */
+ if (src_bitmap)
{
- if (parameter[GFX_ARG_OFFSET] != ARG_UNDEFINED_VALUE)
- graphic_info[graphic].offset_y = parameter[GFX_ARG_OFFSET];
- else
- graphic_info[graphic].offset_y = graphic_info[graphic].height;
+ num_xtiles = src_bitmap->width / graphic_info[graphic].width;
+ num_ytiles = src_bitmap->height / graphic_info[graphic].height;
}
+
+ /* correct x or y offset dependant of vertical or horizontal frame order */
+ if (parameter[GFX_ARG_VERTICAL]) /* frames are ordered vertically */
+ graphic_info[graphic].offset_y =
+ (parameter[GFX_ARG_OFFSET] != ARG_UNDEFINED_VALUE ?
+ parameter[GFX_ARG_OFFSET] : graphic_info[graphic].height);
else /* frames are ordered horizontally */
- {
- if (parameter[GFX_ARG_OFFSET] != ARG_UNDEFINED_VALUE)
- graphic_info[graphic].offset_x = parameter[GFX_ARG_OFFSET];
- else
- graphic_info[graphic].offset_x = graphic_info[graphic].width;
- }
+ graphic_info[graphic].offset_x =
+ (parameter[GFX_ARG_OFFSET] != ARG_UNDEFINED_VALUE ?
+ parameter[GFX_ARG_OFFSET] : graphic_info[graphic].width);
/* optionally, the x and y offset of frames can be specified directly */
if (parameter[GFX_ARG_XOFFSET] != ARG_UNDEFINED_VALUE)
else
graphic_info[graphic].anim_frames = 1;
+ graphic_info[graphic].anim_frames_per_line =
+ (parameter[GFX_ARG_FRAMES_PER_LINE] != ARG_UNDEFINED_VALUE ?
+ parameter[GFX_ARG_FRAMES_PER_LINE] : graphic_info[graphic].anim_frames);
+
graphic_info[graphic].anim_delay = parameter[GFX_ARG_DELAY];
if (graphic_info[graphic].anim_delay == 0) /* delay must be at least 1 */
graphic_info[graphic].anim_delay = 1;
- if (parameter[GFX_ARG_ANIM_MODE] != ANIM_NONE)
- graphic_info[graphic].anim_mode = parameter[GFX_ARG_ANIM_MODE];
- else if (graphic_info[graphic].anim_frames > 1)
- graphic_info[graphic].anim_mode = ANIM_LOOP;
+ graphic_info[graphic].anim_mode = parameter[GFX_ARG_ANIM_MODE];
+ if (graphic_info[graphic].anim_frames == 1)
+ graphic_info[graphic].anim_mode = ANIM_NONE;
/* automatically determine correct start frame, if not defined */
if (parameter[GFX_ARG_START_FRAME] == ARG_UNDEFINED_VALUE)
}
}
+ for (j=0; j < NUM_INITIAL_FONTS; j++)
+ {
+ font_initial[j].num_chars = DEFAULT_NUM_CHARS_PER_FONT;
+ font_initial[j].num_chars_per_line = DEFAULT_NUM_CHARS_PER_LINE;
+ }
+
if (filename_font_initial == NULL) /* should not happen */
Error(ERR_EXIT, "cannot get filename for '%s'", CONFIG_TOKEN_FONT_INITIAL);
if (gi->type & GD_TYPE_TEXTINPUT)
{
int font_nr = gi->text.font_type;
- int font_bitmap_id = gfx.select_font_function(font_nr);
- struct FontBitmapInfo *font = &gfx.font_bitmap_info[font_bitmap_id];
int font_width = getFontWidth(font_nr);
int font_height = getFontHeight(font_nr);
int border_size = gi->border.size;
+ Bitmap *src_bitmap;
int src_x, src_y;
gi->width = 2 * border_size + (gi->text.size + 1) * font_width;
gi->height = 2 * border_size + font_height;
- if (!getFontChar(font_nr, '|', &src_x, &src_y))
- Error(ERR_EXIT, "text input gadget incomplete (cannot get cursor)");
-
+ getFontCharSource(font_nr, FONT_ASCII_CURSOR, &src_bitmap, &src_x, &src_y);
src_x += font_width / 2;
src_y += font_height / 2;
- gi->text.inverse_color = GetPixel(font->bitmap, src_x, src_y);
+ gi->text.inverse_color = GetPixel(src_bitmap, src_x, src_y);
}
if (gi->type & GD_TYPE_SELECTBOX)
{
int font_nr = gi->selectbox.font_type;
- int font_bitmap_id = gfx.select_font_function(font_nr);
- struct FontBitmapInfo *font = &gfx.font_bitmap_info[font_bitmap_id];
int font_width = getFontWidth(font_nr);
int font_height = getFontHeight(font_nr);
int border_size = gi->border.size;
int button_size = gi->border.size_selectbutton;
+ Bitmap *src_bitmap;
int src_x, src_y;
gi->width = 2 * border_size + gi->text.size * font_width + button_size;
if (gi->selectbox.y < 0)
gi->selectbox.y = gfx.real_sy + gfx.full_sysize - gi->selectbox.height;
- if (!getFontChar(font_nr, '|', &src_x, &src_y))
- Error(ERR_EXIT, "selectbox gadget incomplete (cannot get cursor)");
-
+ getFontCharSource(font_nr, FONT_ASCII_CURSOR, &src_bitmap, &src_x, &src_y);
src_x += font_width / 2;
src_y += font_height / 2;
- gi->selectbox.inverse_color = GetPixel(font->bitmap, src_x, src_y);
+ gi->selectbox.inverse_color = GetPixel(src_bitmap, src_x, src_y);
/* always start with closed selectbox */
gi->selectbox.open = FALSE;
string_has_parameter(value, "pingpong") ? ANIM_PINGPONG :
string_has_parameter(value, "pingpong2") ? ANIM_PINGPONG2 :
string_has_parameter(value, "random") ? ANIM_RANDOM :
+ string_has_parameter(value, "none") ? ANIM_NONE :
ANIM_LOOP);
if (string_has_parameter(value, "reverse"))
int src_x, src_y; /* start position of animation frames */
int width, height; /* width/height of each animation frame */
int draw_x, draw_y; /* offset for drawing font characters */
+ int num_chars;
+ int num_chars_per_line;
#if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
Pixmap *clip_mask; /* single-char-only clip mask array for X11 */
+ int last_num_chars; /* to free last font clip masks */
#endif
};
/* font functions */
/* ========================================================================= */
-#define NUM_FONT_CHARS (FONT_LINES_PER_FONT * FONT_CHARS_PER_LINE)
-
#if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
static GC font_clip_gc = None;
if (!clipmasks_initialized)
{
for (i=0; i < gfx.num_fonts; i++)
+ {
gfx.font_bitmap_info[i].clip_mask = NULL;
+ gfx.font_bitmap_info[i].last_num_chars = 0;
+ }
clipmasks_initialized = TRUE;
}
for (i=0; i < gfx.num_fonts; i++)
{
if (gfx.font_bitmap_info[i].clip_mask)
- for (j=0; j < NUM_FONT_CHARS; j++)
+ for (j=0; j < gfx.font_bitmap_info[i].last_num_chars; j++)
XFreePixmap(display, gfx.font_bitmap_info[i].clip_mask[j]);
free(gfx.font_bitmap_info[i].clip_mask);
gfx.font_bitmap_info[i].clip_mask = NULL;
+ gfx.font_bitmap_info[i].last_num_chars = 0;
}
if (font_clip_gc)
continue;
gfx.font_bitmap_info[i].clip_mask =
- checked_calloc(NUM_FONT_CHARS * sizeof(Pixmap));
+ checked_calloc(gfx.font_bitmap_info[i].num_chars * sizeof(Pixmap));
+ gfx.font_bitmap_info[i].last_num_chars = gfx.font_bitmap_info[i].num_chars;
- for (j=0; j < NUM_FONT_CHARS; j++)
+ for (j=0; j < gfx.font_bitmap_info[i].num_chars; j++)
{
Bitmap *src_bitmap = gfx.font_bitmap_info[i].bitmap;
Pixmap src_pixmap = src_bitmap->clip_mask;
- int xpos = j % FONT_CHARS_PER_LINE;
- int ypos = j / FONT_CHARS_PER_LINE;
+ int xpos = j % gfx.font_bitmap_info[i].num_chars_per_line;
+ int ypos = j / gfx.font_bitmap_info[i].num_chars_per_line;
int width = gfx.font_bitmap_info[i].width;
int height = gfx.font_bitmap_info[i].height;
int src_x = gfx.font_bitmap_info[i].src_x + xpos * width;
return gfx.font_bitmap_info[font_bitmap_id].height;
}
-boolean getFontChar(int font_nr, char c, int *src_x, int *src_y)
+static char getFontCharPosition(int font_nr, char c)
{
int font_bitmap_id = gfx.select_font_function(font_nr);
struct FontBitmapInfo *font = &gfx.font_bitmap_info[font_bitmap_id];
+ boolean default_font = (font->num_chars == DEFAULT_NUM_CHARS_PER_FONT);
+ int font_pos = c - 32;
- if ((c >= 32 && c <= 95) || c == '°' || c == '´' || c == '|')
- {
- *src_x = font->src_x + ((c - 32) % FONT_CHARS_PER_LINE) * font->width;
- *src_y = font->src_y + ((c - 32) / FONT_CHARS_PER_LINE) * font->height;
+ /* map some special characters to their ascii values in default font */
+ if (default_font)
+ font_pos = MAP_FONT_ASCII(c) - 32;
- /* map '°' and 'TM' signs and cursor */
- if (c == '°' || c == '´' || c == '|')
- {
- *src_x = font->src_x + FONT_CHARS_PER_LINE * font->width;
- *src_y = font->src_y + (c == '°' ? 1 : c == '´' ? 2 : 3) * font->height;
- }
+ /* this allows dynamic special characters together with special font */
+ if (font_pos < 0 || font_pos >= font->num_chars)
+ font_pos = 0;
- return TRUE;
- }
+ return font_pos;
+}
- return FALSE;
+void getFontCharSource(int font_nr, char c, Bitmap **bitmap, int *x, int *y)
+{
+ int font_bitmap_id = gfx.select_font_function(font_nr);
+ struct FontBitmapInfo *font = &gfx.font_bitmap_info[font_bitmap_id];
+ int font_pos = getFontCharPosition(font_nr, c);
+
+ *bitmap = font->bitmap;
+ *x = font->src_x + (font_pos % font->num_chars_per_line) * font->width;
+ *y = font->src_y + (font_pos / font->num_chars_per_line) * font->height;
}
void DrawInitText(char *text, int ypos, int font_nr)
{
int font_bitmap_id = gfx.select_font_function(font_nr);
struct FontBitmapInfo *font = &gfx.font_bitmap_info[font_bitmap_id];
+ int font_width = getFontWidth(font_nr);
+ int font_height = getFontHeight(font_nr);
boolean print_inverse = FALSE;
boolean print_inverse_cursor = FALSE;
+ Bitmap *src_bitmap;
int src_x, src_y;
if (font->bitmap == NULL)
continue;
}
- if (c >= 'a' && c <= 'z')
- c = 'A' + (c - 'a');
- else if (c == 'ä' || c == 'Ä')
- c = 91;
- else if (c == 'ö' || c == 'Ö')
- c = 92;
- else if (c == 'ü' || c == 'Ü')
- c = 93;
- else if (c == '[' || c == ']') /* map to normal braces */
- c = (c == '[' ? '(' : ')');
- else if (c == '\\') /* bad luck ... */
- c = '/';
-
- if (getFontChar(font_nr, c, &src_x, &src_y))
+ getFontCharSource(font_nr, c, &src_bitmap, &src_x, &src_y);
+
+ if (print_inverse) /* special mode for text gadgets */
{
- if (print_inverse) /* special mode for text gadgets */
- {
#if defined(TARGET_SDL)
- /* blit normally (non-masked) */
- BlitBitmap(font->bitmap, dst_bitmap, src_x, src_y,
- font->width, font->height, dst_x, dst_y);
+ /* blit normally (non-masked) */
+ BlitBitmap(src_bitmap, dst_bitmap, src_x, src_y,
+ font_width, font_height, dst_x, dst_y);
- /* invert character */
- SDLInvertArea(dst_bitmap, dst_x, dst_y, font->width, font->height,
- gfx.inverse_text_color);
+ /* invert character */
+ SDLInvertArea(dst_bitmap, dst_x, dst_y, font_width, font_height,
+ gfx.inverse_text_color);
#else
- /* first step: draw solid colored rectangle (use "cursor" character) */
- if (print_inverse_cursor)
- BlitBitmap(font->bitmap, dst_bitmap,
- font->src_x + FONT_CHARS_PER_LINE * font->width,
- font->src_y + 3 * font->height,
- font->width, font->height, dst_x, dst_y);
-
- /* second step: draw masked black rectangle (use "space" character) */
- SetClipOrigin(font->bitmap, font->bitmap->stored_clip_gc,
- dst_x - src_x, dst_y - src_y);
- BlitBitmapMasked(font->bitmap, dst_bitmap,
- 0, 0, font->width, font->height, dst_x, dst_y);
-#endif
- }
- else if (mask_mode == BLIT_MASKED)
+ /* first step: draw solid colored rectangle (use "cursor" character) */
+ if (print_inverse_cursor)
{
- /* clear font character background */
- ClearRectangleOnBackground(dst_bitmap, dst_x, dst_y,
- font->width, font->height);
+ Bitmap *cursor_bitmap;
+ int cursor_x, cursor_y;
-#if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
- /* use special font tile clipmasks */
- {
- int font_char = (c >= 32 && c <= 95 ? c - 32 : 0);
-
- SetClipMask(font->bitmap, font_clip_gc,
- font->clip_mask[font_char]);
- SetClipOrigin(font->bitmap, font_clip_gc, dst_x, dst_y);
- }
-#else
- SetClipOrigin(font->bitmap, font->bitmap->stored_clip_gc,
- dst_x - src_x, dst_y - src_y);
-#endif
+ getFontCharSource(font_nr, FONT_ASCII_CURSOR, &cursor_bitmap,
+ &cursor_x, &cursor_y);
- BlitBitmapMasked(font->bitmap, dst_bitmap, src_x, src_y,
- font->width, font->height, dst_x, dst_y);
+ BlitBitmap(cursor_bitmap, dst_bitmap, cursor_x, cursor_y,
+ font_width, font_height, dst_x, dst_y);
}
- else /* normal, non-masked font blitting */
+
+ /* second step: draw masked black rectangle (use "space" character) */
+ SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
+ dst_x - src_x, dst_y - src_y);
+ BlitBitmapMasked(src_bitmap, dst_bitmap, 0, 0,
+ font_width, font_height, dst_x, dst_y);
+#endif
+ }
+ else if (mask_mode == BLIT_MASKED)
+ {
+ /* clear font character background */
+ ClearRectangleOnBackground(dst_bitmap, dst_x, dst_y,
+ font_width, font_height);
+
+#if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
+ /* use special font tile clipmasks */
{
- BlitBitmap(font->bitmap, dst_bitmap, src_x, src_y,
- font->width, font->height, dst_x, dst_y);
+ int font_pos = getFontCharPosition(font_nr, c);
+
+ SetClipMask(src_bitmap, font_clip_gc, font->clip_mask[font_pos]);
+ SetClipOrigin(src_bitmap, font_clip_gc, dst_x, dst_y);
}
+#else
+ SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
+ dst_x - src_x, dst_y - src_y);
+#endif
+
+ BlitBitmapMasked(src_bitmap, dst_bitmap, src_x, src_y,
+ font_width, font_height, dst_x, dst_y);
+ }
+ else /* normal, non-masked font blitting */
+ {
+ BlitBitmap(src_bitmap, dst_bitmap, src_x, src_y,
+ font_width, font_height, dst_x, dst_y);
}
- dst_x += font->width;
+ dst_x += font_width;
}
}
#define FC_GREEN FONT_INITIAL_3
#define FC_YELLOW FONT_INITIAL_4
-#define FONT_CHARS_PER_LINE 16
-#define FONT_LINES_PER_FONT 4
-
/* text output definitions */
#define MAX_OUTPUT_LINESIZE 1024
+/* special character mapping for default fonts */
+#define FONT_ASCII_CURSOR ((char)160)
+#define MAP_FONT_ASCII(c) ((c) >= 'a' && (c) <= 'z' ? 'A' + (c) - 'a' : \
+ (c) == '©' ? 96 : \
+ (c) == 'ä' || (c) == 'Ä' ? 97 : \
+ (c) == 'ö' || (c) == 'Ö' ? 98 : \
+ (c) == 'ü' || (c) == 'Ü' ? 99 : \
+ (c) == '°' ? 100 : \
+ (c) == '®' ? 101 : \
+ (c) == FONT_ASCII_CURSOR ? 102 : \
+ (c))
+
+/* 64 regular ordered ASCII characters, 6 special characters, 1 cursor char. */
+#define MIN_NUM_CHARS_PER_FONT 64
+#define DEFAULT_NUM_CHARS_PER_FONT (MIN_NUM_CHARS_PER_FONT + 6 +1)
+#define DEFAULT_NUM_CHARS_PER_LINE 16
+
+
/* font structure definitions */
void InitFontInfo(struct FontBitmapInfo *, int, int (*function)(int));
int getFontWidth(int);
int getFontHeight(int);
-boolean getFontChar(int, char, int *, int *);
+void getFontCharSource(int, char, Bitmap **, int *, int *);
void DrawInitText(char *, int, int);
void DrawTextF(int, int, int, char *, ...);
"letter 'Z'"
},
{
- "char_ae",
+ "char_bracketleft",
"char",
- "letter 'Ä'"
+ "letter '['"
},
{
- "char_oe",
+ "char_backslash",
"char",
- "letter 'Ö'"
+ "letter '\\'"
},
{
- "char_ue",
+ "char_bracketright",
"char",
- "letter 'Ü'"
+ "letter ']'"
},
{
- "char_copyright",
+ "char_asciicircum",
"char",
"letter '^'"
},
{
"char_underscore",
"char",
- "letter ''"
+ "letter '_'"
},
{
- "char_empty",
+ "char_copyright",
"char",
- "letter ''"
+ "letter '©'"
},
{
- "char_degree",
+ "char_aumlaut",
"char",
- "letter ''"
+ "letter 'Ä'"
},
{
- "char_tm",
+ "char_oumlaut",
"char",
- "letter ''"
+ "letter 'Ö'"
},
{
- "char_cursor",
+ "char_uumlaut",
"char",
- "letter ''"
+ "letter 'Ü'"
},
{
- "char_unused",
+ "char_degree",
"char",
- "letter ''"
+ "letter '°'"
},
{
- "char_unused",
+ "char_trademark",
"char",
- "letter ''"
+ "letter '®'"
},
{
- "char_unused",
+ "char_cursor",
"char",
- "letter ''"
+ "letter ' '"
},
{
"char_unused",
#define EL_CHAR_ASCII0_END (EL_CHAR_ASCII0 + 111)
#define EL_CHAR_END (EL_CHAR_START + 79)
+#define EL_CHAR(c) (EL_CHAR_ASCII0 + MAP_FONT_ASCII(c))
+
+#if 0
#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \
(x) == 'Ö' ? EL_CHAR_OE : \
(x) == 'Ü' ? EL_CHAR_UE : \
- (x) == '^' ? EL_CHAR_COPYRIGHT : \
+ (x) == 'ä' ? EL_CHAR_AE : \
+ (x) == 'ö' ? EL_CHAR_OE : \
+ (x) == 'ü' ? EL_CHAR_UE : \
+ (x) == '©' ? EL_CHAR_COPYRIGHT : \
(x) == '_' ? EL_CHAR_UNDERSCORE : \
(x) == '°' ? EL_CHAR_DEGREE : \
(x) == '´' ? EL_CHAR_TM : \
(x) == '|' ? EL_CHAR_CURSOR : \
EL_CHAR_A + (x) - 'A')
+#endif
#define EL_EXPANDABLE_WALL_HORIZONTAL 200
#define EL_EXPANDABLE_WALL_VERTICAL 201
#define GFX_ARG_POSITION 19
#define GFX_ARG_DRAW_XOFFSET 20
#define GFX_ARG_DRAW_YOFFSET 21
-#define GFX_ARG_FORMAT 22
-#define GFX_ARG_NAME 23
+#define GFX_ARG_NAME 22
-#define NUM_GFX_ARGS 24
+#define NUM_GFX_ARGS 23
/* values for sound configuration suffixes */
#define NUM_FONTS 21
#define NUM_INITIAL_FONTS 4
-
/* values for game_status */
#define EXITGAME 0
#define MAINMENU 1
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
-#define PROGRAM_RIGHTS_STRING "Copyright ^1995-2003 by"
+#define PROGRAM_RIGHTS_STRING "Copyright ©1995-2003 by"
#define PROGRAM_DOS_PORT_STRING "DOS port done by Guido Schulz"
#define PROGRAM_IDENT_STRING PROGRAM_VERSION_STRING " " TARGET_STRING
#define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
int width, height; /* width/height of each animation frame */
int offset_x, offset_y; /* x/y offset to next animation frame */
int anim_frames;
+ int anim_frames_per_line;
int anim_start_frame;
int anim_delay; /* important: delay of 1 means "no delay"! */
int anim_mode;