rnd-20070825-1-src
authorHolger Schemel <info@artsoft.org>
Sat, 25 Aug 2007 07:06:57 +0000 (09:06 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:55:55 +0000 (10:55 +0200)
ChangeLog
src/conftime.h
src/libgame/setup.c
src/screens.c
src/tools.c

index 5969c51397391bb68a6a56dfcf5aecf1f2dbacbe..737d3f62e6b940eb03d8315c0b08b7e0026df85b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,17 @@
-2007-05-07
+2007-08-25
+       * title messages are now also searched in graphics artwork directory;
+         those found in graphics directory have precendence over those found
+         in level directory -- this handles title messages stored in graphics
+         directories as part of the artwork set, just like title images; this
+         makes sense, as corresponding special font definitions for messages
+         are usually defined in the same graphics artwork directory, and also
+         because title images and title messages that are combined in a level
+         set introduction should usually not be separated when the level set
+         is used with a different artwork set (e.g. using "override graphics")
+       * fixed problem with door borders on main screen by first drawing doors
+         and then the corresponding border masks, but not vice versa
+
+2007-08-22
        * fixed problem with broken crumbled graphics after level set changes
          when using R'n'D custom artwork with level sets using the EMC engine
 
index efc5d524c769608daa6fcf42400f69a6ca0381cf..b7a763cf8a3bb97fc770cd00f4d30688e72fb14c 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2007-08-22 22:17"
+#define COMPILE_DATE_STRING "2007-08-25 02:34"
index 3ff14a1ca9cc614cd7c8d4998c9a5c4c85f1ace8..39165b06574461dbcfc22e8a97e709612c721c61 100644 (file)
@@ -501,16 +501,33 @@ char *getLevelSetInfoFilename()
 char *getLevelSetTitleMessageFilename(int nr, boolean initial)
 {
   static char *filename = NULL;
+#if 1
+  char *filename_from_artwork;
+#endif
   char basename[32];
 
   sprintf(basename, "%s_%d.txt",
          (initial ? "titlemessage_initial" : "titlemessage"), nr + 1);
 
-  checked_free(filename);
-  filename = getPath2(getCurrentLevelDir(), basename);
+#if 1
+  /* 1st try: look for message file in all relevant graphics directories */
+  if ((filename_from_artwork = getCustomImageFilename(basename)) != NULL)
+    return filename_from_artwork;
+#endif
 
-  if (fileExists(filename))
-    return filename;
+#if 1
+  /* forced custom graphics also override messages in level set directory */
+  if (!setup.override_level_graphics)
+#endif
+  {
+    checked_free(filename);
+
+    /* 2nd try: look for message file in current level set directory */
+    filename = getPath2(getCurrentLevelDir(), basename);
+
+    if (fileExists(filename))
+      return filename;
+  }
 
   return NULL;
 }
index 2a7db9c9959153b4563ad401a6ba9bb842672187..f1117601646251ba9f524629436ea01970203c3c 100644 (file)
@@ -747,6 +747,12 @@ static void InitializeTitleControls_CheckTitleInfo(boolean initial)
     Bitmap *bitmap = graphic_info[graphic].bitmap;
     int sort_priority = graphic_info[graphic].sort_priority;
 
+#if 0
+    /* skip images and messages (fonts!) when using forced custom graphics */
+    if (setup.override_level_graphics && !initial)
+      continue;
+#endif
+
     if (bitmap != NULL)
       InitializeTitleControlsExt_AddTitleInfo(TRUE, initial, i, sort_priority);
   }
@@ -757,6 +763,12 @@ static void InitializeTitleControls_CheckTitleInfo(boolean initial)
     char *filename = getLevelSetTitleMessageFilename(i, initial);
     int sort_priority = tmi->sort_priority;
 
+#if 0
+    /* skip images and messages (fonts!) when using forced custom graphics */
+    if (setup.override_level_graphics)
+      continue;
+#endif
+
     if (filename != NULL)
       InitializeTitleControlsExt_AddTitleInfo(FALSE, initial, i, sort_priority);
   }
@@ -1411,7 +1423,7 @@ void DrawMainMenuExt(int redraw_mask, boolean do_fading)
   MapTapeButtons();
   MapScreenMenuGadgets(SCREEN_MASK_MAIN);
 
-#if 1
+#if 0
   DrawMaskedBorder(REDRAW_ALL);
 #endif
 
@@ -1426,6 +1438,10 @@ void DrawMainMenuExt(int redraw_mask, boolean do_fading)
   }
 #endif
 
+#if 1
+  DrawMaskedBorder(REDRAW_ALL);
+#endif
+
 #if 0
   if (redraw_all)
     redraw_mask = REDRAW_ALL;
index f593aeda20954a08accc0e65f332ecf1d8ce1be0..e469a50181a8d909f787300a2e5ec2adab998dac 100644 (file)
@@ -535,6 +535,11 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type)
   printf("::: NOW FADING %d ... [%d]\n", fade_mode, fade_type);
 #endif
 
+#if 1
+  if (fade_mask == REDRAW_NONE)
+    fade_mask = REDRAW_FIELD;
+#endif
+
   if (fade_mask & REDRAW_FIELD)
   {
     x = REAL_SX;
@@ -6067,6 +6072,7 @@ void getGraphicSourceObjectExt_EM(int tile, int frame_em,
   int base_crumbled = el_act2crm(effective_element, ACTION_DEFAULT);
   boolean has_crumbled_graphics = (base_crumbled != base_graphic);
   struct GraphicInfo *g = &graphic_info[graphic];
+  struct GraphicInfo *g_crumbled = &graphic_info[crumbled];
   int sync_frame;
 
 #if 0
@@ -6112,14 +6118,23 @@ void getGraphicSourceObjectExt_EM(int tile, int frame_em,
                   crumbled_src_x, crumbled_src_y);
 #endif
 
-#if 0
+#if 1
+  /* (updating the "crumbled" graphic definitions is probably not really needed,
+     as animations for crumbled graphics can't be longer than one EMC cycle) */
+
   *crumbled_src_bitmap = NULL;
   *crumbled_src_x = 0;
   *crumbled_src_y = 0;
 
   if (has_crumbled_graphics && crumbled != IMG_EMPTY_SPACE)
   {
-    getGraphicSource(crumbled, frame, crumbled_src_bitmap,
+    int frame_crumbled = getAnimationFrame(g_crumbled->anim_frames,
+                                          g_crumbled->anim_delay,
+                                          g_crumbled->anim_mode,
+                                          g_crumbled->anim_start_frame,
+                                          sync_frame);
+
+    getGraphicSource(crumbled, frame_crumbled, crumbled_src_bitmap,
                     crumbled_src_x, crumbled_src_y);
   }
 #endif