diff options
author | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-26 17:47:05 -0500 |
---|---|---|
committer | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-26 17:47:05 -0500 |
commit | b5417fafec7dd37cb4be391f3bd3d4541a2a381e (patch) | |
tree | a4e7d08afb2e862186a138e82c8ef4785d82786d /battle/anim_commands.asm | |
parent | 2f98c2032fd47ada3484bfc37d590992f286d3d4 (diff) |
Split battle/ into data/ and engine/ components
Diffstat (limited to 'battle/anim_commands.asm')
-rw-r--r-- | battle/anim_commands.asm | 1515 |
1 files changed, 0 insertions, 1515 deletions
diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm deleted file mode 100644 index 78786f516..000000000 --- a/battle/anim_commands.asm +++ /dev/null @@ -1,1515 +0,0 @@ -; Battle animation command interpreter. - - -PlayBattleAnim: ; cc0d6 - - ld a, [rSVBK] - push af - - ld a, 5 - ld [rSVBK], a - - call _PlayBattleAnim - - pop af - ld [rSVBK], a - ret -; cc0e4 - -_PlayBattleAnim: ; cc0e4 - - ld c, 6 -.wait - call BattleAnimDelayFrame - dec c - jr nz, .wait - - call BattleAnimAssignPals - call BattleAnimRequestPals - call BattleAnimDelayFrame - - ld c, 1 - ld a, [rKEY1] - bit 7, a - jr nz, .asm_cc0ff - ld c, 3 - -.asm_cc0ff - ld hl, hVBlank - ld a, [hl] - push af - - ld [hl], c - call BattleAnimRunScript - - pop af - ld [hVBlank], a - - ld a, $1 - ld [hBGMapMode], a - - call BattleAnimDelayFrame - call BattleAnimDelayFrame - call BattleAnimDelayFrame - call WaitSFX - ret -; cc11c - -BattleAnimRunScript: ; cc11c - - ld a, [FXAnimID + 1] - and a - jr nz, .hi_byte - - farcall CheckBattleScene - jr c, .disabled - - call BattleAnimClearHud - call RunBattleAnimScript - - call BattleAnimAssignPals - call BattleAnimRequestPals - - xor a - ld [hSCX], a - ld [hSCY], a - call BattleAnimDelayFrame - call BattleAnimRestoreHuds - -.disabled - ld a, [wNumHits] - and a - jr z, .done - - ld l, a - ld h, 0 - ld de, ANIM_MISS - add hl, de - ld a, l - ld [FXAnimID], a - ld a, h - ld [FXAnimID + 1], a - -.hi_byte - call WaitSFX - call PlayHitSound - call RunBattleAnimScript - -.done - call BattleAnim_RevertPals - ret -; cc163 - -RunBattleAnimScript: ; cc163 - - call ClearBattleAnims - -.playframe - call RunBattleAnimCommand - call _ExecuteBGEffects - call BattleAnim_UpdateOAM_All - call PushLYOverrides - call BattleAnimRequestPals - -; Speed up Rollout's animation. - ld a, [FXAnimID + 1] - or a - jr nz, .not_rollout - - ld a, [FXAnimID] - cp ROLLOUT - jr nz, .not_rollout - - ld a, $2e - ld b, 5 - ld de, 4 - ld hl, ActiveBGEffects -.find - cp [hl] - jr z, .done - add hl, de - dec b - jr nz, .find - -.not_rollout - call BattleAnimDelayFrame - -.done - ld a, [BattleAnimFlags] - bit 0, a - jr z, .playframe - - call BattleAnim_ClearCGB_OAMFlags - ret -; cc1a1 - -BattleAnimClearHud: ; cc1a1 - - call BattleAnimDelayFrame - call WaitTop - call ClearActorHud - ld a, $1 - ld [hBGMapMode], a - call BattleAnimDelayFrame - call BattleAnimDelayFrame - call BattleAnimDelayFrame - call WaitTop - ret -; cc1bb - -BattleAnimRestoreHuds: ; cc1bb - - call BattleAnimDelayFrame - call WaitTop - - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - - ld hl, UpdateBattleHuds - ld a, BANK(UpdatePlayerHUD) - rst FarCall ; Why not "call UpdateBattleHuds"? - - pop af - ld [rSVBK], a - - ld a, $1 - ld [hBGMapMode], a - call BattleAnimDelayFrame - call BattleAnimDelayFrame - call BattleAnimDelayFrame - call WaitTop - ret -; cc1e2 - -BattleAnimRequestPals: ; cc1e2 - - ld a, [hCGB] - and a - ret z - - ld a, [rBGP] - ld b, a - ld a, [wBGP] - cp b - call nz, BattleAnim_SetBGPals - - ld a, [rOBP0] - ld b, a - ld a, [wOBP0] - cp b - call nz, BattleAnim_SetOBPals - ret -; cc1fb - -BattleAnimDelayFrame: ; cc1fb -; Like DelayFrame but wastes battery life. - - ld a, 1 - ld [VBlankOccurred], a -.wait - ld a, [VBlankOccurred] - and a - jr nz, .wait - ret -; cc207 - -ClearActorHud: ; cc207 - - ld a, [hBattleTurn] - and a - jr z, .player - - hlcoord 1, 0 - lb bc, 4, 10 - call ClearBox - ret - -.player - hlcoord 9, 7 - lb bc, 5, 11 - call ClearBox - ret -; cc220 - -Functioncc220: ; cc220 -; Appears to be unused. - xor a - ld [hBGMapMode], a - ld a, LOW(VBGMap0 tile $28) - ld [hBGMapAddress], a - ld a, HIGH(VBGMap0 tile $28) - ld [hBGMapAddress + 1], a - call WaitBGMap2 - ld a, $60 - ld [hWY], a - xor a ; LOW(VBGMap0) - ld [hBGMapAddress], a - ld a, HIGH(VBGMap0) - ld [hBGMapAddress + 1], a - call BattleAnimDelayFrame - ret -; cc23d - - -BattleAnim_ClearCGB_OAMFlags: ; cc23d - - ld a, [BattleAnimFlags] - bit 3, a - jr z, .delete - - ld hl, Sprites + 3 - ld c, (SpritesEnd - Sprites) / 4 -.loop - ld a, [hl] - and $f0 - ld [hli], a - inc hl - inc hl - inc hl - dec c - jr nz, .loop - ret - -.delete - ld hl, Sprites - ld c, SpritesEnd - Sprites - xor a -.loop2 - ld [hli], a - dec c - jr nz, .loop2 - ret -; cc25f - -RunBattleAnimCommand: ; cc25f - call .CheckTimer - ret nc - call .RunScript - ret -; cc267 - -.CheckTimer: ; cc267 - ld a, [BattleAnimDuration] - and a - jr z, .done - - dec a - ld [BattleAnimDuration], a - and a - ret - -.done - scf - ret -; cc275 - -.RunScript: ; cc275 -.loop - call GetBattleAnimByte - - cp $ff - jr nz, .not_done_with_anim - -; Return from a subroutine. - ld hl, BattleAnimFlags - bit 1, [hl] - jr nz, .do_anim - - set 0, [hl] - ret - -.not_done_with_anim - cp $d0 - jr nc, .do_anim - - ld [BattleAnimDuration], a - ret - -.do_anim - call .DoCommand - - jr .loop -; cc293 - -.DoCommand: ; cc293 -; Execute battle animation command in [BattleAnimByte]. - ld a, [BattleAnimByte] - sub $d0 - - ld e, a - ld d, 0 - ld hl, BattleAnimCommands - add hl, de - add hl, de - - ld a, [hli] - ld h, [hl] - ld l, a - jp hl -; cc2a4 - - -BattleAnimCommands:: ; cc2a4 (33:42a4) -; entries correspond to macros/move_anim.asm enumeration - dw BattleAnimCmd_Obj - dw BattleAnimCmd_1GFX - dw BattleAnimCmd_2GFX - dw BattleAnimCmd_3GFX - dw BattleAnimCmd_4GFX - dw BattleAnimCmd_5GFX - dw BattleAnimCmd_IncObj - dw BattleAnimCmd_SetObj - dw BattleAnimCmd_IncBGEffect - dw BattleAnimCmd_EnemyFeetObj - dw BattleAnimCmd_PlayerHeadObj - dw BattleAnimCmd_CheckPokeball - dw BattleAnimCmd_Transform - dw BattleAnimCmd_RaiseSub - dw BattleAnimCmd_DropSub - dw BattleAnimCmd_ResetObp0 - dw BattleAnimCmd_Sound - dw BattleAnimCmd_Cry - dw BattleAnimCmd_MinimizeOpp - dw BattleAnimCmd_OAMOn - dw BattleAnimCmd_OAMOff - dw BattleAnimCmd_ClearObjs - dw BattleAnimCmd_BeatUp - dw BattleAnimCmd_E7 - dw BattleAnimCmd_UpdateActorPic - dw BattleAnimCmd_Minimize - dw BattleAnimCmd_EA ; dummy - dw BattleAnimCmd_EB ; dummy - dw BattleAnimCmd_EC ; dummy - dw BattleAnimCmd_ED ; dummy - dw BattleAnimCmd_IfParamAnd - dw BattleAnimCmd_JumpUntil - dw BattleAnimCmd_BGEffect - dw BattleAnimCmd_BGP - dw BattleAnimCmd_OBP0 - dw BattleAnimCmd_OBP1 - dw BattleAnimCmd_ClearSprites - dw BattleAnimCmd_F5 - dw BattleAnimCmd_F6 - dw BattleAnimCmd_F7 - dw BattleAnimCmd_IfParamEqual - dw BattleAnimCmd_SetVar - dw BattleAnimCmd_IncVar - dw BattleAnimCmd_IfVarEqual - dw BattleAnimCmd_Jump - dw BattleAnimCmd_Loop - dw BattleAnimCmd_Call - dw BattleAnimCmd_Ret - - -BattleAnimCmd_EA: -BattleAnimCmd_EB: -BattleAnimCmd_EC: -BattleAnimCmd_ED: ; cc304 (33:4304) - ret - -BattleAnimCmd_Ret: ; cc305 (33:4305) - ld hl, BattleAnimFlags - res 1, [hl] - ld hl, BattleAnimParent - ld e, [hl] - inc hl - ld d, [hl] - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ret - -BattleAnimCmd_Call: ; cc317 (33:4317) - call GetBattleAnimByte - ld e, a - call GetBattleAnimByte - ld d, a - push de - ld hl, BattleAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - ld hl, BattleAnimParent - ld [hl], e - inc hl - ld [hl], d - pop de - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ld hl, BattleAnimFlags - set 1, [hl] - ret - -BattleAnimCmd_Jump: ; cc339 (33:4339) - call GetBattleAnimByte - ld e, a - call GetBattleAnimByte - ld d, a - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ret - -BattleAnimCmd_Loop: ; cc348 (33:4348) - call GetBattleAnimByte - ld hl, BattleAnimFlags - bit 2, [hl] - jr nz, .continue_loop - and a - jr z, .perpetual - dec a - set 2, [hl] - ld [BattleAnimLoops], a -.continue_loop - ld hl, BattleAnimLoops - ld a, [hl] - and a - jr z, .return_from_loop - dec [hl] -.perpetual - call GetBattleAnimByte - ld e, a - call GetBattleAnimByte - ld d, a - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ret - -.return_from_loop - ld hl, BattleAnimFlags - res 2, [hl] - ld hl, BattleAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - ret - -BattleAnimCmd_JumpUntil: ; cc383 (33:4383) - ld hl, wBattleAnimParam - ld a, [hl] - and a - jr z, .dont_jump - - dec [hl] - call GetBattleAnimByte - ld e, a - call GetBattleAnimByte - ld d, a - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ret - -.dont_jump - ld hl, BattleAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - ret - -BattleAnimCmd_SetVar: ; cc3a6 (33:43a6) - call GetBattleAnimByte - ld [BattleAnimVar], a - ret - -BattleAnimCmd_IncVar: ; cc3ad (33:43ad) - ld hl, BattleAnimVar - inc [hl] - ret - -BattleAnimCmd_IfVarEqual: ; cc3b2 (33:43b2) - call GetBattleAnimByte - ld hl, BattleAnimVar - cp [hl] - jr z, .jump - - ld hl, BattleAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - ret - -.jump - call GetBattleAnimByte - ld e, a - call GetBattleAnimByte - ld d, a - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ret - -BattleAnimCmd_IfParamEqual: ; cc3d6 (33:43d6) - call GetBattleAnimByte - ld hl, wBattleAnimParam - cp [hl] - jr z, .jump - - ld hl, BattleAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - ret - -.jump - call GetBattleAnimByte - ld e, a - call GetBattleAnimByte - ld d, a - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ret - -BattleAnimCmd_IfParamAnd: ; cc3fa (33:43fa) - call GetBattleAnimByte - ld e, a - ld a, [wBattleAnimParam] - and e - jr nz, .jump - - ld hl, BattleAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - ret - -.jump - call GetBattleAnimByte - ld e, a - call GetBattleAnimByte - ld d, a - ld hl, BattleAnimAddress - ld [hl], e - inc hl - ld [hl], d - ret - -BattleAnimCmd_Obj: ; cc41f (33:441f) -; index, x, y, param - call GetBattleAnimByte - ld [wBattleAnimTemp0], a - call GetBattleAnimByte - ld [wBattleAnimTemp1], a - call GetBattleAnimByte - ld [wBattleAnimTemp2], a - call GetBattleAnimByte - ld [wBattleAnimTemp3], a - call QueueBattleAnimation - ret - -BattleAnimCmd_BGEffect: ; cc43b (33:443b) - call GetBattleAnimByte - ld [wBattleAnimTemp0], a - call GetBattleAnimByte - ld [wBattleAnimTemp1], a - call GetBattleAnimByte - ld [wBattleAnimTemp2], a - call GetBattleAnimByte - ld [wBattleAnimTemp3], a - call _QueueBGEffect - ret - -BattleAnimCmd_BGP: ; cc457 (33:4457) - call GetBattleAnimByte - ld [wBGP], a - ret - -BattleAnimCmd_OBP0: ; cc45e (33:445e) - call GetBattleAnimByte - ld [wOBP0], a - ret - -BattleAnimCmd_OBP1: ; cc465 (33:4465) - call GetBattleAnimByte - ld [wOBP1], a - ret - -BattleAnimCmd_ResetObp0: ; cc46c (33:446c) - ld a, [hSGB] - and a - ld a, $e0 - jr z, .not_sgb - ld a, $f0 -.not_sgb - ld [wOBP0], a - ret - -BattleAnimCmd_ClearObjs: ; cc479 (33:4479) - ld hl, ActiveAnimObjects - ld a, $a0 -.loop - ld [hl], $0 - inc hl - dec a - jr nz, .loop - ret - -BattleAnimCmd_1GFX: -BattleAnimCmd_2GFX: -BattleAnimCmd_3GFX: -BattleAnimCmd_4GFX: -BattleAnimCmd_5GFX: ; cc485 (33:4485) - ld a, [BattleAnimByte] - and $f - ld c, a - ld hl, wBattleAnimTileDict - xor a - ld [wBattleAnimTemp0], a -.loop - ld a, [wBattleAnimTemp0] - cp (VTiles1 - VTiles0) / $10 - $31 - ret nc - call GetBattleAnimByte - ld [hli], a - ld a, [wBattleAnimTemp0] - ld [hli], a - push bc - push hl - ld l, a - ld h, $0 -rept 4 - add hl, hl -endr - ld de, VTiles0 tile $31 - add hl, de - ld a, [BattleAnimByte] - call LoadBattleAnimObj - ld a, [wBattleAnimTemp0] - add c - ld [wBattleAnimTemp0], a - pop hl - pop bc - dec c - jr nz, .loop - ret - -BattleAnimCmd_IncObj: ; cc4c0 (33:44c0) - call GetBattleAnimByte - ld e, 10 - ld bc, ActiveAnimObjects -.loop - ld hl, BATTLEANIMSTRUCT_INDEX - add hl, bc - ld d, [hl] - ld a, [BattleAnimByte] - cp d - jr z, .found - ld hl, BATTLEANIMSTRUCT_LENGTH - add hl, bc - ld c, l - ld b, h - dec e - jr nz, .loop - ret - -.found - ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX - add hl, bc - inc [hl] - ret - -BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3) - call GetBattleAnimByte - ld e, 5 - ld bc, ActiveBGEffects -.loop - ld hl, $0 - add hl, bc - ld d, [hl] - ld a, [BattleAnimByte] - cp d - jr z, .found - ld hl, 4 - add hl, bc - ld c, l - ld b, h - dec e - jr nz, .loop - ret - -.found - ld hl, BG_EFFECT_STRUCT_JT_INDEX - add hl, bc - inc [hl] - ret - -BattleAnimCmd_SetObj: ; cc506 (33:4506) - call GetBattleAnimByte - ld e, 10 - ld bc, ActiveAnimObjects -.loop - ld hl, BATTLEANIMSTRUCT_INDEX - add hl, bc - ld d, [hl] - ld a, [BattleAnimByte] - cp d - jr z, .found - ld hl, BATTLEANIMSTRUCT_LENGTH - add hl, bc - ld c, l - ld b, h - dec e - jr nz, .loop - ret - -.found - call GetBattleAnimByte - ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX - add hl, bc - ld [hl], a - ret - -BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c) - - ld hl, wBattleAnimTileDict -.loop - ld a, [hl] - and a - jr z, .okay - inc hl - inc hl - jr .loop - -.okay - ld a, $28 - ld [hli], a - ld a, $42 - ld [hli], a - ld a, $29 - ld [hli], a - ld a, $49 - ld [hl], a - - ld hl, VTiles0 tile $73 - ld de, VTiles2 tile $06 - ld a, $70 - ld [wBattleAnimTemp0], a - ld a, $7 - call .LoadFootprint - ld de, VTiles2 tile $31 - ld a, $60 - ld [wBattleAnimTemp0], a - ld a, $6 - call .LoadFootprint - ret - -.LoadFootprint: ; cc561 (33:4561) - push af - push hl - push de - lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 1 - call Request2bpp - pop de - ld a, [wBattleAnimTemp0] - ld l, a - ld h, 0 - add hl, de - ld e, l - ld d, h - pop hl - ld bc, 1 tiles - add hl, bc - pop af - dec a - jr nz, .LoadFootprint - ret - -BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e) - - ld hl, wBattleAnimTileDict -.loop - ld a, [hl] - and a - jr z, .okay - inc hl - inc hl - jr .loop - -.okay - ld a, $28 - ld [hli], a - ld a, $35 - ld [hli], a - ld a, $29 - ld [hli], a - ld a, $43 - ld [hl], a - - ld hl, VTiles0 tile $66 - ld de, VTiles2 tile $05 - ld a, $70 - ld [wBattleAnimTemp0], a - ld a, $7 - call .LoadHead - ld de, VTiles2 tile $31 - ld a, $60 - ld [wBattleAnimTemp0], a - ld a, $6 - call .LoadHead - ret - -.LoadHead: ; cc5b3 (33:45b3) - push af - push hl - push de - lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 2 - call Request2bpp - pop de - ld a, [wBattleAnimTemp0] - ld l, a - ld h, 0 - add hl, de - ld e, l - ld d, h - pop hl - ld bc, 2 tiles - add hl, bc - pop af - dec a - jr nz, .LoadHead - ret - -BattleAnimCmd_CheckPokeball: ; cc5d0 (33:45d0) - callfar GetPokeBallWobble - ld a, c - ld [BattleAnimVar], a - ret - -BattleAnimCmd_E7: ; cc5db (33:45db) - ret - -BattleAnimCmd_Transform: ; cc5dc (33:45dc) - ld a, [rSVBK] - push af - ld a, 1 - ld [rSVBK], a - ld a, [CurPartySpecies] ; CurPartySpecies - push af - - ld a, [hBattleTurn] - and a - jr z, .player - - ld a, [TempBattleMonSpecies] ; TempBattleMonSpecies - ld [CurPartySpecies], a ; CurPartySpecies - ld hl, BattleMonDVs ; BattleMonDVs - predef GetUnownLetter - ld de, VTiles0 tile $00 - predef GetMonFrontpic - jr .done - -.player - ld a, [TempEnemyMonSpecies] ; TempEnemyMonSpecies - ld [CurPartySpecies], a ; CurPartySpecies - ld hl, EnemyMonDVs ; EnemyMonDVs - predef GetUnownLetter - ld de, VTiles0 tile $00 - predef GetMonBackpic - -.done - pop af - ld [CurPartySpecies], a ; CurPartySpecies - pop af - ld [rSVBK], a - ret - -BattleAnimCmd_UpdateActorPic: ; cc622 (33:4622) - - ld de, VTiles0 tile $00 - ld a, [hBattleTurn] - and a - jr z, .player - - ld hl, VTiles2 tile $00 - ld b, 0 - ld c, $31 - call Request2bpp - ret - -.player - ld hl, VTiles2 tile $31 - ld b, 0 - ld c, $24 - call Request2bpp - ret - -BattleAnimCmd_RaiseSub: ; cc640 (33:4640) - - ld a, [rSVBK] - push af - ld a, 1 - ld [rSVBK], a - xor a - call GetSRAMBank - -GetSubstitutePic: ; cc64c - - ld hl, sScratch - ld bc, (7 * 7) tiles -.loop - xor a - ld [hli], a - dec bc - ld a, c - or b - jr nz, .loop - - ld a, [hBattleTurn] - and a - jr z, .player - - ld hl, MonsterSpriteGFX + 0 tiles - ld de, sScratch + (2 * 7 + 5) tiles - call .CopyTile - ld hl, MonsterSpriteGFX + 1 tiles - ld de, sScratch + (3 * 7 + 5) tiles - call .CopyTile - ld hl, MonsterSpriteGFX + 2 tiles - ld de, sScratch + (2 * 7 + 6) tiles - call .CopyTile - ld hl, MonsterSpriteGFX + 3 tiles - ld de, sScratch + (3 * 7 + 6) tiles - call .CopyTile - - ld hl, VTiles2 tile $00 - ld de, sScratch - lb bc, BANK(GetSubstitutePic), 7 * 7 - call Request2bpp - jr .done - -.player - ld hl, MonsterSpriteGFX + 4 tiles - ld de, sScratch + (2 * 6 + 4) tiles - call .CopyTile - ld hl, MonsterSpriteGFX + 5 tiles - ld de, sScratch + (3 * 6 + 4) tiles - call .CopyTile - ld hl, MonsterSpriteGFX + 6 tiles - ld de, sScratch + (2 * 6 + 5) tiles - call .CopyTile - ld hl, MonsterSpriteGFX + 7 tiles - ld de, sScratch + (3 * 6 + 5) tiles - call .CopyTile - - ld hl, VTiles2 tile $31 - ld de, sScratch - lb bc, BANK(GetSubstitutePic), 6 * 6 - call Request2bpp - -.done - call CloseSRAM - pop af - ld [rSVBK], a - ret - -.CopyTile: ; cc6c6 (33:46c6) - ld bc, 1 tiles - ld a, BANK(MonsterSpriteGFX) - call FarCopyBytes - ret - -BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf) - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - xor a - call GetSRAMBank - call GetMinimizePic - call Request2bpp - call CloseSRAM - pop af - ld [rSVBK], a - ret - -GetMinimizePic: ; cc6e7 (33:46e7) - ld hl, sScratch - ld bc, $31 tiles -.loop - xor a - ld [hli], a - dec bc - ld a, c - or b - jr nz, .loop - - ld a, [hBattleTurn] - and a - jr z, .player - - ld de, sScratch + $1a tiles - call CopyMinimizePic - ld hl, VTiles2 tile $00 - ld de, sScratch - lb bc, BANK(GetMinimizePic), $31 - ret - -.player - ld de, sScratch + $160 - call CopyMinimizePic - ld hl, VTiles2 tile $31 - ld de, sScratch - lb bc, BANK(GetMinimizePic), $24 - ret - -CopyMinimizePic: ; cc719 (33:4719) - ld hl, MinimizePic - ld bc, $10 - ld a, BANK(MinimizePic) - call FarCopyBytes - ret -; cc725 (33:4725) - -MinimizePic: ; cc725 -INCBIN "gfx/battle/minimize.2bpp" -; cc735 - -BattleAnimCmd_Minimize: ; cc735 (33:4735) - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - xor a - call GetSRAMBank - call GetMinimizePic - ld hl, VTiles0 tile $00 - call Request2bpp - call CloseSRAM - pop af - ld [rSVBK], a - ret - -BattleAnimCmd_DropSub: ; cc750 (33:4750) - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - - ld a, [CurPartySpecies] ; CurPartySpecies - push af - ld a, [hBattleTurn] - and a - jr z, .player - - callfar DropEnemySub - jr .done - -.player - callfar DropPlayerSub - -.done - pop af - ld [CurPartySpecies], a ; CurPartySpecies - pop af - ld [rSVBK], a - ret - -BattleAnimCmd_BeatUp: ; cc776 (33:4776) - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [CurPartySpecies] ; CurPartySpecies - push af - - ld a, [wBattleAnimParam] - ld [CurPartySpecies], a ; CurPartySpecies - - ld a, [hBattleTurn] - and a - jr z, .player - - ld hl, BattleMonDVs - predef GetUnownLetter - ld de, VTiles2 tile $00 - predef GetMonFrontpic - jr .done - -.player - ld hl, EnemyMonDVs - predef GetUnownLetter - ld de, VTiles2 tile $31 - predef GetMonBackpic - -.done - pop af - ld [CurPartySpecies], a ; CurPartySpecies - ld b, SCGB_BATTLE_COLORS - call GetSGBLayout - pop af - ld [rSVBK], a - ret - -BattleAnimCmd_OAMOn: ; cc7bb (33:47bb) - xor a - ld [hOAMUpdate], a - ret - -BattleAnimCmd_OAMOff: ; cc7bf (33:47bf) - ld a, $1 - ld [hOAMUpdate], a - ret - -BattleAnimCmd_ClearSprites: ; cc7c4 (33:47c4) - ld hl, BattleAnimFlags - set 3, [hl] - ret - -BattleAnimCmd_F5: ; cc7ca (33:47ca) - ret - -BattleAnimCmd_F6: ; cc7cb (33:47cb) - ret - -BattleAnimCmd_F7: ; cc7cc (33:47cc) - ret - -BattleAnimCmd_Sound: ; cc7cd (33:47cd) - call GetBattleAnimByte - ld e, a - srl a - srl a - ld [wSFXDuration], a - call .GetCryTrack - and 3 - ld [CryTracks], a ; CryTracks - - ld e, a - ld d, 0 - ld hl, .GetPanning - add hl, de - ld a, [hl] - ld [wStereoPanningMask], a - - call GetBattleAnimByte - ld e, a - ld d, 0 - callfar PlayStereoSFX - - ret -; cc7f8 (33:47f8) - -.GetPanning: ; cc7f8 - db $f0, $0f, $f0, $0f -; cc7fc - -.GetCryTrack: ; cc7fc (33:47fc) - ld a, [hBattleTurn] - and a - jr nz, .enemy - - ld a, e - ret - -.enemy - ld a, e - xor 1 - ret - -BattleAnimCmd_Cry: ; cc807 (33:4807) - call GetBattleAnimByte - and 3 - ld e, a - ld d, 0 - ld hl, .CryData -rept 4 - add hl, de -endr - - ld a, [rSVBK] - push af - ld a, 1 - ld [rSVBK], a - - ld a, [hBattleTurn] - and a - jr nz, .enemy - - ld a, $f0 - ld [CryTracks], a ; CryTracks - ld a, [BattleMonSpecies] ; BattleMonSpecies - jr .done_cry_tracks - -.enemy - ld a, $0f - ld [CryTracks], a ; CryTracks - ld a, [EnemyMonSpecies] ; EnemyMon - -.done_cry_tracks - push hl - call LoadCryHeader - pop hl - jr c, .done - - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - - push hl - ld hl, CryPitch - ld a, [hli] - ld h, [hl] - ld l, a - add hl, bc - ld a, l - ld [CryPitch], a - ld a, h - ld [CryPitch + 1], a - pop hl - - ld a, [hli] - ld c, a - ld b, [hl] - ld hl, CryLength ; CryLength - ld a, [hli] - ld h, [hl] - ld l, a - add hl, bc - - ld a, l - ld [CryLength], a ; CryLength - ld a, h - ld [CryLength + 1], a - ld a, 1 - ld [wStereoPanningMask], a - - callfar _PlayCryHeader - -.done - pop af - ld [rSVBK], a - ret -; cc871 (33:4871) - -.CryData: ; cc871 -; +pitch, +length - dw $0000, $00c0 - dw $0000, $0040 - dw $0000, $0000 - dw $0000, $0000 -; cc881 - - -PlayHitSound: ; cc881 - ld a, [wNumHits] - cp $1 - jr z, .okay - cp $4 - ret nz - -.okay - ld a, [TypeModifier] - and $7f - ret z - - cp 10 - ld de, SFX_DAMAGE - jr z, .play - - ld de, SFX_SUPER_EFFECTIVE - jr nc, .play - - ld de, SFX_NOT_VERY_EFFECTIVE - -.play - call PlaySFX - ret -; cc8a4 - -BattleAnimAssignPals: ; cc8a4 - ld a, [hCGB] - and a - jr nz, .cgb - ld a, [hSGB] - and a - ld a, %11100000 - jr z, .sgb - ld a, %11110000 - -.sgb - ld [wOBP0], a - ld a, %11100100 - ld [wBGP], a - ld [wOBP1], a - ret - -.cgb - ld a, %11100100 - ld [wBGP], a - ld [wOBP0], a - ld [wOBP1], a - call DmgToCgbBGPals - lb de, %11100100, %11100100 - call DmgToCgbObjPals - ret -; cc8d3 - -ClearBattleAnims: ; cc8d3 -; Clear animation block - ld hl, LYOverrides - ld bc, wBattleAnimEnd - LYOverrides -.loop - ld [hl], $0 - inc hl - dec bc - ld a, c - or b - jr nz, .loop - - ld hl, FXAnimID - ld e, [hl] - inc hl - ld d, [hl] - ld hl, BattleAnimations - add hl, de - add hl, de - call GetBattleAnimPointer - call BattleAnimAssignPals - call BattleAnimDelayFrame - ret -; cc8f6 - -BattleAnim_RevertPals: ; cc8f6 - call WaitTop - ld a, %11100100 - ld [wBGP], a - ld [wOBP0], a - ld [wOBP1], a - call DmgToCgbBGPals - lb de, %11100100, %11100100 - call DmgToCgbObjPals - xor a - ld [hSCX], a - ld [hSCY], a - call BattleAnimDelayFrame - ld a, $1 - ld [hBGMapMode], a - ret -; cc91a - -BattleAnim_SetBGPals: ; cc91a - ld [rBGP], a - ld a, [hCGB] - and a - ret z - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld de, UnknBGPals - ld a, [rBGP] - ld b, a - ld c, 7 - call CopyPals - ld hl, OBPals - ld de, UnknOBPals - ld a, [rBGP] - ld b, a - ld c, 2 - call CopyPals - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; cc94b - -BattleAnim_SetOBPals: ; cc94b - ld [rOBP0], a - ld a, [hCGB] - and a - ret z - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, OBPals palette PAL_BATTLE_OB_GRAY - ld de, UnknOBPals palette PAL_BATTLE_OB_GRAY - ld a, [rOBP0] - ld b, a - ld c, 2 - call CopyPals - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; cc96e - -BattleAnim_UpdateOAM_All: ; cc96e - ld a, $0 - ld [wBattleAnimOAMPointerLo], a - ld hl, ActiveAnimObjects - ld e, 10 -.loop - ld a, [hl] - and a - jr z, .next - ld c, l - ld b, h - push hl - push de - call DoBattleAnimFrame - call BattleAnimOAMUpdate - pop de - pop hl - jr c, .done - -.next - ld bc, BATTLEANIMSTRUCT_LENGTH - add hl, bc - dec e - jr nz, .loop - ld a, [wBattleAnimOAMPointerLo] - ld l, a - ld h, HIGH(Sprites) -.loop2 - ld a, l - cp LOW(SpritesEnd) - jr nc, .done - xor a - ld [hli], a - jr .loop2 - -.done - ret -; cc9a1 |