@@ 12,7 12,7 @@
@src $1 &buf $30
@canvas &width $2 &height $2 &length $2 &x $2 &y $2
- @brush &color $1 &shape $1 &patt $1 &blend $1 &tool $1
+ @brush &color $1 &shape $1 &patt $1 &blend $1 &tool $1 &flow $1
@menu &hide $1
|0100
@@ 130,7 130,10 @@
DUP #03 GTH ?{ <release-mouse>
<set-tool>
!<post-vector> }
- DUP #0a LTH ?{ <release-mouse>
+ DUP #0a NEQ ?{
+ <release-mouse>
+ .brush/flow LDZ INC <set-flow> }
+ DUP #0b NEQ ?{ <release-mouse>
<toggle-blend> }
POP !<post-vector>
@@ 175,6 178,10 @@
.brush/blend STZ
!<draw-menu>
+@<set-flow> ( blend -- )
+ #03 AND .brush/flow STZ
+ !<draw-menu>
+
@<set-color> ( color -- )
.brush/color STZ
<draw-pointer>
@@ 401,6 408,9 @@
JMP2r
@<paint-dot> ( x* y* -- )
+ ( | flow )
+ [ LIT &flow $1 ] INCk ,&flow STR
+ .brush/flow LDZ INC DIVk MUL SUB #00 EQU ?{ POP2 POP2 JMP2r }
get-brush-type ,&fn STR2
get-brush-shape ,&patt STR2
,&y STR2
@@ 620,8 630,11 @@
DUP .brush/tool LDZ NEQ #0a MUL .Screen/sprite DEO
INC GTHk ?&l-tools
POP2
+ ( | flow )
+ .canvas/height LDZ2 #0010 SUB2 .Screen/y DEO2
+ ;flow-icns [ LIT2 00 -brush/flow ] LDZ #30 SFT ADD2 .Screen/addr DEO2
+ [ LIT2 00 -Screen/sprite ] DEO
( | blend )
- .canvas/height LDZ2 #000c SUB2 .Screen/y DEO2
;blend-icns [ LIT2 00 -brush/blend ] LDZ #30 SFT ADD2 .Screen/addr DEO2
[ LIT2 00 -Screen/sprite ] DEO
JMP2r
@@ 690,10 703,10 @@
POP2
( | redraw patt )
;patts-icns/spray .Screen/addr DEO2
- #0002 .Screen/x DEO2
+ #0000 .Screen/x DEO2
#007a .Screen/y DEO2
[ LIT2 00 -Screen/auto ] DEO
- [ LIT2 06 -Screen/sprite ] DEO
+ [ LIT2 0c -Screen/sprite ] DEO
JMP2r
@<clear-guide> ( -- )
@@ 865,6 878,11 @@
0215 2220 2020 20c0 0205 0208 1020 4080
02f5 aad4 aad6 aafe 0205 02f8 7838 5888 ]
+@flow-icns
+ [
+ 0000 00ff ff00 0000 0000 00ee ee00 0000
+ 0000 00db db00 0000 0000 00aa aa00 0000 ]
+
@blend-icns
[
ffff ffff 8181 81ff ff81 8181 ffff ffff ]