projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
5f3fcf6
)
added highlighting similar elements in editor when pressing Alt+Shift keys
author
Holger Schemel
<info@artsoft.org>
Wed, 24 May 2023 14:25:24 +0000
(16:25 +0200)
committer
Holger Schemel
<info@artsoft.org>
Wed, 24 May 2023 14:25:24 +0000
(16:25 +0200)
src/editor.c
patch
|
blob
|
history
diff --git
a/src/editor.c
b/src/editor.c
index 25edbb4b764a0735aacb4fa98ffa4c97d9b361e1..abc0bc481497e165f9114ac7565e0a5a0c70861e 100644
(file)
--- a/
src/editor.c
+++ b/
src/editor.c
@@
-13306,7
+13306,8
@@
static void WrapLevel(int dx, int dy)
CopyLevelToUndoBuffer(UNDO_ACCUMULATE);
}
CopyLevelToUndoBuffer(UNDO_ACCUMULATE);
}
-static void DrawAreaElementHighlight(boolean highlighted)
+static void DrawAreaElementHighlight(boolean highlighted,
+ boolean highlighted_similar)
{
DrawEditorLevel(ed_fieldx, ed_fieldy, level_xpos, level_ypos);
{
DrawEditorLevel(ed_fieldx, ed_fieldy, level_xpos, level_ypos);
@@
-13325,7
+13326,10
@@
static void DrawAreaElementHighlight(boolean highlighted)
if (!IN_LEV_FIELD(lx, ly))
continue;
if (!IN_LEV_FIELD(lx, ly))
continue;
- if (Tile[lx][ly] != new_element1)
+ if (Tile[lx][ly] != new_element1 &&
+ (!highlighted_similar ||
+ !strEqual(element_info[Tile[lx][ly]].class_name,
+ element_info[new_element1].class_name)))
continue;
int sx = SX + x * ed_tilesize;
continue;
int sx = SX + x * ed_tilesize;
@@
-14961,16
+14965,20
@@
static void HandleLevelEditorIdle_Properties(void)
static void HandleLevelEditorIdle_Drawing(void)
{
static boolean last_highlighted = FALSE;
static void HandleLevelEditorIdle_Drawing(void)
{
static boolean last_highlighted = FALSE;
+ static boolean last_highlighted_similar = FALSE;
boolean highlighted = (GetKeyModState() & KMOD_Alt);
boolean highlighted = (GetKeyModState() & KMOD_Alt);
+ boolean highlighted_similar = (GetKeyModState() & KMOD_Shift);
- if (highlighted != last_highlighted)
+ if (highlighted != last_highlighted ||
+ (highlighted && highlighted_similar != last_highlighted_similar))
{
{
- DrawAreaElementHighlight(highlighted);
-
- last_highlighted = highlighted;
+ DrawAreaElementHighlight(highlighted, highlighted_similar);
redraw_mask |= REDRAW_FIELD;
}
redraw_mask |= REDRAW_FIELD;
}
+
+ last_highlighted = highlighted;
+ last_highlighted_similar = highlighted_similar;
}
void HandleLevelEditorIdle(void)
}
void HandleLevelEditorIdle(void)