rnd-20060415-1-src
authorHolger Schemel <info@artsoft.org>
Sat, 15 Apr 2006 00:07:00 +0000 (02:07 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:51:30 +0000 (10:51 +0200)
* fixed bug with displaying wrong animation frame 0 after CE changes

ChangeLog
src/conftime.h
src/game.c
src/tools.c

index f0745cf898f4595c42c91ab7dcbef3b62a79bf52..135acdfd4a75d571ce752a707821076c2e895222 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2006-04-15
+       * fixed bug with displaying wrong animation frame 0 after CE changes
+
 2006-04-06
        * added selection between ECS and AGA graphics for EMC levels to setup
 
index 8fc5c7a684931346be255139671473f5b19abdd5..d11440ccfd1a18b37a1318127205b1d2934a3aa7 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2006-04-07 01:18]"
+#define COMPILE_DATE_STRING "[2006-04-15 01:54]"
index d78023fd15a8472d6f5a04d82b7283d4dfd0c764..bf409f086759b55851e1b2906433ad2329a10a1c 100644 (file)
@@ -41,6 +41,7 @@
 #define USE_STOP_CHANGED_ELEMENTS      (USE_NEW_STUFF          * 1)
 #define USE_ELEMENT_TOUCHING_BUGFIX    (USE_NEW_STUFF          * 1)
 #define USE_NEW_CONTINUOUS_SNAPPING    (USE_NEW_STUFF          * 1)
+#define USE_GFX_RESET_GFX_ANIMATION    (USE_NEW_STUFF          * 1)
 
 #define USE_QUICKSAND_IMPACT_BUGFIX    (USE_NEW_STUFF          * 0)
 
@@ -3018,7 +3019,7 @@ static void ResetRandomAnimationValue(int x, int y)
 
 static void ResetGfxAnimation(int x, int y)
 {
-#if 0
+#if USE_GFX_RESET_GFX_ANIMATION
   int element, graphic;
 #endif
 
@@ -3026,7 +3027,7 @@ static void ResetGfxAnimation(int x, int y)
   GfxAction[x][y] = ACTION_DEFAULT;
   GfxDir[x][y] = MovDir[x][y];
 
-#if 0
+#if USE_GFX_RESET_GFX_ANIMATION
   element = Feld[x][y];
   graphic = el_act_dir2img(element, GfxAction[x][y], GfxDir[x][y]);
 
@@ -8325,8 +8326,10 @@ static void CreateFieldExt(int x, int y, int element, boolean is_change)
 
     Feld[x][y] = new_element;
 
+#if !USE_GFX_RESET_GFX_ANIMATION
     ResetGfxAnimation(x, y);
     ResetRandomAnimationValue(x, y);
+#endif
 
     if (element_info[new_element].move_direction_initial == MV_START_PREVIOUS)
       MovDir[x][y] = previous_move_direction;
@@ -8340,6 +8343,11 @@ static void CreateFieldExt(int x, int y, int element, boolean is_change)
 
     new_element = Feld[x][y];  /* element may have changed */
 
+#if USE_GFX_RESET_GFX_ANIMATION
+    ResetGfxAnimation(x, y);
+    ResetRandomAnimationValue(x, y);
+#endif
+
     DrawLevelField(x, y);
 
     if (GFX_CRUMBLED(new_element))
index 1c02798b64ebfdc44019881ff4e400a10f4f401a..b6e9f10ad881393db27c0bd77980af36f9e15760 100644 (file)
@@ -503,6 +503,17 @@ inline int getGraphicAnimationFrame(int graphic, int sync_frame)
   if (graphic_info[graphic].anim_global_sync || sync_frame < 0)
     sync_frame = FrameCounter;
 
+#if 0
+  if (graphic == element_info[EL_CUSTOM_START + 255].graphic[ACTION_DEFAULT] &&
+      sync_frame == 0 &&
+      FrameCounter > 10)
+  {
+    int x = 1 / 0;
+
+    printf("::: FOO!\n");
+  }
+#endif
+
   return getAnimationFrame(graphic_info[graphic].anim_frames,
                           graphic_info[graphic].anim_delay,
                           graphic_info[graphic].anim_mode,