rnd-20070907-3-src
authorHolger Schemel <info@artsoft.org>
Fri, 7 Sep 2007 20:26:52 +0000 (22:26 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:56:10 +0000 (10:56 +0200)
* added optimization to only calculate element count for panel display
  if really needed (that is, if element count values defined on panel)

ChangeLog
src/conftime.h
src/game.c

index 971e771fbba7978227d31a5cd7df3659084c19dd..732a78145d8d5eec106b22646ff5a85972ccc5d3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 2007-09-07
        * fixed (experimental only) redrawing of every tile per frame (even if
          unneeded) for the extended (R'n'D based) EMC graphics engine
+       * added optimization to only calculate element count for panel display
+         if really needed (that is, if element count values defined on panel)
 
 2007-09-03
        * fixed bug with displaying background for title messages on info screen
index 567075b8ca1572252c39caf92e55643e8be6bc62..0b77a2a7db5b555f5291d1efc8f4c106ae637bd7 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2007-09-07 21:55"
+#define COMPILE_DATE_STRING "2007-09-07 22:25"
index fe18b07d3c16713072a7d72e34fb106360f20709..3bc5abd6174ef232491aaf10197d409df6ada486 100644 (file)
@@ -2111,8 +2111,17 @@ void InitGameControlValues()
 
 void UpdatePlayfieldElementCount()
 {
+  boolean use_element_count = FALSE;
   int i, j, x, y;
 
+  /* first check if it is needed at all to calculate playfield element count */
+  for (i = GAME_PANEL_ELEMENT_COUNT_1; i <= GAME_PANEL_ELEMENT_COUNT_8; i++)
+    if (!PANEL_DEACTIVATED(game_panel_controls[i].pos))
+      use_element_count = TRUE;
+
+  if (!use_element_count)
+    return;
+
   for (i = 0; i < MAX_NUM_ELEMENTS; i++)
     element_info[i].element_count = 0;
 
@@ -2342,8 +2351,7 @@ void UpdateGameControlValues()
   for (i = 0; i < NUM_PANEL_ELEMENTS; i++)
     game_panel_controls[GAME_PANEL_ELEMENT_COUNT_1 + i].value =
       (IS_VALID_ELEMENT(game.panel.element_count[i].id) ?
-       element_info[game.panel.element_count[i].id].element_count :
-       EL_UNDEFINED);
+       element_info[game.panel.element_count[i].id].element_count : 0);
 
   for (i = 0; i < NUM_PANEL_CE_SCORE; i++)
     game_panel_controls[GAME_PANEL_CE_SCORE_1 + i].value =