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/scrolling_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/scrolling_menu.asm')
-rwxr-xr-x | engine/scrolling_menu.asm | 543 |
1 files changed, 0 insertions, 543 deletions
diff --git a/engine/scrolling_menu.asm b/engine/scrolling_menu.asm deleted file mode 100755 index 3be3d839c..000000000 --- a/engine/scrolling_menu.asm +++ /dev/null @@ -1,543 +0,0 @@ -_InitScrollingMenu:: ; 245af - xor a - ld [wMenuJoypad], a - ld [hBGMapMode], a - inc a - ld [hInMenu], a - call InitScrollingMenuCursor - call ScrollingMenu_InitFlags - call ScrollingMenu_ValidateSwitchItem - call ScrollingMenu_InitDisplay - call ApplyTilemap - xor a - ld [hBGMapMode], a - ret -; 245cb - -_ScrollingMenu:: ; 245cb -.loop - call ScrollingMenuJoyAction - jp c, .exit - call z, .zero - jr .loop -; 245d6 - -.exit ; 245d6 - call MenuClickSound - ld [wMenuJoypad], a - ld a, 0 - ld [hInMenu], a - ret -; 245e1 - -.zero ; 245e1 - call ScrollingMenu_InitDisplay - ld a, 1 - ld [hBGMapMode], a - ld c, 3 - call DelayFrames - xor a - ld [hBGMapMode], a - ret -; 245f1 - -ScrollingMenu_InitDisplay: ; 245f1 - xor a - ld [hBGMapMode], a - ld hl, wOptions - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - call ScrollingMenu_UpdateDisplay - call ScrollingMenu_PlaceCursor - call ScrollingMenu_CheckCallFunction3 - pop af - ld [wOptions], a - ret -; 24609 - -ScrollingMenuJoyAction: ; 24609 -.loop - call ScrollingMenuJoypad - ld a, [hJoyLast] - and D_PAD - ld b, a - ld a, [hJoyPressed] - and BUTTONS - or b - bit A_BUTTON_F, a - jp nz, .a_button - bit B_BUTTON_F, a - jp nz, .b_button - bit SELECT_F, a - jp nz, .select - bit START_F, a - jp nz, .start - bit D_RIGHT_F, a - jp nz, .d_right - bit D_LEFT_F, a - jp nz, .d_left - bit D_UP_F, a - jp nz, .d_up - bit D_DOWN_F, a - jp nz, .d_down - jr .loop -; 24640 - -.unreferenced ; unused - ld a, -1 - and a - ret -; 24644 - -.a_button ; 24644 - call PlaceHollowCursor - ld a, [wMenuCursorY] - dec a - call ScrollingMenu_GetListItemCoordAndFunctionArgs - ld a, [wMenuSelection] - ld [wCurItem], a - ld a, [wMenuSelectionQuantity] - ld [wItemQuantityBuffer], a - call ScrollingMenu_GetCursorPosition - dec a - ld [wScrollingMenuCursorPosition], a - ld [wCurItemQuantity], a - ld a, [wMenuSelection] - cp -1 - jr z, .b_button - ld a, A_BUTTON - scf - ret -; 2466f - -.b_button ; 2466f - ld a, B_BUTTON - scf - ret -; 24673 - -.select ; 24673 - ld a, [wMenuDataFlags] - bit 7, a - jp z, xor_a_dec_a - ld a, [wMenuCursorY] - dec a - call ScrollingMenu_GetListItemCoordAndFunctionArgs - ld a, [wMenuSelection] - cp -1 - jp z, xor_a_dec_a - call ScrollingMenu_GetCursorPosition - dec a - ld [wScrollingMenuCursorPosition], a - ld a, SELECT - scf - ret -; 24695 - -.start ; 24695 - ld a, [wMenuDataFlags] - bit 6, a - jp z, xor_a_dec_a - ld a, START - scf - ret -; 246a1 - -.d_left ; 246a1 - ld hl, w2DMenuFlags2 - bit 7, [hl] - jp z, xor_a_dec_a - ld a, [wMenuDataFlags] - bit 3, a - jp z, xor_a_dec_a - ld a, D_LEFT - scf - ret -; 246b5 - -.d_right ; 246b5 - ld hl, w2DMenuFlags2 - bit 7, [hl] - jp z, xor_a_dec_a - ld a, [wMenuDataFlags] - bit 2, a - jp z, xor_a_dec_a - ld a, D_RIGHT - scf - ret -; 246c9 - -.d_up ; 246c9 - ld hl, w2DMenuFlags2 - bit 7, [hl] - jp z, xor_a - ld hl, wMenuScrollPosition - ld a, [hl] - and a - jr z, .xor_dec_up - dec [hl] - jp xor_a - -.xor_dec_up - jp xor_a_dec_a -; 246df - -.d_down ; 246df - ld hl, w2DMenuFlags2 - bit 7, [hl] - jp z, xor_a - ld hl, wMenuScrollPosition - ld a, [wMenuData_ScrollingMenuHeight] - add [hl] - ld b, a - ld a, [wScrollingMenuListSize] - cp b - jr c, .xor_dec_down - inc [hl] - jp xor_a - -.xor_dec_down - jp xor_a_dec_a -; 246fc - -ScrollingMenu_GetCursorPosition: ; 246fc - ld a, [wMenuScrollPosition] - ld c, a - ld a, [wMenuCursorY] - add c - ld c, a - ret -; 24706 - -ScrollingMenu_ClearLeftColumn: ; 24706 (9:4706) - call MenuBoxCoord2Tile - ld de, SCREEN_WIDTH - add hl, de - ld de, 2 * SCREEN_WIDTH - ld a, [wMenuData_ScrollingMenuHeight] -.loop - ld [hl], " " - add hl, de - dec a - jr nz, .loop - ret - -InitScrollingMenuCursor: ; 2471a - ld hl, wMenuData_ItemsPointerAddr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wMenuData_ItemsPointerBank] - call GetFarByte - ld [wScrollingMenuListSize], a - ld a, [wMenuData_ScrollingMenuHeight] - ld c, a - ld a, [wMenuScrollPosition] - add c - ld c, a - ld a, [wScrollingMenuListSize] - inc a - cp c - jr nc, .skip - ld a, [wMenuData_ScrollingMenuHeight] - ld c, a - ld a, [wScrollingMenuListSize] - inc a - sub c - jr nc, .store - xor a - -.store - ld [wMenuScrollPosition], a - -.skip - ld a, [wMenuScrollPosition] - ld c, a - ld a, [wMenuCursorBuffer] - add c - ld b, a - ld a, [wScrollingMenuListSize] - inc a - cp b - jr c, .asm_2475a - jr nc, .asm_24763 - -.asm_2475a - xor a - ld [wMenuScrollPosition], a - ld a, $1 - ld [wMenuCursorBuffer], a - -.asm_24763 - ret -; 24764 - -ScrollingMenu_InitFlags: ; 24764 - ld a, [wMenuDataFlags] - ld c, a - ld a, [wScrollingMenuListSize] - ld b, a - ld a, [wMenuBorderTopCoord] - add 1 - ld [w2DMenuCursorInitY], a - ld a, [wMenuBorderLeftCoord] - add 0 - ld [w2DMenuCursorInitX], a - ld a, [wMenuData_ScrollingMenuHeight] - cp b - jr c, .no_extra_row - jr z, .no_extra_row - ld a, b - inc a -.no_extra_row - ld [w2DMenuNumRows], a - ld a, 1 - ld [w2DMenuNumCols], a - ld a, $8c - bit 2, c - jr z, .skip_set_0 - set 0, a - -.skip_set_0 - bit 3, c - jr z, .skip_set_1 - set 1, a - -.skip_set_1 - ld [w2DMenuFlags1], a - xor a - ld [w2DMenuFlags2], a - ld a, $20 - ld [w2DMenuCursorOffsets], a - ld a, A_BUTTON | B_BUTTON | D_UP | D_DOWN - bit 7, c - jr z, .disallow_select - add SELECT - -.disallow_select - bit 6, c - jr z, .disallow_start - add START - -.disallow_start - ld [wMenuJoypadFilter], a - ld a, [w2DMenuNumRows] - ld b, a - ld a, [wMenuCursorBuffer] - and a - jr z, .reset_cursor - cp b - jr z, .cursor_okay - jr c, .cursor_okay - -.reset_cursor - ld a, 1 - -.cursor_okay - ld [wMenuCursorY], a - ld a, 1 - ld [wMenuCursorX], a - xor a - ld [wCursorCurrentTile], a - ld [wCursorCurrentTile + 1], a - ld [wCursorOffCharacter], a - ret -; 247dd - -ScrollingMenu_ValidateSwitchItem: ; 247dd - ld a, [wScrollingMenuListSize] - ld c, a - ld a, [wSwitchItem] - and a - jr z, .done - dec a - cp c - jr c, .done - xor a - ld [wSwitchItem], a - -.done - ret -; 247f0 - -ScrollingMenu_UpdateDisplay: ; 247f0 - call ClearWholeMenuBox - ld a, [wMenuDataFlags] - bit 4, a ; place arrows - jr z, .okay - ld a, [wMenuScrollPosition] - and a - jr z, .okay - ld a, [wMenuBorderTopCoord] - ld b, a - ld a, [wMenuBorderRightCoord] - ld c, a - call Coord2Tile - ld [hl], "▲" - -.okay - call MenuBoxCoord2Tile - ld bc, SCREEN_WIDTH + 1 - add hl, bc - ld a, [wMenuData_ScrollingMenuHeight] - ld b, a - ld c, $0 -.loop - ld a, [wMenuScrollPosition] - add c - ld [wScrollingMenuCursorPosition], a - ld a, c - call ScrollingMenu_GetListItemCoordAndFunctionArgs - ld a, [wMenuSelection] - cp -1 - jr z, .cancel - push bc - push hl - call ScrollingMenu_CallFunctions1and2 - pop hl - ld bc, 2 * SCREEN_WIDTH - add hl, bc - pop bc - inc c - ld a, c - cp b - jr nz, .loop - ld a, [wMenuDataFlags] - bit 4, a ; place arrows - jr z, .done - ld a, [wMenuBorderBottomCoord] - ld b, a - ld a, [wMenuBorderRightCoord] - ld c, a - call Coord2Tile - ld [hl], "▼" - -.done - ret - -.cancel - ld a, [wMenuDataFlags] - bit 0, a ; call function on cancel - jr nz, .call_function - ld de, .string_2485f - call PlaceString - ret - -.string_2485f - db "CANCEL@" - -.call_function - ld d, h - ld e, l - ld hl, wMenuData_ScrollingMenuFunction1 - jp CallPointerAt -; 2486e - -ScrollingMenu_CallFunctions1and2: ; 2486e - push hl - ld d, h - ld e, l - ld hl, wMenuData_ScrollingMenuFunction1 - call CallPointerAt - pop hl - ld a, [wMenuData_ScrollingMenuWidth] - and a - jr z, .done - ld e, a - ld d, $0 - add hl, de - ld d, h - ld e, l - ld hl, wMenuData_ScrollingMenuFunction2 - call CallPointerAt - -.done - ret -; 2488b - -ScrollingMenu_PlaceCursor: ; 2488b - ld a, [wSwitchItem] - and a - jr z, .done - ld b, a - ld a, [wMenuScrollPosition] - cp b - jr nc, .done - ld c, a - ld a, [wMenuData_ScrollingMenuHeight] - add c - cp b - jr c, .done - ld a, b - sub c - dec a - add a - add $1 - ld c, a - ld a, [wMenuBorderTopCoord] - add c - ld b, a - ld a, [wMenuBorderLeftCoord] - add $0 - ld c, a - call Coord2Tile - ld [hl], "▷" - -.done - ret -; 248b8 - -ScrollingMenu_CheckCallFunction3: ; 248b8 - ld a, [wMenuDataFlags] - bit 5, a ; call function 3 - ret z - bit 1, a ; call function 3 if not switching items - jr z, .call - ld a, [wSwitchItem] - and a - ret nz - -.call - ld a, [wMenuCursorY] - dec a - call ScrollingMenu_GetListItemCoordAndFunctionArgs - ld hl, wMenuData_ScrollingMenuFunction3 - call CallPointerAt - ret -; 248d5 - -ScrollingMenu_GetListItemCoordAndFunctionArgs: ; 248d5 - push de - push hl - ld e, a - ld a, [wMenuScrollPosition] - add e - ld e, a - ld d, $0 - ld hl, wMenuData_ItemsPointerAddr - ld a, [hli] - ld h, [hl] - ld l, a - inc hl ; items - ld a, [wMenuData_ScrollingMenuSpacing] - cp 1 - jr z, .got_spacing - cp 2 - jr z, .pointless_jump -.pointless_jump - add hl, de -.got_spacing - add hl, de - ld a, [wMenuData_ItemsPointerBank] - call GetFarByte - ld [wMenuSelection], a - ld [wCurItem], a - inc hl - ld a, [wMenuData_ItemsPointerBank] - call GetFarByte - ld [wMenuSelectionQuantity], a - pop hl - pop de - ret -; 2490c |