From 0af81172519e532f3e2fd155e0351751e22c33cb Mon Sep 17 00:00:00 2001 From: 4am Date: Mon, 26 Mar 2018 14:57:06 -0400 Subject: [PATCH] new settings dialog --- res/WEEGUI | Bin 7169 -> 7109 bytes src/okvs.a | 26 ++++++ src/paintcommon.a | 19 +--- src/paintoptions.a | 228 +++++++++++++++++++++++++++------------------ src/prefs.a | 4 +- 5 files changed, 172 insertions(+), 105 deletions(-) diff --git a/res/WEEGUI b/res/WEEGUI index 9b3582407bdf70172f53a6c017a8a381b197e940..f19c9c5158b3f9ea33e0ed3736b4b8a07db7f03d 100644 GIT binary patch literal 7109 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 diff --git a/src/okvs.a b/src/okvs.a index 87a6f2f..3739c4e 100644 --- a/src/okvs.a +++ b/src/okvs.a @@ -9,6 +9,7 @@ ; - okvs_append(address, key, value, max_len) ; - okvs_update(address, key, value) ; - okvs_get(address, key) +; - okvs_as_boolean(value) ; - [TODO] okvs_iter(address, callback) ; ; Used for global preferences, per-game options, and per-game version lists @@ -245,6 +246,9 @@ okvs_get ldy PTR+1 clc adc .matchlen + bcc + + iny ++ clc adc #2 sta PTR bcc + @@ -304,6 +308,28 @@ okvs_update clc .exit rts +;------------------------------------------------------------------------------ +; okvs_as_boolean +; +; in: A = address of value [lo] +; Y = address of value [hi] +; out: Z clear if value is a 1-byte string with value #$00 or the digit '0' +; Z set otherwise +; X preserved, A/Y clobbered +;------------------------------------------------------------------------------ +okvs_as_boolean + sta PTR + sty PTR+1 + lda (PTR) + cmp #1 + bne + + ldy #1 + lda (PTR),y + beq + + ora #$80 + cmp #$B0 ++ rts + ;------------------------------------------------------------------------------ ; internal functions diff --git a/src/paintcommon.a b/src/paintcommon.a index 780b019..d0701bc 100644 --- a/src/paintcommon.a +++ b/src/paintcommon.a @@ -28,26 +28,17 @@ CreateCheckbox !byte $2C ; hide next 2 bytes CreateButton ldx #WGCreateButton - stx .type+1 - pla - sta $00 - pla - sta $01 - tax - lda #$02 - clc - adc $00 - bcc + - inx -+ phx - pha + stx .type + + +PARAMS_ON_STACK 2 + ldy #$01 lda ($00),y sta PARAM0 iny lda ($00),y sta PARAM1 -.type +.type=*+1 ldx #$FD ; set at runtime jsr WeeGUI ldx #WGViewSetRawTitle diff --git a/src/paintoptions.a b/src/paintoptions.a index c3804d9..fa24d5f 100644 --- a/src/paintoptions.a +++ b/src/paintoptions.a @@ -10,14 +10,12 @@ ; View IDs (application-specific, acceptable range 0..15, no duplicates) ; ID_TITLE is defined in paintcommon.a ID_OPTIONS_FRAME = 1 -ID_OPTIONS_NAME = 2 -ID_OPTIONS_YEAR = 3 -ID_OPTIONS_GENRE = 4 -ID_OPTIONS_DIFFICULTY = 5 -ID_OPTIONS_FORCE40 = 6 -ID_OPTIONS_FORCEUPPER = 7 -ID_OPTIONS_OK = 8 -ID_OPTIONS_CANCEL = 9 +ID_OPTIONS_FORCE40 = 2 +ID_OPTIONS_FORCEUPPER = 3 +ID_OPTIONS_SCRIPTTOFILE = 4 +ID_OPTIONS_AUTOSCRIPT = 5 +ID_OPTIONS_OK = 6 +ID_OPTIONS_CANCEL = 7 !zone { ;------------------------------------------------------------------------------ @@ -53,21 +51,67 @@ OptionsDialog !word .viewOK jsr CreateButton !word .viewCancel - jsr CreateRadio - !word .viewName - ldx #WGSetState ; TODO: set the appropriate radio button based on preferences - lda #1 - jsr WeeGUI - jsr CreateRadio - !word .viewYear - jsr CreateRadio - !word .viewGenre - jsr CreateRadio - !word .viewDifficulty jsr CreateCheckbox !word .viewForce40 jsr CreateCheckbox !word .viewForceUpper + jsr CreateCheckbox + !word .viewScriptToFile + jsr CreateCheckbox + !word .viewAutoScript + ; set initial state of checkboxes based on preferences + jsr okvs_get + !word gPrefsStore + !word kForce40 + jsr okvs_as_boolean + beq + + ldx #WGSelectView + lda #ID_OPTIONS_FORCE40 + jsr WeeGUI + ldx #WGSetState + lda #1 + sta PARAM0 + jsr WeeGUI ++ + jsr okvs_get + !word gPrefsStore + !word kForceUpper + jsr okvs_as_boolean + beq + + ldx #WGSelectView + lda #ID_OPTIONS_FORCEUPPER + jsr WeeGUI + ldx #WGSetState + lda #1 + sta PARAM0 + jsr WeeGUI ++ + jsr okvs_get + !word gPrefsStore + !word kScriptToFile + jsr okvs_as_boolean + beq + + ldx #WGSelectView + lda #ID_OPTIONS_SCRIPTTOFILE + jsr WeeGUI + ldx #WGSetState + lda #1 + sta PARAM0 + jsr WeeGUI ++ + jsr okvs_get + !word gPrefsStore + !word kAutoScript + jsr okvs_as_boolean + beq + + ldx #WGSelectView + lda #ID_OPTIONS_AUTOSCRIPT + jsr WeeGUI + ldx #WGSetState + lda #1 + sta PARAM0 + jsr WeeGUI ++ ldx #WGDesktop ; paint background jsr WeeGUI @@ -82,28 +126,54 @@ OptionsDialog jsr WeeGUI ldx #WGSetCursor ; paint static text labels - lda #2 + lda #4 sta PARAM0 - lda #1 + lda #3 sta PARAM1 jsr WeeGUI ldx #WGPrint - lda #<.stringSortBy + lda #<.stringForce40Description sta PARAM0 - lda #>.stringSortBy + lda #>.stringForce40Description sta PARAM1 jsr WeeGUI ldx #WGSetCursor - lda #2 + lda #4 sta PARAM0 - lda #12 + lda #8 sta PARAM1 jsr WeeGUI ldx #WGPrint - lda #<.stringGameplay + lda #<.stringForceUpperDescription sta PARAM0 - lda #>.stringGameplay + lda #>.stringForceUpperDescription + sta PARAM1 + jsr WeeGUI + + ldx #WGSetCursor + lda #4 + sta PARAM0 + lda #13 + sta PARAM1 + jsr WeeGUI + ldx #WGPrint + lda #<.stringScriptToFileDescription + sta PARAM0 + lda #>.stringScriptToFileDescription + sta PARAM1 + jsr WeeGUI + + ldx #WGSetCursor + lda #4 + sta PARAM0 + lda #18 + sta PARAM1 + jsr WeeGUI + ldx #WGPrint + lda #<.stringAutoScriptDescription + sta PARAM0 + lda #>.stringAutoScriptDescription sta PARAM1 jsr WeeGUI @@ -124,17 +194,13 @@ OptionsDialog !byte $C3,ID_OPTIONS_CANCEL ; C !byte $E3,ID_OPTIONS_CANCEL ; c !byte $9B,ID_OPTIONS_CANCEL ; Esc - !byte $CE,ID_OPTIONS_NAME ; N - !byte $EE,ID_OPTIONS_NAME ; n - !byte $D9,ID_OPTIONS_YEAR ; Y - !byte $F9,ID_OPTIONS_YEAR ; y - !byte $C7,ID_OPTIONS_GENRE ; G - !byte $E7,ID_OPTIONS_GENRE ; g - !byte $C4,ID_OPTIONS_DIFFICULTY ; D - !byte $E4,ID_OPTIONS_DIFFICULTY ; d !byte $B4,ID_OPTIONS_FORCE40 ; 4 !byte $D5,ID_OPTIONS_FORCEUPPER ; U !byte $F5,ID_OPTIONS_FORCEUPPER ; u + !byte $C6,ID_OPTIONS_SCRIPTTOFILE ; F + !byte $E6,ID_OPTIONS_SCRIPTTOFILE ; f + !byte $D3,ID_OPTIONS_AUTOSCRIPT ; S + !byte $F3,ID_OPTIONS_AUTOSCRIPT ; s .endkeys HandleOptionsKey @@ -164,18 +230,18 @@ callback_options_cancel .viewFrame !byte ID_OPTIONS_FRAME ; view ID !byte 2 ; style (decorated frame) - !byte 22 ; left + !byte 12 ; left !byte 3 ; top - !byte 36 ; visible width - !byte 18 ; visible height - !byte 36 ; width - !byte 18 ; height + !byte 56 ; visible width + !byte 19 ; visible height + !byte 56 ; width + !byte 19 ; height .stringFrame !text "Settings",0 .viewOK !byte ID_OPTIONS_OK ; view ID - !byte 46 ; left + !byte 56 ; left !byte 4 ; top !byte 10 ; width !word callback_options_ok ; callback @@ -186,7 +252,7 @@ callback_options_cancel .viewCancel !byte ID_OPTIONS_CANCEL ; view ID - !byte 46 ; left + !byte 56 ; left !byte 6 ; top !byte 10 ; width !word callback_options_cancel ; callback @@ -195,69 +261,51 @@ callback_options_cancel !byte $03 ; 'C' inverse !text "ancel",0 -.viewName - !byte ID_OPTIONS_NAME ; view ID - !byte 26 ; left - !byte 6 ; top - !word .stringName -.stringName - !text " " - !byte $0E ; 'N' inverse - !text "ame",0 - -.viewYear - !byte ID_OPTIONS_YEAR ; view ID - !byte 26 ; left - !byte 8 ; top - !word .stringYear -.stringYear - !text " " - !byte $19 ; 'Y' inverse - !text "ear",0 - -.viewGenre - !byte ID_OPTIONS_GENRE ; view ID - !byte 26 ; left - !byte 10 ; top - !word .stringGenre -.stringGenre - !text " " - !byte $07 ; 'G' inverse - !text "enre",0 - -.viewDifficulty - !byte ID_OPTIONS_DIFFICULTY ; view ID - !byte 26 ; left - !byte 12 ; top - !word .stringDifficulty -.stringDifficulty - !text " " - !byte $04 ; 'D' inverse - !text "ifficulty",0 - .viewForce40 !byte ID_OPTIONS_FORCE40 ; view ID - !byte 26 ; left - !byte 17 ; top + !byte 14 ; left + !byte 4 ; top !word .stringForce40 ; caption .stringForce40 !text "Force " !byte $34 ; '4' inverse !text "0 column",0 +.stringForce40Description + !text "Some games may be glitchy",0 .viewForceUpper !byte ID_OPTIONS_FORCEUPPER ; view ID - !byte 26 ; left - !byte 19 ; top + !byte 14 ; left + !byte 9 ; top !word .stringForceUpper ; caption .stringForceUpper !text "Force " !byte $75 ; 'u' inverse !text "ppercase",0 +.stringForceUpperDescription + !text "A MATTER OF PREFERENCE",0 -.stringSortBy - !raw "Browse games by",0 +.viewScriptToFile + !byte ID_OPTIONS_SCRIPTTOFILE ; view ID + !byte 14 ; left + !byte 14 ; top + !word .stringScriptToFile ; caption +.stringScriptToFile + !text "SCRIPT to " + !byte $66 ; 'f' inverse + !text "ile",0 +.stringScriptToFileDescription + !text "Save transcripts to a file instead of printer",0 -.stringGameplay - !raw "During gameplay:",0 +.viewAutoScript + !byte ID_OPTIONS_AUTOSCRIPT ; view ID + !byte 14 ; left + !byte 19 ; top + !word .stringAutoScript ; caption +.stringAutoScript + !text "Always " + !byte $13 ; 'S' inverse + !text "CRIPT",0 +.stringAutoScriptDescription + !text "Turn on SCRIPT mode automatically",0 } diff --git a/src/prefs.a b/src/prefs.a index 0e0ac9e..42e0ec8 100644 --- a/src/prefs.a +++ b/src/prefs.a @@ -13,8 +13,10 @@ ; Public constants ; - kForce40 ; - kForceUpper -; - kSort +; - kScriptToFile +; - kAutoScript ; - kLastPlayed +; !zone { kDefaultGame = 30 ; Zork I