summaryrefslogtreecommitdiff
path: root/engine/menu/options.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/menu/options.asm')
-rw-r--r--engine/menu/options.asm443
1 files changed, 0 insertions, 443 deletions
diff --git a/engine/menu/options.asm b/engine/menu/options.asm
deleted file mode 100644
index da89ad82..00000000
--- a/engine/menu/options.asm
+++ /dev/null
@@ -1,443 +0,0 @@
-DisplayOptionMenu_:
- call InitOptionsMenu
-.optionMenuLoop
- call JoypadLowSensitivity
- ld a, [hJoy5]
- and START | B_BUTTON
- jr nz, .exitOptionMenu
- call OptionsControl
- jr c, .dpadDelay
- call GetOptionPointer
- jr c, .exitOptionMenu
-.dpadDelay
- call OptionsMenu_UpdateCursorPosition
- call DelayFrame
- call DelayFrame
- call DelayFrame
- jr .optionMenuLoop
-.exitOptionMenu
- ret
-
-GetOptionPointer:
- ld a, [wOptionsCursorLocation]
- ld e, a
- ld d, $0
- ld hl, OptionMenuJumpTable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl ; jump to the function for the current highlighted option
-
-OptionMenuJumpTable:
- dw OptionsMenu_TextSpeed
- dw OptionsMenu_BattleAnimations
- dw OptionsMenu_BattleStyle
- dw OptionsMenu_SpeakerSettings
- dw OptionsMenu_GBPrinterBrightness
- dw OptionsMenu_Dummy
- dw OptionsMenu_Dummy
- dw OptionsMenu_Cancel
-
-OptionsMenu_TextSpeed:
- call GetTextSpeed
- ld a, [hJoy5]
- bit 4, a ; right
- jr nz, .pressedRight
- bit 5, a
- jr nz, .pressedLeft
- jr .asm_41ce0
-.pressedRight
- ld a, c
- cp $2
- jr c, .asm_41cca
- ld c, $ff
-.asm_41cca
- inc c
- ld a, e
- jr .asm_41cd6
-.pressedLeft
- ld a, c
- and a
- jr nz, .asm_41cd4
- ld c, $3
-.asm_41cd4
- dec c
- ld a, d
-.asm_41cd6
- ld b, a
- ld a, [wOptions]
- and $f0
- or b
- ld [wOptions], a
-.asm_41ce0
- ld b, $0
- ld hl, TextSpeedStringsPointerTable
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- coord hl, 14, 2
- call PlaceString
- and a
- ret
-
-TextSpeedStringsPointerTable:
- dw FastText
- dw MidText
- dw SlowText
-
-FastText:
- db "FAST@"
-MidText:
- db "MID @"
-SlowText:
- db "SLOW@"
-
-GetTextSpeed:
- ld a, [wOptions]
- and $f
- cp $5
- jr z, .slowTextOption
- cp $1
- jr z, .fastTextOption
-; mid text option
- ld c, $1
- lb de, 1, 5
- ret
-.slowTextOption
- ld c, $2
- lb de, 3, 1
- ret
-.fastTextOption
- ld c, $0
- lb de, 5, 3
- ret
-
-OptionsMenu_BattleAnimations:
- ld a, [hJoy5]
- and D_RIGHT | D_LEFT
- jr nz, .asm_41d33
- ld a, [wOptions]
- and $80 ; mask other bits
- jr .asm_41d3b
-.asm_41d33
- ld a, [wOptions]
- xor $80
- ld [wOptions], a
-.asm_41d3b
- ld bc, $0
- sla a
- rl c
- ld hl, AnimationOptionStringsPointerTable
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- coord hl, 14, 4
- call PlaceString
- and a
- ret
-
-AnimationOptionStringsPointerTable:
- dw AnimationOnText
- dw AnimationOffText
-
-AnimationOnText:
- db "ON @"
-AnimationOffText:
- db "OFF@"
-
-OptionsMenu_BattleStyle:
- ld a, [hJoy5]
- and D_LEFT | D_RIGHT
- jr nz, .asm_41d6b
- ld a, [wOptions]
- and $40 ; mask other bits
- jr .asm_41d73
-.asm_41d6b
- ld a, [wOptions]
- xor $40
- ld [wOptions], a
-.asm_41d73
- ld bc, $0
- sla a
- sla a
- rl c
- ld hl, BattleStyleOptionStringsPointerTable
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- coord hl, 14, 6
- call PlaceString
- and a
- ret
-
-BattleStyleOptionStringsPointerTable:
- dw BattleStyleShiftText
- dw BattleStyleSetText
-
-BattleStyleShiftText:
- db "SHIFT@"
-BattleStyleSetText:
- db "SET @"
-
-OptionsMenu_SpeakerSettings:
- ld a, [wOptions]
- and $30
- swap a
- ld c, a
- ld a, [hJoy5]
- bit 4, a
- jr nz, .pressedRight
- bit 5, a
- jr nz, .pressedLeft
- jr .asm_41dca
-.pressedRight
- ld a, c
- inc a
- and $3
- jr .asm_41dba
-.pressedLeft
- ld a, c
- dec a
- and $3
-.asm_41dba
- ld c, a
- swap a
- ld b, a
- xor a
- ld [rNR51], a
- ld a, [wOptions]
- and $cf
- or b
- ld [wOptions], a
-.asm_41dca
- ld b, $0
- ld hl, SpeakerOptionStringsPointerTable
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- coord hl, 8, 8
- call PlaceString
- and a
- ret
-
-SpeakerOptionStringsPointerTable:
- dw MonoSoundText
- dw Earphone1SoundText
- dw Earphone2SoundText
- dw Earphone3SoundText
-
-MonoSoundText:
- db "MONO @"
-Earphone1SoundText:
- db "EARPHONE1@"
-Earphone2SoundText:
- db "EARPHONE2@"
-Earphone3SoundText:
- db "EARPHONE3@"
-
-OptionsMenu_GBPrinterBrightness:
- call Func_41e7b
- ld a, [hJoy5]
- bit 4, a
- jr nz, .pressedRight
- bit 5, a
- jr nz, .pressedLeft
- jr .asm_41e32
-.pressedRight
- ld a, c
- cp $4
- jr c, .asm_41e22
- ld c, $ff
-.asm_41e22
- inc c
- ld a, e
- jr .asm_41e2e
-.pressedLeft
- ld a, c
- and a
- jr nz, .asm_41e2c
- ld c, $5
-.asm_41e2c
- dec c
- ld a, d
-.asm_41e2e
- ld b, a
- ld [wPrinterSettings], a
-.asm_41e32
- ld b, $0
- ld hl, GBPrinterOptionStringsPointerTable
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- coord hl, 8, 10
- call PlaceString
- and a
- ret
-
-GBPrinterOptionStringsPointerTable:
- dw LightestPrintText
- dw LighterPrintText
- dw NormalPrintText
- dw DarkerPrintText
- dw DarkestPrintText
-
-LightestPrintText:
- db "LIGHTEST@"
-LighterPrintText:
- db "LIGHTER @"
-NormalPrintText:
- db "NORMAL @"
-DarkerPrintText:
- db "DARKER @"
-DarkestPrintText:
- db "DARKEST @"
-
-Func_41e7b:
- ld a, [wPrinterSettings]
- and a
- jr z, .asm_41e93
- cp $20
- jr z, .asm_41e99
- cp $60
- jr z, .asm_41e9f
- cp $7f
- jr z, .asm_41ea5
- ld c, $2
- lb de, $20, $60
- ret
-.asm_41e93
- ld c, $0
- lb de, $7f, $20
- ret
-.asm_41e99
- ld c, $1
- lb de, $0, $40
- ret
-.asm_41e9f
- ld c, $3
- lb de, $40, $7f
- ret
-.asm_41ea5
- ld c, $4
- lb de, $60, $0
- ret
-
-OptionsMenu_Dummy:
- and a
- ret
-
-OptionsMenu_Cancel:
- ld a, [hJoy5]
- and A_BUTTON
- jr nz, .pressedCancel
- and a
- ret
-.pressedCancel
- scf
- ret
-
-OptionsControl:
- ld hl, wOptionsCursorLocation
- ld a, [hJoy5]
- cp D_DOWN
- jr z, .pressedDown
- cp D_UP
- jr z, .pressedUp
- and a
- ret
-.pressedDown
- ld a, [hl]
- cp $7
- jr nz, .doNotWrapAround
- ld [hl], $0
- scf
- ret
-.doNotWrapAround
- cp $4
- jr c, .regularIncrement
- ld [hl], $6
-.regularIncrement
- inc [hl]
- scf
- ret
-.pressedUp
- ld a, [hl]
- cp $7
- jr nz, .doNotMoveCursorToPrintOption
- ld [hl], $4
- scf
- ret
-.doNotMoveCursorToPrintOption
- and a
- jr nz, .regularDecrement
- ld [hl], $8
-.regularDecrement
- dec [hl]
- scf
- ret
-
-OptionsMenu_UpdateCursorPosition:
- coord hl, 1, 1
- ld de, SCREEN_WIDTH
- ld c, 16
-.loop
- ld [hl], " "
- add hl, de
- dec c
- jr nz, .loop
- coord hl, 1, 2
- ld bc, SCREEN_WIDTH * 2
- ld a, [wOptionsCursorLocation]
- call AddNTimes
- ld [hl], "▶"
- ret
-
-InitOptionsMenu:
- coord hl, 0, 0
- lb bc, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2
- call TextBoxBorder
- coord hl, 2, 2
- ld de, AllOptionsText
- call PlaceString
- coord hl, 2, 16
- ld de, OptionMenuCancelText
- call PlaceString
- xor a
- ld [wOptionsCursorLocation], a
- ld c, 5 ; the number of options to loop through
-.loop
- push bc
- call GetOptionPointer ; updates the next option
- pop bc
- ld hl, wOptionsCursorLocation
- inc [hl] ; moves the cursor for the highlighted option
- dec c
- jr nz, .loop
- xor a
- ld [wOptionsCursorLocation], a
- inc a
- ld [H_AUTOBGTRANSFERENABLED], a
- call Delay3
- ret
-
-AllOptionsText:
- db "TEXT SPEED :"
- next "ANIMATION :"
- next "BATTLESTYLE:"
- next "SOUND:"
- next "PRINT:@"
-
-OptionMenuCancelText:
- db "CANCEL@"