rnd-20070113-1-src
[rocksndiamonds.git] / src / editor.c
index 4218efbb530e4bf4e2b07229ebb4f93d1e29864a..e1dad2ed4c8e03c1391c979e5e4b2b5cb39f0c05 100644 (file)
@@ -3603,6 +3603,41 @@ static int editor_el_diamond_caves[] =
   EL_ENVELOPE_2,
   EL_ENVELOPE_3,
   EL_ENVELOPE_4,
+
+  EL_SIGN_RADIOACTIVITY,
+  EL_SIGN_WHEELCHAIR,
+  EL_SIGN_PARKING,
+  EL_SIGN_NO_ENTRY,
+
+  EL_SIGN_GIVE_WAY,
+  EL_SIGN_ENTRY_FORBIDDEN,
+  EL_SIGN_EMERGENCY_EXIT,
+  EL_SIGN_YIN_YANG,
+
+  EL_SIGN_SPERMS,
+  EL_SIGN_BULLET,
+  EL_SIGN_HEART,
+  EL_SIGN_CROSS,
+
+  EL_SIGN_FRANKIE,
+  EL_EMPTY,
+  EL_EMPTY,
+  EL_EMPTY,
+
+  EL_SPERMS,
+  EL_BULLET,
+  EL_HEART,
+  EL_CROSS,
+
+  EL_FRANKIE,
+  EL_EMPTY,
+  EL_EMPTY,
+  EL_EMPTY,
+
+  EL_STEEL_EXIT_CLOSED,
+  EL_STEEL_EXIT_OPEN,
+  EL_EMPTY,
+  EL_EMPTY,
 };
 static int *editor_hl_diamond_caves_ptr = editor_hl_diamond_caves;
 static int *editor_el_diamond_caves_ptr = editor_el_diamond_caves;
@@ -3742,6 +3777,11 @@ static int editor_el_chars[] =
   EL_CHAR('°'),
   EL_CHAR('®'),
   EL_CHAR(FONT_ASCII_CURSOR),
+  EL_CHAR(FONT_ASCII_BUTTON),
+
+  EL_CHAR(FONT_ASCII_UP),
+  EL_CHAR(FONT_ASCII_DOWN),
+  EL_CHAR(' '),
   EL_CHAR(' ')
 };
 static int *editor_hl_chars_ptr = editor_hl_chars;
@@ -3749,6 +3789,116 @@ static int *editor_el_chars_ptr = editor_el_chars;
 static int num_editor_hl_chars = SIZEOF_ARRAY_INT(editor_hl_chars);
 static int num_editor_el_chars = SIZEOF_ARRAY_INT(editor_el_chars);
 
+static int editor_hl_steelchars[] =
+{
+  EL_INTERNAL_CASCADE_STEELCHARS_ACTIVE,
+  EL_STEELCHAR('T'),
+  EL_STEELCHAR('X'),
+  EL_STEELCHAR('T'),
+};
+
+static int editor_el_steelchars[] =
+{
+  EL_STEELCHAR(' '),
+  EL_STEELCHAR('!'),
+  EL_STEELCHAR('"'),
+  EL_STEELCHAR('#'),
+
+  EL_STEELCHAR('$'),
+  EL_STEELCHAR('%'),
+  EL_STEELCHAR('&'),
+  EL_STEELCHAR('\''),
+
+  EL_STEELCHAR('('),
+  EL_STEELCHAR(')'),
+  EL_STEELCHAR('*'),
+  EL_STEELCHAR('+'),
+
+  EL_STEELCHAR(','),
+  EL_STEELCHAR('-'),
+  EL_STEELCHAR('.'),
+  EL_STEELCHAR('/'),
+
+  EL_STEELCHAR('0'),
+  EL_STEELCHAR('1'),
+  EL_STEELCHAR('2'),
+  EL_STEELCHAR('3'),
+
+  EL_STEELCHAR('4'),
+  EL_STEELCHAR('5'),
+  EL_STEELCHAR('6'),
+  EL_STEELCHAR('7'),
+
+  EL_STEELCHAR('8'),
+  EL_STEELCHAR('9'),
+  EL_STEELCHAR(':'),
+  EL_STEELCHAR(';'),
+
+  EL_STEELCHAR('<'),
+  EL_STEELCHAR('='),
+  EL_STEELCHAR('>'),
+  EL_STEELCHAR('?'),
+
+  EL_STEELCHAR('@'),
+  EL_STEELCHAR('A'),
+  EL_STEELCHAR('B'),
+  EL_STEELCHAR('C'),
+
+  EL_STEELCHAR('D'),
+  EL_STEELCHAR('E'),
+  EL_STEELCHAR('F'),
+  EL_STEELCHAR('G'),
+
+  EL_STEELCHAR('H'),
+  EL_STEELCHAR('I'),
+  EL_STEELCHAR('J'),
+  EL_STEELCHAR('K'),
+
+  EL_STEELCHAR('L'),
+  EL_STEELCHAR('M'),
+  EL_STEELCHAR('N'),
+  EL_STEELCHAR('O'),
+
+  EL_STEELCHAR('P'),
+  EL_STEELCHAR('Q'),
+  EL_STEELCHAR('R'),
+  EL_STEELCHAR('S'),
+
+  EL_STEELCHAR('T'),
+  EL_STEELCHAR('U'),
+  EL_STEELCHAR('V'),
+  EL_STEELCHAR('W'),
+
+  EL_STEELCHAR('X'),
+  EL_STEELCHAR('Y'),
+  EL_STEELCHAR('Z'),
+  EL_STEELCHAR('['),
+
+  EL_STEELCHAR('\\'),
+  EL_STEELCHAR(']'),
+  EL_STEELCHAR('^'),
+  EL_STEELCHAR('_'),
+
+  EL_STEELCHAR('©'),
+  EL_STEELCHAR('Ä'),
+  EL_STEELCHAR('Ö'),
+  EL_STEELCHAR('Ü'),
+
+  EL_STEELCHAR('°'),
+  EL_STEELCHAR('®'),
+  EL_STEELCHAR(FONT_ASCII_CURSOR),
+  EL_STEELCHAR(FONT_ASCII_BUTTON),
+
+  EL_STEELCHAR(FONT_ASCII_UP),
+  EL_STEELCHAR(FONT_ASCII_DOWN),
+  EL_STEELCHAR(' '),
+  EL_STEELCHAR(' ')
+};
+static int *editor_hl_steelchars_ptr = editor_hl_steelchars;
+static int *editor_el_steelchars_ptr = editor_el_steelchars;
+static int num_editor_hl_steelchars = SIZEOF_ARRAY_INT(editor_hl_steelchars);
+static int num_editor_el_steelchars = SIZEOF_ARRAY_INT(editor_el_steelchars);
+
 static int editor_hl_custom[] =
 {
   EL_INTERNAL_CASCADE_CE_ACTIVE,
@@ -4305,6 +4455,12 @@ editor_elements_info[] =
     &editor_hl_chars_ptr,              &num_editor_hl_chars,
     &editor_el_chars_ptr,              &num_editor_el_chars
   },
+  {
+    &setup.editor.el_steelchars,
+    &setup.editor_cascade.el_steelchars,
+    &editor_hl_steelchars_ptr,         &num_editor_hl_steelchars,
+    &editor_el_steelchars_ptr,         &num_editor_el_steelchars
+  },
   {
     &setup.editor.el_custom,
     &setup.editor_cascade.el_ce,
@@ -7300,7 +7456,7 @@ static int PrintElementDescriptionFromFile(char *filename, int start_line)
   int max_lines_per_screen = (SYSIZE - pad_y) / font_height - 1;
 
   return DrawTextFromFile(sx, sy, filename, font_nr, max_chars_per_line,
-                         max_lines_per_screen);
+                         max_lines_per_screen, TRUE);
 }
 
 static void DrawPropertiesTabulatorGadgets()
@@ -9081,7 +9237,14 @@ static void HandleTextAreaGadgets(struct GadgetInfo *gi)
 {
   int type_id = gi->custom_type_id;
 
+#if 1
+  strncpy(textarea_info[type_id].value, gi->textarea.value,
+         MAX_ENVELOPE_TEXT_LEN);
+  textarea_info[type_id].value[MAX_ENVELOPE_TEXT_LEN] = '\0';
+#else
+  /* !!! BUGGY !!! MAX_ENVELOPE_TEXT_LEN != MAX_GADGET_TEXTSIZE !!! */
   strcpy(textarea_info[type_id].value, gi->textarea.value);
+#endif
 
   level.changed = TRUE;
 }