diff options
Diffstat (limited to 'battle/core.asm')
-rw-r--r-- | battle/core.asm | 170 |
1 files changed, 85 insertions, 85 deletions
diff --git a/battle/core.asm b/battle/core.asm index 2239f411a..5503d307d 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -307,7 +307,7 @@ Function3c1d6: ; 3c1d6 ; 3c23c Function3c23c: ; 3c23c - call Function3c710 + call HasPlayerFainted jr nz, .asm_3c24a call Function3d14e ld a, [BattleEnded] @@ -315,7 +315,7 @@ Function3c23c: ; 3c23c jr nz, .asm_3c25a .asm_3c24a - call Function3c70b + call HasEnemyFainted jr nz, .asm_3c258 call Function3cd55 ld a, [BattleEnded] @@ -332,7 +332,7 @@ Function3c23c: ; 3c23c ; 3c25c Function3c25c: ; 3c25c - call Function3c70b + call HasEnemyFainted jr nz, .asm_3c26a call Function3cd55 ld a, [BattleEnded] @@ -340,7 +340,7 @@ Function3c25c: ; 3c25c jr nz, .asm_3c27a .asm_3c26a - call Function3c710 + call HasPlayerFainted jr nz, .asm_3c278 call Function3d14e ld a, [BattleEnded] @@ -947,14 +947,14 @@ Function3c5fe: ; 3c5fe ld a, [$d232] and a ret nz - call Function3c710 + call HasPlayerFainted jp z, Function3d14e - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 .asm_3c62f call SetEnemyTurn - call Function3c716 + call ResidualDamage jp z, Function3cd55 call RefreshBattleHuds call Function3c6cf @@ -963,12 +963,12 @@ Function3c5fe: ; 3c5fe ld a, [$d232] and a ret nz - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 - call Function3c710 + call HasPlayerFainted jp z, Function3d14e call SetPlayerTurn - call Function3c716 + call ResidualDamage jp z, Function3d14e call RefreshBattleHuds xor a @@ -989,13 +989,13 @@ Function3c664: ; 3c664 ret nz call Function3d2e0 ret c - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 - call Function3c710 + call HasPlayerFainted jp z, Function3d14e push bc call SetPlayerTurn - call Function3c716 + call ResidualDamage pop bc jp z, Function3d14e push bc @@ -1011,14 +1011,14 @@ Function3c664: ; 3c664 ld a, [$d232] and a ret nz - call Function3c710 + call HasPlayerFainted jp z, Function3d14e - call Function3c70b + call HasEnemyFainted jp z, Function3cd55 .asm_3c6be call SetEnemyTurn - call Function3c716 + call ResidualDamage jp z, Function3cd55 call RefreshBattleHuds xor a @@ -1058,15 +1058,15 @@ Function3c6fe: ; 3c6fe ret ; 3c706 -Function3c706: ; 3c706 +HasUserFainted: ; 3c706 ld a, [hBattleTurn] and a - jr z, Function3c710 -Function3c70b: ; 3c70b + jr z, HasPlayerFainted +HasEnemyFainted: ; 3c70b ld hl, EnemyMonHP jr Function3c713 -Function3c710: ; 3c710 +HasPlayerFainted: ; 3c710 ld hl, BattleMonHP Function3c713: ; 3c713 @@ -1075,22 +1075,26 @@ Function3c713: ; 3c713 ret ; 3c716 -Function3c716: ; 3c716 - call Function3c706 +ResidualDamage: ; 3c716 +; Return z if the user fainted before +; or as a result of residual damage. +; For Sandstorm damage, see HandleWeather. + + call HasUserFainted ret z ld a, BATTLE_VARS_STATUS call GetBattleVar and 1 << PSN | 1 << BRN - jr z, .asm_3c768 + jr z, .did_psn_brn - ld hl, BattleText_0x807e2 + ld hl, HurtByPoisonText ld de, ANIM_PSN and 1 << BRN - jr z, .asm_3c733 - ld hl, BattleText_0x807f8 + jr z, .got_anim + ld hl, HurtByBurnText ld de, ANIM_BRN -.asm_3c733 +.got_anim push de call StdBattleTextBox @@ -1110,26 +1114,25 @@ Function3c716: ; 3c716 ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVar bit SUBSTATUS_TOXIC, a - jr z, .asm_3c765 - + jr z, .did_toxic call GetSixteenthMaxHP ld a, [de] inc a ld [de], a ld hl, 0 -.asm_3c75f +.add add hl, bc dec a - jr nz, .asm_3c75f + jr nz, .add ld b, h ld c, l +.did_toxic -.asm_3c765 call Function3cc3f +.did_psn_brn -.asm_3c768 - call Function3c706 - jp z, .asm_3c7f7 + call HasUserFainted + jp z, .fainted ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr @@ -1151,30 +1154,29 @@ Function3c716: ; 3c716 ld a, $1 ld [hBGMapMode], a call Function3ccef - ld hl, BattleText_0x8080e + ld hl, LeechSeedSapsText call StdBattleTextBox - .asm_3c7a1 - call Function3c706 - jr z, .asm_3c7f7 + + call HasUserFainted + jr z, .fainted ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr bit SUBSTATUS_NIGHTMARE, [hl] jr z, .asm_3c7c5 - xor a ld [$cfca], a ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP call Function3cc3f - ld hl, BattleText_0x80822 + ld hl, HasANightmareText call StdBattleTextBox - .asm_3c7c5 - call Function3c706 - jr z, .asm_3c7f7 + + call HasUserFainted + jr z, .fainted ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr @@ -1187,7 +1189,7 @@ Function3c716: ; 3c716 call Function3ee0f call GetQuarterMaxHP call Function3cc3f - ld hl, BattleText_0x80836 + ld hl, HurtByCurseText call StdBattleTextBox .asm_3c7e9 @@ -1202,7 +1204,7 @@ Function3c716: ; 3c716 or [hl] ret nz -.asm_3c7f7 +.fainted call RefreshBattleHuds ld c, 20 call DelayFrames @@ -1239,7 +1241,7 @@ Function3c801: ; 3c801 ld a, [hl] ld [$d265], a push af - ld hl, BattleText_0x80864 + ld hl, PerishCountText call StdBattleTextBox pop af ret nz @@ -1826,7 +1828,7 @@ HandleWeather: ; 3cb9e call GetEighthMaxHP call Function3cc3f - ld hl, BattleText_0x8084d + ld hl, SandstormHitsText jp StdBattleTextBox .ended @@ -2034,20 +2036,20 @@ Function3ccef: ; 3ccef ld hl, BattleMonMaxHP .ok ld a, [hli] - ld [Buffer2], a + ld [Buffer1 + 1], a ld a, [hld] - ld [Buffer1], a + ld [Buffer1 + 0], a dec hl ld a, [hl] - ld [$d1ec], a + ld [Buffer1 + 2], a add c ld [hld], a - ld [$d1ee], a + ld [Buffer1 + 4], a ld a, [hl] - ld [$d1ed], a + ld [Buffer1 + 3], a adc b ld [hli], a - ld [$d1ef], a + ld [Buffer1 + 5], a ld a, [Buffer1] ld c, a @@ -2060,10 +2062,10 @@ Function3ccef: ; 3ccef jr c, .asm_3cd2d ld a, b ld [hli], a - ld [$d1ef], a + ld [Buffer1 + 5], a ld a, c ld [hl], a - ld [$d1ee], a + ld [Buffer1 + 4], a .asm_3cd2d call SwitchTurnCore @@ -2076,17 +2078,15 @@ Function3cd36: ; 3cd36 jp UpdateBattleHuds ; 3cd3c - Function3cd3c: ; 3cd3c hlcoord 10, 9 ld a, [hBattleTurn] and a ld a, 1 - jr z, .asm_3cd4a + jr z, .ok hlcoord 2, 2 xor a - -.asm_3cd4a +.ok push bc ld [$d10a], a predef Functionc6e0 @@ -3128,14 +3128,14 @@ LostBattle: ; 3d38e and $c0 add 2 ld [$d0ee], a - jr .asm_3d412 + jr .text .asm_3d40a ld hl, LostAgainstText call IsMobileBattle jr z, .asm_3d417 -.asm_3d412 +.text call StdBattleTextBox .end @@ -3293,7 +3293,6 @@ Function3d4e1: ; 3d4e1 call Function3d533 jr c, .asm_3d4f1 call Function3d599 - .asm_3d4f1 call Function3d6ca call Function3d74b @@ -3318,7 +3317,6 @@ Function3d517: ; 3d517 call Function3d533 jr c, .asm_3d522 call Function3d599 - .asm_3d522 call Function3d6ca ld a, 1 @@ -3332,6 +3330,7 @@ Function3d533: ; 3d533 ld a, [InLinkBattle] and a jr z, .asm_3d541 + ld a, [wBattleAction] sub NUM_MOVES ld b, a @@ -3383,7 +3382,7 @@ Function3d581: ; 3d581 ld a, [CurBattleMon] ld c, a ld hl, $c664 - ld b, $1 + ld b, SET_FLAG push bc predef FlagPredef pop bc @@ -3434,13 +3433,13 @@ Function3d5d7: ; 3d5d7 ld a, b call GetPartyLocation pop bc - ld e, $5 -.asm_3d5e2 + ld e, NUM_MOVES + 1 +.loop dec e - jr z, .asm_3d617 + jr z, .done ld a, [hli] and a - jr z, .asm_3d617 + jr z, .done push hl push de push bc @@ -3457,13 +3456,12 @@ Function3d5d7: ; 3d5d7 pop de pop hl ld a, [$d265] - cp $b - jr c, .asm_3d5e2 + cp 10 + 1 ; 1.0 + 0.1 + jr c, .loop ld hl, Buffer1 set 0, [hl] ret - -.asm_3d617 +.done ret ; 3d618 @@ -3590,7 +3588,7 @@ Function3d6ca: ; 3d6ca inc a ld hl, OTPartyCount ld c, a - ld b, $0 + ld b, 0 add hl, bc ld a, [hl] ld [TempEnemyMonSpecies], a @@ -3606,7 +3604,6 @@ Function3d6ca: ; 3d6ca predef GetUnownLetter ld a, [UnownLetter] ld [$def4], a - .asm_3d708 ld hl, EnemyMonHP ld a, [hli] @@ -3693,7 +3690,7 @@ Function3d7a0: ; 3d7a0 call Function1c07 call ClearSprites hlcoord 1, 0 - ld bc, $040a + lb bc, 4, 10 call ClearBox call WaitBGMap jp Function3ee27 @@ -3711,24 +3708,26 @@ Function3d7c7: ; 3d7c7 ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData - ld a, $1 + ld a, OTPARTYMON ld [MonType], a predef Function5084a call Function3f47c + xor a ld [$cfca], a ld [$c689], a call SetEnemyTurn ld de, ANIM_SEND_OUT_MON call Function3ee17 + call Function3da79 jr nc, .asm_3d800 - ld a, $1 + ld a, 1 ; shiny anim ld [$c689], a ld de, ANIM_SEND_OUT_MON call Function3ee17 - .asm_3d800 + ld bc, TempMonSpecies callba Function4e53f jr c, .asm_3d82c @@ -6817,7 +6816,7 @@ Function3ebd8: ; 3ebd8 ld a, [OtherTrainerClass] ld [TrainerClass], a ld de, VTiles2 - callab Function5120d + callab GetTrainerPic hlcoord 19, 0 ld c, $0 .asm_3ebf3 @@ -8308,7 +8307,7 @@ Function3f447: ; 3f447 ld hl, BattleMonDVs predef GetUnownLetter ld de, $9310 - predef Function5116c + predef GetBackpic pop af ld [CurPartySpecies], a ret @@ -8331,11 +8330,13 @@ Function3f47c: ; 3f47c bit SUBSTATUS_SUBSTITUTE, a ld hl, BattleAnimCmd_DD jr nz, Function3f4b4 + Function3f486: ; 3f486 ld a, [$c6fa] and a ld hl, BattleAnimCmd_E2 jr nz, Function3f4b4 + ld a, [CurPartySpecies] push af ld a, [EnemyMonSpecies] @@ -8451,7 +8452,7 @@ Function3f568: ; 3f568 ld a, $6 ld [rSVBK], a ld hl, $d000 - ld bc, VBlank5 + ld bc, $400 ld a, $2 call ByteFill ld a, [rVBK] @@ -8485,7 +8486,7 @@ Function3f594: ; 3f594 .ok ld de, VTiles2 - callab Function5120d + callab GetTrainerPic xor a ld [$ffad], a dec a @@ -8547,7 +8548,6 @@ Function3f607: ; 3f607 jr nz, .asm_3f648 ld a, [UnownLetter] ld [$def4], a - .asm_3f648 ld de, VTiles2 predef Function5108b @@ -9332,7 +9332,7 @@ Function3fbd6: ; 3fbd6 ld a, $6 ld [rSVBK], a ld hl, $d000 - ld bc, VBlank5 + ld bc, $400 ld a, $7f call ByteFill ld de, $d000 |