More miscellaneous fixes (see #709)

This commit is contained in:
Rangi
2020-04-17 10:52:59 -04:00
parent 93ed0ed19c
commit 22615cecc5
11 changed files with 60 additions and 45 deletions

View File

@@ -59,9 +59,9 @@ AreYouABoyOrAreYouAGirlText:
InitGenderScreen:
ld a, $10
ld [wMusicFade], a
ld a, MUSIC_NONE
ld a, LOW(MUSIC_NONE)
ld [wMusicFadeID], a
ld a, $0
ld a, HIGH(MUSIC_NONE)
ld [wMusicFadeID + 1], a
ld c, 8
call DelayFrames

View File

@@ -1206,7 +1206,7 @@ TitleScreenMain:
inc [hl]
; Fade out the title screen music
xor a
xor a ; MUSIC_NONE
ld [wMusicFadeID], a
ld [wMusicFadeID + 1], a
ld hl, wMusicFade

View File

@@ -1,21 +1,34 @@
; GetOptionPointer.Pointers indexes
const_def
const OPT_TEXT_SPEED ; 0
const OPT_BATTLE_SCENE ; 1
const OPT_BATTLE_STYLE ; 2
const OPT_SOUND ; 3
const OPT_PRINT ; 4
const OPT_MENU_ACCOUNT ; 5
const OPT_FRAME ; 6
const OPT_CANCEL ; 7
NUM_OPTIONS EQU const_value ; 8
_OptionsMenu:
ld hl, hInMenu
ld a, [hl]
push af
ld [hl], $1
ld [hl], TRUE
call ClearBGPalettes
hlcoord 0, 0
ld b, 16
ld c, 18
ld b, SCREEN_HEIGHT - 2
ld c, SCREEN_WIDTH - 2
call Textbox
hlcoord 2, 2
ld de, StringOptions
call PlaceString
xor a
ld [wJumptableIndex], a
ld c, $6 ; number of items on the menu minus 1 (for cancel)
.print_text_loop ; this next will display the settings of each option when the menu is opened
; display the settings of each option when the menu is opened
ld c, NUM_OPTIONS - 2 ; omit frame type, the last option
.print_text_loop
push bc
xor a
ldh [hJoyLast], a
@@ -25,8 +38,8 @@ _OptionsMenu:
inc [hl]
dec c
jr nz, .print_text_loop
call UpdateFrame ; display the frame type
call UpdateFrame
xor a
ld [wJumptableIndex], a
inc a
@@ -78,8 +91,8 @@ StringOptions:
db "CANCEL@"
GetOptionPointer:
ld a, [wJumptableIndex] ; load the cursor position to a
ld e, a ; copy it to de
ld a, [wJumptableIndex]
ld e, a
ld d, 0
ld hl, .Pointers
add hl, de
@@ -87,9 +100,10 @@ GetOptionPointer:
ld a, [hli]
ld h, [hl]
ld l, a
jp hl ; jump to the code of the current highlighted item
jp hl
.Pointers:
; entries correspond to OPT_* constants
dw Options_TextSpeed
dw Options_BattleScene
dw Options_BattleStyle
@@ -346,7 +360,7 @@ Options_Print:
ld [wGBPrinterBrightness], a
.NonePressed:
ld b, $0
ld b, 0
ld hl, .Strings
add hl, bc
add hl, bc
@@ -500,17 +514,17 @@ OptionsControl:
ret
.DownPressed:
ld a, [hl] ; load the cursor position to a
cp $7 ; maximum number of items in option menu
jr nz, .CheckFive
ld [hl], $0
ld a, [hl]
cp OPT_CANCEL ; maximum option index
jr nz, .CheckMenuAccount
ld [hl], OPT_TEXT_SPEED ; first option
scf
ret
.CheckFive: ; I have no idea why this exists...
cp $5
.CheckMenuAccount: ; I have no idea why this exists...
cp OPT_MENU_ACCOUNT
jr nz, .Increase
ld [hl], $5
ld [hl], OPT_MENU_ACCOUNT
.Increase:
inc [hl]
@@ -519,16 +533,18 @@ OptionsControl:
.UpPressed:
ld a, [hl]
cp $6
jr nz, .NotSix
ld [hl], $5 ; Another thing where I'm not sure why it exists
; Another thing where I'm not sure why it exists
cp OPT_FRAME
jr nz, .NotFrame
ld [hl], OPT_MENU_ACCOUNT
scf
ret
.NotSix:
and a
.NotFrame:
and a ; OPT_TEXT_SPEED, minimum option index
jr nz, .Decrease
ld [hl], $8 ; number of option items +1
ld [hl], NUM_OPTIONS ; decrements to OPT_CANCEL, maximum option index
.Decrease:
dec [hl]
@@ -538,7 +554,7 @@ OptionsControl:
Options_UpdateCursorPosition:
hlcoord 1, 1
ld de, SCREEN_WIDTH
ld c, $10
ld c, SCREEN_HEIGHT - 2
.loop
ld [hl], " "
add hl, de