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)
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;
for (yy = 0; yy < ysize; yy++) for (xx = 0; xx < xsize; xx++)
DrawEnvelopeBackground(envelope_nr, sx,sy, xx,yy, xsize, ysize, font_nr);
+#if 1
+ DrawTextBuffer(SX + sx + font_width, SY + sy + font_height,
+ level.envelope[envelope_nr].text, font_nr, max_xsize,
+ xsize - 2, ysize - 2, mask_mode,
+ level.envelope[envelope_nr].autowrap,
+ level.envelope[envelope_nr].centered);
+#else
DrawTextToTextArea(SX + sx + font_width, SY + sy + font_height,
level.envelope[envelope_nr].text, font_nr, max_xsize,
xsize - 2, ysize - 2, mask_mode);
+#endif
redraw_mask |= REDRAW_FIELD | REDRAW_FROM_BACKBUFFER;
BackToFront();
#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);
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;
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';
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
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';
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;
}
{
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;