projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-19990214-1
[rocksndiamonds.git]
/
src
/
editor.c
diff --git
a/src/editor.c
b/src/editor.c
index 23f12d071424b82cc6c5ebf0ac9100ed114d9938..a2a9fbf1918af01129023ac80c843e9e2744d134 100644
(file)
--- a/
src/editor.c
+++ b/
src/editor.c
@@
-661,20
+661,20
@@
int element_shift = 0;
int editor_element[] =
{
int editor_element[] =
{
- EL_CHAR
_A + ('B' - 'A
'),
- EL_CHAR
_A + ('O' - 'A
'),
- EL_CHAR
_A + ('U' - 'A
'),
- EL_CHAR
_A + ('L' - 'A
'),
+ EL_CHAR
('B
'),
+ EL_CHAR
('O
'),
+ EL_CHAR
('U
'),
+ EL_CHAR
('L
'),
EL_CHAR_MINUS,
EL_CHAR_MINUS,
- EL_CHAR
_A + ('D' - 'A
'),
- EL_CHAR
_A + ('E' - 'A
'),
- EL_CHAR
_A + ('R' - 'A
'),
+ EL_CHAR
('D
'),
+ EL_CHAR
('E
'),
+ EL_CHAR
('R
'),
- EL_CHAR
_A + ('D' - 'A
'),
- EL_CHAR
_A + ('A' -
'A'),
- EL_CHAR
_A + ('S' - 'A
'),
- EL_CHAR
_A + ('H' - 'A
'),
+ EL_CHAR
('D
'),
+ EL_CHAR
(
'A'),
+ EL_CHAR
('S
'),
+ EL_CHAR
('H
'),
EL_SPIELFIGUR,
EL_LEERRAUM,
EL_SPIELFIGUR,
EL_LEERRAUM,
@@
-701,20
+701,20
@@
int editor_element[] =
EL_FIREFLY_U,
EL_LEERRAUM,
EL_FIREFLY_U,
EL_LEERRAUM,
- EL_CHAR
_A + ('E' - 'A
'),
- EL_CHAR
_A + ('M' - 'A
'),
- EL_CHAR
_A + ('E' - 'A
'),
+ EL_CHAR
('E
'),
+ EL_CHAR
('M
'),
+ EL_CHAR
('E
'),
EL_CHAR_MINUS,
EL_CHAR_MINUS,
- EL_CHAR
_A + ('R' - 'A
'),
- EL_CHAR
_A + ('A' -
'A'),
- EL_CHAR
_A + ('L' - 'A
'),
- EL_CHAR
_A + ('D' - 'A
'),
+ EL_CHAR
('R
'),
+ EL_CHAR
(
'A'),
+ EL_CHAR
('L
'),
+ EL_CHAR
('D
'),
- EL_CHAR
_A + ('M' - 'A
'),
- EL_CHAR
_A + ('I' - 'A
'),
- EL_CHAR
_A + ('N' - 'A
'),
- EL_CHAR
_A + ('E' - 'A
'),
+ EL_CHAR
('M
'),
+ EL_CHAR
('I
'),
+ EL_CHAR
('N
'),
+ EL_CHAR
('E
'),
EL_SPIELER1,
EL_SPIELER2,
EL_SPIELER1,
EL_SPIELER2,
@@
-776,6
+776,26
@@
int editor_element[] =
EL_AMOEBE_NASS,
EL_AMOEBE_NORM,
EL_AMOEBE_NASS,
EL_AMOEBE_NORM,
+ EL_EM_KEY_1_FILE,
+ EL_EM_KEY_2_FILE,
+ EL_EM_KEY_3_FILE,
+ EL_EM_KEY_4_FILE,
+
+ EL_EM_GATE_1,
+ EL_EM_GATE_2,
+ EL_EM_GATE_3,
+ EL_EM_GATE_4,
+
+ EL_EM_GATE_1X,
+ EL_EM_GATE_2X,
+ EL_EM_GATE_3X,
+ EL_EM_GATE_4X,
+
+ EL_CHAR('M'),
+ EL_CHAR('O'),
+ EL_CHAR('R'),
+ EL_CHAR('E'),
+
EL_SCHLUESSEL1,
EL_SCHLUESSEL2,
EL_SCHLUESSEL3,
EL_SCHLUESSEL1,
EL_SCHLUESSEL2,
EL_SCHLUESSEL3,
@@
-791,11
+811,6
@@
int editor_element[] =
EL_PFORTE3X,
EL_PFORTE4X,
EL_PFORTE3X,
EL_PFORTE4X,
- EL_CHAR_A + ('M' - 'A'),
- EL_CHAR_A + ('O' - 'A'),
- EL_CHAR_A + ('R' - 'A'),
- EL_CHAR_A + ('E' - 'A'),
-
EL_PFEIL_L,
EL_PFEIL_R,
EL_PFEIL_O,
EL_PFEIL_L,
EL_PFEIL_R,
EL_PFEIL_O,
@@
-846,15
+861,15
@@
int editor_element[] =
EL_SPEED_PILL,
EL_BLACK_ORB,
EL_SPEED_PILL,
EL_BLACK_ORB,
- EL_CHAR
_A + ('S' - 'A
'),
- EL_CHAR
_A + ('O' - 'A
'),
- EL_CHAR
_A + ('K' - 'A
'),
- EL_CHAR
_A + ('O' - 'A
'),
+ EL_CHAR
('S
'),
+ EL_CHAR
('O
'),
+ EL_CHAR
('K
'),
+ EL_CHAR
('O
'),
EL_CHAR_MINUS,
EL_CHAR_MINUS,
- EL_CHAR
_A + ('B' - 'A
'),
- EL_CHAR
_A + ('A' -
'A'),
- EL_CHAR
_A + ('N' - 'A
'),
+ EL_CHAR
('B
'),
+ EL_CHAR
(
'A'),
+ EL_CHAR
('N
'),
EL_SOKOBAN_OBJEKT,
EL_SOKOBAN_FELD_LEER,
EL_SOKOBAN_OBJEKT,
EL_SOKOBAN_FELD_LEER,
@@
-927,20
+942,20
@@
int editor_element[] =
EL_SP_CHIP_LOWER,
/*
EL_SP_CHIP_LOWER,
/*
- EL_CHAR
_A + ('D' - 'A
'),
- EL_CHAR
_A + ('Y' - 'A
'),
- EL_CHAR
_A + ('N' - 'A
'),
- EL_CHAR
_A + ('A' -
'A'),
+ EL_CHAR
('D
'),
+ EL_CHAR
('Y
'),
+ EL_CHAR
('N
'),
+ EL_CHAR
(
'A'),
- EL_CHAR
_A + ('B' - 'A
'),
- EL_CHAR
_A + ('L' - 'A
'),
- EL_CHAR
_A + ('A' -
'A'),
- EL_CHAR
_A + ('S' - 'A
'),
+ EL_CHAR
('B
'),
+ EL_CHAR
('L
'),
+ EL_CHAR
(
'A'),
+ EL_CHAR
('S
'),
EL_CHAR_MINUS,
EL_CHAR_MINUS,
- EL_CHAR
_A + ('T' - 'A
'),
- EL_CHAR
_A + ('E' - 'A
'),
- EL_CHAR
_A + ('R' - 'A
'),
+ EL_CHAR
('T
'),
+ EL_CHAR
('E
'),
+ EL_CHAR
('R
'),
*/
EL_LEERRAUM,
*/
EL_LEERRAUM,
@@
-2318,6
+2333,10
@@
static void DrawPropertiesWindow()
{ EL_SCHLUESSEL2, &level.score[9], TEXT_COLLECTING },
{ EL_SCHLUESSEL3, &level.score[9], TEXT_COLLECTING },
{ EL_SCHLUESSEL4, &level.score[9], TEXT_COLLECTING },
{ EL_SCHLUESSEL2, &level.score[9], TEXT_COLLECTING },
{ EL_SCHLUESSEL3, &level.score[9], TEXT_COLLECTING },
{ EL_SCHLUESSEL4, &level.score[9], TEXT_COLLECTING },
+ { EL_EM_KEY_1_FILE, &level.score[9], TEXT_COLLECTING },
+ { EL_EM_KEY_2_FILE, &level.score[9], TEXT_COLLECTING },
+ { EL_EM_KEY_3_FILE, &level.score[9], TEXT_COLLECTING },
+ { EL_EM_KEY_4_FILE, &level.score[9], TEXT_COLLECTING },
{ EL_AMOEBE_NASS, &level.tempo_amoebe, TEXT_SPEED },
{ EL_AMOEBE_NORM, &level.tempo_amoebe, TEXT_SPEED },
{ EL_AMOEBE_VOLL, &level.tempo_amoebe, TEXT_SPEED },
{ EL_AMOEBE_NASS, &level.tempo_amoebe, TEXT_SPEED },
{ EL_AMOEBE_NORM, &level.tempo_amoebe, TEXT_SPEED },
{ EL_AMOEBE_VOLL, &level.tempo_amoebe, TEXT_SPEED },
@@
-2814,21
+2833,22
@@
static void FloodFill(int from_x, int from_y, int fill_element)
}
/* values for DrawLevelText() modes */
}
/* values for DrawLevelText() modes */
-#define TEXT_INIT 0
-#define TEXT_SETCURSOR 1
-#define TEXT_WRITECHAR 2
-#define TEXT_BACKSPACE 3
-#define TEXT_NEWLINE 4
-#define TEXT_END 5
+#define TEXT_INIT 0
+#define TEXT_SETCURSOR 1
+#define TEXT_WRITECHAR 2
+#define TEXT_BACKSPACE 3
+#define TEXT_NEWLINE 4
+#define TEXT_END 5
+#define TEXT_QUERY_TYPING 6
-static
void
DrawLevelText(int sx, int sy, char letter, int mode)
+static
int
DrawLevelText(int sx, int sy, char letter, int mode)
{
static short delete_buffer[MAX_LEV_FIELDX];
static int start_sx, start_sy;
static int last_sx, last_sy;
static boolean typing = FALSE;
int letter_element = EL_CHAR_ASCII0 + letter;
{
static short delete_buffer[MAX_LEV_FIELDX];
static int start_sx, start_sy;
static int last_sx, last_sy;
static boolean typing = FALSE;
int letter_element = EL_CHAR_ASCII0 + letter;
- int lx
, ly
;
+ int lx
= 0, ly = 0
;
/* map lower case letters to upper case and convert special characters */
if (letter >= 'a' && letter <= 'z')
/* map lower case letters to upper case and convert special characters */
if (letter >= 'a' && letter <= 'z')
@@
-2847,7
+2867,7
@@
static void DrawLevelText(int sx, int sy, char letter, int mode)
if (mode != TEXT_INIT)
{
if (!typing)
if (mode != TEXT_INIT)
{
if (!typing)
- return;
+ return
FALSE
;
if (mode != TEXT_SETCURSOR)
{
if (mode != TEXT_SETCURSOR)
{
@@
-2897,7
+2917,7
@@
static void DrawLevelText(int sx, int sy, char letter, int mode)
if (sx > start_sx)
{
Feld[lx - 1][ly] = delete_buffer[sx - start_sx - 1];
if (sx > start_sx)
{
Feld[lx - 1][ly] = delete_buffer[sx - start_sx - 1];
- DrawMiniElement(sx - 1, sy,
new_element3
);
+ DrawMiniElement(sx - 1, sy,
Feld[lx - 1][ly]
);
DrawLevelText(sx - 1, sy, 0, TEXT_SETCURSOR);
}
break;
DrawLevelText(sx - 1, sy, 0, TEXT_SETCURSOR);
}
break;
@@
-2915,9
+2935,14
@@
static void DrawLevelText(int sx, int sy, char letter, int mode)
typing = FALSE;
break;
typing = FALSE;
break;
+ case TEXT_QUERY_TYPING:
+ break;
+
default:
break;
}
default:
break;
}
+
+ return typing;
}
static void SetTextCursor(int unused_sx, int unused_sy, int sx, int sy,
}
static void SetTextCursor(int unused_sx, int unused_sy, int sx, int sy,
@@
-3069,7
+3094,7
@@
static void HandleDrawingAreas(struct GadgetInfo *gi)
int sx = gi->event.x, sy = gi->event.y;
int min_sx = 0, min_sy = 0;
int max_sx = gi->drawing.area_xsize - 1, max_sy = gi->drawing.area_ysize - 1;
int sx = gi->event.x, sy = gi->event.y;
int min_sx = 0, min_sy = 0;
int max_sx = gi->drawing.area_xsize - 1, max_sy = gi->drawing.area_ysize - 1;
- int lx
, ly
;
+ int lx
= 0, ly = 0
;
int min_lx = 0, min_ly = 0;
int max_lx = lev_fieldx - 1, max_ly = lev_fieldy - 1;
int x, y;
int min_lx = 0, min_ly = 0;
int max_lx = lev_fieldx - 1, max_ly = lev_fieldy - 1;
int x, y;
@@
-3832,7
+3857,8
@@
void HandleLevelEditorKeyInput(KeySym key)
char letter = getCharFromKeySym(key);
int button = MB_LEFT;
char letter = getCharFromKeySym(key);
int button = MB_LEFT;
- if (drawing_function == GADGET_ID_TEXT)
+ if (drawing_function == GADGET_ID_TEXT &&
+ DrawLevelText(0, 0, 0, TEXT_QUERY_TYPING) == TRUE)
{
if (letter)
DrawLevelText(0, 0, letter, TEXT_WRITECHAR);
{
if (letter)
DrawLevelText(0, 0, letter, TEXT_WRITECHAR);