rnd-20070131-1-src
[rocksndiamonds.git] / src / tools.c
index bed28ceee1c3f75979b3f915774d5fb9f3757363..ca1970ca630ecf369b94df76cf858eee1e717049 100644 (file)
@@ -1410,13 +1410,17 @@ void DrawScreenField(int x, int y)
     boolean cut_mode = NO_CUTTING;
 
     if (element == EL_QUICKSAND_EMPTYING ||
+       element == EL_QUICKSAND_FAST_EMPTYING ||
        element == EL_MAGIC_WALL_EMPTYING ||
        element == EL_BD_MAGIC_WALL_EMPTYING ||
+       element == EL_DC_MAGIC_WALL_EMPTYING ||
        element == EL_AMOEBA_DROPPING)
       cut_mode = CUT_ABOVE;
     else if (element == EL_QUICKSAND_FILLING ||
+            element == EL_QUICKSAND_FAST_FILLING ||
             element == EL_MAGIC_WALL_FILLING ||
-            element == EL_BD_MAGIC_WALL_FILLING)
+            element == EL_BD_MAGIC_WALL_FILLING ||
+            element == EL_DC_MAGIC_WALL_FILLING)
       cut_mode = CUT_BELOW;
 
     if (cut_mode == CUT_ABOVE)
@@ -1458,8 +1462,10 @@ void DrawScreenField(int x, int y)
     content_old = Store[oldx][oldy];
 
     if (element_old == EL_QUICKSAND_EMPTYING ||
+       element_old == EL_QUICKSAND_FAST_EMPTYING ||
        element_old == EL_MAGIC_WALL_EMPTYING ||
        element_old == EL_BD_MAGIC_WALL_EMPTYING ||
+       element_old == EL_DC_MAGIC_WALL_EMPTYING ||
        element_old == EL_AMOEBA_DROPPING)
       cut_mode = CUT_ABOVE;
 
@@ -1772,7 +1778,7 @@ static void DrawPreviewLevelExt(int from_x, int from_y)
 #define MICROLABEL_IMPORTED_BY_HEAD    6
 #define MICROLABEL_IMPORTED_BY         7
 
-static int getMaxTextLength(struct MenuPosInfo *pos, int font_nr)
+static int getMaxTextLength(struct TextPosInfo *pos, int font_nr)
 {
   int max_text_width = SXSIZE;
   int font_width = getFontWidth(font_nr);
@@ -1789,7 +1795,7 @@ static int getMaxTextLength(struct MenuPosInfo *pos, int font_nr)
 
 static void DrawPreviewLevelLabelExt(int mode)
 {
-  struct MenuPosInfo *pos = &menu.main.text.level_info_2;
+  struct TextPosInfo *pos = &menu.main.text.level_info_2;
   char label_text[MAX_OUTPUT_LINESIZE + 1];
   int max_len_label_text;
   int font_nr = FONT_TEXT_2;
@@ -1806,6 +1812,11 @@ static void DrawPreviewLevelLabelExt(int mode)
   max_len_label_text = SXSIZE / getFontWidth(font_nr);
 #endif
 
+#if 1
+  if (pos->chars != -1)
+    max_len_label_text = pos->chars;
+#endif
+
   for (i = 0; i < max_len_label_text; i++)
     label_text[i] = ' ';
   label_text[max_len_label_text] = '\0';
@@ -1892,7 +1903,7 @@ void DrawPreviewLevel(boolean restart)
 
     if (leveldir_current->name)
     {
-      struct MenuPosInfo *pos = &menu.main.text.level_info_1;
+      struct TextPosInfo *pos = &menu.main.text.level_info_1;
       char label_text[MAX_OUTPUT_LINESIZE + 1];
       int font_nr = FONT_TEXT_1;
 #if 1
@@ -1905,6 +1916,11 @@ void DrawPreviewLevel(boolean restart)
       int lxpos, lypos;
 #endif
 
+#if 1
+      if (pos->chars != -1)
+       max_len_label_text = pos->chars;
+#endif
+
       strncpy(label_text, leveldir_current->name, max_len_label_text);
       label_text[max_len_label_text] = '\0';
 
@@ -2517,7 +2533,11 @@ boolean Request(char *text, unsigned int req_state)
     if (max_word_len > MAX_REQUEST_LINE_FONT1_LEN)
     {
       max_request_line_len = MAX_REQUEST_LINE_FONT2_LEN;
+#if 1
+      font_nr = FONT_TEXT_1;
+#else
       font_nr = FONT_LEVEL_NUMBER;
+#endif
 
       break;
     }
@@ -5405,10 +5425,14 @@ int get_next_element(int element)
   {
     case EL_QUICKSAND_FILLING:         return EL_QUICKSAND_FULL;
     case EL_QUICKSAND_EMPTYING:                return EL_QUICKSAND_EMPTY;
+    case EL_QUICKSAND_FAST_FILLING:    return EL_QUICKSAND_FAST_FULL;
+    case EL_QUICKSAND_FAST_EMPTYING:   return EL_QUICKSAND_FAST_EMPTY;
     case EL_MAGIC_WALL_FILLING:                return EL_MAGIC_WALL_FULL;
     case EL_MAGIC_WALL_EMPTYING:       return EL_MAGIC_WALL_ACTIVE;
     case EL_BD_MAGIC_WALL_FILLING:     return EL_BD_MAGIC_WALL_FULL;
     case EL_BD_MAGIC_WALL_EMPTYING:    return EL_BD_MAGIC_WALL_ACTIVE;
+    case EL_DC_MAGIC_WALL_FILLING:     return EL_DC_MAGIC_WALL_FULL;
+    case EL_DC_MAGIC_WALL_EMPTYING:    return EL_DC_MAGIC_WALL_ACTIVE;
     case EL_AMOEBA_DROPPING:           return EL_AMOEBA_WET;
 
     default:                           return element;