Browse Source

Improved zoom

main
neauoire 4 years ago
parent
commit
421c141530
  1. 44
      src/main.tal

44
src/main.tal

@ -57,6 +57,7 @@
@selection
&x1 $1 &y1 $1
&x2 $1 &y2 $1
&zx $1 &zy $1 ( zoom )
&a $1
@frame
&x1 $2 &y1 $2
@ -302,7 +303,8 @@ BRK
.Mouse/x DEI2 .tileview/x1 LDZ2 -- 8// NIP
.Mouse/y DEI2 .tileview/y1 LDZ2 -- 8// NIP
;set-focus JSR2
DUP2 8* SWP 8* SWP ;set-selection-zoom JSR2
;set-selection-from JSR2
;toggle-zoom JSR2
;redraw JSR2
RELEASE-MOUSE
@ -311,9 +313,8 @@ BRK
&zoomed ( -> )
.Mouse/x DEI2 .tileview/x1 LDZ2 -- 8//
.Mouse/y DEI2 .tileview/y1 LDZ2 -- 8//
GET-POSITION ADD-POSITIONS
.Mouse/x DEI2 .tileview/x1 LDZ2 -- 8// #00 .selection/zx LDZ ++
.Mouse/y DEI2 .tileview/y1 LDZ2 -- 8// #00 .selection/zy LDZ ++
.settings/color LDZ .Mouse/state DEI #01 = * ;put-pixel JSR2
SET-STATE
;redraw JSR2
@ -507,6 +508,13 @@ RTN
RTN
@set-selection-zoom ( x y -- )
.selection/zy STZ
.selection/zx STZ
RTN
@set-selection-from ( x y -- )
DUP .selection/y1 STZ .selection/y2 STZ
@ -528,6 +536,7 @@ RTN
@set-focus ( x y -- )
( set zoom )
DUP2
GET-ADDR .settings/focus STZ2
#40 SFT + .selection/a STZ
@ -536,6 +545,8 @@ RTN
@mod-selection ( x y -- )
.settings/zoom LDZ ;mod-selection-zoom JCN2
DUP
.selection/y2 LDZ + 10MOD .selection/y2 STZ
.selection/y1 LDZ + 10MOD .selection/y1 STZ
@ -556,6 +567,15 @@ RTN
RTN
@mod-selection-zoom ( x y -- )
.selection/zy LDZ + .selection/zy STZ
.selection/zx LDZ + .selection/zx STZ
.selection/zx LDZ 8/ .selection/zy LDZ 8/ ;set-selection-from JSR2
;draw-tileview-zoom JSR2
RTN
@scale-selection ( x y -- )
.selection/y2 LDZ + 10MOD .selection/y2 STZ
@ -757,18 +777,22 @@ RTN
#10 #00
&hor
DUP 8* TOS .tileview/x1 LDZ2 ++ .Screen/x DEO2
( get pixel offset ) GET-ITER SWP TOS ROT TOS
( add focus ) STH2kr SWP2r STH2kr SWP2r ADD-POSITIONS
;get-pixel JSR2 #00 + .Screen/sprite DEO
GET-ITER
( y ) .selection/zy LDZ + TOS
( x ) ROT .selection/zx LDZ + TOS SWP2
;get-pixel JSR2 .Screen/sprite DEO
INC GTHk ,&hor JCN
POP2
INC GTHk ,&ver JCN
POP2
POP2r POP2r
( guides )
.tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 #003f ++ #02 ;line-hor-dashed JSR2
.tileview/x1 LDZ2 #003f ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2
#00 #08 .selection/zy LDZ - 8MOD2 8** #0001 -- STH2
.tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2kr ++ #02 ;line-hor-dashed JSR2
.tileview/x1 LDZ2 .tileview/x2 LDZ2 .tileview/y1 LDZ2 STH2r ++ #0040 ++ #02 ;line-hor-dashed JSR2
#00 #08 .selection/zx LDZ - 8MOD2 8** #0001 -- STH2
.tileview/x1 LDZ2 STH2kr ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2
.tileview/x1 LDZ2 STH2r ++ #0040 ++ .tileview/y1 LDZ2 .tileview/y2 LDZ2 #02 ;line-ver-dashed JSR2
RTN

Loading…
Cancel
Save