rnd-20030406-1-src
authorHolger Schemel <info@artsoft.org>
Sun, 6 Apr 2003 00:26:13 +0000 (02:26 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:40:59 +0000 (10:40 +0200)
15 files changed:
src/conf_chr.c
src/conf_chr.h
src/conf_e2g.c
src/conf_gfx.c
src/conf_gfx.h
src/conftime.h
src/editor.c
src/init.c
src/libgame/gadgets.c
src/libgame/misc.c
src/libgame/system.h
src/libgame/text.c
src/libgame/text.h
src/main.c
src/main.h

index 52940986bed096965d2742259e186ad443be765b..506c8b27244a0ae6f904d26af269c59e5ecbe5e7 100644 (file)
   { "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"                     },
 
index 4f8abbc1e283a5d0b615c4b8979a936506b47b80..8cee272485e9fccebc29661db0e8563857aafa2e 100644 (file)
 #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 */
index 2c9f85708f64c44a73a0209b15716605ade3dd65..10c6e1d6b36835541867be46bf0a131ebe43e4c7 100644 (file)
@@ -2661,36 +2661,48 @@ element_to_graphic[] =
     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,
index de1088fd1117148b3708f6e1003259a9c8830139..06367d296db97e7a401791f93c6aea84c3a3c2c1 100644 (file)
@@ -43,7 +43,6 @@ struct ConfigInfo image_config_suffix[] =
   { ".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            }
@@ -3110,28 +3109,28 @@ struct ConfigInfo image_config[] =
   { "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"    },
@@ -3142,18 +3141,18 @@ struct ConfigInfo image_config[] =
 
   { "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"   },
@@ -3163,7 +3162,7 @@ struct ConfigInfo image_config[] =
   { "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"       },
@@ -3173,17 +3172,17 @@ struct ConfigInfo image_config[] =
   { "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"       },
@@ -3198,7 +3197,7 @@ struct ConfigInfo image_config[] =
   { "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"      },
@@ -3213,12 +3212,12 @@ struct ConfigInfo image_config[] =
   { "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"   },
@@ -3229,7 +3228,7 @@ struct ConfigInfo image_config[] =
 
   { "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"      },
@@ -3244,7 +3243,7 @@ struct ConfigInfo image_config[] =
   { "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"      },
@@ -3255,40 +3254,40 @@ struct ConfigInfo image_config[] =
 
   { "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"                    },
 
index 35ea299f03fa215df6df371b83132d8178ed496b..1679146c7dd875d64e41f5034b2a979e972c45d9 100644 (file)
 #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 */
index ab0f201c94b1258d209689195b9046cd98683a32..0f48dbfab7da23c604da96de2fd1cfa43eeb864f 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-04-05 01:37]"
+#define COMPILE_DATE_STRING "[2003-04-06 02:20]"
index 893617eaccb51b3613b81301ccb68b5dd9cd2a5d..f04834c09f390c9d11e76f78f2466775958317a5 100644 (file)
@@ -1363,17 +1363,22 @@ static int editor_el_chars[] =
   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);
 
@@ -3715,11 +3720,11 @@ static int DrawLevelText(int sx, int sy, char letter, int mode)
   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
index e766a52de4a9b4311401fc355bbcd9298ea03f98..05ccd33732a21659a9648c802b6db09cf61d9967 100644 (file)
@@ -383,6 +383,13 @@ void InitFontGraphicInfo()
       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;
@@ -391,6 +398,11 @@ void InitFontGraphicInfo()
       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;
     }
   }
 
@@ -563,9 +575,8 @@ void InitElementSpecialGraphicInfo()
 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 */
@@ -602,21 +613,21 @@ static void set_graphic_parameters(int graphic, char **parameter_raw)
   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)
@@ -634,14 +645,17 @@ static void set_graphic_parameters(int graphic, char **parameter_raw)
   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)
@@ -2536,6 +2550,12 @@ void InitGfx()
     }
   }
 
+  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);
 
index 0058bf1890d8593d5c7634dfda8dd4512381ff67..594131676338192ac4fd05444fd8b1ce6d6b9b15 100644 (file)
@@ -751,33 +751,29 @@ static void HandleGadgetTags(struct GadgetInfo *gi, int first_tag, va_list ap)
   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;
@@ -802,12 +798,10 @@ static void HandleGadgetTags(struct GadgetInfo *gi, int first_tag, va_list ap)
     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;
index 321372535fa01086b4881bb31c626b68489d5272..69a6951623c801b4744b27ac6bdf05a9004897f0 100644 (file)
@@ -1610,6 +1610,7 @@ int get_parameter_value(char *token, char *value_raw, int type)
              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"))
index a2eda6d6eccfa7c89a644d96a7d4684128c8f1eb..0474bc7570405d8d376bf3017db47ad7732a744b 100644 (file)
@@ -318,9 +318,12 @@ struct FontBitmapInfo
   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
 };
 
index e21acc03955d46c6db0ef61fb2f246968fd93a22..e440d2172031c9d33a4c424c719169bc367314d6 100644 (file)
@@ -22,8 +22,6 @@
 /* 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;
 
@@ -41,7 +39,10 @@ static void InitFontClipmasks()
   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;
   }
@@ -49,11 +50,12 @@ static void InitFontClipmasks()
   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)
@@ -84,14 +86,15 @@ static void InitFontClipmasks()
       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;
@@ -141,27 +144,33 @@ int getFontHeight(int font_nr)
   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)
@@ -230,8 +239,11 @@ void DrawTextExt(DrawBuffer *dst_bitmap, int dst_x, int dst_y, char *text,
 {
   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)
@@ -254,76 +266,67 @@ void DrawTextExt(DrawBuffer *dst_bitmap, int dst_x, int dst_y, char *text,
       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;
   }
 }
index f506b940dad13860eac4d8dcbe61e388278c284f..fe6dace87458a4a2f3f0338541b6cc827e9261da 100644 (file)
 #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));
@@ -42,7 +57,7 @@ void SetInverseTextColor(Pixel);
 
 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 *, ...);
index bcd5dce7d742449b346de7d08f1e968a5650ae7d..2c77e70aa0ca8182e7598ac27e2baf28254bef2c 100644 (file)
@@ -995,64 +995,64 @@ struct ElementInfo element_info[MAX_NUM_ELEMENTS + 1] =
     "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",
index f00ab2a7d74187d43dc543728931be7c3b00a48a..a3ce361adbe422a512545977d6e7bad967a7e627 100644 (file)
 #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
@@ -1107,6 +1112,7 @@ struct GraphicInfo
   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;