X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=781a3efd8a9b09327f70b4430fec6afaaeff335d;hb=2755bae650b89e72250cb11161ac210d18d39474;hp=206d1c1df6d0b00d5525ffdd938da0c0007a4098;hpb=8a69c2a5a6c025385142696ac5bb9ab92e2b0dbc;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 206d1c1d..781a3efd 100644 --- a/src/editor.c +++ b/src/editor.c @@ -3999,13 +3999,13 @@ static int editor_el_chars[] = EL_CHAR('^'), EL_CHAR('_'), - EL_CHAR('©'), - EL_CHAR('Ä'), - EL_CHAR('Ö'), - EL_CHAR('Ü'), + EL_CHAR(CHAR_BYTE_COPYRIGHT), + EL_CHAR(CHAR_BYTE_UMLAUT_A), + EL_CHAR(CHAR_BYTE_UMLAUT_O), + EL_CHAR(CHAR_BYTE_UMLAUT_U), - EL_CHAR('°'), - EL_CHAR('®'), + EL_CHAR(CHAR_BYTE_DEGREE), + EL_CHAR(CHAR_BYTE_REGISTERED), EL_CHAR(FONT_ASCII_CURSOR), EL_CHAR(FONT_ASCII_BUTTON), @@ -4109,13 +4109,13 @@ static int editor_el_steel_chars[] = EL_STEEL_CHAR('^'), EL_STEEL_CHAR('_'), - EL_STEEL_CHAR('©'), - EL_STEEL_CHAR('Ä'), - EL_STEEL_CHAR('Ö'), - EL_STEEL_CHAR('Ü'), + EL_STEEL_CHAR(CHAR_BYTE_COPYRIGHT), + EL_STEEL_CHAR(CHAR_BYTE_UMLAUT_A), + EL_STEEL_CHAR(CHAR_BYTE_UMLAUT_O), + EL_STEEL_CHAR(CHAR_BYTE_UMLAUT_U), - EL_STEEL_CHAR('°'), - EL_STEEL_CHAR('®'), + EL_STEEL_CHAR(CHAR_BYTE_DEGREE), + EL_STEEL_CHAR(CHAR_BYTE_REGISTERED), EL_STEEL_CHAR(FONT_ASCII_CURSOR), EL_STEEL_CHAR(FONT_ASCII_BUTTON), @@ -10074,7 +10074,10 @@ static void CopyBrushExt(int from_x, int from_y, int to_x, int to_y, else if (element >= NUM_FILE_ELEMENTS) element_mapped = EL_UNKNOWN; - printf("%c%03d", (mode == CB_DUMP_BRUSH ? '`' : '¸'), element_mapped); + // dump brush as level sketch text for the R'n'D forum: + // - large tiles: `xxx (0x60 ASCII) + // - small tiles: ¸xxx (0xb8 ISO-8859-1, 0xc2b8 UTF-8) + printf("%s%03d", (mode == CB_DUMP_BRUSH ? "`" : "¸"), element_mapped); } printf("\n"); @@ -10233,11 +10236,11 @@ static int DrawLevelText(int sx, int sy, char letter, int mode) /* map lower case letters to upper case and convert special characters */ if (letter >= 'a' && letter <= 'z') letter_element = EL_CHAR_ASCII0 + letter + (int)('A' - 'a'); - else if (letter == 'ä' || letter == 'Ä') + else if (letter == CHAR_BYTE_UMLAUT_a || letter == CHAR_BYTE_UMLAUT_A) letter_element = EL_CHAR_AUMLAUT; - else if (letter == 'ö' || letter == 'Ö') + else if (letter == CHAR_BYTE_UMLAUT_o || letter == CHAR_BYTE_UMLAUT_O) letter_element = EL_CHAR_OUMLAUT; - else if (letter == 'ü' || letter == 'Ü') + else if (letter == CHAR_BYTE_UMLAUT_u || letter == CHAR_BYTE_UMLAUT_U) letter_element = EL_CHAR_UUMLAUT; else if (letter == '^') letter_element = EL_CHAR_COPYRIGHT; @@ -10282,6 +10285,10 @@ static int DrawLevelText(int sx, int sy, char letter, int mode) case TEXT_WRITECHAR: if (letter_element >= EL_CHAR_START && letter_element <= EL_CHAR_END) { + if (new_element1 >= EL_STEEL_CHAR_START && + new_element1 <= EL_STEEL_CHAR_END) + letter_element = letter_element - EL_CHAR_START + EL_STEEL_CHAR_START; + delete_buffer[sx - start_sx] = Feld[lx][ly]; Feld[lx][ly] = letter_element;