start of about window

This commit is contained in:
~d6 2024-08-06 17:51:04 -04:00
parent f90a867631
commit e6f26332e0
4 changed files with 97 additions and 6 deletions

Binary file not shown.

Binary file not shown.

View File

@ -9,7 +9,7 @@
( * sometimes movement feels stutter-y ) ( * sometimes movement feels stutter-y )
( * automatically keeping @auto up-to-date is arguably better than recalculating ) ( * automatically keeping @auto up-to-date is arguably better than recalculating )
|00 @System [ &vect $2 &expansion $2 &title $2 &metadata $2 &r $2 &g $2 &b $2 ] |00 @System [ &vect $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 ]
|10 @Console [ &vect $2 &r $1 &exec $2 &mode $1 &dead $1 &exit $1 &w $1 ] |10 @Console [ &vect $2 &r $1 &exec $2 &mode $1 &dead $1 &exit $1 &w $1 ]
|20 @Screen [ &vect $2 &w $2 &h $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &px $1 &sprite $1 ] |20 @Screen [ &vect $2 &w $2 &h $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &px $1 &sprite $1 ]
|30 @Audio1 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ] |30 @Audio1 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ]
@ -62,8 +62,11 @@
&y1 $2 ] ( ending y coord ) &y1 $2 ] ( ending y coord )
@audio [ $1 ( is audio enabled? ) @audio [ $1 ( is audio enabled? )
&pos $2 ] ( position in music ) &pos $2 ] ( position in music )
@about $1 ( is about screen visible? 01 start, ff resume )
|0100 |0100
( metadata )
;metadata .System/metadata DEO2
( colors: gold, white, red, black ) ( colors: gold, white, red, black )
#bd82 .System/r DEO2 #bd82 .System/r DEO2
@ -92,6 +95,21 @@
start-audio start-audio
reset BRK reset BRK
@metadata 00
( title ) "kodiak 0a
( details ) "klondike 20 "solitaire 20 "game 0a
( author ) "by 20 "d_m 0a
( version ) "version 20 "0 0a
( date ) "5 20 "aug 20 2024 00
00
@icon-24x24
00 00 03 02 00 01 01 01 03 07 07 07 03 03 06 06
00 00 00 00 00 c3 c3 c3 00 81 81 ff ff ff bd bd
00 00 c0 40 00 80 80 8e c0 e0 e0 e0 c0 c0 60 6e
00 00 00 00 00 00 00 00 07 07 07 03 03 01 00 00
( tbc... )
@setup-audio ( adsr* sample* slen* dur* vol^ dev^ -> ) @setup-audio ( adsr* sample* slen* dur* vol^ dev^ -> )
STHk #0e ORA DEO ( [dev^] ; <-vol ) STHk #0e ORA DEO ( [dev^] ; <-vol )
STHkr #0a ORA DEO2 ( [dev^] ; <-slen ) STHkr #0a ORA DEO2 ( [dev^] ; <-slen )
@ -115,9 +133,16 @@
shuffle-stock shuffle-stock
deal-tableau deal-tableau
( TODO: clear foreground ) clear-fg
draw #01 .about STZ
auto-move draw-about
( draw auto-move )
JMP2r
@clear-fg ( -> )
#0000 .Screen/x DEO2
#0000 .Screen/y DEO2
#c0 .Screen/px DEO
JMP2r JMP2r
@quit ( -> brk ) @quit ( -> brk )
@ -228,6 +253,33 @@
#00 OVR STZ ( s^ ; s<-0 ) #00 OVR STZ ( s^ ; s<-0 )
#01 SUB JMP2r ( s-1^ ) #01 SUB JMP2r ( s-1^ )
@open-about ( -> )
#ff .about STZ draw-about !draw-mouse
@close-about ( -> )
#00 .about STZ draw !auto-move
@resume-button-addr ( -> addr* )
.about LDZ #00 LTH ?&resume
;start-button JMP2r
&resume ;resume-button JMP2r
@draw-about ( -> )
#0000 .Screen/x DEO2
#0000 .Screen/y DEO2
#83 .Screen/px DEO
#0010 .Screen/x DEO2
#0010 .Screen/y DEO2
;logo .Screen/addr DEO2
#a6 .Screen/auto DEO
#80 .Screen/sprite DEOk DEO
#0008 #00b4 resume-button-addr draw-button
#0030 #00b4 ;quit-button draw-button
JMP2r
@draw-bear-head ( x* y* head* -> ) @draw-bear-head ( x* y* head* -> )
.Screen/addr DEO2 ( x* y* ; s/addr<-head ) .Screen/addr DEO2 ( x* y* ; s/addr<-head )
.Screen/y DEO2 ( y* x* ; s/y<- ) .Screen/y DEO2 ( y* x* ; s/y<- )
@ -479,6 +531,7 @@
BRK BRK
@on-refresh-bear ( -> ) @on-refresh-bear ( -> )
.about LDZ #00 EQU ?{ JMP2r }
.frame LDZ .frame LDZ
DUP #e8 NEQ ?{ POP ;sprites #0040 ADD2 !&update } DUP #e8 NEQ ?{ POP ;sprites #0040 ADD2 !&update }
DUP #f0 NEQ ?{ POP ;sprites #0080 ADD2 !&update } DUP #f0 NEQ ?{ POP ;sprites #0080 ADD2 !&update }
@ -555,12 +608,14 @@
.Mouse/y DEI2 DUP2 .prev/mouse-y STZ2 .Screen/y DEO2 .Mouse/y DEI2 DUP2 .prev/mouse-y STZ2 .Screen/y DEO2
.dragging LDZ ?&skip .dragging LDZ ?&skip
;cursor .Screen/addr DEO2 ;cursor .Screen/addr DEO2
#43 .Screen/sprite DEO &skip JMP2r .about LDZ ?{ #43 .Screen/sprite DEO !&skip } #41 .Screen/sprite DEO
&skip JMP2r
@on-click-down ( -> ) @on-click-down ( -> )
.Mouse/state DEI ( state^ ) .Mouse/state DEI ( state^ )
.prev/mouse-state LDZ #ff EOR AND ( down^ ) .prev/mouse-state LDZ #ff EOR AND ( down^ )
#01 AND ?&ok JMP2r &ok #01 AND ?&ok JMP2r &ok
.about LDZ #00 EQU ?{ !close-about } ( TODO: check for buttons )
maybe-select-button ?&skip maybe-select-button ?&skip
maybe-select-stock ?&skip maybe-select-stock ?&skip
maybe-select-waste ?&found maybe-select-waste ?&found
@ -793,7 +848,7 @@
&restart POP2 reset #01 JMP2r &restart POP2 reset #01 JMP2r
&quit POP2 quit #01 JMP2r &quit POP2 quit #01 JMP2r
&audio POP2 toggle-audio #01 JMP2r &audio POP2 toggle-audio #01 JMP2r
&about POP2 #010e DEO #01 JMP2r &about POP2 open-about #01 JMP2r
@game-won ( -> bool^ ) @game-won ( -> bool^ )
.foundation #04 OVR ADD SWP ( lim^ start^ ) .foundation #04 OVR ADD SWP ( lim^ start^ )
@ -927,6 +982,42 @@
ff ff ff ff ff ff ff ff ff 37 ea a2 aa 2a ff ff ff ff ff ff ff ff ff ff ff 37 ea a2 aa 2a ff ff
fe ff ff ff ff ff ff fe fe 59 ab a9 ab a9 ff fe fe ff ff ff ff ff ff fe fe 59 ab a9 ab a9 ff fe
@start-button
7f ff ff ff ff ff ff 7f 7f fe fd fe ff fc ff 7f
ff ff ff ff ff ff ff ff ff 23 f6 76 b6 76 ff ff
ff ff ff ff ff ff ff ff ff 66 ab 27 ab ab ff ff
fe ff ff ff ff ff ff fe fe 3f 7f 7f 7f 7f ff fe
@resume-button
7f ff ff ff ff ff ff 7f 7f e7 ea e6 ea eb ff 7f
ff ff ff ff ff ff ff ff ff 31 ef 33 fd 23 ff ff
ff ff ff ff ff ff ff ff ff 5a 55 55 55 15 ff ff
fe ff ff ff ff ff ff fe fe e7 5f 47 5f 67 ff fe
@logo
6c fe 38 38 38 39 3b 7f 48 a4 20 20 20 21 22 40
6c fe 38 70 e0 c0 80 00 48 a4 20 40 80 00 00 00
00 07 1c 38 38 38 38 7c 00 04 10 20 20 20 20 40
00 c0 70 38 38 38 38 7c 00 00 40 20 20 20 20 40
60 ff 3c 38 38 38 38 7c 40 a8 20 20 20 20 20 40
00 c0 e0 70 38 38 38 7c 00 00 80 40 20 20 20 40
6c fe 38 38 38 38 38 7c 48 a4 20 20 20 20 20 40
0e 1b 07 0e 1c 1c f8 7f 08 12 04 08 10 10 a0 40
e0 b0 c0 e0 70 70 3e fc 80 20 00 80 40 40 24 00
6c fe 38 38 38 39 3b 7f 48 a4 20 20 20 21 22 40
6c fe 38 70 e0 c0 80 00 48 a4 20 40 80 00 00 00
3f 3b 39 38 38 38 fe 6c 20 22 21 20 20 20 a4 48
00 80 c0 e0 70 38 fe 6c 00 00 00 80 40 20 a4 48
38 38 38 38 38 1c 07 00 20 20 20 20 20 10 04 00
38 38 38 38 38 70 c0 00 20 20 20 20 20 40 00 00
38 38 38 38 38 3c ff 60 20 20 20 20 20 20 a8 40
38 38 38 38 70 e0 c0 00 20 20 20 20 40 80 00 00
38 38 38 38 38 38 fe 6c 20 20 20 20 20 20 a4 48
f8 38 38 38 38 38 fe 6c a0 20 20 20 20 20 a4 48
3e 38 38 38 38 38 fe 6c 24 20 20 20 20 20 a4 48
3f 3b 39 38 38 38 fe 6c 20 22 21 20 20 20 a4 48
00 80 c0 e0 70 38 fe 6c 00 00 00 80 40 20 a4 48
@saw ff ee dd cc bb aa 99 88 77 66 55 44 33 22 11 00 @saw ff ee dd cc bb aa 99 88 77 66 55 44 33 22 11 00
@triangle 80 ff 80 00 @triangle 80 ff 80 00

BIN
logo.chr Normal file

Binary file not shown.