projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed playing "game.losing" sound also if not asking to play again
[rocksndiamonds.git]
/
src
/
editor.c
diff --git
a/src/editor.c
b/src/editor.c
index 10ff5a7f8463771253829dbd90443f7f2d468010..7bc6dcd7bcaaa71674b799b08fc1fb64c0fb76ee 100644
(file)
--- a/
src/editor.c
+++ b/
src/editor.c
@@
-11136,7
+11136,7
@@
static void MergeAndCloseNeighbourElements(int x1, int y1, int *element1,
SetElementSimple(x2, y2, *element2, change_level);
}
SetElementSimple(x2, y2, *element2, change_level);
}
-static void SetElementIntelliDraw(int x, int y, int new_element,
+static void SetElementIntelliDraw(int x, int y, int
dx, int dy, int
new_element,
boolean change_level, int button)
{
struct XY *xy = xy_directions;
boolean change_level, int button)
{
struct XY *xy = xy_directions;
@@
-11908,7
+11908,10
@@
static void SetElementIntelliDraw(int x, int y, int new_element,
}
}
}
}
- SetElementSimple(x, y, new_element, change_level);
+ if (IS_MM_WALL_EDITOR(new_element))
+ SetElementSimpleExt(x, y, dx, dy, new_element, change_level);
+ else
+ SetElementSimple(x, y, new_element, change_level);
last_x = x;
last_y = y;
last_x = x;
last_y = y;
@@
-11922,7
+11925,7
@@
static void ResetIntelliDraw(void)
for (y = 0; y < lev_fieldy; y++)
IntelliDrawBuffer[x][y] = Tile[x][y];
for (y = 0; y < lev_fieldy; y++)
IntelliDrawBuffer[x][y] = Tile[x][y];
- SetElementIntelliDraw(-1, -1, EL_UNDEFINED, FALSE, -1);
+ SetElementIntelliDraw(-1, -1,
-1, -1,
EL_UNDEFINED, FALSE, -1);
}
static boolean draw_mode_hires = FALSE;
}
static boolean draw_mode_hires = FALSE;
@@
-11964,8
+11967,8
@@
static void SetElementExt(int x, int y, int dx, int dy, int element,
{
if (element < 0)
SetElementSimple(x, y, Tile[x][y], change_level);
{
if (element < 0)
SetElementSimple(x, y, Tile[x][y], change_level);
- else if (GetKeyModState() & KMOD_Shift
&& !IS_MM_WALL_EDITOR(element)
)
- SetElementIntelliDraw(x, y, element, change_level, button);
+ else if (GetKeyModState() & KMOD_Shift)
+ SetElementIntelliDraw(x, y,
dx, dy,
element, change_level, button);
else
SetElementSimpleExt(x, y, dx, dy, element, change_level);
}
else
SetElementSimpleExt(x, y, dx, dy, element, change_level);
}
@@
-13006,6
+13009,10
@@
static void CopyLevelTemplateToUserLevelSet(char *levelset_subdir)
static void HandleDrawingAreas(struct GadgetInfo *gi)
{
static boolean started_inside_drawing_area = FALSE;
static void HandleDrawingAreas(struct GadgetInfo *gi)
{
static boolean started_inside_drawing_area = FALSE;
+ static int last_sx = -1;
+ static int last_sy = -1;
+ static int last_sx2 = -1;
+ static int last_sy2 = -1;
int id = gi->custom_id;
int type_id = gi->custom_type_id;
boolean button_press_event;
int id = gi->custom_id;
int type_id = gi->custom_type_id;
boolean button_press_event;
@@
-13069,10
+13076,6
@@
static void HandleDrawingAreas(struct GadgetInfo *gi)
if (!button_press_event && !button_release_event)
{
if (!button_press_event && !button_release_event)
{
- static int last_sx = -1;
- static int last_sy = -1;
- static int last_sx2 = -1;
- static int last_sy2 = -1;
int old_element = (IN_LEV_FIELD(lx, ly) ? Tile[lx][ly] : EL_UNDEFINED);
boolean hires_drawing = (level.game_engine_type == GAME_ENGINE_TYPE_MM &&
isHiresTileElement(old_element) &&
int old_element = (IN_LEV_FIELD(lx, ly) ? Tile[lx][ly] : EL_UNDEFINED);
boolean hires_drawing = (level.game_engine_type == GAME_ENGINE_TYPE_MM &&
isHiresTileElement(old_element) &&
@@
-13082,13
+13085,13
@@
static void HandleDrawingAreas(struct GadgetInfo *gi)
if ((sx == last_sx && sy == last_sy && !hires_drawing) ||
(sx2 == last_sx2 && sy2 == last_sy2))
return;
if ((sx == last_sx && sy == last_sy && !hires_drawing) ||
(sx2 == last_sx2 && sy2 == last_sy2))
return;
-
- last_sx = sx;
- last_sy = sy;
- last_sx2 = sx2;
- last_sy2 = sy2;
}
}
+ last_sx = sx;
+ last_sy = sy;
+ last_sx2 = sx2;
+ last_sy2 = sy2;
+
if (button_press_event)
started_inside_drawing_area = inside_drawing_area;
if (button_press_event)
started_inside_drawing_area = inside_drawing_area;