diff options
Diffstat (limited to 'items/item_effects.asm')
-rw-r--r-- | items/item_effects.asm | 525 |
1 files changed, 264 insertions, 261 deletions
diff --git a/items/item_effects.asm b/items/item_effects.asm index f7eeffce5..2b12b587e 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -210,11 +210,11 @@ LoveBall: ParkBall: ; e8a2 ld a, [wBattleMode] dec a - jp nz, Functionf7a0 + jp nz, UseBallInTrainerBattle ld a, [PartyCount] cp PARTY_LENGTH - jr nz, .asm_e8c0 + jr nz, .room_in_party ld a, BANK(sBoxCount) call GetSRAMBank @@ -223,9 +223,9 @@ ParkBall: ; e8a2 call CloseSRAM jp z, Ball_BoxIsFullMessage -.asm_e8c0 +.room_in_party xor a - ld [wc64e], a + ld [wWildMon], a ld a, [CurItem] cp PARK_BALL call nz, Functionedfa @@ -239,38 +239,38 @@ ParkBall: ; e8a2 ld b, a ld a, [BattleType] cp BATTLETYPE_TUTORIAL - jp z, .asm_e99c + jp z, .catch_without_fail ld a, [CurItem] cp MASTER_BALL - jp z, .asm_e99c + jp z, .catch_without_fail ld a, [CurItem] ld c, a ld hl, BallMultiplierFunctionTable -.asm_e8f2 +.get_multiplier_loop ld a, [hli] cp $ff - jr z, .asm_e906 + jr z, .skip_or_return_from_ball_fn cp c - jr z, .asm_e8fe + jr z, .call_ball_function rept 2 inc hl endr - jr .asm_e8f2 + jr .get_multiplier_loop -.asm_e8fe +.call_ball_function ld a, [hli] ld h, [hl] ld l, a - ld de, .asm_e906 + ld de, .skip_or_return_from_ball_fn push de jp [hl] -.asm_e906 +.skip_or_return_from_ball_fn ld a, [CurItem] cp LEVEL_BALL ld a, b - jp z, .asm_e98e + jp z, .skip_hp_calc ld a, b ld [hMultiplicand + 2], a @@ -295,7 +295,7 @@ endr ld e, l ld a, d and a - jr z, .asm_e940 + jr z, .okay_1 srl d rr e @@ -308,9 +308,9 @@ endr ld a, c and a - jr nz, .asm_e940 + jr nz, .okay_1 ld c, $1 -.asm_e940 +.okay_1 ld b, e push bc @@ -350,15 +350,15 @@ endr .addstatus ld a, b add c - jr nc, .asm_e977 + jr nc, .max_1 ld a, $ff -.asm_e977 +.max_1 ld d, a push de ; BUG: callba overwrites a, - ; and GetItem takes b anyway. + ; and GetItemHeldEffect takes b anyway. ; This is probably the reason ; the HELD_CATCH_CHANCE effect @@ -368,18 +368,18 @@ endr ld a, [BattleMonItem] ; ld b, a - callba GetItem + callba GetItemHeldEffect ld a, b cp HELD_CATCH_CHANCE pop de ld a, d - jr nz, .asm_e98e + jr nz, .skip_hp_calc add c - jr nc, .asm_e98e + jr nc, .skip_hp_calc ld a, $ff -.asm_e98e +.skip_hp_calc ld b, a ld [Buffer1], a @@ -387,23 +387,23 @@ endr cp b ld a, 0 - jr z, .asm_e99c - jr nc, .asm_e99f + jr z, .catch_without_fail + jr nc, .fail_to_catch -.asm_e99c +.catch_without_fail ld a, [EnemyMonSpecies] -.asm_e99f - ld [wc64e], a +.fail_to_catch + ld [wWildMon], a ld c, 20 call DelayFrames ld a, [CurItem] cp POKE_BALL + 1 ; Assumes Master/Ultra/Great come before - jr c, .asm_e9b0 + jr c, .not_kurt_ball ld a, POKE_BALL -.asm_e9b0 - ld [wc689], a +.not_kurt_ball + ld [wKickCounter], a ld de, ANIM_THROW_POKE_BALL ld a, e @@ -416,23 +416,23 @@ endr ld [wcfca], a predef PlayBattleAnim - ld a, [wc64e] + ld a, [wWildMon] and a - jr nz, .asm_e9f5 + jr nz, .caught ld a, [Buffer2] cp $1 ld hl, UnknownText_0xedb5 - jp z, .asm_ebdc + jp z, .shake_and_break_free cp $2 ld hl, UnknownText_0xedba - jp z, .asm_ebdc + jp z, .shake_and_break_free cp $3 ld hl, UnknownText_0xedbf - jp z, .asm_ebdc + jp z, .shake_and_break_free cp $4 ld hl, UnknownText_0xedc4 - jp z, .asm_ebdc -.asm_e9f5 + jp z, .shake_and_break_free +.caught ld hl, EnemyMonStatus ld a, [hli] @@ -492,29 +492,29 @@ endr ld hl, EnemySubStatus5 bit SUBSTATUS_TRANSFORMED, [hl] - jr nz, .asm_ea67 - ld hl, wc735 + jr nz, .Transformed + ld hl, wWildMonMoves ld de, EnemyMonMoves ld bc, NUM_MOVES call CopyBytes - ld hl, wc739 + ld hl, wWildMonPP ld de, EnemyMonPP ld bc, NUM_MOVES call CopyBytes -.asm_ea67 +.Transformed ld a, [EnemyMonSpecies] - ld [wc64e], a + ld [wWildMon], a ld [CurPartySpecies], a ld [wd265], a ld a, [BattleType] cp BATTLETYPE_TUTORIAL - jp z, .asm_ebd9 + jp z, .FinishTutorial callba MobileFn_10607f - ld hl, UnknownText_0xedc9 + ld hl, Text_GotchaMonWasCaught call PrintText call ClearSprites @@ -530,10 +530,10 @@ endr call SetSeenAndCaughtMon pop af and a - jr nz, .asm_eab7 + jr nz, .skip_pokedex - call Function2ead - jr z, .asm_eab7 + call CheckReceivedDex + jr z, .skip_pokedex ld hl, UnknownText_0xedf0 call PrintText @@ -544,19 +544,19 @@ endr ld [wd265], a predef Functionfb877 -.asm_eab7 +.skip_pokedex ld a, [BattleType] cp BATTLETYPE_CONTEST - jp z, .asm_ebd1 + jp z, .catch_bug_contest_mon cp BATTLETYPE_CELEBI - jr nz, .asm_eac8 + jr nz, .not_celebi ld hl, wBattleResult set 6, [hl] -.asm_eac8 +.not_celebi ld a, [PartyCount] cp PARTY_LENGTH - jr z, .asm_eb3c + jr z, .SendToPC xor a ; PARTYMON ld [MonType], a @@ -568,17 +568,17 @@ endr ld a, [CurItem] cp FRIEND_BALL - jr nz, .asm_eaf8 + jr nz, .SkipPartyMonFriendBall ld a, [PartyCount] dec a ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, FRIEND_BALL_HAPPINESS ld [hl], a -.asm_eaf8 +.SkipPartyMonFriendBall ld hl, UnknownText_0xedf5 call PrintText @@ -588,7 +588,7 @@ endr call GetPokemonName call YesNoBox - jp c, .asm_ebe2 + jp c, .return_from_capture ld a, [PartyCount] dec a @@ -603,19 +603,19 @@ endr xor a ; PARTYMON ld [MonType], a ld b, 0 - callba Function116c1 + callba NamingScreen call FadeToWhite - call Functione51 + call LoadStandardFont pop hl ld de, StringBuffer1 call InitName - jp .asm_ebe2 + jp .return_from_capture -.asm_eb3c +.SendToPC call ClearSprites predef SentPkmnIntoBox @@ -627,17 +627,17 @@ endr ld a, [sBoxCount] cp MONS_PER_BOX - jr nz, .asm_eb5b + jr nz, .BoxNotFullYet ld hl, wBattleResult set 7, [hl] -.asm_eb5b +.BoxNotFullYet ld a, [CurItem] cp FRIEND_BALL - jr nz, .asm_eb67 + jr nz, .SkipBoxMonFriendBall ; Bug: overwrites the happiness of the first mon in the box! ld a, FRIEND_BALL_HAPPINESS ld [sBoxMon1Happiness], a -.asm_eb67 +.SkipBoxMonFriendBall call CloseSRAM ld hl, UnknownText_0xedf5 @@ -648,7 +648,7 @@ endr call GetPokemonName call YesNoBox - jr c, .asm_ebaf + jr c, .SkipBoxMonNickname xor a ld [CurPartyMon], a @@ -656,7 +656,7 @@ endr ld [MonType], a ld de, wd050 ld b, $0 - callba Function116c1 + callba NamingScreen ld a, BANK(sBoxMonNicknames) call GetSRAMBank @@ -672,7 +672,7 @@ endr call CloseSRAM -.asm_ebaf +.SkipBoxMonNickname ld a, BANK(sBoxMonNicknames) call GetSRAMBank @@ -687,21 +687,21 @@ endr call PrintText call FadeToWhite - call Functione51 - jr .asm_ebe2 + call LoadStandardFont + jr .return_from_capture -.asm_ebd1 +.catch_bug_contest_mon callba BugContest_SetCaughtContestMon - jr .asm_ebe2 + jr .return_from_capture -.asm_ebd9 - ld hl, UnknownText_0xedc9 +.FinishTutorial + ld hl, Text_GotchaMonWasCaught -.asm_ebdc +.shake_and_break_free call PrintText call ClearSprites -.asm_ebe2 +.return_from_capture ld a, [BattleType] cp BATTLETYPE_TUTORIAL ret z @@ -710,11 +710,11 @@ endr cp BATTLETYPE_CONTEST jr z, .used_park_ball - ld a, [wc64e] + ld a, [wWildMon] and a jr z, .toss - call WhiteBGMap + call ClearBGPalettes call ClearTileMap .toss @@ -724,7 +724,7 @@ endr jp TossItem .used_park_ball - ld hl, wdc79 + ld hl, wParkBallsRemaining dec [hl] ret ; ec0a @@ -733,16 +733,16 @@ endr BallMultiplierFunctionTable: ; table of routines that increase or decrease the catch rate based on ; which ball is used in a certain situation. - dbw ULTRA_BALL, UltraBallMultiplier - dbw GREAT_BALL, GreatBallMultiplier - dbw 8, SafariBallMultiplier ; Safari Ball, leftover from RBY - dbw HEAVY_BALL, HeavyBallMultiplier - dbw LEVEL_BALL, LevelBallMultiplier - dbw LURE_BALL, LureBallMultiplier - dbw FAST_BALL, FastBallMultiplier - dbw MOON_BALL, MoonBallMultiplier - dbw LOVE_BALL, LoveBallMultiplier - dbw PARK_BALL, ParkBallMultiplier + dbw ULTRA_BALL, UltraBallMultiplier + dbw GREAT_BALL, GreatBallMultiplier + dbw SAFARI_BALL, SafariBallMultiplier ; Safari Ball, leftover from RBY + dbw HEAVY_BALL, HeavyBallMultiplier + dbw LEVEL_BALL, LevelBallMultiplier + dbw LURE_BALL, LureBallMultiplier + dbw FAST_BALL, FastBallMultiplier + dbw MOON_BALL, MoonBallMultiplier + dbw LOVE_BALL, LoveBallMultiplier + dbw PARK_BALL, ParkBallMultiplier db $ff UltraBallMultiplier: @@ -1128,7 +1128,7 @@ UnknownText_0xedc4: ; 0xedc4 db "@" ; 0xedc9 -UnknownText_0xedc9: ; 0xedc9 +Text_GotchaMonWasCaught: ; 0xedc9 ; Gotcha! @ was caught!@ @ text_jump UnknownText_0x1c5b17 start_asm @@ -1193,12 +1193,12 @@ Thunderstone: WaterStone: LeafStone: SunStone: ; ee0f - ld b, $5 - call Functionf1f9 + ld b, PARTYMENUACTION_EVO_STONE + call UseItem_SelectMon jp c, .asm_ee38 - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] @@ -1213,7 +1213,7 @@ SunStone: ; ee0f and a jr z, .asm_ee35 - jp Functionf795 + jp UseDisposableItem .asm_ee35 call WontHaveAnyEffectMessage @@ -1230,8 +1230,8 @@ Protein: Iron: Carbos: Calcium: ; ee3d - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionee9f @@ -1239,7 +1239,7 @@ Calcium: ; ee3d call Functioneed9 - ld a, PartyMon1StatExp - PartyMon1 + ld a, MON_STAT_EXP call GetPartyParamLocation add hl, bc @@ -1270,7 +1270,7 @@ Calcium: ; ee3d ld c, HAPPINESS_USEDITEM callba ChangeHappiness - jp Functionf795 + jp UseDisposableItem Functionee83: ; ee83 @@ -1281,11 +1281,11 @@ Functionee83: ; ee83 Functionee8c: ; ee8c - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld d, h ld e, l - ld a, PartyMon1HPExp - 1 - PartyMon1 + ld a, MON_EXP + 2 call GetPartyParamLocation ld b, $1 predef_jump CalcPkmnStats @@ -1338,11 +1338,11 @@ Functioneed9: ; eed9 ; eeeb Table_eeeb: ; eeeb - db HP_UP, PartyMon1HPExp - PartyMon1StatExp - db PROTEIN, PartyMon1AtkExp - PartyMon1StatExp - db IRON, PartyMon1DefExp - PartyMon1StatExp - db CARBOS, PartyMon1SpdExp - PartyMon1StatExp - db CALCIUM, PartyMon1SpcExp - PartyMon1StatExp + db HP_UP, MON_HP_EXP - MON_STAT_EXP + db PROTEIN, MON_ATK_EXP - MON_STAT_EXP + db IRON, MON_DEF_EXP - MON_STAT_EXP + db CARBOS, MON_SPD_EXP - MON_STAT_EXP + db CALCIUM, MON_SPC_EXP - MON_STAT_EXP ; eef5 @@ -1350,7 +1350,7 @@ Functioneef5: ; eef5 ld a, [CurPartySpecies] ld [CurSpecies], a ld [wd265], a - ld a, PartyMon1Level - PartyMon1 + ld a, MON_LEVEL call GetPartyParamLocation ld a, [hl] ld [CurPartyLevel], a @@ -1363,14 +1363,14 @@ Functioneef5: ; eef5 RareCandy: ; ef14 - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionee9f call Functioneef5 - ld a, PartyMon1Level - PartyMon1 + ld a, MON_LEVEL call GetPartyParamLocation ld a, [hl] @@ -1382,10 +1382,10 @@ RareCandy: ; ef14 ld [CurPartyLevel], a push de ld d, a - callba Function50e47 + callba CalcExpAtLevel pop de - ld a, PartyMon1Exp - PartyMon1 + ld a, MON_EXP call GetPartyParamLocation ld a, [hMultiplicand] @@ -1395,7 +1395,7 @@ RareCandy: ; ef14 ld a, [$ffb6] ld [hl], a - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld b, a @@ -1403,7 +1403,7 @@ RareCandy: ; ef14 push bc call Functionee8c - ld a, PartyMon1MaxHP + 1 - PartyMon1 + ld a, MON_MAXHP + 1 call GetPartyParamLocation pop bc @@ -1422,7 +1422,7 @@ RareCandy: ; ef14 ld [hl], a callba LevelUpHappinessMod - ld a, $f8 + ld a, PARTYMENUTEXT_LEVEL_UP call Functionf24a xor a ; PARTYMON @@ -1438,7 +1438,7 @@ RareCandy: ; ef14 ld bc, $0004 predef PrintTempMonStats - call Functiona80 + call WaitPressAorB_BlinkCursor xor a ; PARTYMON ld [MonType], a @@ -1450,13 +1450,13 @@ RareCandy: ; ef14 ld [wd1e9], a callba Function421d8 - jp Functionf795 + jp UseDisposableItem ; efad HealPowder: ; efad - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e @@ -1488,8 +1488,8 @@ BurntBerry: IceBerry: MintBerry: Miracleberry: ; efcc - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e Functionefd4: ; efd4 @@ -1502,47 +1502,47 @@ Functionefda: ; efda (3:6fda) call Functionf30d ld a, $1 ret z - call Functionf058 - ld a, PartyMon1Status - PartyMon1 + call GetItemHealingAction + ld a, MON_STATUS call GetPartyParamLocation ld a, [hl] and c - jr nz, .asm_eff4 + jr nz, .good call Functionf009 ld a, $1 ret nc - ld b, $f9 -.asm_eff4 + ld b, PARTYMENUTEXT_HEAL_CONFUSION +.good xor a ld [hl], a ld a, b ld [PartyMenuActionText], a - call Functionf030 + call HealStatus call Play_SFX_FULL_HEAL call Functionf279 - call Functionf795 + call UseDisposableItem ld a, $0 ret Functionf009: ; f009 (3:7009) call Functionf2a6 - jr nc, .asm_f01c + jr nc, .nope ld a, [PlayerSubStatus3] - bit 7, a - jr z, .asm_f01c + bit SUBSTATUS_CONFUSED, a + jr z, .nope ld a, c cp $ff - jr nz, .asm_f01c + jr nz, .nope scf ret -.asm_f01c +.nope and a ret Functionf01e: ; f01e (3:701e) call Functionf2a6 ret nc - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] ld [BattleMonHP], a @@ -1550,39 +1550,39 @@ Functionf01e: ; f01e (3:701e) ld [BattleMonHP + 1], a ret -Functionf030: ; f030 (3:7030) +HealStatus: ; f030 (3:7030) call Functionf2a6 ret nc xor a ld [BattleMonStatus], a ld hl, PlayerSubStatus5 - res 0, [hl] + res SUBSTATUS_TOXIC, [hl] ld hl, PlayerSubStatus1 - res 0, [hl] - call Functionf058 + res SUBSTATUS_NIGHTMARE, [hl] + call GetItemHealingAction ld a, c - cp $ff - jr nz, .asm_f04f + cp %11111111 + jr nz, .not_full_heal ld hl, PlayerSubStatus3 - res 7, [hl] -.asm_f04f + res SUBSTATUS_CONFUSED, [hl] +.not_full_heal push bc - callba Function365d7 + callba CalcPlayerStats pop bc ret -Functionf058: ; f058 (3:7058) +GetItemHealingAction: ; f058 (3:7058) push hl ld a, [CurItem] - ld hl, Table_f071 + ld hl, .healingactions ld bc, 3 .next cp [hl] - jr z, .asm_f068 + jr z, .found_it add hl, bc jr .next -.asm_f068 +.found_it inc hl ld b, [hl] inc hl @@ -1593,39 +1593,39 @@ Functionf058: ; f058 (3:7058) ret ; f071 (3:7071) -Table_f071: ; f071 +.healingactions: ; f071 ; item, party menu action text, status - db ANTIDOTE, $f0, 1 << PSN - db BURN_HEAL, $f1, 1 << BRN - db ICE_HEAL, $f2, 1 << FRZ - db AWAKENING, $f3, SLP - db PARLYZ_HEAL, $f4, 1 << PAR - db FULL_HEAL, $f6, %11111111 - db FULL_RESTORE, $f6, %11111111 - db HEAL_POWDER, $f6, %11111111 - db PSNCUREBERRY, $f0, 1 << PSN - db PRZCUREBERRY, $f4, 1 << PAR - db BURNT_BERRY, $f2, 1 << FRZ - db ICE_BERRY, $f1, 1 << BRN - db MINT_BERRY, $f3, SLP - db MIRACLEBERRY, $f6, %11111111 + db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN + db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN + db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ + db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP + db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR + db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111 + db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111 + db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111 + db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN + db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR + db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ + db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN + db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP + db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111 db -1, 0, 0 ; f09e Functionf09e: ; f09e (3:709e) - ld hl, Jumptable_f0a3 + ld hl, .jumptable rst JumpTable ret -Jumptable_f0a3: ; f0a3 (3:70a3) +.jumptable: ; f0a3 (3:70a3) dw Functionf2a2 dw Functionf299 dw Functionf29e RevivalHerb: ; f0a9 - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e call Functionf0d6 @@ -1644,8 +1644,8 @@ RevivalHerb: ; f0a9 Revive: MaxRevive: ; f0c8 - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e call Functionf0d6 @@ -1673,7 +1673,7 @@ Functionf0d6: ; f0d6 ld a, [CurPartyMon] ld c, a - ld hl, wc664 + ld hl, wBattleParticipantsNotFainted ld b, SET_FLAG predef FlagPredef @@ -1692,18 +1692,18 @@ Functionf0d6: ; f0d6 .asm_f117 call Functionf1db - ld a, $f7 + ld a, PARTYMENUTEXT_REVIVE ld [PartyMenuActionText], a call Functionf279 - call Functionf795 + call UseDisposableItem ld a, 0 ret ; f128 FullRestore: ; f128 - ld b, 1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e call Functionf30d @@ -1724,18 +1724,18 @@ Functionf144: ; f144 xor a ld [Danger], a call Functionf2c3 - ld a, PartyMon1Status - PartyMon1 + ld a, MON_STATUS call GetPartyParamLocation xor a ld [hli], a ld [hl], a - call Functionf030 + call HealStatus call Functionf01e call Functionf1db - ld a, $f5 + ld a, PARTYMENUTEXT_HEAL_HP ld [PartyMenuActionText], a call Functionf279 - call Functionf795 + call UseDisposableItem ld a, 0 ret ; f16a @@ -1805,8 +1805,8 @@ Functionf192: ; f192 Functionf1a9: ; f1a9 (3:71a9) - ld b, 1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon ld a, 2 ret c @@ -1824,10 +1824,10 @@ Functionf1a9: ; f1a9 (3:71a9) call Functionf2d1 call Functionf01e call Functionf1db - ld a, $f5 + ld a, PARTYMENUTEXT_HEAL_HP ld [PartyMenuActionText], a call Functionf279 - call Functionf795 + call UseDisposableItem ld a, 0 ret @@ -1842,31 +1842,31 @@ Functionf1db: ; f1db (3:71db) call AddNTimes ld a, $2 ld [wd10a], a - predef_jump Functionc6e0 + predef_jump AnimateHPBar -Functionf1f9: ; f1f9 (3:71f9) - call Functionf20b +UseItem_SelectMon: ; f1f9 (3:71f9) + call .SelectMon ret c ld a, [CurPartySpecies] cp EGG - jr nz, .asm_f209 + jr nz, .not_egg call CantUseOnEggMessage scf ret -.asm_f209 +.not_egg and a ret -Functionf20b: ; f20b (3:720b) +.SelectMon: ; f20b (3:720b) ld a, b ld [PartyMenuActionText], a push hl push de push bc - call WhiteBGMap + call ClearBGPalettes call Functionf21c pop bc pop de @@ -1921,7 +1921,7 @@ Functionf279: ; f279 (3:7279) ld [hBGMapMode], a ld c, $32 call DelayFrames - jp Functiona80 + jp WaitPressAorB_BlinkCursor Functionf299: ; f299 (3:7299) call WontHaveAnyEffectMessage @@ -1960,7 +1960,7 @@ Functionf2ba: ; f2ba (3:72ba) Functionf2c3: ; f2c3 (3:72c3) call Functionf36f asm_f2c6: ; f2c6 (3:72c6) - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld [hl], d inc hl @@ -1968,7 +1968,7 @@ asm_f2c6: ; f2c6 (3:72c6) jp Functionf328 Functionf2d1: ; f2d1 (3:72d1) - ld a, PartyMon1HP + 1 - PartyMon1 + ld a, MON_HP + 1 call GetPartyParamLocation ld a, [hl] add e @@ -1978,11 +1978,11 @@ Functionf2d1: ; f2d1 (3:72d1) ld [hl], a jr c, .asm_f2f5 call Functionf328 - ld a, PartyMon1HP + 1 - PartyMon1 + ld a, MON_HP + 1 call GetPartyParamLocation ld d, h ld e, l - ld a, PartyMon1MaxHP + 1 - PartyMon1 + ld a, MON_MAXHP + 1 call GetPartyParamLocation ld a, [de] sub [hl] @@ -1997,7 +1997,7 @@ Functionf2d1: ; f2d1 (3:72d1) ret Functionf2f9: ; f2f9 (3:72f9) - ld a, PartyMon1HP + 1 - PartyMon1 + ld a, MON_HP + 1 call GetPartyParamLocation ld a, [hl] sub e @@ -2035,7 +2035,7 @@ Functionf31b: ; f31b (3:731b) ret Functionf328: ; f328 (3:7328) - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] ld [wd1ef], a @@ -2061,7 +2061,7 @@ Functionf33f: ; f33f ; f348 Functionf348: ; f348 (3:7348) - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] ld [wd1ed], a @@ -2078,7 +2078,7 @@ Functionf356: ; f356 (3:7356) Functionf35f: ; f35f (3:735f) push hl - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld [Buffer2], a @@ -2096,7 +2096,7 @@ Functionf36f: ; f36f (3:736f) Functionf378: ; f378 (3:7378) push bc - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld [hDividend + 0], a @@ -2179,7 +2179,7 @@ Functionf3df: ; f3df (3:73df) call Functionf30d call Functionf2d1 call Functionf1db - ld a, $f5 + ld a, PARTYMENUTEXT_HEAL_HP call Functionf24a call JoyWaitAorB .asm_f413 @@ -2189,35 +2189,38 @@ Functionf3df: ; f3df (3:73df) ret Functionf419: ; f419 (3:7419) +.loop push bc - ld a, $1 + ld a, PARTYMENUACTION_HEALING_ITEM ld [PartyMenuActionText], a call Functionf21c pop bc - jr c, .asm_f43e + jr c, .set_carry ld a, [wd0d8] dec a ld c, a ld a, b cp c - jr z, .asm_f440 + jr z, .loopback ld a, c ld [CurPartyMon], a call Functionf30d - jr z, .asm_f440 + jr z, .loopback call Functionf31b - jr nc, .asm_f440 + jr nc, .loopback xor a ret -.asm_f43e + +.set_carry scf ret -.asm_f440 + +.loopback push bc ld hl, UnknownText_0xf44a call MenuTextBoxBackup pop bc - jr Functionf419 + jr .loop ; f44a (3:744a) UnknownText_0xf44a: ; 0xf44a @@ -2234,7 +2237,7 @@ EscapeRope: ; f44f ld a, [wd0ec] cp 1 - call z, Functionf795 + call z, UseDisposableItem ret ; f462 @@ -2285,7 +2288,7 @@ PokeDoll: ; f48f dec a jr nz, .asm_f4a6 inc a - ld [wd232], a + ld [wForcedSwitch], a ld a, [wBattleResult] and 3 << 6 or $2 @@ -2301,18 +2304,18 @@ PokeDoll: ; f48f GuardSpec: ; f4ab ld hl, PlayerSubStatus4 - bit 1, [hl] + bit SUBSTATUS_MIST, [hl] jp nz, WontHaveAnyEffect_NotUsedMessage - set 1, [hl] + set SUBSTATUS_MIST, [hl] jp Functionf789 ; f4b8 DireHit: ; f4b8 ld hl, PlayerSubStatus4 - bit 2, [hl] + bit SUBSTATUS_FOCUS_ENERGY, [hl] jp nz, WontHaveAnyEffect_NotUsedMessage - set 2, [hl] + set SUBSTATUS_FOCUS_ENERGY, [hl] jp Functionf789 ; f4c5 @@ -2324,17 +2327,17 @@ XSpecial: ; f4c5 call Functionf789 ld a, [CurItem] - ld hl, Tablef504 + ld hl, .x_item_table -.asm_f4ce +.loop cp [hl] - jr z, .asm_f4d5 + jr z, .got_it rept 2 inc hl endr - jr .asm_f4ce + jr .loop -.asm_f4d5 +.got_it inc hl ld b, [hl] xor a @@ -2344,8 +2347,8 @@ endr callba CheckIfStatCanBeRaised call WaitSFX - callba BattleCommand8c - callba BattleCommand8e + callba BattleCommand_StatUpMessage + callba BattleCommand_StatUpFailText ld a, [CurBattleMon] ld [CurPartyMon], a @@ -2354,7 +2357,7 @@ endr ret ; f504 -Tablef504: ; f504 +.x_item_table: ; f504 db X_ATTACK, ATTACK db X_DEFEND, DEFENSE db X_SPEED, SPEED @@ -2369,7 +2372,7 @@ PokeFlute: ; f50c .asm_f512 xor a - ld [MiscBuffer2], a + ld [wd002], a ld b, $ff ^ SLP @@ -2392,7 +2395,7 @@ PokeFlute: ; f50c and b ld [hl], a - ld a, [MiscBuffer2] + ld a, [wd002] and a ld hl, UnknownText_0xf56c jp z, PrintText @@ -2408,7 +2411,7 @@ PokeFlute: ; f50c .Functionf554 - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH ld c, PARTY_LENGTH .loop @@ -2417,7 +2420,7 @@ PokeFlute: ; f50c and SLP jr z, .asm_f564 ld a, 1 - ld [MiscBuffer2], a + ld [wd002], a .asm_f564 pop af and b @@ -2518,23 +2521,23 @@ MaxEther: Elixer: Mysteryberry: ; f5bf ld a, [CurItem] - ld [MiscBuffer2], a + ld [wd002], a .loop ; Party Screen opens to choose on which Pkmn to use the Item - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf6e0 .loop2 - ld a, [MiscBuffer2] + ld a, [wd002] cp MAX_ELIXER jp z, Elixer_RestorePPofAllMoves cp ELIXER jp z, Elixer_RestorePPofAllMoves ld hl, TextJump_RaiseThePPOfWhichMove - ld a, [MiscBuffer2] + ld a, [wd002] cp PP_UP jr z, .ppup ld hl, TextJump_RestoreThePPOfWhichMove @@ -2555,7 +2558,7 @@ Mysteryberry: ; f5bf ld [CurMoveNum], a jr nz, .loop ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call GetMthMoveOfNthPartymon push hl @@ -2565,7 +2568,7 @@ Mysteryberry: ; f5bf call CopyName1 pop hl - ld a, [MiscBuffer2] + ld a, [wd002] cp PP_UP jp nz, Functionf6a7 @@ -2599,7 +2602,7 @@ Mysteryberry: ; f5bf Functionf64c: ; f64c call ClearPalettes - jp Functionf795 + jp UseDisposableItem ; f652 Functionf652: ; f652 @@ -2612,7 +2615,7 @@ Functionf652: ; f652 cp b jr nz, .asm_f66c ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_f66c call .asm_f677 @@ -2625,7 +2628,7 @@ Functionf652: ; f652 .asm_f677 ld a, [CurPartyMon] ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld de, BattleMonMoves ld b, NUM_MOVES @@ -2641,7 +2644,7 @@ Functionf652: ; f652 rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves inc de endr - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, MON_PP - MON_MOVES add hl, bc ld a, [hl] ld [de], a @@ -2667,14 +2670,14 @@ Functionf6a7: ; f6a7 Elixer_RestorePPofAllMoves: ; f6af xor a - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hli], a ld [hl], a ld b, NUM_MOVES .moveLoop push bc ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call GetMthMoveOfNthPartymon ld a, [hl] and a @@ -2686,7 +2689,7 @@ Elixer_RestorePPofAllMoves: ; f6af inc [hl] .cant_restore_pp - ld hl, wcfa9 + ld hl, MenuSelection2 inc [hl] pop bc dec b @@ -2708,9 +2711,9 @@ Functionf6e0: ; f6e0 RestorePP: ; f6e8 xor a ; PARTYMON ld [MonType], a - call Functionf8ec + call GetMaxPPOfMove ld hl, PartyMon1PP - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call GetMthMoveOfNthPartymon ld a, [wd265] ld b, a @@ -2719,7 +2722,7 @@ RestorePP: ; f6e8 cp b jr nc, .dont_restore - ld a, [MiscBuffer2] + ld a, [wd002] cp MAX_ELIXER jr z, .restore_all cp MAX_ETHER @@ -2805,7 +2808,7 @@ SacredAsh: ; f753 ld a, [wd0ec] cp $1 ret nz - call Functionf795 + call UseDisposableItem ret ; f763 @@ -2825,7 +2828,7 @@ Function_0xf769: ; f769 ld hl, UnknownText_0xf778 call PrintText - jp Functionf795 + jp UseDisposableItem ; f778 UnknownText_0xf778: ; 0xf778 @@ -2940,18 +2943,18 @@ Functionf789: ; f789 ld hl, UsedItemText call PrintText call Play_SFX_FULL_HEAL - call Functiona80 + call WaitPressAorB_BlinkCursor ; fallthrough ; f795 -Functionf795: ; f795 +UseDisposableItem: ; f795 ld hl, NumItems ld a, 1 ld [wItemQuantityChangeBuffer], a jp TossItem ; f7a0 -Functionf7a0: ; f7a0 +UseBallInTrainerBattle: ; f7a0 call Functionedfa ld de, ANIM_THROW_POKE_BALL ld a, e @@ -2959,7 +2962,7 @@ Functionf7a0: ; f7a0 ld a, d ld [FXAnimIDHi], a xor a - ld [wc689], a + ld [wKickCounter], a ld [hBattleTurn], a ld [wcfca], a predef PlayBattleAnim @@ -2967,7 +2970,7 @@ Functionf7a0: ; f7a0 call PrintText ld hl, DontBeAThiefText call PrintText - jr Functionf795 + jr UseDisposableItem ; f7ca WontHaveAnyEffect_NotUsedMessage: ; f7ca @@ -3105,13 +3108,13 @@ GotOffTheItemText: ; 0xf847 Functionf84c: ; f84c - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation push hl ld de, Buffer1 predef FillPP pop hl - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, MON_PP - MON_MOVES add hl, bc ld de, Buffer1 ld b, 0 @@ -3123,7 +3126,7 @@ Functionf84c: ; f84c ld a, [wd265] dec a jr nz, .asm_f876 - ld a, [wcfa9] + ld a, [MenuSelection2] inc a cp b jr nz, .asm_f87d @@ -3193,14 +3196,14 @@ ComputeMaxPP: ; f881 ; f8b9 Functionf8b9: ; f8b9 - ld a, PartyMon1PP - PartyMon1 + ld a, MON_PP call GetPartyParamLocation push hl - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation pop de xor a ; PARTYMON - ld [wcfa9], a + ld [MenuSelection2], a ld [MonType], a ld c, NUM_MOVES .loop @@ -3210,7 +3213,7 @@ Functionf8b9: ; f8b9 push hl push de push bc - call Functionf8ec + call GetMaxPPOfMove pop bc pop de ld a, [de] @@ -3220,7 +3223,7 @@ Functionf8b9: ; f8b9 add b ld [de], a inc de - ld hl, wcfa9 + ld hl, MenuSelection2 inc [hl] pop hl dec c @@ -3229,7 +3232,7 @@ Functionf8b9: ; f8b9 ; f8ec -Functionf8ec: ; f8ec +GetMaxPPOfMove: ; f8ec ld a, [StringBuffer1 + 0] push af ld a, [StringBuffer1 + 1] @@ -3239,7 +3242,7 @@ Functionf8ec: ; f8ec and a ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH jr z, .got_partymon ; PARTYMON ld hl, OTPartyMon1Moves @@ -3279,7 +3282,7 @@ Functionf8ec: ; f8ec pop hl push bc - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, MON_PP - MON_MOVES ld a, [MonType] cp WILDMON jr nz, .notwild @@ -3313,7 +3316,7 @@ GetMthMoveOfNthPartymon: ; f963 call AddNTimes GetMthMoveOfCurrentMon: ; f969 - ld a, [wcfa9] + ld a, [MenuSelection2] ld c, a ld b, 0 add hl, bc |