diff options
author | mid-kid <esteve.varela@gmail.com> | 2018-03-13 13:07:16 +0100 |
---|---|---|
committer | mid-kid <esteve.varela@gmail.com> | 2018-03-13 13:21:40 +0100 |
commit | baa0dc5a963a79843b37888bcfe1d2dfe833ade9 (patch) | |
tree | 968c86105bd67a3121d8f3f20018bfc59191f4c9 /engine/options_menu.asm | |
parent | 12070ca50067d3abe36a730190f88ee43f2cace9 (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-x | engine/options_menu.asm | 583 |
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 |