~rabbits/nasu

8c2ab7c392dd963a000326d42ed6f2a8f5956e80 — Devine Lu Linvega 8 months ago b11c93e
Click menu again to deselect
3 files changed, 46 insertions(+), 35 deletions(-)

M src/manifest.tal
M src/nasu.tal
D untitled.chr
M src/manifest.tal => src/manifest.tal +42 -30
@@ 8,10 8,11 @@
			01 'r :file-rename "Rename $1
			01 'o :file-open "Open $1
			01 's :file-save "Save $1
		03 "Edit $1
		04 "Edit $1
			01 'c :edit-copy "Copy $1
			01 'v :edit-paste "Paste $1
			01 'x :edit-cut "Cut $1
			00 08 :edit-erase "Erase $1
		0c "Select $1
			00 'q :select-brush "Brush $1
			00 'w :select-selector "Selector $1


@@ 30,21 31,26 @@
			00 '2 :pick-color2 "Color2 $1
			00 '3 :pick-color3 "Color3 $1
			00 '4 :pick-color4 "Color4 $1
		02 "Options $1
			00 08 :option-erase "Erase $1
			00 20 :option-zoom "Zoom $1
		01 "View $1
			00 20 :view-zoom "Zoom $1
		$1

@trap-menu ( -> )

	;on-mouse-menu .Mouse/vector DEO2
	;on-control-menu .Controller/vector DEO2
	#ff ;draw-cat/sel STA
	#ff ;draw-sub/sel STA
	;draw-cat JSR2
	,menu-init JSR

BRK

@menu-init ( -- )

	#ff ;draw-menu/sel STA
	#ff ;draw-sub/sel STA
	;draw-menu JSR2

JMP2r

@on-mouse-menu ( -> )

	( clear last cursor )


@@ 65,12 71,12 @@ BRK
		BRK
		&no-touch-cat
	( when sub active )
	;draw-cat/sel LDA #ff EQU ,&no-sub JCN
	;draw-menu/sel LDA #ff EQU ,&no-sub JCN
		( when sel changed )
		.Mouse/y DEI2 #03 SFT2 NIP #01 SUB
		DUP ;draw-sub/sel LDA EQU ,&no-change JCN
			DUP ;draw-sub/sel STA
			;draw-cat/sel LDA #ff ;draw-sub JSR2
			;draw-menu/sel LDA #ff ;draw-sub JSR2
			&no-change
		POP
		( when touch sub )


@@ 81,7 87,7 @@ BRK
		BRK
		&no-sub
	( don't leave if menu is active )
	;draw-cat/sel LDA #ff EQU
	;draw-menu/sel LDA #ff EQU
	.Mouse/y DEI2 #0007 GTH2 
		AND ;on-menu-leave JCN2



@@ 102,9 108,9 @@ JMP2r
@menu-close ( -- )

	;untrap JSR2
	( hide ) ;draw-cat/sel LDA #00 ;draw-sub JSR2
	#ff ;draw-cat/sel STA
	;draw-cat JSR2
	( hide ) ;draw-menu/sel LDA #00 ;draw-sub JSR2
	#ff ;draw-menu/sel STA
	;draw-menu JSR2
	;redraw JSR2

JMP2r


@@ 112,17 118,23 @@ JMP2r
@menu-select ( cat -- )

	( clear )
	;draw-cat/sel LDA
	( unchanged ) DUP2 EQU ,&no-clear JCN
	;draw-menu/sel LDA
	( unchanged ) DUP2 EQU ,menu-deselect JCN
	( unselected ) DUP #ff EQU ,&no-clear JCN
		DUP #00 ;draw-sub JSR2
		&no-clear
	POP
	( draw application ) ;redraw JSR2
	( unselect sub ) #ff ;draw-sub/sel STA
	( select cat ) DUP ;draw-cat/sel STA
	( select cat ) DUP ;draw-menu/sel STA
	( draw sub ) #ff ;draw-sub JSR2
	;draw-cat JSR2
	;draw-menu JSR2

JMP2r

@menu-deselect ( cat cat -- )

	POP2 ;menu-close JSR2

JMP2r



@@ 144,15 156,16 @@ JMP2r

BRK

@draw-cat ( -- )
@draw-menu ( -- )

	#0000 DUP2 .Screen/x DEO2 .Screen/y DEO2
	#0010 .Screen/x DEO2 
	#0000 .Screen/y DEO2
	#01 .Screen/auto DEO
	#00 ,&id STR
	;manifest/menu
	&cat
		#0701 [ LIT &sel $1 ] [ LIT &id $1 ] EQU JMP SWP POP ;draw-chr/color STA
		INC2k ;draw-str JSR2 POP2 #00 .Screen/sprite DEOk DEO
		INC2k ;draw-str JSR2 POP2 #00 .Screen/sprite DEO
		;skip-sub JSR2
		,&id LDR INC ,&id STR
		LDAk ,&cat JCN


@@ 164,9 177,9 @@ JMP2r
@draw-sub ( cat mask -- )

	,&mask STR POP
	;draw-cat/sel LDA ;get-cat JSR2
	;draw-menu/sel LDA ;get-cat JSR2
	DUP2 #0000 EQU2 ,&skip JCN
	;draw-cat/sel LDA ;get-anchor JSR2 ,&anchor STR2
	;draw-menu/sel LDA ;get-anchor JSR2 ,&anchor STR2
	#01 .Screen/auto DEO
	LDAk STH INC2 ;skip-str JSR2
	STHr #00


@@ 190,12 203,12 @@ JMP2r
	LDA2k SWP2
	#0004 ADD2 STH2k ;draw-str JSR2 
	( fill )
	#10 STH2r ;slen JSR2 NIP SUB #00
	#0b STH2r ;slen JSR2 NIP SUB #00
	&loop
		#20 ;draw-chr JSR2
		INC GTHk ,&loop JCN
	POP2
	.Screen/x DEI2 #0010 SUB2 .Screen/x DEO2
	.Screen/x DEI2 #0008 SUB2 .Screen/x DEO2
	SWP2 ;draw-key JSR2 ;draw-mod JSR2

JMP2r


@@ 219,9 232,8 @@ JMP2r
@buttons-icns
	387c fefe fe7c 3800
	3844 8282 8244 3800
	7cfe fefe fefe 7c00
	7c82 8282 8282 7c00

	1038 7cfe 7c38 1000
	1028 4482 4428 1000
	1038 7cfe 1010 1000
	1010 10fe 7c38 1000
	1030 70fe 7030 1000


@@ 267,7 279,7 @@ JMP2r
@get-sub ( sub -- sub* )

	STH
	;draw-cat/sel LDA ;get-cat JSR2
	;draw-menu/sel LDA ;get-cat JSR2
	LDAk STH INC2 ;skip-str JSR2
	STHr #00
	&subcat


@@ 305,14 317,14 @@ JMP2r
	;manifest/menu
	&cat
		[ LIT &id 00 ] [ LIT &target $1 ] EQU ,&end JCN
		INC2k ;slen JSR2 INC2 INC2 STH2 ADD2r
		INC2k ;slen JSR2 INC2 STH2 ADD2r
		;skip-sub JSR2
		,&id LDR INC ,&id STR
		LDAk ,&cat JCN
	POP2
	&end
	STH2r
	#30 SFT2
	INC2 INC2 #30 SFT2

JMP2r


M src/nasu.tal => src/nasu.tal +4 -5
@@ 44,7 44,7 @@
	#05cf .System/g DEO2
	#0caf .System/b DEO2
	( size )
	#0130 .Screen/width DEO2
	#0120 .Screen/width DEO2
	#0100 .Screen/height DEO2
	( vectors )
	;on-console  .Console/vector DEO2


@@ 86,8 86,7 @@
	#00 .Screen/auto DEO
	( let's begin! )
	;file-new JSR2
	;print-manifest JSR2
	( ;draw-menu JSR2 )
	;menu-init JSR2

BRK



@@ 1205,7 1204,7 @@ JMP2r

( option )

@option-erase ( -- )
@edit-erase ( -- )

	;op-erase ;run JSR2
	#01 .state/changed STZ ;draw-state JSR2


@@ 1213,7 1212,7 @@ JMP2r

JMP2r

@option-zoom ( -- )
@view-zoom ( -- )

	 ;toggle-zoom JSR2


D untitled.chr => untitled.chr +0 -0