summaryrefslogtreecommitdiff
path: root/engine/party_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/party_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/party_menu.asm')
-rw-r--r--engine/party_menu.asm932
1 files changed, 0 insertions, 932 deletions
diff --git a/engine/party_menu.asm b/engine/party_menu.asm
deleted file mode 100644
index fc1783c71..000000000
--- a/engine/party_menu.asm
+++ /dev/null
@@ -1,932 +0,0 @@
-SelectMonFromParty: ; 50000
- call DisableSpriteUpdates
- xor a
- ld [wPartyMenuActionText], a
- call ClearBGPalettes
- call InitPartyMenuLayout
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- call PartyMenuSelect
- call ReturnToMapWithSpeechTextbox
- ret
-; 5001d
-
-
-SelectTradeOrDayCareMon: ; 5001d
- ld a, b
- ld [wPartyMenuActionText], a
- call DisableSpriteUpdates
- call ClearBGPalettes
- call InitPartyMenuLayout
- call WaitBGMap
- ld b, SCGB_PARTY_MENU
- call GetSGBLayout
- call SetPalettes
- call DelayFrame
- call PartyMenuSelect
- call ReturnToMapWithSpeechTextbox
- ret
-; 5003f
-
-InitPartyMenuLayout: ; 5003f
- call LoadPartyMenuGFX
- call InitPartyMenuWithCancel
- call InitPartyMenuGFX
- call WritePartyMenuTilemap
- call PrintPartyMenuText
- ret
-; 5004f
-
-LoadPartyMenuGFX: ; 5004f
- call LoadFontsBattleExtra
- callfar InitPartyMenuPalettes ; engine/color.asm
- callfar ClearSpriteAnims2
- ret
-; 5005f
-
-
-WritePartyMenuTilemap: ; 0x5005f
- ld hl, wOptions
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill ; blank the tilemap
- call GetPartyMenuQualityIndexes
-.loop
- ld a, [hli]
- cp -1
- jr z, .end
- push hl
- ld hl, .Jumptable
- rst JumpTable
- pop hl
- jr .loop
-.end
- pop af
- ld [wOptions], a
- ret
-; 0x50089
-
-.Jumptable: ; 50089
-; entries correspond to PARTYMENUQUALITY_* constants
- dw PlacePartyNicknames
- dw PlacePartyHPBar
- dw PlacePartyMenuHPDigits
- dw PlacePartyMonLevel
- dw PlacePartyMonStatus
- dw PlacePartyMonTMHMCompatibility
- dw PlacePartyMonEvoStoneCompatibility
- dw PlacePartyMonGender
- dw PlacePartyMonMobileBattleSelection
-; 5009b
-
-PlacePartyNicknames: ; 5009b
- hlcoord 3, 1
- ld a, [wPartyCount]
- and a
- jr z, .end
- ld c, a
- ld b, $0
-.loop
- push bc
- push hl
- push hl
- ld hl, wPartyMonNicknames
- ld a, b
- call GetNick
- pop hl
- call PlaceString
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
-
-.end
- dec hl
- dec hl
- ld de, .CANCEL
- call PlaceString
- ret
-; 500c8
-
-.CANCEL: ; 500c8
- db "CANCEL@"
-; 500cf
-
-
-PlacePartyHPBar: ; 500cf
- xor a
- ld [wSGBPals], a
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, $0
- hlcoord 11, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .skip
- push hl
- call PlacePartymonHPBar
- pop hl
- ld d, $6
- ld b, $0
- call DrawBattleHPBar
- ld hl, wHPPals
- ld a, [wSGBPals]
- ld c, a
- ld b, $0
- add hl, bc
- call SetHPPal
- ld b, SCGB_PARTY_MENU_HP_PALS
- call GetSGBLayout
-.skip
- ld hl, wSGBPals
- inc [hl]
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ld b, SCGB_PARTY_MENU
- call GetSGBLayout
- ret
-; 50117
-
-PlacePartymonHPBar: ; 50117
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wPartyMon1HP
- call AddNTimes
- ld a, [hli]
- or [hl]
- jr nz, .not_fainted
- xor a
- ld e, a
- ld c, a
- ret
-
-.not_fainted
- dec hl
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld e, a
- predef ComputeHPBarPixels
- ret
-; 50138
-
-PlacePartyMenuHPDigits: ; 50138
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, $0
- hlcoord 13, 1
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wPartyMon1HP
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- push de
- lb bc, 2, 3
- call PrintNum
- pop de
- ld a, "/"
- ld [hli], a
- inc de
- inc de
- lb bc, 2, 3
- call PrintNum
-
-.next
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 50176
-
-PlacePartyMonLevel: ; 50176
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 8, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wPartyMon1Level
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- ld a, [de]
- cp 100 ; This is distinct from MAX_LEVEL.
- jr nc, .ThreeDigits
- ld a, "<LV>"
- ld [hli], a
- lb bc, PRINTNUM_RIGHTALIGN | 1, 2
- ; jr .okay
-.ThreeDigits:
- lb bc, PRINTNUM_RIGHTALIGN | 1, 3
-; .okay
- call PrintNum
-
-.next
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 501b2
-
-PlacePartyMonStatus: ; 501b2
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 5, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wPartyMon1Status
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- call PlaceStatusString
-
-.next
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 501e0
-
-PlacePartyMonTMHMCompatibility: ; 501e0
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld hl, wPartySpecies
- ld e, b
- ld d, 0
- add hl, de
- ld a, [hl]
- ld [wCurPartySpecies], a
- predef CanLearnTMHMMove
- pop hl
- call .PlaceAbleNotAble
- call PlaceString
-
-.next
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 50215
-
-.PlaceAbleNotAble: ; 50215
- ld a, c
- and a
- jr nz, .able
- ld de, .string_not_able
- ret
-
-.able
- ld de, .string_able
- ret
-; 50221
-
-.string_able ; 50221
- db "ABLE@"
-; 50226
-
-.string_not_able ; 50226
- db "NOT ABLE@"
-; 5022f
-
-
-PlacePartyMonEvoStoneCompatibility: ; 5022f
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- push hl
- ld a, b
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wPartyMon1Species
- call AddNTimes
- ld a, [hl]
- dec a
- ld e, a
- ld d, 0
- ld hl, EvosAttacksPointers
- add hl, de
- add hl, de
- call .DetermineCompatibility
- pop hl
- call PlaceString
-
-.next
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 50268
-
-.DetermineCompatibility: ; 50268
- ld de, wStringBuffer1
- ld a, BANK(EvosAttacksPointers)
- ld bc, 2
- call FarCopyBytes
- ld hl, wStringBuffer1
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, wStringBuffer1
- ld a, BANK(EvosAttacks)
- ld bc, 10
- call FarCopyBytes
- ld hl, wStringBuffer1
-.loop2
- ld a, [hli]
- and a
- jr z, .nope
- inc hl
- inc hl
- cp EVOLVE_ITEM
- jr nz, .loop2
- dec hl
- dec hl
- ld a, [wCurItem]
- cp [hl]
- inc hl
- inc hl
- jr nz, .loop2
- ld de, .string_able
- ret
-
-.nope
- ld de, .string_not_able
- ret
-; 502a3
-
-.string_able ; 502a3
- db "ABLE@"
-; 502a8
-.string_not_able ; 502a8
- db "NOT ABLE@"
-; 502b1
-
-
-PlacePartyMonGender: ; 502b1
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.loop
- push bc
- push hl
- call PartyMenuCheckEgg
- jr z, .next
- ld [wCurPartySpecies], a
- push hl
- ld a, b
- ld [wCurPartyMon], a
- xor a
- ld [wMonType], a
- call GetGender
- ld de, .unknown
- jr c, .got_gender
- ld de, .male
- jr nz, .got_gender
- ld de, .female
-
-.got_gender
- pop hl
- call PlaceString
-
-.next
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ret
-; 502ee
-
-.male ; 502ee
- db "♂…MALE@"
-; 502f5
-
-.female ; 502f5
- db "♀…FEMALE@"
-; 502fe
-
-.unknown ; 502fe
- db "…UNKNOWN@"
-; 50307
-
-
-PlacePartyMonMobileBattleSelection: ; 50307
- ld a, [wPartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 1
-.loop
- push bc
- push hl
- ld de, .String_Sanka_Shinai
- call PlaceString
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .loop
- ld a, l
- ld e, MON_NAME_LENGTH
- sub e
- ld l, a
- ld a, h
- sbc $0
- ld h, a
- ld de, .String_Kettei_Yameru
- call PlaceString
- ld b, $3
- ld c, $0
- ld hl, wd002
- ld a, [hl]
-.loop2
- push hl
- push bc
- hlcoord 12, 1
-.loop3
- and a
- jr z, .done
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- dec a
- jr .loop3
-
-.done
- ld de, .String_Banme
- push hl
- call PlaceString
- pop hl
- pop bc
- push bc
- push hl
- ld a, c
- ld hl, .Strings_1_2_3
- call GetNthString
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- pop bc
- pop hl
- inc hl
- ld a, [hl]
- inc c
- dec b
- ret z
- jr .loop2
-; 5036b
-
-.String_Banme: ; 5036b
- db " ばんめ  @" ; Place
-; 50372
-.String_Sanka_Shinai: ; 50372
- db "さんかしない@" ; Cancel
-; 50379
-.String_Kettei_Yameru: ; 50379
- db "けってい  やめる@" ; Quit
-; 50383
-.Strings_1_2_3: ; 50383
- db "1@", "2@", "3@" ; 1st, 2nd, 3rd
-; 50389
-
-
-PartyMenuCheckEgg: ; 50389
- ld a, LOW(wPartySpecies)
- add b
- ld e, a
- ld a, HIGH(wPartySpecies)
- adc 0
- ld d, a
- ld a, [de]
- cp EGG
- ret
-; 50396
-
-GetPartyMenuQualityIndexes: ; 50396
- ld a, [wPartyMenuActionText]
- and $f0
- jr nz, .skip
- ld a, [wPartyMenuActionText]
- and $f
- ld e, a
- ld d, 0
- ld hl, PartyMenuQualityPointers
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-.skip
- ld hl, PartyMenuQualityPointers.Default
- ret
-; 503b2
-
-INCLUDE "data/party_menu_qualities.asm"
-
-
-InitPartyMenuGFX: ; 503e0
- ld hl, wPartyCount
- ld a, [hli]
- and a
- ret z
- ld c, a
- xor a
- ld [hObjectStructIndexBuffer], a
-.loop
- push bc
- push hl
- ld hl, LoadMenuMonIcon
- ld a, BANK(LoadMenuMonIcon)
- ld e, $0
- rst FarCall
- ld a, [hObjectStructIndexBuffer]
- inc a
- ld [hObjectStructIndexBuffer], a
- pop hl
- pop bc
- dec c
- jr nz, .loop
- callfar PlaySpriteAnimations
- ret
-; 50405
-
-InitPartyMenuWithCancel: ; 50405
-; with cancel
- xor a
- ld [wSwitchMon], a
- ld de, PartyMenuAttributes
- call SetMenuAttributes
- ld a, [wPartyCount]
- inc a
- ld [w2DMenuNumRows], a ; list length
- dec a
- ld b, a
- ld a, [wPartyMenuCursor]
- and a
- jr z, .skip
- inc b
- cp b
- jr c, .done
-
-.skip
- ld a, 1
-
-.done
- ld [wMenuCursorY], a
- ld a, A_BUTTON | B_BUTTON
- ld [wMenuJoypadFilter], a
- ret
-; 5042d
-
-InitPartyMenuNoCancel: ; 0x5042d
-; no cancel
- ld de, PartyMenuAttributes
- call SetMenuAttributes
- ld a, [wPartyCount]
- ld [w2DMenuNumRows], a ; list length
- ld b, a
- ld a, [wPartyMenuCursor]
- and a
- jr z, .skip
- inc b
- cp b
- jr c, .done
-.skip
- ld a, 1
-.done
- ld [wMenuCursorY], a
- ld a, A_BUTTON | B_BUTTON
- ld [wMenuJoypadFilter], a
- ret
-; 5044f (14:444f)
-
-PartyMenuAttributes: ; 5044f
-; cursor y
-; cursor x
-; num rows
-; num cols
-; bit 6: animate sprites bit 5: wrap around
-; ?
-; distance between items (hi: y, lo: x)
-; allowed buttons (mask)
- db 1, 0
- db 0, 1
- db $60, $00
- dn 2, 0
- db 0
-; 50457
-
-PartyMenuSelect: ; 0x50457
-; sets carry if exitted menu.
- call StaticMenuJoypad
- call PlaceHollowCursor
- ld a, [wPartyCount]
- inc a
- ld b, a
- ld a, [wMenuCursorY] ; menu selection?
- cp b
- jr z, .exitmenu ; CANCEL
- ld [wPartyMenuCursor], a
- ld a, [hJoyLast]
- ld b, a
- bit B_BUTTON_F, b
- jr nz, .exitmenu ; B button
- ld a, [wMenuCursorY]
- dec a
- ld [wCurPartyMon], a
- ld c, a
- ld b, $0
- ld hl, wPartySpecies
- add hl, bc
- ld a, [hl]
- ld [wCurPartySpecies], a
-
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- and a
- ret
-
-.exitmenu
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- scf
- ret
-; 0x5049a
-
-
-PrintPartyMenuText: ; 5049a
- hlcoord 0, 14
- lb bc, 2, 18
- call TextBox
- ld a, [wPartyCount]
- and a
- jr nz, .haspokemon
- ld de, YouHaveNoPKMNString
- jr .gotstring
-.haspokemon ; 504ae
- ld a, [wPartyMenuActionText]
- and $f ; drop high nibble
- ld hl, PartyMenuStrings
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [hli]
- ld d, [hl]
- ld e, a
-.gotstring ; 504be
- ld a, [wOptions]
- push af
- set 4, a ; disable text delay
- ld [wOptions], a
- hlcoord 1, 16 ; Coord
- call PlaceString
- pop af
- ld [wOptions], a
- ret
-; 0x504d2
-
-PartyMenuStrings: ; 0x504d2
- dw ChooseAMonString
- dw UseOnWhichPKMNString
- dw WhichPKMNString
- dw TeachWhichPKMNString
- dw MoveToWhereString
- dw UseOnWhichPKMNString
- dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
- dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
- dw ToWhichPKMNString
-
-ChooseAMonString: ; 0x504e4
- db "Choose a #MON.@"
-
-UseOnWhichPKMNString: ; 0x504f3
- db "Use on which <PK><MN>?@"
-
-WhichPKMNString: ; 0x50504
- db "Which <PK><MN>?@"
-
-TeachWhichPKMNString: ; 0x5050e
- db "Teach which <PK><MN>?@"
-
-MoveToWhereString: ; 0x5051e
- db "Move to where?@"
-
-ChooseAFemalePKMNString: ; 0x5052d
-; unused
- db "Choose a ♀<PK><MN>.@"
-
-ChooseAMalePKMNString: ; 0x5053b
-; unused
- db "Choose a ♂<PK><MN>.@"
-
-ToWhichPKMNString: ; 0x50549
- db "To which <PK><MN>?@"
-
-YouHaveNoPKMNString: ; 0x50556
- db "You have no <PK><MN>!@"
-
-PrintPartyMenuActionText: ; 50566
- ld a, [wCurPartyMon]
- ld hl, wPartyMonNicknames
- call GetNick
- ld a, [wPartyMenuActionText]
- and $f
- ld hl, .MenuActionTexts
- call .PrintText
- ret
-; 5057b
-
-.MenuActionTexts: ; 5057b
-; entries correspond to PARTYMENUTEXT_* constants
- dw .Text_CuredOfPoison
- dw .Text_BurnWasHealed
- dw .Text_Defrosted
- dw .Text_WokeUp
- dw .Text_RidOfParalysis
- dw .Text_RecoveredSomeHP
- dw .Text_HealthReturned
- dw .Text_Revitalized
- dw .Text_GrewToLevel
- dw .Text_CameToItsSenses
-; 5058f
-
-.Text_RecoveredSomeHP: ; 0x5058f
- ; recovered @ HP!
- text_jump UnknownText_0x1bc0a2
- db "@"
-; 0x50594
-
-.Text_CuredOfPoison: ; 0x50594
- ; 's cured of poison.
- text_jump UnknownText_0x1bc0bb
- db "@"
-; 0x50599
-
-.Text_RidOfParalysis: ; 0x50599
- ; 's rid of paralysis.
- text_jump UnknownText_0x1bc0d2
- db "@"
-; 0x5059e
-
-.Text_BurnWasHealed: ; 0x5059e
- ; 's burn was healed.
- text_jump UnknownText_0x1bc0ea
- db "@"
-; 0x505a3
-
-.Text_Defrosted: ; 0x505a3
- ; was defrosted.
- text_jump UnknownText_0x1bc101
- db "@"
-; 0x505a8
-
-.Text_WokeUp: ; 0x505a8
- ; woke up.
- text_jump UnknownText_0x1bc115
- db "@"
-; 0x505ad
-
-.Text_HealthReturned: ; 0x505ad
- ; 's health returned.
- text_jump UnknownText_0x1bc123
- db "@"
-; 0x505b2
-
-.Text_Revitalized: ; 0x505b2
- ; is revitalized.
- text_jump UnknownText_0x1bc13a
- db "@"
-; 0x505b7
-
-.Text_GrewToLevel: ; 0x505b7
- ; grew to level @ !@ @
- text_jump UnknownText_0x1bc14f
- db "@"
-; 0x505bc
-
-.Text_CameToItsSenses: ; 0x505bc
- ; came to its senses.
- text_jump UnknownText_0x1bc16e
- db "@"
-; 0x505c1
-
-
-.PrintText: ; 505c1
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wOptions]
- push af
- set NO_TEXT_SCROLL, a
- ld [wOptions], a
- call PrintText
- pop af
- ld [wOptions], a
- ret
-; 505da