Ctrl-S to toggle sound during play

fixes https://github.com/a2-4am/million-perfect-letters/issues/6
This commit is contained in:
4am 2022-01-16 11:34:56 -05:00
parent 16ab81e1cc
commit e8bafc1c6a
5 changed files with 30 additions and 14 deletions

View File

@ -3,6 +3,7 @@
;
; Public functions:
; - InitSound
; - ToggleSoundPref
; - ReinitSoundAfterPrefChange
; - PlaySoundToCompletion
; - PlaySound
@ -50,6 +51,13 @@ k16251Progression
!word M_ii
!word M_V
ToggleSoundPref
lda gSoundPref
eor #$01
sta gSoundPref
jsr SavePrefs
; /!\ execution falls through to ReinitSoundAfterPrefChange
;------------------------------------------------------------------------------
; ReinitSoundAfterPrefChange
; reinitialize self-modified code that relies on preference values

View File

@ -27,14 +27,15 @@ HelpEventLoop
DrawHelpText
; [private]
bit TEXTMODE
+PRINT_AT sHelpHeader1, 2, 7
+PRINT_AT sHelpHeader2, 4, 7
+PRINT_AT sAsterisk, 7, 20
+PRINT_AT sHelpLeftRight, 10, 0
+PRINT_AT sHelpUpDown, 12, 0
+PRINT_AT sHelpLetters, 14, 0
+PRINT_AT sHelpRestart, 16, 0
+PRINT_AT sHelpSkip, 18, 0
+PRINT_AT sHelpQuit, 20, 0
+PRINT_AT sHelpHeader1, 1, 7
+PRINT_AT sHelpHeader2, 3, 7
+PRINT_AT sAsterisk, 6, 20
+PRINT_AT sHelpLeftRight, 9, 0
+PRINT_AT sHelpUpDown, 11, 0
+PRINT_AT sHelpLetters, 13, 0
+PRINT_AT sHelpRestart, 15, 0
+PRINT_AT sHelpSkip, 17, 0
+PRINT_AT sHelpSound, 19, 0
+PRINT_AT sHelpQuit, 21, 0
bit GFXMODE
rts

View File

@ -109,11 +109,7 @@ MainMenuEventC
rts
MainMenuEventS
lda gSoundPref
eor #$01
sta gSoundPref
jsr SavePrefs
jsr ReinitSoundAfterPrefChange
jsr ToggleSoundPref
ldx #kStayOnMainMenu ; Z=1 so caller will stay in main menu event loop
clc ; C=0 so caller will only do a partial screen refresh
rts

View File

@ -45,6 +45,7 @@ kPlayKeys ; must keep in sync with kPlayKeyHandlersLo
!byte $1B ; Esc
!byte $12 ; Ctrl-R
!byte $0E ; Ctrl-N
!byte $13 ; Ctrl-S
!byte $0D ; Return
!byte $2F ; /
!byte $3F ; ?
@ -58,6 +59,7 @@ kPlayKeyHandlersLo
!byte <PlayEventEsc
!byte <PlayEventCtrlR
!byte <PlayEventCtrlN
!byte <PlayEventCtrlS
!byte <PlayEventReturn
!byte <PlayEventQuestion
!byte <PlayEventQuestion
@ -71,6 +73,7 @@ kPlayKeyHandlersHi
!byte >PlayEventEsc
!byte >PlayEventCtrlR
!byte >PlayEventCtrlN
!byte >PlayEventCtrlS
!byte >PlayEventReturn
!byte >PlayEventQuestion
!byte >PlayEventQuestion
@ -133,6 +136,11 @@ PlayEventCtrlN
ldx #kRequestedSkip ; caller will exit play event loop
rts
PlayEventCtrlS
jsr ToggleSoundPref
ldx #kKeepPlaying
rts
PlayEventReturn
ldy gSelectedLogicalColumn
beq +

View File

@ -147,6 +147,9 @@ sHelpRestart
sHelpSkip
!byte 40
!raw "CTRL-N.......................NEXT PUZZLE"
sHelpSound
!byte 40
!raw "CTRL-S......................TOGGLE SOUND"
sHelpQuit
!byte 40
!raw "ESC............................MAIN MENU"