Simplified marker drawing

This commit is contained in:
Devine Lu Linvega 2024-03-11 16:20:53 -07:00
parent abcc43690d
commit e0999f0a0e
1 changed files with 16 additions and 24 deletions

View File

@ -1208,16 +1208,15 @@
( | reset state )
<reset-state>
( | paint )
.scroll/x LDZ2 ;<draw-character>/anchor STA2
.scroll/x LDZ2 ;draw-character/anchor STA2
#0020 .Screen/y DEO2
[ LIT2 15 -Screen/auto ] DEO
get-scroll-addr
&>l ( -- )
<draw-character>
LDAk #0a NEQ ?&>no-lb
draw-character LDAk #0a NEQ ?&>no-lb
<draw-lb>
.Screen/y DEI2 .Screen/height DEI2 #0010 SUB2 GTH2 ?&end
.scroll/x LDZ2 ;<draw-character>/anchor STA2 &>no-lb next-glyph LDAk ?&>l
.scroll/x LDZ2 ;draw-character/anchor STA2 &>no-lb next-glyph LDAk ?&>l
( | draw size left when not dir )
file-is-dir ?&end
#0000 OVR2 SUB2 #0f <draw-decimal>
@ -1231,7 +1230,7 @@
POP .Screen/sprite DEO
JMP2r
@<draw-character> ( addr* -- addr* )
@draw-character ( addr* -- addr* )
scan-state get-glyph-addr .Screen/addr DEO2
get-color ,&c STR
[ LIT2r &anchor $2 ] LITr -Screen/x DEO2kr
@ -1246,7 +1245,7 @@
get-glyph-width POPr STH2r ADD2 ,&anchor STR2
JMP2r
@<draw-glyph> ( addr* -- addr* )
@draw-glyph ( addr* -- addr* )
[ LITr -Screen/x ] DEI2r
( ) get-utf8-addr .Screen/addr DEO2
get-utf8-width STHk
@ -1256,20 +1255,19 @@
JMP2r
@draw-word-until ( str* x* color -- str* )
;<draw-glyph>/color STA
;draw-glyph/color STA
,&x STR2
&>w ( -- )
.Screen/x DEI2 [ LIT2 &x $2 ] LTH2 ?{
walk-word
( ) #0006 ;dotdot-icn !<draw-short-glyph> }
<draw-glyph>
next-glyph LDAk #20 GTH ?&>w
draw-glyph next-glyph LDAk #20 GTH ?&>w
JMP2r
@<draw-short-glyph> ( length* addr* -- )
.Screen/addr DEO2
.Screen/x DEI2
( ) ;<draw-glyph>/color LDA .Screen/sprite DEO
( ) ;draw-glyph/color LDA .Screen/sprite DEO
ADD2 .Screen/x DEO2
JMP2r
@ -1284,8 +1282,14 @@
.nav/len LDZ #00 EQUk ?<draw-navbar-empty>
&>l ( -- )
#000a .Screen/x DEO2
DUP [ LIT &sel $1 ] get-marker-color ;<draw-glyph>/color STA
DUP get-marker <draw-marker>
DUP [ LIT &sel $1 ] get-marker-color STH
( cap ) ;marker-icns .Screen/addr DEO2
STHkr #02 SFT .Screen/sprite DEO
DUP get-marker find-prev-spacer
( label ) LDA2k [ LIT2 "@| ] NEQ2 ?{ INC2 INC2 }
#007c STHkr draw-word-until POP2
( cap ) ;marker-icns/end .Screen/addr DEO2
STHr #02 SFT .Screen/sprite DEO
<draw-lb>
INC GTHk ?&>l
POP2 <draw-cat>
@ -1343,18 +1347,6 @@
( recover x ) .Screen/x DEO2
JMP2r
@<draw-marker> ( str* -- )
;marker-icns <draw-marker-cap>
( | rewind )
find-prev-spacer LDA2k [ LIT2 "@| ] NEQ2 ?{ INC2 INC2 }
#007c ;<draw-glyph>/color LDA draw-word-until POP2 ;marker-icns/end
( >> )
@<draw-marker-cap> ( addr* -- )
.Screen/addr DEO2
;<draw-glyph>/color LDA #02 SFT .Screen/sprite DEO
JMP2r
@<clear-filepath> ( -- )
#07 get-cat-x #0004 ADD2 .Screen/x DEO2
#0004 .Screen/y DEO2