mirror of
https://github.com/a2-4am/pitch-dark.git
synced 2024-09-30 08:57:06 +00:00
.
This commit is contained in:
parent
4d50a6b717
commit
1b8d5076ec
@ -80,13 +80,5 @@ MainScreen
|
|||||||
jsr HandleKey ; handle keypresses
|
jsr HandleKey ; handle keypresses
|
||||||
bra .mainRunLoop
|
bra .mainRunLoop
|
||||||
|
|
||||||
ExitWeeGUI
|
|
||||||
ldx #WGDisableMouse ; disable mouse support before quitting
|
|
||||||
jsr WeeGUI
|
|
||||||
ldx #WGClearScreen ; clear screen (HOME)
|
|
||||||
jsr WeeGUI
|
|
||||||
ldx #WGExit ; clean up WeeGUI
|
|
||||||
jmp WeeGUI
|
|
||||||
|
|
||||||
gGamesListStore
|
gGamesListStore
|
||||||
!word *+2 ; address of first okvs store
|
!word *+2 ; address of first okvs store
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
;
|
;
|
||||||
; Public functions
|
; Public functions
|
||||||
; - HardResetWeeGUI
|
; - HardResetWeeGUI
|
||||||
|
; - ExitWeeGUI
|
||||||
; - CreateRadio
|
; - CreateRadio
|
||||||
; - CreateCheckbox
|
; - CreateCheckbox
|
||||||
; - CreateButton
|
; - CreateButton
|
||||||
@ -35,6 +36,7 @@ kStringCancel
|
|||||||
; out: PARAM0/PARAM1 clobbered
|
; out: PARAM0/PARAM1 clobbered
|
||||||
; all registers clobbered
|
; all registers clobbered
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
!zone {
|
||||||
HardResetWeeGUI
|
HardResetWeeGUI
|
||||||
lda #15 ; highest possible WeeGUI view ID
|
lda #15 ; highest possible WeeGUI view ID
|
||||||
sta kHardResetDummyView
|
sta kHardResetDummyView
|
||||||
@ -49,6 +51,25 @@ HardResetWeeGUI
|
|||||||
jmp WeeGUI
|
jmp WeeGUI
|
||||||
kHardResetDummyView
|
kHardResetDummyView
|
||||||
!byte 0,0,0,0,0,0,0,0
|
!byte 0,0,0,0,0,0,0,0
|
||||||
|
}
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; ExitWeeGUI
|
||||||
|
; clears the screen and safely shuts down WeeGUI
|
||||||
|
;
|
||||||
|
; in: WeeGUI initialized
|
||||||
|
; out: A,Y preserved
|
||||||
|
; X clobbered
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
!zone {
|
||||||
|
ExitWeeGUI
|
||||||
|
ldx #WGDisableMouse ; disable mouse support before quitting
|
||||||
|
jsr WeeGUI
|
||||||
|
ldx #WGClearScreen ; clear screen (HOME)
|
||||||
|
jsr WeeGUI
|
||||||
|
ldx #WGExit ; clean up WeeGUI
|
||||||
|
jmp WeeGUI
|
||||||
|
}
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
; CreateRadio/CreateCheckbox/CreateButton
|
; CreateRadio/CreateCheckbox/CreateButton
|
||||||
|
@ -72,7 +72,7 @@ VersionsDialog
|
|||||||
|
|
||||||
jsr okvs_len
|
jsr okvs_len
|
||||||
!word gVersionsStore
|
!word gVersionsStore
|
||||||
sta .numVersions
|
sta iNumVersions
|
||||||
|
|
||||||
asl
|
asl
|
||||||
inc
|
inc
|
||||||
@ -80,7 +80,7 @@ VersionsDialog
|
|||||||
sta kViewVersionsFrame+7 ; frame height
|
sta kViewVersionsFrame+7 ; frame height
|
||||||
lda #12
|
lda #12
|
||||||
sec
|
sec
|
||||||
sbc .numVersions
|
sbc iNumVersions
|
||||||
sta kViewVersionsFrame+3 ; frame top = 12 - numVersions
|
sta kViewVersionsFrame+3 ; frame top = 12 - numVersions
|
||||||
inc
|
inc
|
||||||
sta kViewVersionsOK+2 ; OK top = frame top + 1
|
sta kViewVersionsOK+2 ; OK top = frame top + 1
|
||||||
@ -119,7 +119,7 @@ VersionsDialog
|
|||||||
+ !word $FDFD ; SMC
|
+ !word $FDFD ; SMC
|
||||||
plx
|
plx
|
||||||
inx
|
inx
|
||||||
.numVersions=*+1
|
iNumVersions=*+1
|
||||||
cpx #$FD ; SMC
|
cpx #$FD ; SMC
|
||||||
bne .createRadioLoop
|
bne .createRadioLoop
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ VersionsDialog
|
|||||||
jsr WeeGUI
|
jsr WeeGUI
|
||||||
|
|
||||||
lda #1 ; WeeGUI radio buttons are limited to 15 characters, so we have just the
|
lda #1 ; WeeGUI radio buttons are limited to 15 characters, so we have just the
|
||||||
sta .vtab ; hotkeys (1-9) 'in' the radio button then print the labels separately
|
sta iVersionsVTAB ; hotkeys (1-9) 'in' the radio button then print the labels separately
|
||||||
jsr okvs_iter_values
|
jsr okvs_iter_values
|
||||||
!word gVersionsStore
|
!word gVersionsStore
|
||||||
!word PrintVersionLabelCallback
|
!word PrintVersionLabelCallback
|
||||||
@ -178,17 +178,22 @@ VersionsDialog
|
|||||||
; internal functions
|
; internal functions
|
||||||
|
|
||||||
PrintVersionLabelCallback
|
PrintVersionLabelCallback
|
||||||
|
; called via okvs_iter_values
|
||||||
|
; X = index (0-based) into gVersionsStore
|
||||||
|
; A/Y points to okvs record value, which we use to create a printable label
|
||||||
ldx #50
|
ldx #50
|
||||||
jsr CreateNullTerminatedString
|
jsr CreateNullTerminatedString
|
||||||
jsr PrintAt
|
jsr PrintAt
|
||||||
!byte 7 ; htab (constant)
|
!byte 7 ; htab (constant)
|
||||||
.vtab !byte $FD ; SMC
|
iVersionsVTAB
|
||||||
|
!byte $FD ; SMC
|
||||||
!word kNullTerminatedBuffer
|
!word kNullTerminatedBuffer
|
||||||
inc .vtab
|
inc iVersionsVTAB
|
||||||
inc .vtab
|
inc iVersionsVTAB
|
||||||
rts
|
rts
|
||||||
|
|
||||||
HandleVersionsKey
|
HandleVersionsKey
|
||||||
|
; A = key code from $C000
|
||||||
ldx #.endkeys-.keys
|
ldx #.endkeys-.keys
|
||||||
- cmp .keys,x
|
- cmp .keys,x
|
||||||
beq .foundKey
|
beq .foundKey
|
||||||
@ -215,7 +220,7 @@ HandleVersionsKey
|
|||||||
lda #$FD ; SMC
|
lda #$FD ; SMC
|
||||||
cmp #ID_VERSIONS_PREVIOUS
|
cmp #ID_VERSIONS_PREVIOUS
|
||||||
beq .previous
|
beq .previous
|
||||||
cpx .numVersions ; find 'next' view ID (wrapping around to 1)
|
cpx iNumVersions ; find 'next' view ID (wrapping around to 1)
|
||||||
bcs +
|
bcs +
|
||||||
inx
|
inx
|
||||||
!byte $2C
|
!byte $2C
|
||||||
@ -224,7 +229,7 @@ HandleVersionsKey
|
|||||||
.previous
|
.previous
|
||||||
dex
|
dex
|
||||||
bne .gotNewID
|
bne .gotNewID
|
||||||
ldx .numVersions
|
ldx iNumVersions
|
||||||
.gotNewID
|
.gotNewID
|
||||||
txa
|
txa
|
||||||
ldx #WGSelectView ; check new radio button and repaint it
|
ldx #WGSelectView ; check new radio button and repaint it
|
||||||
@ -250,7 +255,7 @@ GetCheckedVersion
|
|||||||
lda #ID_VERSIONS_1
|
lda #ID_VERSIONS_1
|
||||||
pha
|
pha
|
||||||
clc
|
clc
|
||||||
adc .numVersions ; .numVersions was populated during VersionsDialog and hasn't changed since
|
adc iNumVersions ; iNumVersions was populated during VersionsDialog and hasn't changed since
|
||||||
tay
|
tay
|
||||||
pla
|
pla
|
||||||
jmp GetCheckedRadioButton
|
jmp GetCheckedRadioButton
|
||||||
|
Loading…
Reference in New Issue
Block a user