summaryrefslogtreecommitdiff
path: root/engine/options_menu.asm
diff options
context:
space:
mode:
authormid-kid <esteve.varela@gmail.com>2018-03-13 13:07:16 +0100
committermid-kid <esteve.varela@gmail.com>2018-03-13 13:21:40 +0100
commitbaa0dc5a963a79843b37888bcfe1d2dfe833ade9 (patch)
tree968c86105bd67a3121d8f3f20018bfc59191f4c9 /engine/options_menu.asm
parent12070ca50067d3abe36a730190f88ee43f2cace9 (diff)
Organize the engine/ directory
This is an informed attempt at reorganizing the engine/ directory by creating categorized subdirectories, in order to make it easier to navigate and find things. The directories created are as follows: * engine/game: Contains all "minigames", things like the unown puzzle and slot machine. * engine/gfx: Contains all handling of graphics. From loading palettes to playing animations. * engine/link: Contains all multiplayer functionality. * engine/menu: Contains all generic/misc. menus and menu code. Other, more specialized menus are in their own subdirectories (pokedex, pokegear, party menu, etc). * engine/overworld: Contains all handling of the overworld. From loading and connecting maps to wild encounters and the scripting engine. * engine/pokegear: In the same vein as engine/pokedex, except it could use some more splitting up. * engine/pokemon: Contains everything related to manipulating pokemon data. From the pokemon storage system to evolution and mail. * engine/printer: Contains everything related to printing things as well as the printer communication. * engine/title: Contains intro sequences, title screens and credits.
Diffstat (limited to 'engine/options_menu.asm')
-rwxr-xr-xengine/options_menu.asm583
1 files changed, 0 insertions, 583 deletions
diff --git a/engine/options_menu.asm b/engine/options_menu.asm
deleted file mode 100755
index c0a255cb0..000000000
--- a/engine/options_menu.asm
+++ /dev/null
@@ -1,583 +0,0 @@
-_OptionsMenu: ; e41d0
- ld hl, hInMenu
- ld a, [hl]
- push af
- ld [hl], $1
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, 16
- ld c, 18
- 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
- push bc
- xor a
- ld [hJoyLast], a
- call GetOptionPointer
- pop bc
- ld hl, wJumptableIndex
- inc [hl]
- dec c
- jr nz, .print_text_loop
-
- call UpdateFrame
- xor a
- ld [wJumptableIndex], a
- inc a
- ld [hBGMapMode], a
- call WaitBGMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- call SetPalettes
-
-.joypad_loop
- call JoyTextDelay
- ld a, [hJoyPressed]
- and START | B_BUTTON
- jr nz, .ExitOptions
- call OptionsControl
- jr c, .dpad
- call GetOptionPointer
- jr c, .ExitOptions
-
-.dpad
- call Options_UpdateCursorPosition
- ld c, 3
- call DelayFrames
- jr .joypad_loop
-
-.ExitOptions:
- ld de, SFX_TRANSACTION
- call PlaySFX
- call WaitSFX
- pop af
- ld [hInMenu], a
- ret
-; e4241
-
-StringOptions: ; e4241
- db "TEXT SPEED<LNBRK>"
- db " :<LNBRK>"
- db "BATTLE SCENE<LNBRK>"
- db " :<LNBRK>"
- db "BATTLE STYLE<LNBRK>"
- db " :<LNBRK>"
- db "SOUND<LNBRK>"
- db " :<LNBRK>"
- db "PRINT<LNBRK>"
- db " :<LNBRK>"
- db "MENU ACCOUNT<LNBRK>"
- db " :<LNBRK>"
- db "FRAME<LNBRK>"
- db " :TYPE<LNBRK>"
- db "CANCEL@"
-; e42d6
-
-
-GetOptionPointer: ; e42d6
- ld a, [wJumptableIndex] ; load the cursor position to a
- ld e, a ; copy it to de
- ld d, 0
- ld hl, .Pointers
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl ; jump to the code of the current highlighted item
-; e42e5
-
-.Pointers:
- dw Options_TextSpeed
- dw Options_BattleScene
- dw Options_BattleStyle
- dw Options_Sound
- dw Options_Print
- dw Options_MenuAccount
- dw Options_Frame
- dw Options_Cancel
-; e42f5
-
-
- const_def
- const OPT_TEXT_SPEED_FAST ; 0
- const OPT_TEXT_SPEED_MED ; 1
- const OPT_TEXT_SPEED_SLOW ; 2
-
-Options_TextSpeed: ; e42f5
- call GetTextSpeed
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .LeftPressed
- bit D_RIGHT_F, a
- jr z, .NonePressed
- ld a, c ; right pressed
- cp OPT_TEXT_SPEED_SLOW
- jr c, .Increase
- ld c, OPT_TEXT_SPEED_FAST + -1
-
-.Increase:
- inc c
- ld a, e
- jr .Save
-
-.LeftPressed:
- ld a, c
- and a
- jr nz, .Decrease
- ld c, OPT_TEXT_SPEED_SLOW + 1
-
-.Decrease:
- dec c
- ld a, d
-
-.Save:
- ld b, a
- ld a, [wOptions]
- and $f0
- or b
- ld [wOptions], a
-
-.NonePressed:
- ld b, 0
- ld hl, .Strings
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 11, 3
- call PlaceString
- and a
- ret
-; e4331
-
-.Strings:
-; entries correspond to OPT_TEXT_SPEED_* constants
- dw .Fast
- dw .Mid
- dw .Slow
-
-.Fast: db "FAST@"
-.Mid: db "MID @"
-.Slow: db "SLOW@"
-; e4346
-
-
-GetTextSpeed: ; e4346
-; converts TEXT_DELAY_* value in a to OPT_TEXT_SPEED_* value in c,
-; with previous/next TEXT_DELAY_* values in d/e
- ld a, [wOptions]
- and $7
- cp TEXT_DELAY_SLOW
- jr z, .slow
- cp TEXT_DELAY_FAST
- jr z, .fast
- ; none of the above
- ld c, OPT_TEXT_SPEED_MED
- lb de, TEXT_DELAY_FAST, TEXT_DELAY_SLOW
- ret
-
-.slow
- ld c, OPT_TEXT_SPEED_SLOW
- lb de, TEXT_DELAY_MED, TEXT_DELAY_FAST
- ret
-
-.fast
- ld c, OPT_TEXT_SPEED_FAST
- lb de, TEXT_DELAY_SLOW, TEXT_DELAY_MED
- ret
-; e4365
-
-
-Options_BattleScene: ; e4365
- ld hl, wOptions
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .LeftPressed
- bit D_RIGHT_F, a
- jr z, .NonePressed
- bit BATTLE_SCENE, [hl]
- jr nz, .ToggleOn
- jr .ToggleOff
-
-.LeftPressed:
- bit BATTLE_SCENE, [hl]
- jr z, .ToggleOff
- jr .ToggleOn
-
-.NonePressed:
- bit BATTLE_SCENE, [hl]
- jr z, .ToggleOn
- jr .ToggleOff
-
-.ToggleOn:
- res BATTLE_SCENE, [hl]
- ld de, .On
- jr .Display
-
-.ToggleOff:
- set BATTLE_SCENE, [hl]
- ld de, .Off
-
-.Display:
- hlcoord 11, 5
- call PlaceString
- and a
- ret
-; e4398
-
-.On: db "ON @"
-.Off: db "OFF@"
-; e43a0
-
-
-Options_BattleStyle: ; e43a0
- ld hl, wOptions
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .LeftPressed
- bit D_RIGHT_F, a
- jr z, .NonePressed
- bit BATTLE_SHIFT, [hl]
- jr nz, .ToggleShift
- jr .ToggleSet
-
-.LeftPressed:
- bit BATTLE_SHIFT, [hl]
- jr z, .ToggleSet
- jr .ToggleShift
-
-.NonePressed:
- bit BATTLE_SHIFT, [hl]
- jr nz, .ToggleSet
-
-.ToggleShift:
- res BATTLE_SHIFT, [hl]
- ld de, .Shift
- jr .Display
-
-.ToggleSet:
- set BATTLE_SHIFT, [hl]
- ld de, .Set
-
-.Display:
- hlcoord 11, 7
- call PlaceString
- and a
- ret
-; e43d1
-
-.Shift: db "SHIFT@"
-.Set: db "SET @"
-; e43dd
-
-
-Options_Sound: ; e43dd
- ld hl, wOptions
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .LeftPressed
- bit D_RIGHT_F, a
- jr z, .NonePressed
- bit STEREO, [hl]
- jr nz, .SetMono
- jr .SetStereo
-
-.LeftPressed:
- bit STEREO, [hl]
- jr z, .SetStereo
- jr .SetMono
-
-.NonePressed:
- bit STEREO, [hl]
- jr nz, .ToggleStereo
- jr .ToggleMono
-
-.SetMono:
- res STEREO, [hl]
- call RestartMapMusic
-
-.ToggleMono:
- ld de, .Mono
- jr .Display
-
-.SetStereo:
- set STEREO, [hl]
- call RestartMapMusic
-
-.ToggleStereo:
- ld de, .Stereo
-
-.Display:
- hlcoord 11, 9
- call PlaceString
- and a
- ret
-; e4416
-
-.Mono: db "MONO @"
-.Stereo: db "STEREO@"
-; e4424
-
-
- const_def
- const OPT_PRINT_LIGHTEST ; 0
- const OPT_PRINT_LIGHTER ; 1
- const OPT_PRINT_NORMAL ; 2
- const OPT_PRINT_DARKER ; 3
- const OPT_PRINT_DARKEST ; 4
-
-Options_Print: ; e4424
- call GetPrinterSetting
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .LeftPressed
- bit D_RIGHT_F, a
- jr z, .NonePressed
- ld a, c
- cp OPT_PRINT_DARKEST
- jr c, .Increase
- ld c, OPT_PRINT_LIGHTEST - 1
-
-.Increase:
- inc c
- ld a, e
- jr .Save
-
-.LeftPressed:
- ld a, c
- and a
- jr nz, .Decrease
- ld c, OPT_PRINT_DARKEST + 1
-
-.Decrease:
- dec c
- ld a, d
-
-.Save:
- ld b, a
- ld [wGBPrinter], a
-
-.NonePressed:
- ld b, $0
- ld hl, .Strings
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 11, 11
- call PlaceString
- and a
- ret
-; e445a
-
-.Strings:
-; entries correspond to OPT_PRINT_* constants
- dw .Lightest
- dw .Lighter
- dw .Normal
- dw .Darker
- dw .Darkest
-
-.Lightest: db "LIGHTEST@"
-.Lighter: db "LIGHTER @"
-.Normal: db "NORMAL @"
-.Darker: db "DARKER @"
-.Darkest: db "DARKEST @"
-; e4491
-
-
-GetPrinterSetting: ; e4491
-; converts GBPRINTER_* value in a to OPT_PRINT_* value in c,
-; with previous/next GBPRINTER_* values in d/e
- ld a, [wGBPrinter]
- and a
- jr z, .IsLightest
- cp GBPRINTER_LIGHTER
- jr z, .IsLight
- cp GBPRINTER_DARKER
- jr z, .IsDark
- cp GBPRINTER_DARKEST
- jr z, .IsDarkest
- ; none of the above
- ld c, OPT_PRINT_NORMAL
- lb de, GBPRINTER_LIGHTER, GBPRINTER_DARKER
- ret
-
-.IsLightest:
- ld c, OPT_PRINT_LIGHTEST
- lb de, GBPRINTER_DARKEST, GBPRINTER_LIGHTER
- ret
-
-.IsLight:
- ld c, OPT_PRINT_LIGHTER
- lb de, GBPRINTER_LIGHTEST, GBPRINTER_NORMAL
- ret
-
-.IsDark:
- ld c, OPT_PRINT_DARKER
- lb de, GBPRINTER_NORMAL, GBPRINTER_DARKEST
- ret
-
-.IsDarkest:
- ld c, OPT_PRINT_DARKEST
- lb de, GBPRINTER_DARKER, GBPRINTER_LIGHTEST
- ret
-; e44c1
-
-Options_MenuAccount: ; e44c1
- ld hl, wOptions2
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .LeftPressed
- bit D_RIGHT_F, a
- jr z, .NonePressed
- bit MENU_ACCOUNT, [hl]
- jr nz, .ToggleOff
- jr .ToggleOn
-
-.LeftPressed:
- bit MENU_ACCOUNT, [hl]
- jr z, .ToggleOn
- jr .ToggleOff
-
-.NonePressed:
- bit MENU_ACCOUNT, [hl]
- jr nz, .ToggleOn
-
-.ToggleOff:
- res MENU_ACCOUNT, [hl]
- ld de, .Off
- jr .Display
-
-.ToggleOn:
- set MENU_ACCOUNT, [hl]
- ld de, .On
-
-.Display:
- hlcoord 11, 13
- call PlaceString
- and a
- ret
-; e44f2
-
-.Off: db "OFF@"
-.On: db "ON @"
-; e44fa
-
-
-Options_Frame: ; e44fa
- ld hl, wTextBoxFrame
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .LeftPressed
- bit D_RIGHT_F, a
- jr nz, .RightPressed
- and a
- ret
-
-.RightPressed:
- ld a, [hl]
- inc a
- jr .Save
-
-.LeftPressed:
- ld a, [hl]
- dec a
-
-.Save:
- and $7
- ld [hl], a
-UpdateFrame: ; e4512
- ld a, [wTextBoxFrame]
- hlcoord 16, 15 ; where on the screen the number is drawn
- add "1"
- ld [hl], a
- call LoadFontsExtra
- and a
- ret
-; e4520
-
-Options_Cancel: ; e4520
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .Exit
- and a
- ret
-
-.Exit:
- scf
- ret
-; e452a
-
-OptionsControl: ; e452a
- ld hl, wJumptableIndex
- ld a, [hJoyLast]
- cp D_DOWN
- jr z, .DownPressed
- cp D_UP
- jr z, .UpPressed
- and a
- 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
- scf
- ret
-
-.CheckFive: ; I have no idea why this exists...
- cp $5
- jr nz, .Increase
- ld [hl], $5
-
-.Increase:
- inc [hl]
- scf
- ret
-
-.UpPressed:
- ld a, [hl]
- cp $6
- jr nz, .NotSix
- ld [hl], $5 ; Another thing where I'm not sure why it exists
- scf
- ret
-
-.NotSix:
- and a
- jr nz, .Decrease
- ld [hl], $8 ; number of option items +1
-
-.Decrease:
- dec [hl]
- scf
- ret
-; e455c
-
-Options_UpdateCursorPosition: ; e455c
- hlcoord 1, 1
- ld de, SCREEN_WIDTH
- ld c, $10
-.loop
- ld [hl], " "
- add hl, de
- dec c
- jr nz, .loop
- hlcoord 1, 2
- ld bc, 2 * SCREEN_WIDTH
- ld a, [wJumptableIndex]
- call AddNTimes
- ld [hl], "▶"
- ret
-; e4579