rnd-20030607-2-src
authorHolger Schemel <info@artsoft.org>
Sat, 7 Jun 2003 01:47:47 +0000 (03:47 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:42:01 +0000 (10:42 +0200)
src/conftime.h
src/editor.c
src/game.c
src/screens.c

index 071efa6cd5c59ea549e0c55cc46cd5b734e8339a..9caa92bbff1a3c7673dfc88809bc7c532a63eb5e 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-06-07 01:19]"
+#define COMPILE_DATE_STRING "[2003-06-07 03:28]"
index 778232e23fc507e9287a4df15b72247fca34ca05..2f64e92cfb3f74d0ad9630897301751ca459aa53 100644 (file)
@@ -4402,6 +4402,51 @@ static void DrawPropertiesAdvanced()
   DrawCustomChangedArea();
 }
 
+static void DrawElementName(int x, int y, int element)
+{
+  char *element_name = getElementInfoText(element);
+  int font_nr = FONT_TEXT_1;
+  int font_width = getFontWidth(font_nr);
+  int font_height = getFontHeight(font_nr);
+  int max_text_width = SXSIZE - x - ED_SETTINGS_XPOS(0);
+  int max_chars_per_line = max_text_width / font_width;
+  char buffer[max_chars_per_line + 1];
+
+  if (strlen(element_name) <= max_chars_per_line)
+    DrawTextF(x, y, font_nr, element_name);
+  else
+  {
+    int next_pos = max_chars_per_line;
+
+    strncpy(buffer, element_name, max_chars_per_line);
+    buffer[max_chars_per_line] = '\0';
+
+    if (element_name[max_chars_per_line] == ' ')
+      next_pos++;
+    else
+    {
+      int i;
+
+      for (i = max_chars_per_line - 1; i >= 0; i--)
+       if (buffer[i] == ' ')
+         break;
+
+      if (strlen(&element_name[i + 1]) <= max_chars_per_line)
+      {
+       buffer[i] = '\0';
+       next_pos = i + 1;
+      }
+    }
+
+    DrawTextF(x, y - font_height / 2, font_nr, buffer);
+
+    strncpy(buffer, &element_name[next_pos], max_chars_per_line);
+    buffer[max_chars_per_line] = '\0';
+
+    DrawTextF(x, y + font_height / 2, font_nr, buffer);
+  }
+}
+
 static void DrawPropertiesWindow()
 {
   int xstart = 2;
@@ -4441,8 +4486,8 @@ static void DrawPropertiesWindow()
 
   FrameCounter = 0;    /* restart animation frame counter */
 
-  DrawTextF((xstart + 3) * MINI_TILEX, (ystart + 1) * MINI_TILEY,
-           FONT_TEXT_1, getElementInfoText(properties_element));
+  DrawElementName((xstart + 3) * MINI_TILEX, (ystart + 1) * MINI_TILEY,
+                 properties_element);
 
   DrawPropertiesTabulatorGadgets();
 
index 948d46bb90083e3228985d257963e25038fe1bb2..7af0d617b96e3013d941feea3f87322502787998 100644 (file)
@@ -2363,7 +2363,7 @@ void Impact(int x, int y)
     if (object_hit && IS_PLAYER(x, y+1))
       KillHeroUnlessProtected(x, y+1);
     else if (object_hit && smashed == EL_PENGUIN)
-      Bang(x, y+1);
+      Bang(x, y + 1);
     else
     {
       Feld[x][y] = EL_AMOEBA_GROWING;
index 1012b6ede9ad692b7bdaf6ed9d1a25d3f71c793a..91ec355073d3505e34d00be34aaf89d0309222b7 100644 (file)
@@ -888,10 +888,17 @@ void DrawHelpScreenElAction(int start)
     }
     j++;
 
+#if 1
+    ClearRectangleOnBackground(drawto, xstart, ystart + (i - start) * ystep,
+                              TILEX, TILEY);
+    DrawGraphicAnimationExt(drawto, xstart, ystart + (i - start) * ystep,
+                           graphic, sync_frame, USE_MASKING);
+#else
     frame = getGraphicAnimationFrame(graphic, sync_frame);
 
     DrawGraphicExt(drawto, xstart, ystart + (i-start) * ystep,
                   graphic, frame);
+#endif
 
     i++;
   }