Skip to content

Commit be0968d

Browse files
committed
Brush filter: V,Shift+V to cycle primary mode. Shift+A,Shift+E,Shift+R
to toggle Area/Flow/Room brushes as well.
1 parent 7697a72 commit be0968d

File tree

8 files changed

+121
-37
lines changed

8 files changed

+121
-37
lines changed

Common/Cmds/FilterApply.cmd

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
; See FilterNext for explanation.
2+
3+
; Apply the current filter mode
4+
ifdef FM0 mprint Filter 0: Terrain and Object brushes (Ctrl+V to reset)
5+
ifdef FM0 ifndef FMA ifndef FMF ifndef FMR brush_filter 3216
6+
ifdef FM0 ifdef FMA brush_filter 3280
7+
ifdef FM0 ifdef FMF brush_filter 3472
8+
ifdef FM0 ifdef FMR brush_filter 3728
9+
ifdef FM1 mprint Filter 1: Terrain brushes (Ctrl+V to reset)
10+
ifdef FM1 ifndef FMA ifndef FMF ifndef FMR brush_filter 3088
11+
ifdef FM1 ifdef FMA brush_filter 3152
12+
ifdef FM1 ifdef FMF brush_filter 3344
13+
ifdef FM1 ifdef FMR brush_filter 3600
14+
ifdef FM2 mprint Filter 2: Object brushes (Ctrl+V to reset)
15+
ifdef FM2 ifndef FMA ifndef FMF ifndef FMR brush_filter 3200
16+
ifdef FM2 ifdef FMA brush_filter 3264
17+
ifdef FM2 ifdef FMF brush_filter 3456
18+
ifdef FM2 ifdef FMR brush_filter 3712
19+
ifdef FM3 mprint Filter 3: Light brushes (Ctrl+V to reset)
20+
ifdef FM3 ifndef FMA ifndef FMF ifndef FMR brush_filter 3104
21+
ifdef FM3 ifdef FMA brush_filter 3168
22+
ifdef FM3 ifdef FMF brush_filter 3360
23+
ifdef FM3 ifdef FMR brush_filter 3616
24+
ifdef FM4 mprint Filter 4: Nothing (Ctrl+V to reset)
25+
ifdef FM4 ifndef FMA ifndef FMF ifndef FMR brush_filter 3072
26+
ifdef FM4 ifdef FMA brush_filter 3136
27+
ifdef FM4 ifdef FMF brush_filter 3328
28+
ifdef FM4 ifdef FMR brush_filter 3584
29+
ifdef FMA mprint ... and Area brushes (Shift+A to toggle)
30+
ifdef FMF mprint ... and Flow brushes (Shift+E to toggle)
31+
ifdef FMR mprint ... and Room brushes (Shift+R to toggle)

Common/Cmds/FilterArea.cmd

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
; See FilterNext for explanation.
2+
3+
; Toggle area filter
4+
unset FMx
5+
ifdef FMA set FMx
6+
ifndef FMA set FMA
7+
ifdef FMx unset FMA
8+
unset FMx
9+
unset FMF
10+
unset FMR
11+
12+
run .\cmds\FilterApply.cmd

Common/Cmds/FilterFlow.cmd

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
; See FilterNext for explanation.
2+
3+
; Toggle flow filter
4+
unset FMx
5+
ifdef FMF set FMx
6+
ifndef FMF set FMF
7+
ifdef FMx unset FMF
8+
unset FMx
9+
unset FMA
10+
unset FMR
11+
12+
run .\cmds\FilterApply.cmd

Common/Cmds/FilterNext.cmd

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,47 @@
1+
; `brush_filter` command takes an int parameter which is the filter mask.
2+
; The "everything" filter mask is 0x0FF0 (4080); to disable certain brushes,
3+
; clear their bits as per the table below. It is important that the upper
4+
; two bits of the filter mask remain set, as dromed checks if all 16 bits are
5+
; set when deciding if any filters are active or not.
6+
;
7+
; - 0x010: Terrain
8+
; - 0x020: Light
9+
; - 0x040: Area
10+
; - 0x080: Object
11+
; - 0x100: Flow
12+
; - 0x200: Room
13+
;
14+
; This script uses the config variables FM* (Filter Mask) to decide which
15+
; filter mode it is in; it has a primary mode which is cycled through, and
16+
; a secondary mode which is toggled as needed.
17+
;
18+
; Primary mode:
19+
;
20+
; - FM0: show Terrain and Objects
21+
; - FM1: show Terrain only
22+
; - FM2: show Objects only
23+
; - FM3: show Lights only
24+
; - FM4: show secondary only (if any secondary is active)
25+
;
26+
; Secondary mode:
27+
;
28+
; - FMA: also show Area brushes
29+
; - FMR: also show Room brushes
30+
; - FMF: also show Flow brushes
31+
; - FMx: temporary flag while toggling.
32+
133
; Cycle to the next filter mode (or start with mode 0 if none set yet)
2-
ifdef FM5 unset FM5
3-
ifdef FM4 set FM5 1
434
ifdef FM4 unset FM4
5-
ifdef FM3 set FM4 1
35+
ifdef FM3 ifdef FMA set FM4 1
36+
ifdef FM3 ifdef FMF set FM4 1
37+
ifdef FM3 ifdef FMR set FM4 1
638
ifdef FM3 unset FM3
739
ifdef FM2 set FM3 1
840
ifdef FM2 unset FM2
941
ifdef FM1 set FM2 1
1042
ifdef FM1 unset FM1
1143
ifdef FM0 set FM1 1
1244
ifdef FM0 unset FM0
13-
ifndef FM0 ifndef FM1 ifndef FM2 ifndef FM3 ifndef FM4 ifndef FM5 set FM0 1
45+
ifndef FM0 ifndef FM1 ifndef FM2 ifndef FM3 ifndef FM4 set FM0 1
1446

15-
; Apply the current filter mode
16-
ifdef FM0 mprint Filter 0: Terrain and Object brushes (Ctrl+V to reset)
17-
ifdef FM0 brush_filter 3216
18-
ifdef FM1 mprint Filter 1: Area brushes (Ctrl+V to reset)
19-
ifdef FM1 brush_filter 3136
20-
ifdef FM2 mprint Filter 2: Terrain brushes (Ctrl+V to reset)
21-
ifdef FM2 brush_filter 3088
22-
ifdef FM3 mprint Filter 3: Object brushes (Ctrl+V to reset)
23-
ifdef FM3 brush_filter 3200
24-
ifdef FM4 mprint Filter 4: Flow brushes (Ctrl+V to reset)
25-
ifdef FM4 brush_filter 3328
26-
ifdef FM5 mprint Filter 5: Room brushes (Ctrl+V to reset)
27-
ifdef FM5 brush_filter 3584
47+
run .\cmds\FilterApply.cmd

Common/Cmds/FilterNone.cmd

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
mprint Filter: All brushes
1+
; See FilterNext for explanation.
2+
3+
mprint Filter: All brushes.
24
brush_filter 4080
35
unset FM0
46
unset FM1
57
unset FM2
68
unset FM3
7-
unset FM4
8-
unset FM5
9+
unset FMA
10+
unset FMF
11+
unset FMR

Common/Cmds/FilterPrev.cmd

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
; Cycle to the previous filter mode (or start with mode 5 if none set yet)
1+
; See FilterNext for explanation.
2+
3+
; Cycle to the previous filter mode (or start with mode 3 if none set yet)
24
ifdef FM0 unset FM0
35
ifdef FM1 set FM0 1
46
ifdef FM1 unset FM1
@@ -8,20 +10,9 @@ ifdef FM3 set FM2 1
810
ifdef FM3 unset FM3
911
ifdef FM4 set FM3 1
1012
ifdef FM4 unset FM4
11-
ifdef FM5 set FM4 1
12-
ifdef FM5 unset FM5
13-
ifndef FM0 ifndef FM1 ifndef FM2 ifndef FM3 ifndef FM4 ifndef FM5 set FM5 1
13+
ifndef FM0 ifndef FM1 ifndef FM2 ifndef FM3 ifndef FM4 ifndef FMA ifndef FMF ifndef FMR set FM3 1
14+
ifndef FM0 ifndef FM1 ifndef FM2 ifndef FM3 ifndef FM4 ifdef FMA set FM4 1
15+
ifndef FM0 ifndef FM1 ifndef FM2 ifndef FM3 ifndef FM4 ifdef FMF set FM4 1
16+
ifndef FM0 ifndef FM1 ifndef FM2 ifndef FM3 ifndef FM4 ifdef FMR set FM4 1
1417

15-
; Apply the current filter mode
16-
ifdef FM0 mprint Filter 0: Terrain and Object brushes (Ctrl+V to reset)
17-
ifdef FM0 brush_filter 3216
18-
ifdef FM1 mprint Filter 1: Area brushes (Ctrl+V to reset)
19-
ifdef FM1 brush_filter 3136
20-
ifdef FM2 mprint Filter 2: Terrain brushes (Ctrl+V to reset)
21-
ifdef FM2 brush_filter 3088
22-
ifdef FM3 mprint Filter 3: Object brushes (Ctrl+V to reset)
23-
ifdef FM3 brush_filter 3200
24-
ifdef FM4 mprint Filter 4: Flow brushes (Ctrl+V to reset)
25-
ifdef FM4 brush_filter 3328
26-
ifdef FM5 mprint Filter 5: Room brushes (Ctrl+V to reset)
27-
ifdef FM5 brush_filter 3584
18+
run .\cmds\FilterApply.cmd

Common/Cmds/FilterRoom.cmd

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
; See FilterNext for explanation.
2+
3+
; Toggle room filter
4+
unset FMx
5+
ifdef FMR set FMx
6+
ifndef FMR set FMR
7+
ifdef FMx unset FMR
8+
unset FMx
9+
unset FMA
10+
unset FMF
11+
12+
run .\cmds\FilterApply.cmd

Common/DEFAULT.BND

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,15 +124,18 @@ edit bind pgdn "run .\cmds\CamDown512.cmd" ; move cam down 512 units (a
124124

125125
; SHIFT-
126126

127+
edit bind a+shift "run .\cmds\FilterArea.cmd" ; toggle Area filter
127128
edit bind c+shift "ceil_object" ; 'drop' selected object to ceiling
128129
edit bind d+shift "store_group" ; store multibrush group
130+
edit bind e+shift "run .\cmds\FilterFlow.cmd" ; toggle Flow filter
129131
game bind e+shift "+fly -1" ; fly down
130132
edit bind f+shift "floor_object" ; drop selected object to floor
131133
edit bind h+shift hilight_brush ; toggle highlight of selected brush
132134
;edit bind m+shift "cycle_media -1" ; cycle media backward
133135
all bind o+shift "toggle_object_render" ; toggle rendering of objects (Newdark only)
134136
edit bind q+shift qlink_del ; remove from quicklink group
135137
game bind q+shift "+fly 1" ; fly up
138+
edit bind r+shift "run .\cmds\FilterRoom.cmd" ; toggle Room filter
136139
;edit bind s+shift "set_grid" ; snap brush vertices to grid
137140
edit bind t+shift "run .\cmds\ResetTexture.cmd" ; Set default texture.
138141
;edit bind t+shift "cycle_tex -1" ; cycle texture backward

0 commit comments

Comments
 (0)