projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed redraw/fade bugs when redefining the playfield size or position
[rocksndiamonds.git]
/
src
/
editor.c
diff --git
a/src/editor.c
b/src/editor.c
index 466231ecca0be9c014b7c74a6641940955d2d79c..728ff1d71319fa680751f165b45d7545fa7daed6 100644
(file)
--- a/
src/editor.c
+++ b/
src/editor.c
@@
-7368,11
+7368,6
@@
static boolean playfield_area_changed = FALSE;
void DrawLevelEd()
{
void DrawLevelEd()
{
- int old_sx = SX;
- int old_sy = SY;
- int old_sxsize = SXSIZE;
- int old_sysize = SYSIZE;
-
StopAnimation();
CloseDoor(DOOR_CLOSE_ALL);
StopAnimation();
CloseDoor(DOOR_CLOSE_ALL);
@@
-7385,13
+7380,7
@@
void DrawLevelEd()
/* needed if different viewport properties defined for editor */
ChangeViewportPropertiesIfNeeded();
/* needed if different viewport properties defined for editor */
ChangeViewportPropertiesIfNeeded();
- if (old_sx != SX ||
- old_sy != SY ||
- old_sxsize != SXSIZE ||
- old_sysize != SYSIZE)
- playfield_area_changed = TRUE;
- else
- playfield_area_changed = FALSE;
+ playfield_area_changed = DrawingAreaChanged();
OpenDoor(DOOR_OPEN_1 | DOOR_OPEN_2 | DOOR_NO_DELAY);
OpenDoor(DOOR_OPEN_1 | DOOR_OPEN_2 | DOOR_NO_DELAY);
@@
-7431,7
+7420,7
@@
void DrawLevelEd()
BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto,
DOOR_GFX_PAGEX8, 236, EXSIZE, EYSIZE, EX, EY);
BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto,
DOOR_GFX_PAGEX8, 236, EXSIZE, EYSIZE, EX, EY);
- redraw_mask |= REDRAW_ALL;
+
//
redraw_mask |= REDRAW_ALL;
FreeLevelEditorGadgets();
CreateLevelEditorGadgets();
FreeLevelEditorGadgets();
CreateLevelEditorGadgets();
@@
-10074,6
+10063,9
@@
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;
else if (element >= NUM_FILE_ELEMENTS)
element_mapped = EL_UNKNOWN;
+ // 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("%s%03d", (mode == CB_DUMP_BRUSH ? "`" : "¸"), element_mapped);
}
@@
-10282,6
+10274,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)
{
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;
delete_buffer[sx - start_sx] = Feld[lx][ly];
Feld[lx][ly] = letter_element;
@@
-11382,7
+11378,7
@@
static void HandleControlButtons(struct GadgetInfo *gi)
/* needed before playing if editor playfield area has different size */
ClearRectangle(drawto, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE);
/* needed before playing if editor playfield area has different size */
ClearRectangle(drawto, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE);
- redraw_mask = REDRAW_ALL;
+
//
redraw_mask = REDRAW_ALL;
level_editor_test_game = TRUE;
level_editor_test_game = TRUE;