diff options
Diffstat (limited to 'engine/battle_anims/anim_commands.asm')
-rw-r--r-- | engine/battle_anims/anim_commands.asm | 195 |
1 files changed, 75 insertions, 120 deletions
diff --git a/engine/battle_anims/anim_commands.asm b/engine/battle_anims/anim_commands.asm index 1f4da606d..600168a9a 100644 --- a/engine/battle_anims/anim_commands.asm +++ b/engine/battle_anims/anim_commands.asm @@ -1,7 +1,6 @@ ; Battle animation command interpreter. -PlayBattleAnim: ; cc0d6 - +PlayBattleAnim: ld a, [rSVBK] push af @@ -13,10 +12,8 @@ PlayBattleAnim: ; cc0d6 pop af ld [rSVBK], a ret -; cc0e4 - -_PlayBattleAnim: ; cc0e4 +_PlayBattleAnim: ld c, 6 .wait call BattleAnimDelayFrame @@ -52,10 +49,8 @@ _PlayBattleAnim: ; cc0e4 call BattleAnimDelayFrame call WaitSFX ret -; cc11c - -BattleAnimRunScript: ; cc11c +BattleAnimRunScript: ld a, [wFXAnimID + 1] and a jr nz, .hi_byte @@ -97,10 +92,8 @@ BattleAnimRunScript: ; cc11c .done call BattleAnim_RevertPals ret -; cc163 - -RunBattleAnimScript: ; cc163 +RunBattleAnimScript: call ClearBattleAnims .playframe @@ -140,10 +133,8 @@ RunBattleAnimScript: ; cc163 call BattleAnim_ClearCGB_OAMFlags ret -; cc1a1 - -BattleAnimClearHud: ; cc1a1 +BattleAnimClearHud: call BattleAnimDelayFrame call WaitTop call ClearActorHud @@ -154,10 +145,8 @@ BattleAnimClearHud: ; cc1a1 call BattleAnimDelayFrame call WaitTop ret -; cc1bb - -BattleAnimRestoreHuds: ; cc1bb +BattleAnimRestoreHuds: call BattleAnimDelayFrame call WaitTop @@ -180,10 +169,8 @@ BattleAnimRestoreHuds: ; cc1bb call BattleAnimDelayFrame call WaitTop ret -; cc1e2 - -BattleAnimRequestPals: ; cc1e2 +BattleAnimRequestPals: ld a, [hCGB] and a ret z @@ -200,9 +187,8 @@ BattleAnimRequestPals: ; cc1e2 cp b call nz, BattleAnim_SetOBPals ret -; cc1fb -BattleAnimDelayFrame: ; cc1fb +BattleAnimDelayFrame: ; Like DelayFrame but wastes battery life. ld a, 1 @@ -212,10 +198,8 @@ BattleAnimDelayFrame: ; cc1fb and a jr nz, .wait ret -; cc207 - -ClearActorHud: ; cc207 +ClearActorHud: ld a, [hBattleTurn] and a jr z, .player @@ -230,9 +214,8 @@ ClearActorHud: ; cc207 lb bc, 5, 11 call ClearBox ret -; cc220 -Unreferenced_Functioncc220: ; cc220 +Unreferenced_Functioncc220: xor a ld [hBGMapMode], a ld a, LOW(vBGMap0 tile $28) @@ -248,11 +231,8 @@ Unreferenced_Functioncc220: ; cc220 ld [hBGMapAddress + 1], a call BattleAnimDelayFrame ret -; cc23d - - -BattleAnim_ClearCGB_OAMFlags: ; cc23d +BattleAnim_ClearCGB_OAMFlags: ld a, [wBattleAnimFlags] bit 3, a jr z, .delete @@ -279,16 +259,14 @@ endr dec c jr nz, .loop2 ret -; cc25f -RunBattleAnimCommand: ; cc25f +RunBattleAnimCommand: call .CheckTimer ret nc call .RunScript ret -; cc267 -.CheckTimer: ; cc267 +.CheckTimer: ld a, [wBattleAnimDuration] and a jr z, .done @@ -301,13 +279,12 @@ RunBattleAnimCommand: ; cc25f .done scf ret -; cc275 -.RunScript: ; cc275 +.RunScript: .loop call GetBattleAnimByte - cp $ff + cp anim_ret_command jr nz, .not_done_with_anim ; Return from a subroutine. @@ -329,9 +306,8 @@ RunBattleAnimCommand: ; cc25f call .DoCommand jr .loop -; cc293 -.DoCommand: ; cc293 +.DoCommand: ; Execute battle animation command in [wBattleAnimByte]. ld a, [wBattleAnimByte] sub $d0 @@ -346,10 +322,8 @@ RunBattleAnimCommand: ; cc25f ld h, [hl] ld l, a jp hl -; cc2a4 - -BattleAnimCommands:: ; cc2a4 (33:42a4) +BattleAnimCommands:: ; entries correspond to macros/scripts/battle_anims.asm enumeration dw BattleAnimCmd_Obj dw BattleAnimCmd_1GFX @@ -400,14 +374,13 @@ BattleAnimCommands:: ; cc2a4 (33:42a4) dw BattleAnimCmd_Call dw BattleAnimCmd_Ret - BattleAnimCmd_EA: BattleAnimCmd_EB: BattleAnimCmd_EC: -BattleAnimCmd_ED: ; cc304 (33:4304) +BattleAnimCmd_ED: ret -BattleAnimCmd_Ret: ; cc305 (33:4305) +BattleAnimCmd_Ret: ld hl, wBattleAnimFlags res 1, [hl] ld hl, wBattleAnimParent @@ -420,7 +393,7 @@ BattleAnimCmd_Ret: ; cc305 (33:4305) ld [hl], d ret -BattleAnimCmd_Call: ; cc317 (33:4317) +BattleAnimCmd_Call: call GetBattleAnimByte ld e, a call GetBattleAnimByte @@ -443,7 +416,7 @@ BattleAnimCmd_Call: ; cc317 (33:4317) set 1, [hl] ret -BattleAnimCmd_Jump: ; cc339 (33:4339) +BattleAnimCmd_Jump: call GetBattleAnimByte ld e, a call GetBattleAnimByte @@ -454,7 +427,7 @@ BattleAnimCmd_Jump: ; cc339 (33:4339) ld [hl], d ret -BattleAnimCmd_Loop: ; cc348 (33:4348) +BattleAnimCmd_Loop: call GetBattleAnimByte ld hl, wBattleAnimFlags bit 2, [hl] @@ -495,7 +468,7 @@ BattleAnimCmd_Loop: ; cc348 (33:4348) ld [hl], e ret -BattleAnimCmd_JumpUntil: ; cc383 (33:4383) +BattleAnimCmd_JumpUntil: ld hl, wBattleAnimParam ld a, [hl] and a @@ -524,17 +497,17 @@ BattleAnimCmd_JumpUntil: ; cc383 (33:4383) ld [hl], e ret -BattleAnimCmd_SetVar: ; cc3a6 (33:43a6) +BattleAnimCmd_SetVar: call GetBattleAnimByte ld [wBattleAnimVar], a ret -BattleAnimCmd_IncVar: ; cc3ad (33:43ad) +BattleAnimCmd_IncVar: ld hl, wBattleAnimVar inc [hl] ret -BattleAnimCmd_IfVarEqual: ; cc3b2 (33:43b2) +BattleAnimCmd_IfVarEqual: call GetBattleAnimByte ld hl, wBattleAnimVar cp [hl] @@ -562,7 +535,7 @@ BattleAnimCmd_IfVarEqual: ; cc3b2 (33:43b2) ld [hl], d ret -BattleAnimCmd_IfParamEqual: ; cc3d6 (33:43d6) +BattleAnimCmd_IfParamEqual: call GetBattleAnimByte ld hl, wBattleAnimParam cp [hl] @@ -590,7 +563,7 @@ BattleAnimCmd_IfParamEqual: ; cc3d6 (33:43d6) ld [hl], d ret -BattleAnimCmd_IfParamAnd: ; cc3fa (33:43fa) +BattleAnimCmd_IfParamAnd: call GetBattleAnimByte ld e, a ld a, [wBattleAnimParam] @@ -619,7 +592,7 @@ BattleAnimCmd_IfParamAnd: ; cc3fa (33:43fa) ld [hl], d ret -BattleAnimCmd_Obj: ; cc41f (33:441f) +BattleAnimCmd_Obj: ; index, x, y, param call GetBattleAnimByte ld [wBattleAnimTemp0], a @@ -632,7 +605,7 @@ BattleAnimCmd_Obj: ; cc41f (33:441f) call QueueBattleAnimation ret -BattleAnimCmd_BGEffect: ; cc43b (33:443b) +BattleAnimCmd_BGEffect: call GetBattleAnimByte ld [wBattleAnimTemp0], a call GetBattleAnimByte @@ -644,22 +617,22 @@ BattleAnimCmd_BGEffect: ; cc43b (33:443b) call _QueueBGEffect ret -BattleAnimCmd_BGP: ; cc457 (33:4457) +BattleAnimCmd_BGP: call GetBattleAnimByte ld [wBGP], a ret -BattleAnimCmd_OBP0: ; cc45e (33:445e) +BattleAnimCmd_OBP0: call GetBattleAnimByte ld [wOBP0], a ret -BattleAnimCmd_OBP1: ; cc465 (33:4465) +BattleAnimCmd_OBP1: call GetBattleAnimByte ld [wOBP1], a ret -BattleAnimCmd_ResetObp0: ; cc46c (33:446c) +BattleAnimCmd_ResetObp0: ld a, [hSGB] and a ld a, $e0 @@ -669,7 +642,7 @@ BattleAnimCmd_ResetObp0: ; cc46c (33:446c) ld [wOBP0], a ret -BattleAnimCmd_ClearObjs: ; cc479 (33:4479) +BattleAnimCmd_ClearObjs: ld hl, wActiveAnimObjects ld a, $a0 .loop @@ -683,7 +656,7 @@ BattleAnimCmd_1GFX: BattleAnimCmd_2GFX: BattleAnimCmd_3GFX: BattleAnimCmd_4GFX: -BattleAnimCmd_5GFX: ; cc485 (33:4485) +BattleAnimCmd_5GFX: ld a, [wBattleAnimByte] and $f ld c, a @@ -718,7 +691,7 @@ endr jr nz, .loop ret -BattleAnimCmd_IncObj: ; cc4c0 (33:44c0) +BattleAnimCmd_IncObj: call GetBattleAnimByte ld e, 10 ld bc, wActiveAnimObjects @@ -743,7 +716,7 @@ BattleAnimCmd_IncObj: ; cc4c0 (33:44c0) inc [hl] ret -BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3) +BattleAnimCmd_IncBGEffect: call GetBattleAnimByte ld e, 5 ld bc, wActiveBGEffects @@ -768,7 +741,7 @@ BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3) inc [hl] ret -BattleAnimCmd_SetObj: ; cc506 (33:4506) +BattleAnimCmd_SetObj: call GetBattleAnimByte ld e, 10 ld bc, wActiveAnimObjects @@ -794,8 +767,7 @@ BattleAnimCmd_SetObj: ; cc506 (33:4506) ld [hl], a ret -BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c) - +BattleAnimCmd_EnemyFeetObj: ld hl, wBattleAnimTileDict .loop ld a, [hl] @@ -828,7 +800,7 @@ BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c) call .LoadFootprint ret -.LoadFootprint: ; cc561 (33:4561) +.LoadFootprint: push af push hl push de @@ -849,8 +821,7 @@ BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c) jr nz, .LoadFootprint ret -BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e) - +BattleAnimCmd_PlayerHeadObj: ld hl, wBattleAnimTileDict .loop ld a, [hl] @@ -883,7 +854,7 @@ BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e) call .LoadHead ret -.LoadHead: ; cc5b3 (33:45b3) +.LoadHead: push af push hl push de @@ -904,16 +875,16 @@ BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e) jr nz, .LoadHead ret -BattleAnimCmd_CheckPokeball: ; cc5d0 (33:45d0) +BattleAnimCmd_CheckPokeball: callfar GetPokeBallWobble ld a, c ld [wBattleAnimVar], a ret -BattleAnimCmd_E7: ; cc5db (33:45db) +BattleAnimCmd_E7: ret -BattleAnimCmd_Transform: ; cc5dc (33:45dc) +BattleAnimCmd_Transform: ld a, [rSVBK] push af ld a, BANK(wCurPartySpecies) @@ -948,8 +919,7 @@ BattleAnimCmd_Transform: ; cc5dc (33:45dc) ld [rSVBK], a ret -BattleAnimCmd_UpdateActorPic: ; cc622 (33:4622) - +BattleAnimCmd_UpdateActorPic: ld de, vTiles0 tile $00 ld a, [hBattleTurn] and a @@ -968,8 +938,7 @@ BattleAnimCmd_UpdateActorPic: ; cc622 (33:4622) call Request2bpp ret -BattleAnimCmd_RaiseSub: ; cc640 (33:4640) - +BattleAnimCmd_RaiseSub: ld a, [rSVBK] push af ld a, 1 ; unnecessary bankswitch? @@ -977,7 +946,7 @@ BattleAnimCmd_RaiseSub: ; cc640 (33:4640) xor a ; sScratch call GetSRAMBank -GetSubstitutePic: ; cc64c +GetSubstitutePic: ; used only for BANK(GetSubstitutePic) ld hl, sScratch ld bc, (7 * 7) tiles @@ -1037,13 +1006,13 @@ GetSubstitutePic: ; cc64c ld [rSVBK], a ret -.CopyTile: ; cc6c6 (33:46c6) +.CopyTile: ld bc, 1 tiles ld a, BANK(MonsterSpriteGFX) call FarCopyBytes ret -BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf) +BattleAnimCmd_MinimizeOpp: ld a, [rSVBK] push af ld a, 1 ; unnecessary bankswitch? @@ -1057,7 +1026,7 @@ BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf) ld [rSVBK], a ret -GetMinimizePic: ; cc6e7 (33:46e7) +GetMinimizePic: ld hl, sScratch ld bc, $31 tiles .loop @@ -1087,19 +1056,17 @@ GetMinimizePic: ; cc6e7 (33:46e7) lb bc, BANK(GetMinimizePic), 6 * 6 ret -CopyMinimizePic: ; cc719 (33:4719) +CopyMinimizePic: ld hl, MinimizePic ld bc, $10 ld a, BANK(MinimizePic) call FarCopyBytes ret -; cc725 (33:4725) -MinimizePic: ; cc725 +MinimizePic: INCBIN "gfx/battle/minimize.2bpp" -; cc735 -BattleAnimCmd_Minimize: ; cc735 (33:4735) +BattleAnimCmd_Minimize: ld a, [rSVBK] push af ld a, 1 ; unnecessary bankswitch? @@ -1114,7 +1081,7 @@ BattleAnimCmd_Minimize: ; cc735 (33:4735) ld [rSVBK], a ret -BattleAnimCmd_DropSub: ; cc750 (33:4750) +BattleAnimCmd_DropSub: ld a, [rSVBK] push af ld a, BANK(wCurPartySpecies) @@ -1139,7 +1106,7 @@ BattleAnimCmd_DropSub: ; cc750 (33:4750) ld [rSVBK], a ret -BattleAnimCmd_BeatUp: ; cc776 (33:4776) +BattleAnimCmd_BeatUp: ld a, [rSVBK] push af ld a, BANK(wCurPartySpecies) @@ -1175,31 +1142,31 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776) ld [rSVBK], a ret -BattleAnimCmd_OAMOn: ; cc7bb (33:47bb) +BattleAnimCmd_OAMOn: xor a ld [hOAMUpdate], a ret -BattleAnimCmd_OAMOff: ; cc7bf (33:47bf) +BattleAnimCmd_OAMOff: ld a, $1 ld [hOAMUpdate], a ret -BattleAnimCmd_ClearSprites: ; cc7c4 (33:47c4) +BattleAnimCmd_ClearSprites: ld hl, wBattleAnimFlags set 3, [hl] ret -BattleAnimCmd_F5: ; cc7ca (33:47ca) +BattleAnimCmd_F5: ret -BattleAnimCmd_F6: ; cc7cb (33:47cb) +BattleAnimCmd_F6: ret -BattleAnimCmd_F7: ; cc7cc (33:47cc) +BattleAnimCmd_F7: ret -BattleAnimCmd_Sound: ; cc7cd (33:47cd) +BattleAnimCmd_Sound: call GetBattleAnimByte ld e, a srl a @@ -1222,13 +1189,11 @@ BattleAnimCmd_Sound: ; cc7cd (33:47cd) callfar PlayStereoSFX ret -; cc7f8 (33:47f8) -.GetPanning: ; cc7f8 +.GetPanning: db $f0, $0f, $f0, $0f -; cc7fc -.GetCryTrack: ; cc7fc (33:47fc) +.GetCryTrack: ld a, [hBattleTurn] and a jr nz, .enemy @@ -1241,7 +1206,7 @@ BattleAnimCmd_Sound: ; cc7cd (33:47cd) xor 1 ret -BattleAnimCmd_Cry: ; cc807 (33:4807) +BattleAnimCmd_Cry: call GetBattleAnimByte maskbits NUM_NOISE_CHANS ld e, a @@ -1315,18 +1280,15 @@ endr pop af ld [rSVBK], a ret -; cc871 (33:4871) -.CryData: ; cc871 +.CryData: ; +pitch, +length dw $0000, $00c0 dw $0000, $0040 dw $0000, $0000 dw $0000, $0000 -; cc881 - -PlayHitSound: ; cc881 +PlayHitSound: ld a, [wNumHits] cp $1 jr z, .okay @@ -1350,9 +1312,8 @@ PlayHitSound: ; cc881 .play call PlaySFX ret -; cc8a4 -BattleAnimAssignPals: ; cc8a4 +BattleAnimAssignPals: ld a, [hCGB] and a jr nz, .cgb @@ -1378,9 +1339,8 @@ BattleAnimAssignPals: ; cc8a4 lb de, %11100100, %11100100 call DmgToCgbObjPals ret -; cc8d3 -ClearBattleAnims: ; cc8d3 +ClearBattleAnims: ; Clear animation block ld hl, wLYOverrides ld bc, wBattleAnimEnd - wLYOverrides @@ -1403,9 +1363,8 @@ ClearBattleAnims: ; cc8d3 call BattleAnimAssignPals call BattleAnimDelayFrame ret -; cc8f6 -BattleAnim_RevertPals: ; cc8f6 +BattleAnim_RevertPals: call WaitTop ld a, %11100100 ld [wBGP], a @@ -1421,9 +1380,8 @@ BattleAnim_RevertPals: ; cc8f6 ld a, $1 ld [hBGMapMode], a ret -; cc91a -BattleAnim_SetBGPals: ; cc91a +BattleAnim_SetBGPals: ld [rBGP], a ld a, [hCGB] and a @@ -1449,9 +1407,8 @@ BattleAnim_SetBGPals: ; cc91a ld a, $1 ld [hCGBPalUpdate], a ret -; cc94b -BattleAnim_SetOBPals: ; cc94b +BattleAnim_SetOBPals: ld [rOBP0], a ld a, [hCGB] and a @@ -1471,9 +1428,8 @@ BattleAnim_SetOBPals: ; cc94b ld a, $1 ld [hCGBPalUpdate], a ret -; cc96e -BattleAnim_UpdateOAM_All: ; cc96e +BattleAnim_UpdateOAM_All: ld a, $0 ld [wBattleAnimOAMPointerLo], a ld hl, wActiveAnimObjects @@ -1510,4 +1466,3 @@ BattleAnim_UpdateOAM_All: ; cc96e .done ret -; cc9a1 |