diff options
Diffstat (limited to 'engine/battle')
-rw-r--r-- | engine/battle/animations.asm | 29 | ||||
-rw-r--r-- | engine/battle/core.asm | 25 |
2 files changed, 54 insertions, 0 deletions
diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 8f113adc..f1dd3d4e 100644 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -176,8 +176,12 @@ PlayAnimation: ld h, [hl] ld l, a .animationLoop + vc_hook FPA_Thunderbolt_End ld a, [hli] + vc_hook_red FPA_007_End + vc_hook_blue FPA_009_End cp -1 + vc_hook_blue FPA_008_End jr z, .AnimationOver cp FIRST_SE_ID ; is this subanimation or a special effect? jr c, .playSubanimation @@ -246,37 +250,55 @@ PlayAnimation: ld a, [wAnimPalette] ldh [rOBP0], a call LoadAnimationTileset + vc_hook FPA_001_Begin call LoadSubanimation call PlaySubanimation + vc_hook FPA_001_End pop af + vc_hook_red FPA_008_End ldh [rOBP0], a .nextAnimationCommand + vc_hook FPA_005_End pop hl + vc_hook FPA_002_End jr .animationLoop .AnimationOver ret LoadSubanimation: + vc_hook FPA_002_Begin ld a, [wSubAnimAddrPtr + 1] + vc_hook FPA_003_Begin ld h, a + vc_hook_red FPA_131_Begin ld a, [wSubAnimAddrPtr] + vc_hook_red FPA_56_Begin ld l, a ld a, [hli] ld e, a + vc_hook FPA_76_Begin ld a, [hl] + vc_hook FPA_Thunderbolt_Begin ld d, a ; de = address of subanimation ld a, [de] + vc_hook_blue FPA_012_Begin ld b, a + vc_hook FPA_Spore_Begin and %00011111 + vc_hook FPA_Bubblebeam_Begin ld [wSubAnimCounter], a ; number of frame blocks + vc_hook_red FPA_010_Begin + vc_hook_blue FPA_009_Begin ld a, b and %11100000 cp SUBANIMTYPE_ENEMY << 5 + vc_hook_blue FPA_004_Begin jr nz, .isNotType5 .isType5 call GetSubanimationTransform2 jr .saveTransformation .isNotType5 + vc_hook FPA_Hyper_Beam_Begin call GetSubanimationTransform1 .saveTransformation ; place the upper 3 bits of a into bits 0-2 of a before storing @@ -307,6 +329,7 @@ LoadSubanimation: ; sets the transform to SUBANIMTYPE_NORMAL if it's the player's turn ; sets the transform to the subanimation type if it's the enemy's turn GetSubanimationTransform1: + vc_hook FPA_Reflect_Begin ld b, a ldh a, [hWhoseTurn] and a @@ -399,11 +422,15 @@ MoveAnimation: jr nz, .animationsDisabled call ShareMoveAnimations call PlayAnimation + vc_hook_red FPA_004_End + vc_hook_blue FPA_011_End jr .next4 .animationsDisabled ld c, 30 call DelayFrames .next4 + vc_hook_red FPA_010_End + vc_hook_blue FPA_012_End call PlayApplyingAttackAnimation ; shake the screen or flash the pic in and out (to show damage) .animationFinished call WaitForSoundToFinish @@ -541,6 +568,7 @@ SetAnimationPalette: .notSGB ld a, $e4 ld [wAnimPalette], a + vc_hook FPA_Dream_Eater_Begin ldh [rOBP0], a ld a, $6c ldh [rOBP1], a @@ -956,6 +984,7 @@ AnimationFlashScreenLong: ld [wFlashScreenLongCounter], a pop hl jr nz, .loop + vc_hook_red FPA_phy_End ret ; BG palettes diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 4a166f7e..e7711707 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -3023,6 +3023,7 @@ LinkBattleExchangeData: ld a, b .doExchange ld [wSerialExchangeNybbleSendData], a + vc_hook send_byt2 callfar PrintWaitingText .syncLoop1 call Serial_ExchangeNybble @@ -3030,18 +3031,33 @@ LinkBattleExchangeData: ld a, [wSerialExchangeNybbleReceiveData] inc a jr z, .syncLoop1 + vc_hook send_byt2_ret + vc_patch FIGHT +IF DEF(_RED_VC) || DEF(_BLUE_VC) + ld b, 26 +ELSE ld b, 10 +ENDC + vc_patch_end .syncLoop2 call DelayFrame call Serial_ExchangeNybble dec b jr nz, .syncLoop2 + vc_hook send_dummy + vc_patch FIGHT2 +IF DEF(_RED_VC) || DEF(_BLUE_VC) + ld b, 26 +ELSE ld b, 10 +ENDC + vc_patch_end .syncLoop3 call DelayFrame call Serial_SendZeroByte dec b jr nz, .syncLoop3 + vc_hook send_dummy_end ret ExecutePlayerMove: @@ -6661,7 +6677,14 @@ BattleRandom: ld a, [hl] pop bc pop hl + vc_hook fight_ret_c + vc_patch fight_ret +IF DEF(_RED_VC) || DEF(_BLUE_VC) + ret +ELSE ret c +ENDC + vc_patch_end ; if we picked the last seed, we need to recalculate the nine seeds push hl @@ -6726,7 +6749,9 @@ HandleExplodingAnimation: PlayMoveAnimation: ld [wAnimationID], a + vc_hook_red FPA_conf_Begin call Delay3 + vc_hook_red FPA_phy_Begin predef_jump MoveAnimation InitBattle:: |