mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Board menu: implement preliminary Party, Bag, Pokegear, and Exit submenus (#11)
This commit is contained in:
parent
c11c53e0d7
commit
ca919cdf98
@ -115,8 +115,8 @@ DEF NUM_NAME_TYPES EQU const_value
|
|||||||
; Board menu items (see engine/board/menu.asm)
|
; Board menu items (see engine/board/menu.asm)
|
||||||
const_def
|
const_def
|
||||||
const BOARDMENUITEM_DIE
|
const BOARDMENUITEM_DIE
|
||||||
const BOARDMENUITEM_POKEMON
|
const BOARDMENUITEM_PARTY
|
||||||
const BOARDMENUITEM_BAG
|
const BOARDMENUITEM_PACK
|
||||||
const BOARDMENUITEM_POKEGEAR
|
const BOARDMENUITEM_POKEGEAR
|
||||||
const BOARDMENUITEM_EXIT
|
const BOARDMENUITEM_EXIT
|
||||||
DEF NUM_BOARD_MENU_ITEMS EQU const_value
|
DEF NUM_BOARD_MENU_ITEMS EQU const_value
|
||||||
|
@ -322,3 +322,8 @@ DEF NUM_UNOWN_PUZZLES EQU const_value
|
|||||||
const MOVETUTOR_FLAMETHROWER ; 1
|
const MOVETUTOR_FLAMETHROWER ; 1
|
||||||
const MOVETUTOR_THUNDERBOLT ; 2
|
const MOVETUTOR_THUNDERBOLT ; 2
|
||||||
const MOVETUTOR_ICE_BEAM ; 3
|
const MOVETUTOR_ICE_BEAM ; 3
|
||||||
|
|
||||||
|
; board events (tracked by hCurBoardEvent)
|
||||||
|
const_def 1
|
||||||
|
const BOARDEVENT_DISPLAY_MENU ; 1
|
||||||
|
DEF NUM_BOARD_EVENTS EQU const_value - 1
|
||||||
|
@ -9,7 +9,7 @@ BoardMenuOAM:
|
|||||||
dbsprite 2, 18, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 6, PAL_OW_MISC
|
dbsprite 2, 18, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 6, PAL_OW_MISC
|
||||||
dbsprite 3, 18, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 7, PAL_OW_MISC
|
dbsprite 3, 18, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 7, PAL_OW_MISC
|
||||||
dbsprite 4, 18, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 8, PAL_OW_MISC
|
dbsprite 4, 18, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 8, PAL_OW_MISC
|
||||||
; BOARDMENUITEM_POKEMON
|
; BOARDMENUITEM_PARTY
|
||||||
dbsprite 6, 16, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 9, PAL_OW_MISC
|
dbsprite 6, 16, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 9, PAL_OW_MISC
|
||||||
dbsprite 7, 16, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 10, PAL_OW_MISC
|
dbsprite 7, 16, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 10, PAL_OW_MISC
|
||||||
dbsprite 8, 16, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 11, PAL_OW_MISC
|
dbsprite 8, 16, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 11, PAL_OW_MISC
|
||||||
@ -19,7 +19,7 @@ BoardMenuOAM:
|
|||||||
dbsprite 6, 18, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 15, PAL_OW_MISC
|
dbsprite 6, 18, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 15, PAL_OW_MISC
|
||||||
dbsprite 7, 18, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 16, PAL_OW_MISC
|
dbsprite 7, 18, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 16, PAL_OW_MISC
|
||||||
dbsprite 8, 18, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 17, PAL_OW_MISC
|
dbsprite 8, 18, 0, 0, BOARD_MENU_OAM_FIRST_TILE + 17, PAL_OW_MISC
|
||||||
; BOARDMENUITEM_BAG
|
; BOARDMENUITEM_PACK
|
||||||
dbsprite 9, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 18, PAL_OW_MISC
|
dbsprite 9, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 18, PAL_OW_MISC
|
||||||
dbsprite 10, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 19, PAL_OW_MISC
|
dbsprite 10, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 19, PAL_OW_MISC
|
||||||
dbsprite 11, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 20, PAL_OW_MISC
|
dbsprite 11, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE + 20, PAL_OW_MISC
|
||||||
|
@ -1,3 +1,70 @@
|
|||||||
|
BoardMenuScript::
|
||||||
|
opentext
|
||||||
|
.display_menu
|
||||||
|
callasm BoardMenu
|
||||||
|
ifequal BOARDMENUITEM_DIE, .Die
|
||||||
|
ifequal BOARDMENUITEM_PARTY, .Party
|
||||||
|
ifequal BOARDMENUITEM_PACK, .Pack
|
||||||
|
ifequal BOARDMENUITEM_POKEGEAR, .Pokegear
|
||||||
|
ifequal BOARDMENUITEM_EXIT, .Exit
|
||||||
|
closetext
|
||||||
|
end
|
||||||
|
|
||||||
|
.Die:
|
||||||
|
closetext
|
||||||
|
end
|
||||||
|
|
||||||
|
.Party:
|
||||||
|
callasm BoardMenu_Party
|
||||||
|
scall .SubmenuCallback
|
||||||
|
sjump .display_menu
|
||||||
|
|
||||||
|
.Pack:
|
||||||
|
callasm BoardMenu_Pack
|
||||||
|
scall .SubmenuCallback
|
||||||
|
sjump .display_menu
|
||||||
|
|
||||||
|
.Pokegear:
|
||||||
|
callasm BoardMenu_Pokegear
|
||||||
|
scall .SubmenuCallback
|
||||||
|
sjump .display_menu
|
||||||
|
|
||||||
|
.Exit:
|
||||||
|
writetext .EmptyText
|
||||||
|
callasm RestoreOverworldFontOverBoardMenuGFX
|
||||||
|
writetext .ConfirmExitText
|
||||||
|
yesorno
|
||||||
|
iftrue .exit
|
||||||
|
writetext .EmptyText
|
||||||
|
sjump .display_menu
|
||||||
|
|
||||||
|
.exit:
|
||||||
|
exitoverworld $00
|
||||||
|
|
||||||
|
.ConfirmExitText:
|
||||||
|
text "Abandon level and"
|
||||||
|
line "return to menu?"
|
||||||
|
done
|
||||||
|
|
||||||
|
.EmptyText:
|
||||||
|
text ""
|
||||||
|
done
|
||||||
|
|
||||||
|
.SubmenuCallback:
|
||||||
|
; if submenu has requested a callback through hMenuReturn,
|
||||||
|
; it has also taken care of queuing it into wQueuedScriptBank/wQueuedScriptAddr.
|
||||||
|
readmem hMenuReturn
|
||||||
|
ifequal HMENURETURN_SCRIPT, .CallbackScript
|
||||||
|
ifequal HMENURETURN_ASM, .CallbackAsm
|
||||||
|
end
|
||||||
|
|
||||||
|
.CallbackScript:
|
||||||
|
memjump wQueuedScriptBank
|
||||||
|
|
||||||
|
.CallbackAsm:
|
||||||
|
memcallasm wQueuedScriptBank
|
||||||
|
end
|
||||||
|
|
||||||
BoardMenu::
|
BoardMenu::
|
||||||
; returns the selected menu item (BOARDMENUITEM_*) in wScriptVar upon exit
|
; returns the selected menu item (BOARDMENUITEM_*) in wScriptVar upon exit
|
||||||
ld a, [wBoardMenuLastCursorPosition]
|
ld a, [wBoardMenuLastCursorPosition]
|
||||||
@ -56,10 +123,16 @@ ApplyBoardMenuSpritePalette:
|
|||||||
ld a, [wBoardMenuCursorPosition]
|
ld a, [wBoardMenuCursorPosition]
|
||||||
ld bc, PALETTE_SIZE
|
ld bc, PALETTE_SIZE
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
; set wOBPals2 directly rather than wOBPals1 to avoid calling ApplyPals and overwriting other overworld pals
|
; write to wOBPals2 directly as well to avoid calling ApplyPals and overwriting other overworld pals
|
||||||
|
; writing to wOBPals1 is still necessary to make fading animations consistent
|
||||||
|
ld de, wOBPals1 palette PAL_OW_MISC
|
||||||
|
ld bc, PALETTE_SIZE
|
||||||
|
ld a, BANK(wOBPals1)
|
||||||
|
call FarCopyWRAM
|
||||||
|
ld hl, wOBPals1 palette PAL_OW_MISC
|
||||||
ld de, wOBPals2 palette PAL_OW_MISC
|
ld de, wOBPals2 palette PAL_OW_MISC
|
||||||
ld bc, PALETTE_SIZE
|
ld bc, PALETTE_SIZE
|
||||||
ld a, BANK(wOBPals2)
|
ld a, BANK(wOBPals1)
|
||||||
call FarCopyWRAM
|
call FarCopyWRAM
|
||||||
ld a, TRUE
|
ld a, TRUE
|
||||||
ldh [hCGBPalUpdate], a
|
ldh [hCGBPalUpdate], a
|
||||||
@ -107,5 +180,73 @@ GetBoardMenuSelection:
|
|||||||
xor a
|
xor a
|
||||||
ret ; nc
|
ret ; nc
|
||||||
|
|
||||||
|
BoardMenu_Party:
|
||||||
|
ld a, [wPartyCount]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
|
||||||
|
call BoardMenu_OpenSubmenu
|
||||||
|
farcall Party
|
||||||
|
jr nc, .quit
|
||||||
|
|
||||||
|
.return
|
||||||
|
; if cancelled or pressed B
|
||||||
|
call BoardMenu_CloseSubmenu
|
||||||
|
ret
|
||||||
|
|
||||||
|
.quit
|
||||||
|
; if quitted party menu after using field move
|
||||||
|
call BoardMenu_CloseSubmenu
|
||||||
|
ld a, HMENURETURN_SCRIPT
|
||||||
|
ldh [hMenuReturn], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
BoardMenu_Pack:
|
||||||
|
call BoardMenu_OpenSubmenu
|
||||||
|
farcall Pack
|
||||||
|
call BoardMenu_CloseSubmenu
|
||||||
|
ld a, [wPackUsedItem]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
ld a, HMENURETURN_SCRIPT
|
||||||
|
ldh [hMenuReturn], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
BoardMenu_Pokegear:
|
||||||
|
call BoardMenu_OpenSubmenu
|
||||||
|
farcall PokeGear
|
||||||
|
jp BoardMenu_CloseSubmenu
|
||||||
|
|
||||||
|
BoardMenu_OpenSubmenu:
|
||||||
|
xor a
|
||||||
|
ldh [hMenuReturn], a
|
||||||
|
ldh [hBGMapMode], a
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
farcall FadeOutPalettesToWhite
|
||||||
|
call DisableOverworldHUD
|
||||||
|
ld hl, wTextboxFlags
|
||||||
|
res TEXT_2BPP_F, [hl]
|
||||||
|
call LoadStandardFont
|
||||||
|
call LoadFrame
|
||||||
|
call ClearSprites
|
||||||
|
call DisableSpriteUpdates
|
||||||
|
ret
|
||||||
|
|
||||||
|
BoardMenu_CloseSubmenu:
|
||||||
|
call ClearBGPalettes
|
||||||
|
ld hl, wTextboxFlags
|
||||||
|
set TEXT_2BPP_F, [hl]
|
||||||
|
call EnableOverworldHUD
|
||||||
|
call ReloadTilesetAndPalettes
|
||||||
|
call UpdateSprites
|
||||||
|
call ExitMenu
|
||||||
|
call ClearTextbox
|
||||||
|
ld b, CGB_MAPPALS
|
||||||
|
call GetCGBLayout
|
||||||
|
call WaitBGMap2
|
||||||
|
farcall FadeInPalettesFromWhite
|
||||||
|
call EnableSpriteUpdates
|
||||||
|
ret
|
||||||
|
|
||||||
BoardMenuItemPals:
|
BoardMenuItemPals:
|
||||||
INCLUDE "gfx/board/menu.pal"
|
INCLUDE "gfx/board/menu.pal"
|
||||||
|
@ -1706,10 +1706,6 @@ Script_GetOnBike_Register:
|
|||||||
special UpdatePlayerSprite
|
special UpdatePlayerSprite
|
||||||
end
|
end
|
||||||
|
|
||||||
Overworld_DummyFunction: ; unreferenced
|
|
||||||
nop
|
|
||||||
ret
|
|
||||||
|
|
||||||
Script_GetOffBike:
|
Script_GetOffBike:
|
||||||
reloadmappart
|
reloadmappart
|
||||||
special UpdateTimePals
|
special UpdateTimePals
|
||||||
|
@ -15,8 +15,8 @@ INCBIN "gfx/board/menu.2bpp"
|
|||||||
.BoardMenuOAMGFX:
|
.BoardMenuOAMGFX:
|
||||||
table_width 3 * 3 * LEN_2BPP_TILE, .BoardMenuOAMGFX
|
table_width 3 * 3 * LEN_2BPP_TILE, .BoardMenuOAMGFX
|
||||||
INCBIN "gfx/board/menu_die.2bpp"
|
INCBIN "gfx/board/menu_die.2bpp"
|
||||||
INCBIN "gfx/board/menu_pokemon.2bpp"
|
INCBIN "gfx/board/menu_party.2bpp"
|
||||||
INCBIN "gfx/board/menu_bag.2bpp"
|
INCBIN "gfx/board/menu_pack.2bpp"
|
||||||
INCBIN "gfx/board/menu_pokegear.2bpp"
|
INCBIN "gfx/board/menu_pokegear.2bpp"
|
||||||
INCBIN "gfx/board/menu_exit.2bpp"
|
INCBIN "gfx/board/menu_exit.2bpp"
|
||||||
assert_table_length NUM_BOARD_MENU_ITEMS
|
assert_table_length NUM_BOARD_MENU_ITEMS
|
||||||
|
@ -1,36 +1,41 @@
|
|||||||
_LoadOverworldFontAndFrame::
|
_LoadOverworldFontAndFrame::
|
||||||
ld de, .OverworldFontGFX
|
ld de, OverworldFontGFX
|
||||||
ld hl, vTiles1
|
ld hl, vTiles1
|
||||||
lb bc, BANK(.OverworldFontGFX), 64
|
lb bc, BANK(OverworldFontGFX), 64
|
||||||
call Get2bppViaHDMA
|
call Get2bppViaHDMA
|
||||||
ld de, .OverworldFontGFX + 64 * LEN_2BPP_TILE
|
ld de, OverworldFontGFX + 64 * LEN_2BPP_TILE
|
||||||
ld hl, vTiles1 tile $40
|
ld hl, vTiles1 tile $40
|
||||||
lb bc, BANK(.OverworldFontGFX), 56
|
lb bc, BANK(OverworldFontGFX), 48
|
||||||
call Get2bppViaHDMA
|
call Get2bppViaHDMA
|
||||||
ld de, .OverworldFontSpaceGFX
|
ld de, OverworldFontSpaceGFX
|
||||||
ld hl, vTiles2 tile " "
|
ld hl, vTiles2 tile " "
|
||||||
lb bc, BANK(.OverworldFontSpaceGFX), 1
|
lb bc, BANK(OverworldFontSpaceGFX), 1
|
||||||
call Get2bppViaHDMA
|
call Get2bppViaHDMA
|
||||||
ld a, [wEnvironment]
|
ld a, [wEnvironment]
|
||||||
maskbits NUM_ENVIRONMENTS
|
maskbits NUM_ENVIRONMENTS
|
||||||
ld bc, OW_TEXTBOX_FRAME_TILES * LEN_2BPP_TILE
|
ld bc, OW_TEXTBOX_FRAME_TILES * LEN_2BPP_TILE
|
||||||
ld hl, .OverworldFrames
|
ld hl, OverworldFrames
|
||||||
call AddNTimes
|
call AddNTimes
|
||||||
ld d, h
|
ld d, h
|
||||||
ld e, l
|
ld e, l
|
||||||
ld hl, vTiles0 tile OVERWORLD_FRAME_FIRST_TILE ; $f0
|
ld hl, vTiles0 tile OVERWORLD_FRAME_FIRST_TILE ; $f0
|
||||||
lb bc, BANK(.OverworldFrames), OW_TEXTBOX_FRAME_TILES
|
lb bc, BANK(OverworldFrames), OW_TEXTBOX_FRAME_TILES
|
||||||
call Get2bppViaHDMA
|
jp Get2bppViaHDMA
|
||||||
ret
|
|
||||||
|
|
||||||
.OverworldFontGFX:
|
RestoreOverworldFontOverBoardMenuGFX::
|
||||||
|
ld de, OverworldFontGFX
|
||||||
|
ld hl, vTiles1
|
||||||
|
lb bc, BANK(OverworldFontGFX), 18 * 3
|
||||||
|
jp Get2bppViaHDMA
|
||||||
|
|
||||||
|
OverworldFontGFX:
|
||||||
INCBIN "gfx/font/overworld.2bpp"
|
INCBIN "gfx/font/overworld.2bpp"
|
||||||
|
|
||||||
.OverworldFontSpaceGFX:
|
OverworldFontSpaceGFX:
|
||||||
INCBIN "gfx/font/overworld_space.2bpp"
|
INCBIN "gfx/font/overworld_space.2bpp"
|
||||||
|
|
||||||
.OverworldFrames:
|
OverworldFrames:
|
||||||
table_width OW_TEXTBOX_FRAME_TILES * LEN_2BPP_TILE, .OverworldFrames
|
table_width OW_TEXTBOX_FRAME_TILES * LEN_2BPP_TILE, OverworldFrames
|
||||||
INCBIN "gfx/frames/ow1.2bpp"
|
INCBIN "gfx/frames/ow1.2bpp"
|
||||||
INCBIN "gfx/frames/ow2.2bpp"
|
INCBIN "gfx/frames/ow2.2bpp"
|
||||||
INCBIN "gfx/frames/ow3.2bpp"
|
INCBIN "gfx/frames/ow3.2bpp"
|
||||||
|
@ -501,35 +501,8 @@ StartMenu_Pokemon:
|
|||||||
jr z, .return
|
jr z, .return
|
||||||
|
|
||||||
call FadeToMenu
|
call FadeToMenu
|
||||||
|
farcall Party
|
||||||
.choosemenu
|
jr nc, .quit
|
||||||
xor a
|
|
||||||
ld [wPartyMenuActionText], a ; Choose a POKéMON.
|
|
||||||
call ClearBGPalettes
|
|
||||||
|
|
||||||
.menu
|
|
||||||
farcall LoadPartyMenuGFX
|
|
||||||
farcall InitPartyMenuWithCancel
|
|
||||||
farcall InitPartyMenuGFX
|
|
||||||
|
|
||||||
.menunoreload
|
|
||||||
farcall WritePartyMenuTilemap
|
|
||||||
farcall PlacePartyMenuText
|
|
||||||
call WaitBGMap
|
|
||||||
call SetPalettes ; load regular palettes?
|
|
||||||
call DelayFrame
|
|
||||||
farcall PartyMenuSelect
|
|
||||||
jr c, .return ; if cancelled or pressed B
|
|
||||||
|
|
||||||
call PokemonActionSubmenu
|
|
||||||
cp 3
|
|
||||||
jr z, .menu
|
|
||||||
cp 0
|
|
||||||
jr z, .choosemenu
|
|
||||||
cp 1
|
|
||||||
jr z, .menunoreload
|
|
||||||
cp 2
|
|
||||||
jr z, .quit
|
|
||||||
|
|
||||||
.return
|
.return
|
||||||
call CloseSubmenu
|
call CloseSubmenu
|
||||||
|
@ -11,6 +11,9 @@ OverworldLoop::
|
|||||||
cp MAPSTATUS_DONE
|
cp MAPSTATUS_DONE
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
.done
|
.done
|
||||||
|
call DisableOverworldHUD
|
||||||
|
ld hl, wGameTimerPaused
|
||||||
|
res GAME_TIMER_PAUSED_F, [hl] ; stop game timer counter
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.Jumptable:
|
.Jumptable:
|
||||||
@ -105,6 +108,8 @@ StartMap:
|
|||||||
call ByteFill
|
call ByteFill
|
||||||
farcall InitCallReceiveDelay
|
farcall InitCallReceiveDelay
|
||||||
call ClearJoypad
|
call ClearJoypad
|
||||||
|
ld a, BOARDEVENT_DISPLAY_MENU
|
||||||
|
ld [hCurBoardEvent], a
|
||||||
EnterMap:
|
EnterMap:
|
||||||
xor a
|
xor a
|
||||||
ld [wXYComparePointer], a
|
ld [wXYComparePointer], a
|
||||||
@ -238,6 +243,9 @@ PlayerEvents:
|
|||||||
and a
|
and a
|
||||||
ret nz
|
ret nz
|
||||||
|
|
||||||
|
call CheckBoardEvent
|
||||||
|
jr c, .ok
|
||||||
|
|
||||||
call CheckTrainerBattle_GetPlayerEvent
|
call CheckTrainerBattle_GetPlayerEvent
|
||||||
jr c, .ok
|
jr c, .ok
|
||||||
|
|
||||||
@ -269,6 +277,28 @@ PlayerEvents:
|
|||||||
scf
|
scf
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
CheckBoardEvent:
|
||||||
|
jumptable .Jumptable, hCurBoardEvent
|
||||||
|
|
||||||
|
.Jumptable:
|
||||||
|
table_width 2, .Jumptable
|
||||||
|
dw .none
|
||||||
|
dw .menu
|
||||||
|
assert_table_length NUM_BOARD_EVENTS + 1
|
||||||
|
|
||||||
|
.none
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.menu
|
||||||
|
ld a, BANK(BoardMenuScript)
|
||||||
|
ld hl, BoardMenuScript
|
||||||
|
call CallScript
|
||||||
|
xor a
|
||||||
|
ld [hCurBoardEvent], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
CheckTrainerBattle_GetPlayerEvent:
|
CheckTrainerBattle_GetPlayerEvent:
|
||||||
call CheckTrainerBattle
|
call CheckTrainerBattle
|
||||||
jr nc, .nope
|
jr nc, .nope
|
||||||
|
@ -234,6 +234,7 @@ ScriptCommandTable:
|
|||||||
dw Script_getname ; a7
|
dw Script_getname ; a7
|
||||||
dw Script_wait ; a8
|
dw Script_wait ; a8
|
||||||
dw Script_checksave ; a9
|
dw Script_checksave ; a9
|
||||||
|
dw Script_exitoverworld ; aa
|
||||||
assert_table_length NUM_EVENT_COMMANDS
|
assert_table_length NUM_EVENT_COMMANDS
|
||||||
|
|
||||||
StartScript:
|
StartScript:
|
||||||
@ -2329,6 +2330,14 @@ ReturnFromCredits:
|
|||||||
call StopScript
|
call StopScript
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
Script_exitoverworld:
|
||||||
|
call GetScriptByte
|
||||||
|
call Script_endall
|
||||||
|
ld a, MAPSTATUS_DONE
|
||||||
|
call LoadMapStatus
|
||||||
|
call StopScript
|
||||||
|
ret
|
||||||
|
|
||||||
Script_wait:
|
Script_wait:
|
||||||
push bc
|
push bc
|
||||||
call GetScriptByte
|
call GetScriptByte
|
||||||
|
@ -104,6 +104,37 @@ CancelPokemonAction:
|
|||||||
ld a, 1
|
ld a, 1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
Party::
|
||||||
|
.choosemenu
|
||||||
|
xor a
|
||||||
|
ld [wPartyMenuActionText], a ; Choose a POKéMON.
|
||||||
|
call ClearBGPalettes
|
||||||
|
|
||||||
|
.menu
|
||||||
|
farcall LoadPartyMenuGFX
|
||||||
|
farcall InitPartyMenuWithCancel
|
||||||
|
farcall InitPartyMenuGFX
|
||||||
|
|
||||||
|
.menunoreload
|
||||||
|
farcall WritePartyMenuTilemap
|
||||||
|
farcall PlacePartyMenuText
|
||||||
|
call WaitBGMap
|
||||||
|
call SetPalettes ; load regular palettes?
|
||||||
|
call DelayFrame
|
||||||
|
farcall PartyMenuSelect
|
||||||
|
ret c ; if cancelled or pressed B
|
||||||
|
|
||||||
|
call PokemonActionSubmenu
|
||||||
|
and 3
|
||||||
|
cp 3
|
||||||
|
jr z, .menu
|
||||||
|
cp 0
|
||||||
|
jr z, .choosemenu
|
||||||
|
cp 1
|
||||||
|
jr z, .menunoreload
|
||||||
|
and a ; must be 2, which means quit after using field move
|
||||||
|
ret ; nc
|
||||||
|
|
||||||
PokemonActionSubmenu:
|
PokemonActionSubmenu:
|
||||||
hlcoord 1, 15
|
hlcoord 1, 15
|
||||||
lb bc, 2, 18
|
lb bc, 2, 18
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
RGB 00, 00, 21
|
RGB 00, 00, 21
|
||||||
RGB 00, 00, 00
|
RGB 00, 00, 00
|
||||||
|
|
||||||
; item 2 (BOARDMENUITEM_POKEMON)
|
; item 2 (BOARDMENUITEM_PARTY)
|
||||||
RGB 31, 31, 31
|
RGB 31, 31, 31
|
||||||
RGB 31, 26, 26
|
RGB 31, 26, 26
|
||||||
RGB 30, 00, 00
|
RGB 30, 00, 00
|
||||||
RGB 00, 00, 00
|
RGB 00, 00, 00
|
||||||
|
|
||||||
; item 3 (BOARDMENUITEM_BAG)
|
; item 3 (BOARDMENUITEM_PACK)
|
||||||
RGB 31, 31, 31
|
RGB 31, 31, 31
|
||||||
RGB 10, 31, 10
|
RGB 10, 31, 10
|
||||||
RGB 00, 21, 10
|
RGB 00, 21, 10
|
||||||
|
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 369 B |
Before Width: | Height: | Size: 361 B After Width: | Height: | Size: 361 B |
@ -1916,7 +1916,7 @@ ReturnToMapWithSpeechTextbox::
|
|||||||
call ClearBGPalettes
|
call ClearBGPalettes
|
||||||
call ClearSprites
|
call ClearSprites
|
||||||
call ReloadTilesetAndPalettes
|
call ReloadTilesetAndPalettes
|
||||||
call SpeechTextbox1bpp
|
call SpeechTextbox ; 1bpp or 2bpp according to wTextboxFlags[TEXT_2BPP_F]
|
||||||
ld hl, wVramState
|
ld hl, wVramState
|
||||||
set 0, [hl]
|
set 0, [hl]
|
||||||
call UpdateSprites
|
call UpdateSprites
|
||||||
@ -1934,8 +1934,15 @@ ReloadTilesetAndPalettes::
|
|||||||
call DisableLCD
|
call DisableLCD
|
||||||
call ClearSprites
|
call ClearSprites
|
||||||
farcall RefreshSprites
|
farcall RefreshSprites
|
||||||
|
ld a, [wTextboxFlags]
|
||||||
|
bit TEXT_2BPP_F, a
|
||||||
|
jr nz, .2bpp
|
||||||
call LoadStandardFont
|
call LoadStandardFont
|
||||||
call LoadFrame
|
call LoadFrame
|
||||||
|
jr .font_done
|
||||||
|
.2bpp
|
||||||
|
call LoadOverworldFontAndFrame
|
||||||
|
.font_done
|
||||||
ldh a, [hROMBank]
|
ldh a, [hROMBank]
|
||||||
push af
|
push af
|
||||||
ld a, [wMapGroup]
|
ld a, [wMapGroup]
|
||||||
|
@ -165,6 +165,13 @@ Textbox2bpp::
|
|||||||
pop bc
|
pop bc
|
||||||
jp TextboxAttributes2bpp
|
jp TextboxAttributes2bpp
|
||||||
|
|
||||||
|
SpeechTextbox:
|
||||||
|
; Standard 1bpp or 2bpp textbox according to wTextboxFlags[TEXT_2BPP_F]
|
||||||
|
ld a, [wTextboxFlags]
|
||||||
|
bit TEXT_2BPP_F, a
|
||||||
|
jr z, SpeechTextbox1bpp
|
||||||
|
jr SpeechTextbox2bpp
|
||||||
|
|
||||||
RadioTerminator::
|
RadioTerminator::
|
||||||
ld hl, .stop
|
ld hl, .stop
|
||||||
ret
|
ret
|
||||||
@ -172,7 +179,7 @@ RadioTerminator::
|
|||||||
.stop:
|
.stop:
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
ClearTextbox:
|
ClearTextbox::
|
||||||
hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
|
hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
|
||||||
lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
|
lb bc, TEXTBOX_INNERH - 1, TEXTBOX_INNERW
|
||||||
jp ClearBox
|
jp ClearBox
|
||||||
|
@ -11,7 +11,11 @@ ENDM
|
|||||||
; Design patterns
|
; Design patterns
|
||||||
|
|
||||||
MACRO jumptable
|
MACRO jumptable
|
||||||
|
if STRIN("\2", "h") == 1
|
||||||
|
ldh a, [\2]
|
||||||
|
else
|
||||||
ld a, [\2]
|
ld a, [\2]
|
||||||
|
endc
|
||||||
ld e, a
|
ld e, a
|
||||||
ld d, 0
|
ld d, 0
|
||||||
ld hl, \1
|
ld hl, \1
|
||||||
|
@ -1065,4 +1065,10 @@ MACRO checksave
|
|||||||
db checksave_command
|
db checksave_command
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
const exitoverworld_command ; $aa
|
||||||
|
MACRO exitoverworld
|
||||||
|
db exitoverworld_command
|
||||||
|
db \1 ; exit reason
|
||||||
|
ENDM
|
||||||
|
|
||||||
DEF NUM_EVENT_COMMANDS EQU const_value
|
DEF NUM_EVENT_COMMANDS EQU const_value
|
||||||
|
@ -152,3 +152,5 @@ hWindowHUDLY::
|
|||||||
; Window HUD is enabled when non-0.
|
; Window HUD is enabled when non-0.
|
||||||
; Its value indicates the last scanline that the window spans from the top.
|
; Its value indicates the last scanline that the window spans from the top.
|
||||||
db
|
db
|
||||||
|
|
||||||
|
hCurBoardEvent:: db
|
||||||
|
Loading…
Reference in New Issue
Block a user