mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-06 15:45:24 +13:00
Add subdirectories to engine/ similar to pokecrystal
This commit is contained in:
parent
5559d51c86
commit
f275790aec
124 changed files with 342 additions and 346 deletions
325
engine/menus/party_menu.asm
Executable file
325
engine/menus/party_menu.asm
Executable file
|
|
@ -0,0 +1,325 @@
|
|||
; [wPartyMenuTypeOrMessageID] = menu type / message ID
|
||||
; if less than $F0, it is a menu type
|
||||
; menu types:
|
||||
; 00: normal pokemon menu (e.g. Start menu)
|
||||
; 01: use healing item on pokemon menu
|
||||
; 02: in-battle switch pokemon menu
|
||||
; 03: learn TM/HM menu
|
||||
; 04: swap pokemon positions menu
|
||||
; 05: use evolution stone on pokemon menu
|
||||
; otherwise, it is a message ID
|
||||
; f0: poison healed
|
||||
; f1: burn healed
|
||||
; f2: freeze healed
|
||||
; f3: sleep healed
|
||||
; f4: paralysis healed
|
||||
; f5: HP healed
|
||||
; f6: health returned
|
||||
; f7: revitalized
|
||||
; f8: leveled up
|
||||
DrawPartyMenu_::
|
||||
xor a
|
||||
ld [H_AUTOBGTRANSFERENABLED], a
|
||||
call ClearScreen
|
||||
call UpdateSprites
|
||||
callba LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics
|
||||
|
||||
RedrawPartyMenu_::
|
||||
ld a, [wPartyMenuTypeOrMessageID]
|
||||
cp SWAP_MONS_PARTY_MENU
|
||||
jp z, .printMessage
|
||||
call ErasePartyMenuCursors
|
||||
callba InitPartyMenuBlkPacket
|
||||
coord hl, 3, 0
|
||||
ld de, wPartySpecies
|
||||
xor a
|
||||
ld c, a
|
||||
ld [hPartyMonIndex], a
|
||||
ld [wWhichPartyMenuHPBar], a
|
||||
.loop
|
||||
ld a, [de]
|
||||
cp $FF ; reached the terminator?
|
||||
jp z, .afterDrawingMonEntries
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
ld a, c
|
||||
push hl
|
||||
ld hl, wPartyMonNicks
|
||||
call GetPartyMonName
|
||||
pop hl
|
||||
call PlaceString ; print the pokemon's name
|
||||
callba WriteMonPartySpriteOAMByPartyIndex ; place the appropriate pokemon icon
|
||||
ld a, [hPartyMonIndex]
|
||||
ld [wWhichPokemon], a
|
||||
inc a
|
||||
ld [hPartyMonIndex], a
|
||||
call LoadMonData
|
||||
pop hl
|
||||
push hl
|
||||
ld a, [wMenuItemToSwap]
|
||||
and a ; is the player swapping pokemon positions?
|
||||
jr z, .skipUnfilledRightArrow
|
||||
; if the player is swapping pokemon positions
|
||||
dec a
|
||||
ld b, a
|
||||
ld a, [wWhichPokemon]
|
||||
cp b ; is the player swapping the current pokemon in the list?
|
||||
jr nz, .skipUnfilledRightArrow
|
||||
; the player is swapping the current pokemon in the list
|
||||
dec hl
|
||||
dec hl
|
||||
dec hl
|
||||
ld a, "▷" ; unfilled right arrow menu cursor
|
||||
ld [hli], a ; place the cursor
|
||||
inc hl
|
||||
inc hl
|
||||
.skipUnfilledRightArrow
|
||||
ld a, [wPartyMenuTypeOrMessageID] ; menu type
|
||||
cp TMHM_PARTY_MENU
|
||||
jr z, .teachMoveMenu
|
||||
cp EVO_STONE_PARTY_MENU
|
||||
jr z, .evolutionStoneMenu
|
||||
push hl
|
||||
ld bc, 14 ; 14 columns to the right
|
||||
add hl, bc
|
||||
ld de, wLoadedMonStatus
|
||||
call PrintStatusCondition
|
||||
pop hl
|
||||
push hl
|
||||
ld bc, SCREEN_WIDTH + 1 ; down 1 row and right 1 column
|
||||
ld a, [hFlags_0xFFF6]
|
||||
set 0, a
|
||||
ld [hFlags_0xFFF6], a
|
||||
add hl, bc
|
||||
predef DrawHP2 ; draw HP bar and prints current / max HP
|
||||
ld a, [hFlags_0xFFF6]
|
||||
res 0, a
|
||||
ld [hFlags_0xFFF6], a
|
||||
call SetPartyMenuHPBarColor ; color the HP bar (on SGB)
|
||||
pop hl
|
||||
jr .printLevel
|
||||
.teachMoveMenu
|
||||
push hl
|
||||
predef CanLearnTM ; check if the pokemon can learn the move
|
||||
pop hl
|
||||
ld de, .ableToLearnMoveText
|
||||
ld a, c
|
||||
and a
|
||||
jr nz, .placeMoveLearnabilityString
|
||||
ld de, .notAbleToLearnMoveText
|
||||
.placeMoveLearnabilityString
|
||||
ld bc, 20 + 9 ; down 1 row and right 9 columns
|
||||
push hl
|
||||
add hl, bc
|
||||
call PlaceString
|
||||
pop hl
|
||||
.printLevel
|
||||
ld bc, 10 ; move 10 columns to the right
|
||||
add hl, bc
|
||||
call PrintLevel
|
||||
pop hl
|
||||
pop de
|
||||
inc de
|
||||
ld bc, 2 * 20
|
||||
add hl, bc
|
||||
pop bc
|
||||
inc c
|
||||
jp .loop
|
||||
.ableToLearnMoveText
|
||||
db "ABLE@"
|
||||
.notAbleToLearnMoveText
|
||||
db "NOT ABLE@"
|
||||
.evolutionStoneMenu
|
||||
push hl
|
||||
ld hl, EvosMovesPointerTable
|
||||
ld b, 0
|
||||
ld a, [wLoadedMonSpecies]
|
||||
dec a
|
||||
add a
|
||||
rl b
|
||||
ld c, a
|
||||
add hl, bc
|
||||
ld de, wEvosMoves
|
||||
ld a, BANK(EvosMovesPointerTable)
|
||||
ld bc, 2
|
||||
call FarCopyData
|
||||
ld hl, wEvosMoves
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld de, wEvosMoves
|
||||
ld a, BANK(EvosMovesPointerTable)
|
||||
ld bc, wEvosMoves.end - wEvosMoves
|
||||
call FarCopyData
|
||||
ld hl, wEvosMoves
|
||||
ld de, .notAbleToEvolveText
|
||||
; loop through the pokemon's evolution entries
|
||||
.checkEvolutionsLoop
|
||||
ld a, [hli]
|
||||
and a ; reached terminator?
|
||||
jr z, .placeEvolutionStoneString ; if so, place the "NOT ABLE" string
|
||||
inc hl
|
||||
inc hl
|
||||
cp EV_ITEM
|
||||
jr nz, .checkEvolutionsLoop
|
||||
; if it's a stone evolution entry
|
||||
dec hl
|
||||
dec hl
|
||||
ld b, [hl]
|
||||
ld a, [wEvoStoneItemID] ; the stone the player used
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
cp b ; does the player's stone match this evolution entry's stone?
|
||||
jr nz, .checkEvolutionsLoop
|
||||
; if it does match
|
||||
ld de, .ableToEvolveText
|
||||
.placeEvolutionStoneString
|
||||
ld bc, 20 + 9 ; down 1 row and right 9 columns
|
||||
pop hl
|
||||
push hl
|
||||
add hl, bc
|
||||
call PlaceString
|
||||
pop hl
|
||||
jr .printLevel
|
||||
.ableToEvolveText
|
||||
db "ABLE@"
|
||||
.notAbleToEvolveText
|
||||
db "NOT ABLE@"
|
||||
.afterDrawingMonEntries
|
||||
ld b, SET_PAL_PARTY_MENU
|
||||
call RunPaletteCommand
|
||||
.printMessage
|
||||
ld hl, wd730
|
||||
ld a, [hl]
|
||||
push af
|
||||
push hl
|
||||
set 6, [hl] ; turn off letter printing delay
|
||||
ld a, [wPartyMenuTypeOrMessageID] ; message ID
|
||||
cp $F0
|
||||
jr nc, .printItemUseMessage
|
||||
add a
|
||||
ld hl, PartyMenuMessagePointers
|
||||
ld b, 0
|
||||
ld c, a
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
call PrintText
|
||||
.done
|
||||
pop hl
|
||||
pop af
|
||||
ld [hl], a
|
||||
ld a, 1
|
||||
ld [H_AUTOBGTRANSFERENABLED], a
|
||||
call Delay3
|
||||
jp GBPalNormal
|
||||
.printItemUseMessage
|
||||
and $0F
|
||||
ld hl, PartyMenuItemUseMessagePointers
|
||||
add a
|
||||
ld c, a
|
||||
ld b, 0
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
push hl
|
||||
ld a, [wUsedItemOnWhichPokemon]
|
||||
ld hl, wPartyMonNicks
|
||||
call GetPartyMonName
|
||||
pop hl
|
||||
call PrintText
|
||||
jr .done
|
||||
|
||||
PartyMenuItemUseMessagePointers:
|
||||
dw AntidoteText
|
||||
dw BurnHealText
|
||||
dw IceHealText
|
||||
dw AwakeningText
|
||||
dw ParlyzHealText
|
||||
dw PotionText
|
||||
dw FullHealText
|
||||
dw ReviveText
|
||||
dw RareCandyText
|
||||
|
||||
PartyMenuMessagePointers:
|
||||
dw PartyMenuNormalText
|
||||
dw PartyMenuItemUseText
|
||||
dw PartyMenuBattleText
|
||||
dw PartyMenuUseTMText
|
||||
dw PartyMenuSwapMonText
|
||||
dw PartyMenuItemUseText
|
||||
|
||||
PartyMenuNormalText:
|
||||
TX_FAR _PartyMenuNormalText
|
||||
db "@"
|
||||
|
||||
PartyMenuItemUseText:
|
||||
TX_FAR _PartyMenuItemUseText
|
||||
db "@"
|
||||
|
||||
PartyMenuBattleText:
|
||||
TX_FAR _PartyMenuBattleText
|
||||
db "@"
|
||||
|
||||
PartyMenuUseTMText:
|
||||
TX_FAR _PartyMenuUseTMText
|
||||
db "@"
|
||||
|
||||
PartyMenuSwapMonText:
|
||||
TX_FAR _PartyMenuSwapMonText
|
||||
db "@"
|
||||
|
||||
PotionText:
|
||||
TX_FAR _PotionText
|
||||
db "@"
|
||||
|
||||
AntidoteText:
|
||||
TX_FAR _AntidoteText
|
||||
db "@"
|
||||
|
||||
ParlyzHealText:
|
||||
TX_FAR _ParlyzHealText
|
||||
db "@"
|
||||
|
||||
BurnHealText:
|
||||
TX_FAR _BurnHealText
|
||||
db "@"
|
||||
|
||||
IceHealText:
|
||||
TX_FAR _IceHealText
|
||||
db "@"
|
||||
|
||||
AwakeningText:
|
||||
TX_FAR _AwakeningText
|
||||
db "@"
|
||||
|
||||
FullHealText:
|
||||
TX_FAR _FullHealText
|
||||
db "@"
|
||||
|
||||
ReviveText:
|
||||
TX_FAR _ReviveText
|
||||
db "@"
|
||||
|
||||
RareCandyText:
|
||||
TX_FAR _RareCandyText
|
||||
TX_SFX_ITEM_1 ; probably supposed to play SFX_LEVEL_UP but the wrong music bank is loaded
|
||||
TX_BLINK
|
||||
db "@"
|
||||
|
||||
SetPartyMenuHPBarColor:
|
||||
ld hl, wPartyMenuHPBarColors
|
||||
ld a, [wWhichPartyMenuHPBar]
|
||||
ld c, a
|
||||
ld b, 0
|
||||
add hl, bc
|
||||
call GetHealthBarColor
|
||||
ld b, UPDATE_PARTY_MENU_BLK_PACKET
|
||||
call RunPaletteCommand
|
||||
ld hl, wWhichPartyMenuHPBar
|
||||
inc [hl]
|
||||
ret
|
||||
Loading…
Add table
Add a link
Reference in a new issue