diff options
author | yenatch <yenatch@gmail.com> | 2016-01-04 07:41:19 -0500 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2016-01-04 07:41:19 -0500 |
commit | 0add51451cda9d4221af137f83e2429d3577310c (patch) | |
tree | fd05f8f0ad49d88b032dc9e10af85a42dfa0e402 /battle | |
parent | da87d2a929b1d58175efe063833c124d8ba702c9 (diff) | |
parent | 2a263629a40e201b1702e2f4e65f1c61360cc2b2 (diff) |
Merge pull request #330 from PikalaxALT/scriptmacrorenaming
Scriptmacrorenaming
Diffstat (limited to 'battle')
-rw-r--r-- | battle/ai/items.asm | 6 | ||||
-rwxr-xr-x | battle/ai/move.asm | 222 | ||||
-rwxr-xr-x | battle/ai/redundant.asm | 198 | ||||
-rw-r--r-- | battle/anim_commands.asm | 436 | ||||
-rw-r--r-- | battle/anim_objects.asm | 6479 | ||||
-rw-r--r-- | battle/anims.asm | 4332 | ||||
-rw-r--r-- | battle/bg_effects.asm | 2805 | ||||
-rw-r--r-- | battle/core.asm | 609 | ||||
-rw-r--r-- | battle/effect_commands.asm | 1196 | ||||
-rwxr-xr-x | battle/menu.asm | 118 | ||||
-rwxr-xr-x | battle/objects/data.asm | 573 | ||||
-rwxr-xr-x | battle/objects/engine.asm | 314 | ||||
-rwxr-xr-x | battle/objects/framesets.asm | 1270 | ||||
-rwxr-xr-x | battle/objects/functions.asm | 4156 | ||||
-rwxr-xr-x | battle/objects/gfx_headers.asm | 52 | ||||
-rwxr-xr-x | battle/objects/helpers.asm | 130 | ||||
-rwxr-xr-x | battle/objects/oam.asm | 1086 | ||||
-rwxr-xr-x | battle/sliding_intro.asm | 8 | ||||
-rwxr-xr-x | battle/trainer_huds.asm | 269 | ||||
-rwxr-xr-x | battle/used_move_text.asm | 20 |
20 files changed, 13141 insertions, 11138 deletions
diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 7c11e70b2..2fb479590 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -20,7 +20,7 @@ AI_SwitchOrTryItem: ; 38000 and a jr nz, DontSwitch - ld hl, TrainerClassAttributes + 5 + ld hl, TrainerClassAttributes + TRNATTR_AI_ITEM_SWITCH ld a, [InBattleTowerBattle] ; Load always the first TrainerClass for BattleTower-Trainers and a jr nz, .ok @@ -663,7 +663,7 @@ EnemyPotionFinish: ; 38436 call PrintText_UsedItemOn hlcoord 2, 2 xor a - ld [wd10a], a + ld [wWhichHPBar], a call AIUsedItemSound predef AnimateHPBar jp AIUpdateHUD @@ -866,7 +866,7 @@ PrintText_UsedItemOn: ; 38571 ld [wd265], a call GetItemName ld hl, StringBuffer1 - ld de, wd050 + ld de, wMonOrItemNameBuffer ld bc, ITEM_NAME_LENGTH call CopyBytes ld hl, TextJump_EnemyUsedOn diff --git a/battle/ai/move.asm b/battle/ai/move.asm new file mode 100755 index 000000000..5f58bae3e --- /dev/null +++ b/battle/ai/move.asm @@ -0,0 +1,222 @@ +AIChooseMove: ; 440ce +; Score each move in EnemyMonMoves starting from Buffer1. Lower is better. +; Pick the move with the lowest score. + +; Wildmons attack at random. + ld a, [wBattleMode] + dec a + ret z + + ld a, [wLinkMode] + and a + ret nz + +; No use picking a move if there's no choice. + callba CheckSubstatus_RechargeChargedRampageBideRollout + ret nz + + +; The default score is 20. Unusable moves are given a score of 80. + ld a, 20 + ld hl, Buffer1 +rept 3 + ld [hli], a +endr + ld [hl], a + +; Don't pick disabled moves. + ld a, [EnemyDisabledMove] + and a + jr z, .CheckPP + + ld hl, EnemyMonMoves + ld c, 0 +.CheckDisabledMove + cp [hl] + jr z, .ScoreDisabledMove + inc c + inc hl + jr .CheckDisabledMove +.ScoreDisabledMove + ld hl, Buffer1 + ld b, 0 + add hl, bc + ld [hl], 80 + +; Don't pick moves with 0 PP. +.CheckPP + ld hl, Buffer1 - 1 + ld de, EnemyMonPP + ld b, 0 +.CheckMovePP + inc b + ld a, b + cp EnemyMonMovesEnd - EnemyMonMoves + 1 + jr z, .ApplyLayers + inc hl + ld a, [de] + inc de + and $3f + jr nz, .CheckMovePP + ld [hl], 80 + jr .CheckMovePP + + +; Apply AI scoring layers depending on the trainer class. +.ApplyLayers + ld hl, TrainerClassAttributes + TRNATTR_AI_MOVE_WEIGHTS + + ; If we have a battle in BattleTower just load the Attributes of the first TrainerClass (Falkner) + ; so we have always the same AI, regardless of the loaded class of trainer + ld a, [InBattleTowerBattle] + bit 0, a + jr nz, .battle_tower_skip + + ld a, [TrainerClass] + dec a + ld bc, 7 ; Trainer2AI - Trainer1AI + call AddNTimes + +.battle_tower_skip + lb bc, CHECK_FLAG, 0 + push bc + push hl + +.CheckLayer + pop hl + pop bc + + ld a, c + cp 16 ; up to 16 scoring layers + jr z, .DecrementScores + + push bc + ld d, BANK(TrainerClassAttributes) + predef FlagPredef + ld d, c + pop bc + + inc c + push bc + push hl + + ld a, d + and a + jr z, .CheckLayer + + ld hl, AIScoringPointers + dec c + ld b, 0 +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld a, BANK(AIScoring) + call FarCall_hl + + jr .CheckLayer + +; Decrement the scores of all moves one by one until one reaches 0. +.DecrementScores + ld hl, Buffer1 + ld de, EnemyMonMoves + ld c, EnemyMonMovesEnd - EnemyMonMoves + +.DecrementNextScore + ; If the enemy has no moves, this will infinite. + ld a, [de] + inc de + and a + jr z, .DecrementScores + + ; We are done whenever a score reaches 0 + dec [hl] + jr z, .PickLowestScoreMoves + + ; If we just decremented the fourth move's score, go back to the first move + inc hl + dec c + jr z, .DecrementScores + + jr .DecrementNextScore + +; In order to avoid bias towards the moves located first in memory, increment the scores +; that were decremented one more time than the rest (in case there was a tie). +; This means that the minimum score will be 1. +.PickLowestScoreMoves + ld a, c + +.move_loop + inc [hl] + dec hl + inc a + cp NUM_MOVES + 1 + jr nz, .move_loop + + ld hl, Buffer1 + ld de, EnemyMonMoves + ld c, NUM_MOVES + +; Give a score of 0 to a blank move +.loop2 + ld a, [de] + and a + jr nz, .skip_load + ld [hl], a + +; Disregard the move if its score is not 1 +.skip_load + ld a, [hl] + dec a + jr z, .keep + xor a + ld [hli], a + jr .after_toss + +.keep + ld a, [de] + ld [hli], a +.after_toss + inc de + dec c + jr nz, .loop2 + +; Randomly choose one of the moves with a score of 1 +.ChooseMove + ld hl, Buffer1 + call Random + and 3 + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] + and a + jr z, .ChooseMove + + ld [CurEnemyMove], a + ld a, c + ld [CurEnemyMoveNum], a + ret +; 441af + + +AIScoringPointers: ; 441af + dw AI_Basic + dw AI_Setup + dw AI_Types + dw AI_Offensive + dw AI_Smart + dw AI_Opportunist + dw AI_Aggressive + dw AI_Cautious + dw AI_Status + dw AI_Risky + dw AI_None + dw AI_None + dw AI_None + dw AI_None + dw AI_None + dw AI_None +; 441cf diff --git a/battle/ai/redundant.asm b/battle/ai/redundant.asm new file mode 100755 index 000000000..da71d0ece --- /dev/null +++ b/battle/ai/redundant.asm @@ -0,0 +1,198 @@ +AI_Redundant: ; 2c41a +; Check if move effect c will fail because it's already been used. +; Return z if the move is a good choice. +; Return nz if the move is a bad choice. + ld a, c + ld de, 3 + ld hl, .Moves + call IsInArray + jp nc, .NotRedundant + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.Moves: ; 2c42c + dbw EFFECT_DREAM_EATER, .DreamEater + dbw EFFECT_HEAL, .Heal + dbw EFFECT_LIGHT_SCREEN, .LightScreen + dbw EFFECT_MIST, .Mist + dbw EFFECT_FOCUS_ENERGY, .FocusEnergy + dbw EFFECT_CONFUSE, .Confuse + dbw EFFECT_TRANSFORM, .Transform + dbw EFFECT_REFLECT, .Reflect + dbw EFFECT_SUBSTITUTE, .Substitute + dbw EFFECT_LEECH_SEED, .LeechSeed + dbw EFFECT_DISABLE, .Disable + dbw EFFECT_ENCORE, .Encore + dbw EFFECT_SNORE, .Snore + dbw EFFECT_SLEEP_TALK, .SleepTalk + dbw EFFECT_MEAN_LOOK, .MeanLook + dbw EFFECT_NIGHTMARE, .Nightmare + dbw EFFECT_SPIKES, .Spikes + dbw EFFECT_FORESIGHT, .Foresight + dbw EFFECT_PERISH_SONG, .PerishSong + dbw EFFECT_SANDSTORM, .Sandstorm + dbw EFFECT_ATTRACT, .Attract + dbw EFFECT_SAFEGUARD, .Safeguard + dbw EFFECT_RAIN_DANCE, .RainDance + dbw EFFECT_SUNNY_DAY, .SunnyDay + dbw EFFECT_TELEPORT, .Teleport + dbw EFFECT_MORNING_SUN, .MorningSun + dbw EFFECT_SYNTHESIS, .Synthesis + dbw EFFECT_MOONLIGHT, .Moonlight + dbw EFFECT_SWAGGER, .Swagger + dbw EFFECT_FUTURE_SIGHT, .FutureSight + db -1 + +.LightScreen: ; 2c487 + ld a, [EnemyScreens] + bit SCREENS_LIGHT_SCREEN, a + ret + +.Mist: ; 2c48d + ld a, [EnemySubStatus4] + bit SUBSTATUS_MIST, a + ret + +.FocusEnergy: ; 2c493 + ld a, [EnemySubStatus4] + bit SUBSTATUS_FOCUS_ENERGY, a + ret + +.Confuse: ; 2c499 + ld a, [PlayerSubStatus3] + bit SUBSTATUS_CONFUSED, a + ret nz + ld a, [PlayerScreens] + bit SCREENS_SAFEGUARD, a + ret + +.Transform: ; 2c4a5 + ld a, [EnemySubStatus5] + bit SUBSTATUS_TRANSFORMED, a + ret + +.Reflect: ; 2c4ab + ld a, [EnemyScreens] + bit SCREENS_REFLECT, a + ret + +.Substitute: ; 2c4b1 + ld a, [EnemySubStatus4] + bit SUBSTATUS_SUBSTITUTE, a + ret + +.LeechSeed: ; 2c4b7 + ld a, [PlayerSubStatus4] + bit SUBSTATUS_LEECH_SEED, a + ret + +.Disable: ; 2c4bd + ld a, [PlayerDisableCount] + and a + ret + +.Encore: ; 2c4c2 + ld a, [PlayerSubStatus5] + bit SUBSTATUS_ENCORED, a + ret + +.Snore: +.SleepTalk: ; 2c4c8 + ld a, [EnemyMonStatus] + and SLP + jr z, .Redundant + jr .NotRedundant + +.MeanLook: ; 2c4d1 + ld a, [EnemySubStatus5] + bit SUBSTATUS_CANT_RUN, a + ret + +.Nightmare: ; 2c4d7 + ld a, [BattleMonStatus] + and a + jr z, .Redundant + ld a, [PlayerSubStatus1] + bit SUBSTATUS_NIGHTMARE, a + ret + +.Spikes: ; 2c4e3 + ld a, [PlayerScreens] + bit SCREENS_SPIKES, a + ret + +.Foresight: ; 2c4e9 + ld a, [PlayerSubStatus1] + bit SUBSTATUS_IDENTIFIED, a + ret + +.PerishSong: ; 2c4ef + ld a, [PlayerSubStatus1] + bit SUBSTATUS_PERISH, a + ret + +.Sandstorm: ; 2c4f5 + ld a, [Weather] + cp WEATHER_SANDSTORM + jr z, .Redundant + jr .NotRedundant + +.Attract: ; 2c4fe + callba CheckOppositeGender + jr c, .Redundant + ld a, [PlayerSubStatus1] + bit SUBSTATUS_IN_LOVE, a + ret + +.Safeguard: ; 2c50c + ld a, [EnemyScreens] + bit SCREENS_SAFEGUARD, a + ret + +.RainDance: ; 2c512 + ld a, [Weather] + cp WEATHER_RAIN + jr z, .Redundant + jr .NotRedundant + +.SunnyDay: ; 2c51b + ld a, [Weather] + cp WEATHER_SUN + jr z, .Redundant + jr .NotRedundant + +.DreamEater: ; 2c524 + ld a, [BattleMonStatus] + and SLP + jr z, .Redundant + jr .NotRedundant + +.Swagger: ; 2c52d + ld a, [PlayerSubStatus3] + bit SUBSTATUS_CONFUSED, a + ret + +.FutureSight: ; 2c533 + ld a, [EnemyScreens] + bit 5, a + ret + +.Heal: +.MorningSun: +.Synthesis: +.Moonlight: ; 2c539 + callba AICheckEnemyMaxHP + jr nc, .NotRedundant + +.Teleport: +.Redundant: ; 2c541 + ld a, 1 + and a + ret + +.NotRedundant: ; 2c545 + xor a + ret diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index ebc6a8a43..266b76af2 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -77,7 +77,7 @@ BattleAnimRunScript: ; cc11c call BattleAnimRestoreHuds .disabled - ld a, [wcfca] + ld a, [wNumHits] and a jr z, .done @@ -92,54 +92,54 @@ BattleAnimRunScript: ; cc11c .hi_byte call WaitSFX - call Functioncc881 + call PlayHitSound call RunBattleAnimScript .done - call Functioncc8f6 + call BattleAnim_RevertPals ret ; cc163 RunBattleAnimScript: ; cc163 - call Functioncc8d3 + call ClearBattleAnims .playframe - call Functioncc25f - call Functionccb48 - call Functioncc96e + call RunBattleAnimCommand + call _ExecuteBGEffects + call BattleAnim_UpdateOAM_All call Function3b0c call BattleAnimRequestPals ; Speed up Rollout's animation. ld a, [FXAnimIDHi] or a - jr nz, .asm_cc193 + jr nz, .not_rollout ld a, [FXAnimIDLo] cp ROLLOUT - jr nz, .asm_cc193 + jr nz, .not_rollout ld a, $2e ld b, 5 ld de, 4 ld hl, ActiveBGEffects -.asm_cc18c +.find cp [hl] - jr z, .asm_cc196 + jr z, .done add hl, de dec b - jr nz, .asm_cc18c + jr nz, .find -.asm_cc193 +.not_rollout call BattleAnimDelayFrame -.asm_cc196 +.done ld a, [BattleAnimFlags] bit 0, a jr z, .playframe - call Functioncc23d + call BattleAnim_ClearCGB_OAMFlags ret ; cc1a1 @@ -191,15 +191,15 @@ BattleAnimRequestPals: ; cc1e2 ld a, [rBGP] ld b, a - ld a, [wcfc7] + ld a, [wBGP] cp b - call nz, Functioncc91a + call nz, BattleAnim_SetBGPals ld a, [rOBP0] ld b, a - ld a, [wcfc8] + ld a, [wOBP0] cp b - call nz, Functioncc94b + call nz, BattleAnim_SetOBPals ret ; cc1fb @@ -241,7 +241,7 @@ Functioncc220: ; cc220 ld [hBGMapAddress], a ld a, (VBGMap0 tile $28) / $100 ld [hBGMapAddress + 1], a - call Function3200 + call WaitBGMap2 ld a, $60 ld [hWY], a xor a @@ -253,11 +253,11 @@ Functioncc220: ; cc220 ; cc23d -Functioncc23d: ; cc23d +BattleAnim_ClearCGB_OAMFlags: ; cc23d ld a, [BattleAnimFlags] bit 3, a - jr z, .skip + jr z, .delete ld hl, Sprites + 3 ld c, (SpritesEnd - Sprites) / 4 @@ -272,7 +272,7 @@ endr jr nz, .loop ret -.skip +.delete ld hl, Sprites ld c, SpritesEnd - Sprites xor a @@ -283,7 +283,7 @@ endr ret ; cc25f -Functioncc25f: ; cc25f +RunBattleAnimCommand: ; cc25f call .CheckTimer ret nc call .RunScript @@ -341,9 +341,8 @@ Functioncc25f: ; cc25f ld e, a ld d, 0 ld hl, BattleAnimCommands -rept 2 add hl, de -endr + add hl, de ld a, [hli] ld h, [hl] @@ -460,19 +459,19 @@ BattleAnimCmd_Loop: ; cc348 (33:4348) call GetBattleAnimByte ld hl, BattleAnimFlags bit 2, [hl] - jr nz, .asm_cc35b + jr nz, .continue_loop and a - jr z, .asm_cc363 + jr z, .perpetual dec a set 2, [hl] ld [BattleAnimLoops], a -.asm_cc35b +.continue_loop ld hl, BattleAnimLoops ld a, [hl] and a - jr z, .asm_cc372 + jr z, .return_from_loop dec [hl] -.asm_cc363 +.perpetual call GetBattleAnimByte ld e, a call GetBattleAnimByte @@ -482,26 +481,26 @@ BattleAnimCmd_Loop: ; cc348 (33:4348) inc hl ld [hl], d ret -.asm_cc372 + +.return_from_loop ld hl, BattleAnimFlags res 2, [hl] ld hl, BattleAnimAddress ld e, [hl] inc hl ld d, [hl] -rept 2 inc de -endr + inc de ld [hl], d dec hl ld [hl], e ret BattleAnimCmd_JumpUntil: ; cc383 (33:4383) - ld hl, wKickCounter + ld hl, wBattleAnimParam ld a, [hl] and a - jr z, .asm_cc39a + jr z, .dont_jump dec [hl] call GetBattleAnimByte @@ -514,14 +513,13 @@ BattleAnimCmd_JumpUntil: ; cc383 (33:4383) ld [hl], d ret -.asm_cc39a +.dont_jump ld hl, BattleAnimAddress ld e, [hl] inc hl ld d, [hl] -rept 2 inc de -endr + inc de ld [hl], d dec hl ld [hl], e @@ -547,9 +545,8 @@ BattleAnimCmd_JumpVar: ; cc3b2 (33:43b2) ld e, [hl] inc hl ld d, [hl] -rept 2 inc de -endr + inc de ld [hl], d dec hl ld [hl], e @@ -568,7 +565,7 @@ endr BattleAnimCmd_JumpIf: ; cc3d6 (33:43d6) call GetBattleAnimByte - ld hl, wKickCounter + ld hl, wBattleAnimParam cp [hl] jr z, .jump @@ -576,9 +573,8 @@ BattleAnimCmd_JumpIf: ; cc3d6 (33:43d6) ld e, [hl] inc hl ld d, [hl] -rept 2 inc de -endr + inc de ld [hl], d dec hl ld [hl], e @@ -598,7 +594,7 @@ endr BattleAnimCmd_JumpAnd: ; cc3fa (33:43fa) call GetBattleAnimByte ld e, a - ld a, [wKickCounter] + ld a, [wBattleAnimParam] and e jr nz, .jump @@ -606,9 +602,8 @@ BattleAnimCmd_JumpAnd: ; cc3fa (33:43fa) ld e, [hl] inc hl ld d, [hl] -rept 2 inc de -endr + inc de ld [hl], d dec hl ld [hl], e @@ -625,62 +620,63 @@ endr ret BattleAnimCmd_Obj: ; cc41f (33:441f) +; index, x, y, param call GetBattleAnimByte - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a call GetBattleAnimByte - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a call GetBattleAnimByte - ld [BattleAnimTemps + 2], a + ld [wBattleAnimTemp2], a call GetBattleAnimByte - ld [BattleAnimTemps + 3], a - call Functioncc9a1 + ld [wBattleAnimTemp3], a + call QueueBattleAnimation ret BattleAnimCmd_BGEffect: ; cc43b (33:443b) call GetBattleAnimByte - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a call GetBattleAnimByte - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a call GetBattleAnimByte - ld [BattleAnimTemps + 2], a + ld [wBattleAnimTemp2], a call GetBattleAnimByte - ld [BattleAnimTemps + 3], a - call Functionccb4f + ld [wBattleAnimTemp3], a + call _QueueBGEffect ret BattleAnimCmd_BGP: ; cc457 (33:4457) call GetBattleAnimByte - ld [wcfc7], a + ld [wBGP], a ret BattleAnimCmd_OBP0: ; cc45e (33:445e) call GetBattleAnimByte - ld [wcfc8], a + ld [wOBP0], a ret BattleAnimCmd_OBP1: ; cc465 (33:4465) call GetBattleAnimByte - ld [wcfc9], a + ld [wOBP1], a ret BattleAnimCmd_ResetObp0: ; cc46c (33:446c) ld a, [hSGB] and a ld a, $e0 - jr z, .asm_cc475 + jr z, .not_sgb ld a, $f0 -.asm_cc475 - ld [wcfc8], a +.not_sgb + ld [wOBP0], a ret BattleAnimCmd_ClearObjs: ; cc479 (33:4479) - ld hl, OTPartyMon3HP + ld hl, ActiveAnimObjects ld a, $a0 -.asm_cc47e +.loop ld [hl], $0 inc hl dec a - jr nz, .asm_cc47e + jr nz, .loop ret BattleAnimCmd_1GFX: @@ -691,16 +687,16 @@ BattleAnimCmd_5GFX: ; cc485 (33:4485) ld a, [BattleAnimByte] and $f ld c, a - ld hl, w5_d300 + ld hl, wBattleAnimTileDict xor a - ld [BattleAnimTemps], a -.asm_cc492 - ld a, [BattleAnimTemps] - cp $4f + ld [wBattleAnimTemp0], a +.loop + ld a, [wBattleAnimTemp0] + cp (VTiles1 - VTiles0) / $10 - $31 ret nc call GetBattleAnimByte ld [hli], a - ld a, [BattleAnimTemps] + ld a, [wBattleAnimTemp0] ld [hli], a push bc push hl @@ -712,102 +708,104 @@ endr ld de, VTiles0 tile $31 add hl, de ld a, [BattleAnimByte] - call Functionce846 - ld a, [BattleAnimTemps] + call LoadBattleAnimObj + ld a, [wBattleAnimTemp0] add c - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a pop hl pop bc dec c - jr nz, .asm_cc492 + jr nz, .loop ret BattleAnimCmd_IncObj: ; cc4c0 (33:44c0) call GetBattleAnimByte - ld e, $a - ld bc, OTPartyMon3HP -.asm_cc4c8 - ld hl, $0 + ld e, 10 + ld bc, ActiveAnimObjects +.loop + ld hl, BATTLEANIMSTRUCT_INDEX add hl, bc ld d, [hl] ld a, [BattleAnimByte] cp d - jr z, .asm_cc4dd - ld hl, $18 + jr z, .found + ld hl, BATTLEANIMSTRUCT_LENGTH add hl, bc ld c, l ld b, h dec e - jr nz, .asm_cc4c8 + jr nz, .loop ret -.asm_cc4dd - ld hl, $e + +.found + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX add hl, bc inc [hl] ret BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3) call GetBattleAnimByte - ld e, $5 + ld e, 5 ld bc, ActiveBGEffects -.asm_cc4eb +.loop ld hl, $0 add hl, bc ld d, [hl] ld a, [BattleAnimByte] cp d - jr z, .asm_cc500 - ld hl, $4 + jr z, .found + ld hl, 4 add hl, bc ld c, l ld b, h dec e - jr nz, .asm_cc4eb + jr nz, .loop ret -.asm_cc500 - ld hl, $1 + +.found + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc inc [hl] ret BattleAnimCmd_SetObj: ; cc506 (33:4506) call GetBattleAnimByte - ld e, $a - ld bc, OTPartyMon3HP -.asm_cc50e - ld hl, $0 + ld e, 10 + ld bc, ActiveAnimObjects +.loop + ld hl, BATTLEANIMSTRUCT_INDEX add hl, bc ld d, [hl] ld a, [BattleAnimByte] cp d - jr z, .asm_cc523 - ld hl, $18 + jr z, .found + ld hl, BATTLEANIMSTRUCT_LENGTH add hl, bc ld c, l ld b, h dec e - jr nz, .asm_cc50e + jr nz, .loop ret -.asm_cc523 + +.found call GetBattleAnimByte - ld hl, $e + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX add hl, bc ld [hl], a ret BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c) - ld hl, w5_d300 -.asm_cc52f + ld hl, wBattleAnimTileDict +.loop ld a, [hl] and a - jr z, .asm_cc537 -rept 2 + jr z, .okay inc hl -endr - jr .asm_cc52f + inc hl + jr .loop -.asm_cc537 +.okay ld a, $28 ld [hli], a ld a, $42 @@ -820,50 +818,49 @@ endr ld hl, VTiles0 tile $73 ld de, VTiles2 tile $06 ld a, $70 - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a ld a, $7 - call Functioncc561 + call .LoadFootprint ld de, VTiles2 tile $31 ld a, $60 - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a ld a, $6 - call Functioncc561 + call .LoadFootprint ret -Functioncc561: ; cc561 (33:4561) +.LoadFootprint: ; cc561 (33:4561) push af push hl push de - ld bc, $3301 + lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 1 call Request2bpp pop de - ld a, [BattleAnimTemps] + ld a, [wBattleAnimTemp0] ld l, a - ld h, $0 + ld h, 0 add hl, de ld e, l ld d, h pop hl - ld bc, $10 + ld bc, 1 tiles add hl, bc pop af dec a - jr nz, Functioncc561 + jr nz, .LoadFootprint ret BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e) - ld hl, w5_d300 -.asm_cc581 + ld hl, wBattleAnimTileDict +.loop ld a, [hl] and a - jr z, .asm_cc589 -rept 2 + jr z, .okay inc hl -endr - jr .asm_cc581 + inc hl + jr .loop -.asm_cc589 +.okay ld a, $28 ld [hli], a ld a, $35 @@ -876,35 +873,35 @@ endr ld hl, VTiles0 tile $66 ld de, VTiles2 tile $05 ld a, $70 - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a ld a, $7 - call Functioncc5b3 + call .LoadHead ld de, VTiles2 tile $31 ld a, $60 - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a ld a, $6 - call Functioncc5b3 + call .LoadHead ret -Functioncc5b3: ; cc5b3 (33:45b3) +.LoadHead: ; cc5b3 (33:45b3) push af push hl push de - ld bc, $3302 + lb bc, BANK(BattleAnimCmd_EnemyFeetObj), 2 call Request2bpp pop de - ld a, [BattleAnimTemps] + ld a, [wBattleAnimTemp0] ld l, a - ld h, $0 + ld h, 0 add hl, de ld e, l ld d, h pop hl - ld bc, $20 + ld bc, 2 tiles add hl, bc pop af dec a - jr nz, Functioncc5b3 + jr nz, .LoadHead ret BattleAnimCmd_CheckPokeball: ; cc5d0 (33:45d0) @@ -996,18 +993,18 @@ GetSubstitutePic: ; cc64c and a jr z, .player - ld hl, MonsterSpriteGFX - ld de, sScratch + $130 - call CopyMonsterSpriteTile - ld hl, MonsterSpriteGFX + $10 - ld de, sScratch + $1a0 - call CopyMonsterSpriteTile - ld hl, MonsterSpriteGFX + $20 - ld de, sScratch + $140 - call CopyMonsterSpriteTile - ld hl, MonsterSpriteGFX + $30 - ld de, sScratch + $1b0 - call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + 0 tiles + ld de, sScratch + $13 tiles + call .CopyTile + ld hl, MonsterSpriteGFX + 1 tiles + ld de, sScratch + $1a tiles + call .CopyTile + ld hl, MonsterSpriteGFX + 2 tiles + ld de, sScratch + $14 tiles + call .CopyTile + ld hl, MonsterSpriteGFX + 3 tiles + ld de, sScratch + $1b tiles + call .CopyTile ld hl, VTiles2 tile $00 ld de, sScratch @@ -1016,18 +1013,18 @@ GetSubstitutePic: ; cc64c jr .done .player - ld hl, MonsterSpriteGFX + $40 - ld de, sScratch + $100 - call CopyMonsterSpriteTile - ld hl, MonsterSpriteGFX + $50 - ld de, sScratch + $160 - call CopyMonsterSpriteTile - ld hl, MonsterSpriteGFX + $60 - ld de, sScratch + $110 - call CopyMonsterSpriteTile - ld hl, MonsterSpriteGFX + $70 - ld de, sScratch + $170 - call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + 4 tiles + ld de, sScratch + $10 tiles + call .CopyTile + ld hl, MonsterSpriteGFX + 5 tiles + ld de, sScratch + $16 tiles + call .CopyTile + ld hl, MonsterSpriteGFX + 6 tiles + ld de, sScratch + $11 tiles + call .CopyTile + ld hl, MonsterSpriteGFX + 7 tiles + ld de, sScratch + $17 tiles + call .CopyTile ld hl, VTiles2 tile $31 ld de, sScratch @@ -1040,8 +1037,8 @@ GetSubstitutePic: ; cc64c ld [rSVBK], a ret -CopyMonsterSpriteTile: ; cc6c6 (33:46c6) - ld bc, $10 +.CopyTile: ; cc6c6 (33:46c6) + ld bc, 1 tiles ld a, BANK(MonsterSpriteGFX) call FarCopyBytes ret @@ -1062,7 +1059,7 @@ BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf) GetMinimizePic: ; cc6e7 (33:46e7) ld hl, sScratch - ld bc, $310 + ld bc, $31 tiles .loop xor a ld [hli], a @@ -1075,7 +1072,7 @@ GetMinimizePic: ; cc6e7 (33:46e7) and a jr z, .player - ld de, sScratch + $1a0 + ld de, sScratch + $1a tiles call CopyMinimizePic ld hl, VTiles2 tile $00 ld de, sScratch @@ -1129,11 +1126,11 @@ BattleAnimCmd_DropSub: ; cc750 (33:4750) and a jr z, .player - callab Function3f486 + callab DropEnemySub jr .done .player - callab Function3f447 + callab DropPlayerSub .done pop af @@ -1150,21 +1147,21 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776) ld a, [CurPartySpecies] ; CurPartySpecies push af - ld a, [wKickCounter] + ld a, [wBattleAnimParam] ld [CurPartySpecies], a ; CurPartySpecies ld a, [hBattleTurn] and a jr z, .player - ld hl, BattleMonDVs ; BattleMonDVs + ld hl, BattleMonDVs predef GetUnownLetter ld de, VTiles2 tile $00 predef GetFrontpic jr .done .player - ld hl, EnemyMonDVs ; EnemyMonDVs + ld hl, EnemyMonDVs predef GetUnownLetter ld de, VTiles2 tile $31 predef GetBackpic @@ -1172,7 +1169,7 @@ BattleAnimCmd_BeatUp: ; cc776 (33:4776) .done pop af ld [CurPartySpecies], a ; CurPartySpecies - ld b, SCGB_01 + ld b, SCGB_BATTLE_COLORS call GetSGBLayout pop af ld [rSVBK], a @@ -1207,17 +1204,17 @@ BattleAnimCmd_Sound: ; cc7cd (33:47cd) ld e, a srl a srl a - ld [wc2be], a - call Functioncc7fc + ld [wSFXDuration], a + call .GetCryTrack and 3 ld [CryTracks], a ; CryTracks ld e, a ld d, 0 - ld hl, Datacc7f8 + ld hl, .GetPanning add hl, de ld a, [hl] - ld [wc2bc], a + ld [wStereoPanningMask], a call GetBattleAnimByte ld e, a @@ -1227,11 +1224,11 @@ BattleAnimCmd_Sound: ; cc7cd (33:47cd) ret ; cc7f8 (33:47f8) -Datacc7f8: ; cc7f8 +.GetPanning: ; cc7f8 db $f0, $0f, $f0, $0f ; cc7fc -Functioncc7fc: ; cc7fc (33:47fc) +.GetCryTrack: ; cc7fc (33:47fc) ld a, [hBattleTurn] and a jr nz, .enemy @@ -1249,7 +1246,7 @@ BattleAnimCmd_Cry: ; cc807 (33:4807) and 3 ld e, a ld d, 0 - ld hl, Datacc871 + ld hl, .CryData rept 4 add hl, de endr @@ -1266,14 +1263,14 @@ endr ld a, $f0 ld [CryTracks], a ; CryTracks ld a, [BattleMonSpecies] ; BattleMonSpecies - jr .asm_cc834 + jr .done_cry_tracks .enemy ld a, $0f ld [CryTracks], a ; CryTracks ld a, [EnemyMonSpecies] ; EnemyMon -.asm_cc834 +.done_cry_tracks push hl call LoadCryHeader pop hl @@ -1310,7 +1307,7 @@ endr ld a, h ld [CryLength + 1], a ld a, 1 - ld [wc2bc], a + ld [wStereoPanningMask], a callab _PlayCryHeader @@ -1320,17 +1317,17 @@ endr ret ; cc871 (33:4871) -Datacc871: ; cc871 +.CryData: ; cc871 ; +pitch, +length - dw 0, $c0 - dw 0, $40 - dw 0, $00 - dw 0, $00 + dw $0000, $00c0 + dw $0000, $0040 + dw $0000, $0000 + dw $0000, $0000 ; cc881 -Functioncc881: ; cc881 - ld a, [wcfca] +PlayHitSound: ; cc881 + ld a, [wNumHits] cp $1 jr z, .okay cp $4 @@ -1366,24 +1363,24 @@ BattleAnimAssignPals: ; cc8a4 ld a, %11110000 .sgb - ld [wcfc8], a + ld [wOBP0], a ld a, %11100100 - ld [wcfc7], a - ld [wcfc9], a + ld [wBGP], a + ld [wOBP1], a ret .cgb ld a, %11100100 - ld [wcfc7], a - ld [wcfc8], a - ld [wcfc9], a + ld [wBGP], a + ld [wOBP0], a + ld [wOBP1], a call DmgToCgbBGPals lb de, %11100100, %11100100 call DmgToCgbObjPals ret ; cc8d3 -Functioncc8d3: ; cc8d3 +ClearBattleAnims: ; cc8d3 ; Clear animation block ld hl, LYOverrides ld bc, wBattleAnimEnd - LYOverrides @@ -1400,21 +1397,20 @@ Functioncc8d3: ; cc8d3 inc hl ld d, [hl] ld hl, BattleAnimations -rept 2 add hl, de -endr + add hl, de call GetBattleAnimPointer call BattleAnimAssignPals call BattleAnimDelayFrame ret ; cc8f6 -Functioncc8f6: ; cc8f6 +BattleAnim_RevertPals: ; cc8f6 call WaitTop ld a, %11100100 - ld [wcfc7], a - ld [wcfc8], a - ld [wcfc9], a + ld [wBGP], a + ld [wOBP0], a + ld [wOBP1], a call DmgToCgbBGPals lb de, %11100100, %11100100 call DmgToCgbObjPals @@ -1427,7 +1423,7 @@ Functioncc8f6: ; cc8f6 ret ; cc91a -Functioncc91a: ; cc91a +BattleAnim_SetBGPals: ; cc91a ld [rBGP], a ld a, [hCGB] and a @@ -1455,7 +1451,7 @@ Functioncc91a: ; cc91a ret ; cc94b -Functioncc94b: ; cc94b +BattleAnim_SetOBPals: ; cc94b ld [rOBP0], a ld a, [hCGB] and a @@ -1477,41 +1473,41 @@ Functioncc94b: ; cc94b ret ; cc96e -Functioncc96e: ; cc96e +BattleAnim_UpdateOAM_All: ; cc96e ld a, $0 - ld [w5_d418], a - ld hl, OTPartyMon3HP - ld e, $a -.asm_cc978 + ld [wBattleAnimOAMPointerLo], a + ld hl, ActiveAnimObjects + ld e, 10 +.loop ld a, [hl] and a - jr z, .asm_cc98a + jr z, .next ld c, l ld b, h push hl push de - call Functionccfbe - call Functioncca09 + call DoBattleAnimFrame + call BattleAnimOAMUpdate pop de pop hl - jr c, .asm_cc9a0 + jr c, .done -.asm_cc98a - ld bc, $0018 +.next + ld bc, BATTLEANIMSTRUCT_LENGTH add hl, bc dec e - jr nz, .asm_cc978 - ld a, [w5_d418] + jr nz, .loop + ld a, [wBattleAnimOAMPointerLo] ld l, a - ld h, $c4 -.asm_cc997 + ld h, Sprites / $100 +.loop2 ld a, l - cp $a0 - jr nc, .asm_cc9a0 + cp SpritesEnd % $100 + jr nc, .done xor a ld [hli], a - jr .asm_cc997 + jr .loop2 -.asm_cc9a0 +.done ret ; cc9a1 diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm index 3fc6e7c7d..786a035bf 100644 --- a/battle/anim_objects.asm +++ b/battle/anim_objects.asm @@ -1,6474 +1,9 @@ ; Objects used in battle animations. - -Functioncc9a1: ; cc9a1 (33:49a1) - ld hl, OTPartyMon3HP - ld e, $a -.asm_cc9a6 - ld a, [hl] - and a - jr z, .asm_cc9b3 - ld bc, $18 - add hl, bc - dec e - jr nz, .asm_cc9a6 - scf - ret -.asm_cc9b3 - ld c, l - ld b, h - ld hl, w5_d40e - inc [hl] - call Functioncc9c4 - ret - - -Functioncc9bd: ; cc9bd - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -; cc9c4 - - -Functioncc9c4: ; cc9c4 (33:49c4) - ld a, [BattleAnimTemps] - ld e, a - ld d, 0 - ld hl, BattleAnimObjects -rept 6 - add hl, de -endr - ld e, l - ld d, h - ld hl, $0 - add hl, bc - ld a, [w5_d40e] - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - call Functionccb31 - ld [hli], a - ld a, [BattleAnimTemps + 1] - ld [hli], a - ld a, [BattleAnimTemps + 2] - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld a, [BattleAnimTemps + 3] - ld [hli], a - xor a - ld [hli], a - dec a - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - ret - - -Functioncca09: ; cca09 - call Functionccaaa - call Functionce7d1 - cp $fd - jp z, .asm_ccaa5 - cp $fc - jp z, .asm_ccaa2 - push af - ld hl, BattleAnimTemps - ld a, [BattleAnimTemps + 7] - xor [hl] - and $e0 - ld [hl], a - pop af - push bc - call Functionce83c - ld a, [BattleAnimTemps + 2] - add [hl] - ld [BattleAnimTemps + 2], a - inc hl - ld a, [hli] - ld c, a - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [w5_d418] - ld e, a - ld d, $c4 -.asm_cca3c - ld a, [BattleAnimTemps + 4] - ld b, a - ld a, [BattleAnimTemps + 6] - add b - ld b, a - push hl - ld a, [hl] - ld hl, BattleAnimTemps - bit 6, [hl] - jr z, .asm_cca53 - add $8 - xor $ff - inc a - -.asm_cca53 - pop hl - add b - ld [de], a - inc hl - inc de - ld a, [BattleAnimTemps + 3] - ld b, a - ld a, [BattleAnimTemps + 5] - add b - ld b, a - push hl - ld a, [hl] - ld hl, BattleAnimTemps - bit 5, [hl] - jr z, .asm_cca6f - add $8 - xor $ff - inc a - -.asm_cca6f - pop hl - add b - ld [de], a - inc hl - inc de - ld a, [BattleAnimTemps + 2] - add $31 - add [hl] - ld [de], a - inc hl - inc de - ld a, [BattleAnimTemps] - ld b, a - ld a, [hl] - xor b - and $e0 - ld b, a - ld a, [hl] - and $10 - or b - ld b, a - ld a, [BattleAnimTemps + 8] - and $f - or b - ld [de], a - inc hl - inc de - ld a, e - ld [w5_d418], a - cp $a0 - jr nc, .asm_ccaa7 - dec c - jr nz, .asm_cca3c - pop bc - jr .asm_ccaa5 - -.asm_ccaa2 - call Functioncc9bd - -.asm_ccaa5 - and a - ret - -.asm_ccaa7 - pop bc - scf - ret -; ccaaa - -Functionccaaa: ; ccaaa - ld hl, $0001 - add hl, bc - ld a, [hl] - and $80 - ld [BattleAnimTemps], a - xor a - ld [BattleAnimTemps + 7], a - ld hl, $0005 - add hl, bc - ld a, [hl] - ld [BattleAnimTemps + 8], a - ld hl, $0002 - add hl, bc - ld a, [hl] - ld [BattleAnimTemps + 1], a - ld hl, $0006 - add hl, bc - ld a, [hli] - ld [BattleAnimTemps + 2], a - ld a, [hli] - ld [BattleAnimTemps + 3], a - ld a, [hli] - ld [BattleAnimTemps + 4], a - ld a, [hli] - ld [BattleAnimTemps + 5], a - ld a, [hli] - ld [BattleAnimTemps + 6], a - ld a, [hBattleTurn] - and a - ret z - ld hl, $0001 - add hl, bc - ld a, [hl] - ld [BattleAnimTemps], a - bit 0, [hl] - ret z - ld hl, $0007 - add hl, bc - ld a, [hli] - ld d, a - ld a, $b4 - sub d - ld [BattleAnimTemps + 3], a - ld a, [hli] - ld d, a - ld a, [BattleAnimTemps + 1] - cp $ff - jr nz, .asm_ccb09 - ld a, $28 - add d - jr .asm_ccb26 - -.asm_ccb09 - sub d - push af - ld a, [FXAnimIDHi] - or a - jr nz, .asm_ccb25 - ld a, [FXAnimIDLo] - cp $86 - jr z, .asm_ccb20 - cp $87 - jr z, .asm_ccb20 - cp $d0 - jr nz, .asm_ccb25 - -.asm_ccb20 - pop af - sub $8 - jr .asm_ccb26 - -.asm_ccb25 - pop af - -.asm_ccb26 - ld [BattleAnimTemps + 4], a - ld a, [hli] - xor $ff - inc a - ld [BattleAnimTemps + 5], a - ret -; ccb31 - - -Functionccb31: ; ccb31 (33:4b31) - push hl - push bc - ld hl, w5_d300 - ld b, a - ld c, $5 -.asm_ccb39 - ld a, [hli] - cp b - jr z, .asm_ccb44 - inc hl - dec c - jr nz, .asm_ccb39 - xor a - jr .asm_ccb45 -.asm_ccb44 - ld a, [hl] -.asm_ccb45 - pop bc - pop hl - ret - - -Functionccb48: ; ccb48 - callab Functionc8000 - ret -; ccb4f - - -Functionccb4f: ; ccb4f (33:4b4f) - callab Functionc801a - ret -; ccb56 (33:4b56) - -BattleAnimObjects: ; ccb56 - db $01, $ff, $00, $00, $02, $01 - db $01, $ff, $01, $00, $02, $01 - db $01, $ff, $02, $00, $02, $01 - db $01, $90, $00, $00, $02, $01 - db $01, $90, $01, $00, $02, $01 - db $01, $90, $02, $00, $02, $01 - db $01, $ff, $03, $00, $02, $01 - db $01, $ff, $04, $1b, $02, $01 - db $01, $ff, $05, $00, $02, $01 - db $01, $ff, $06, $00, $02, $01 - db $01, $90, $07, $09, $02, $01 - db $01, $aa, $10, $10, $04, $03 - db $01, $90, $0e, $04, $04, $03 - db $01, $90, $0f, $03, $04, $03 - db $01, $90, $10, $08, $04, $03 - db $01, $90, $0f, $0a, $04, $03 - db $01, $90, $11, $03, $04, $03 - db $01, $90, $12, $08, $06, $0a - db $01, $90, $13, $00, $06, $0a - db $01, $90, $14, $01, $06, $0a - db $21, $78, $16, $0b, $05, $06 - db $00, $00, $09, $12, $04, $0b - db $00, $00, $09, $13, $04, $0b - db $01, $90, $18, $00, $04, $08 - db $01, $ff, $18, $00, $04, $08 - db $01, $90, $1d, $06, $02, $0c - db $01, $b4, $1f, $38, $02, $0c - db $01, $90, $08, $00, $02, $07 - db $01, $a0, $08, $00, $02, $07 - db $01, $ff, $19, $07, $07, $09 - db $01, $ff, $1a, $07, $07, $09 - db $01, $b0, $1b, $36, $07, $09 - db $01, $b0, $84, $36, $06, $21 - db $01, $90, $21, $0c, $06, $0d - db $00, $00, $23, $0d, $06, $0d - db $01, $90, $24, $0e, $02, $0e - db $61, $80, $27, $0f, $06, $04 - db $01, $b4, $2a, $00, $06, $04 - db $01, $40, $2b, $11, $05, $0f - db $61, $98, $2c, $00, $03, $10 - db $61, $98, $2d, $09, $03, $10 - db $01, $b8, $2e, $00, $06, $0a - db $01, $b8, $2f, $00, $06, $0a - db $01, $b8, $30, $14, $07, $11 - db $01, $90, $21, $14, $03, $0d - db $21, $b0, $31, $00, $03, $05 - db $21, $b0, $32, $00, $03, $05 - db $21, $b0, $33, $00, $03, $05 - db $21, $90, $34, $15, $03, $05 - db $21, $90, $36, $00, $03, $05 - db $21, $90, $37, $03, $02, $08 - db $21, $90, $38, $00, $03, $05 - db $21, $90, $39, $03, $02, $08 - db $21, $90, $3a, $16, $02, $02 - db $01, $90, $3c, $17, $02, $02 - db $21, $ff, $3e, $00, $02, $02 - db $21, $ff, $3f, $00, $02, $02 - db $21, $ff, $40, $00, $02, $02 - db $21, $ff, $41, $00, $02, $02 - db $21, $ff, $42, $00, $02, $02 - db $01, $88, $43, $18, $05, $12 - db $01, $88, $44, $00, $05, $12 - db $21, $b8, $45, $19, $02, $13 - db $21, $ff, $46, $00, $02, $14 - db $21, $ff, $47, $00, $02, $14 - db $21, $ff, $48, $1a, $02, $14 - db $21, $ff, $49, $1a, $02, $14 - db $21, $98, $4a, $01, $02, $14 - db $21, $80, $4b, $00, $03, $11 - db $01, $88, $4c, $1c, $05, $12 - db $21, $b0, $4d, $1d, $02, $15 - db $01, $b0, $51, $1e, $03, $11 - db $21, $ff, $52, $1f, $05, $16 - db $21, $ff, $54, $1f, $05, $16 - db $21, $68, $56, $20, $05, $06 - db $21, $90, $59, $21, $02, $0e - db $21, $90, $5c, $02, $02, $17 - db $01, $90, $5d, $22, $03, $11 - db $61, $88, $5f, $00, $03, $10 - db $61, $88, $2d, $09, $03, $10 - db $21, $88, $60, $00, $03, $18 - db $21, $80, $60, $00, $02, $18 - db $21, $50, $61, $23, $03, $19 - db $01, $80, $63, $24, $02, $19 - db $01, $80, $66, $25, $02, $19 - db $01, $50, $1c, $00, $02, $0c - db $21, $a8, $67, $26, $07, $1a - db $21, $a8, $68, $00, $07, $1a - db $21, $90, $69, $01, $02, $1a - db $21, $90, $6d, $28, $03, $19 - db $21, $90, $6a, $27, $02, $1b - db $00, $00, $6f, $29, $02, $1c - db $21, $48, $70, $29, $02, $1c - db $21, $48, $6f, $29, $02, $1c - db $21, $78, $6f, $2a, $02, $1c - db $61, $90, $71, $2b, $02, $1d - db $61, $90, $72, $2c, $02, $1d - db $01, $48, $73, $2d, $04, $1e - db $01, $90, $74, $06, $02, $15 - db $01, $ff, $75, $2e, $07, $19 - db $21, $90, $4a, $02, $02, $14 - db $01, $80, $30, $2f, $02, $11 - db $01, $78, $76, $2a, $04, $23 - db $01, $80, $77, $30, $02, $1f - db $01, $90, $77, $02, $02, $1f - db $01, $ff, $77, $00, $02, $1f - db $01, $80, $78, $08, $03, $23 - db $21, $90, $79, $00, $02, $1f - db $01, $ff, $7a, $31, $03, $11 - db $01, $88, $7a, $31, $03, $11 - db $21, $88, $7b, $32, $02, $20 - db $21, $98, $7c, $00, $02, $04 - db $21, $80, $7d, $00, $02, $18 - db $01, $80, $21, $2f, $06, $0d - db $01, $b0, $7e, $33, $03, $12 - db $01, $80, $7f, $2f, $02, $08 - db $21, $a0, $6f, $34, $02, $1c - db $21, $a0, $74, $35, $02, $15 - db $21, $b0, $80, $33, $02, $14 - db $01, $88, $81, $37, $02, $11 - db $01, $88, $85, $00, $02, $22 - db $01, $88, $86, $00, $02, $22 - db $01, $90, $87, $39, $02, $1f - db $01, $80, $30, $3a, $03, $11 - db $21, $90, $34, $00, $03, $05 - db $a1, $88, $88, $3b, $06, $13 - db $01, $80, $76, $25, $04, $23 - db $01, $98, $10, $34, $04, $03 - db $01, $a8, $0f, $3c, $04, $03 - db $21, $68, $89, $29, $02, $1f - db $21, $b0, $8a, $00, $02, $1f - db $21, $80, $8c, $00, $02, $1f - db $21, $50, $8d, $00, $03, $1f - db $01, $40, $24, $40, $02, $0e - db $21, $a8, $8e, $41, $04, $1f - db $21, $88, $8f, $3e, $02, $1f - db $21, $88, $93, $3e, $02, $1f - db $21, $90, $97, $3d, $02, $1f - db $21, $90, $78, $3d, $03, $23 - db $01, $ff, $99, $2e, $02, $19 - db $21, $a0, $74, $02, $02, $15 - db $21, $a0, $99, $35, $04, $19 - db $21, $70, $8b, $3f, $02, $1f - db $01, $90, $15, $08, $02, $0a - db $01, $90, $11, $02, $04, $03 - db $01, $80, $7f, $42, $02, $08 - db $01, $90, $9a, $00, $02, $1b - db $21, $a0, $9b, $35, $04, $23 - db $21, $80, $9c, $23, $02, $25 - db $21, $80, $9d, $25, $02, $25 - db $21, $80, $9c, $00, $02, $25 - db $21, $80, $9e, $00, $06, $25 - db $61, $80, $9f, $3a, $05, $23 - db $21, $80, $a0, $16, $02, $23 - db $21, $70, $78, $43, $03, $23 - db $21, $c0, $a2, $01, $02, $25 - db $21, $40, $a3, $44, $03, $24 - db $01, $80, $a4, $00, $02, $24 - db $01, $80, $a5, $00, $03, $24 - db $01, $88, $43, $45, $04, $12 - db $21, $ff, $a6, $00, $02, $02 - db $21, $ff, $a7, $00, $02, $02 - db $21, $00, $b4, $4a, $07, $0f - db $21, $90, $a8, $02, $03, $05 - db $21, $40, $9c, $11, $02, $25 - db $61, $90, $a9, $46, $02, $23 - db $00, $00, $24, $47, $02, $0e - db $01, $80, $aa, $00, $02, $24 - db $21, $b8, $ab, $48, $02, $13 - db $21, $90, $ac, $44, $02, $13 - db $01, $a8, $05, $00, $02, $01 - db $01, $90, $24, $43, $02, $0e - db $01, $88, $ad, $00, $06, $17 - db $01, $a8, $ae, $49, $02, $01 - db $21, $90, $af, $01, $03, $11 - db $21, $00, $b0, $4a, $02, $04 - db $00, $00, $70, $4b, $04, $1c - db $01, $88, $b1, $4c, $02, $19 - db $01, $b8, $19, $4d, $07, $09 - db $61, $98, $b3, $00, $03, $27 - db $61, $98, $74, $04, $06, $15 - db $21, $ff, $19, $4e, $07, $09 - db $01, $90, $73, $08, $04, $1e - db $01, $ff, $89, $4f, $04, $1f - db $00, $00, $b5, $00, $00, $28 - db $00, $00, $b6, $00, $01, $29 - db $00, $00, $b7, $00, $00, $28 - db $00, $00, $b8, $00, $01, $29 -; ccfbe - - -Functionccfbe: ; ccfbe - ld hl, $0004 - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_ccfce -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; ccfce - - -Jumptable_ccfce: ; ccfce (33:4fce) - dw Functioncd06e - dw Functioncd12a - dw Functioncd146 - dw Functioncd0e3 - dw Functioncd0a6 - dw Functioncd081 - dw Functioncd079 - dw Functioncd2be - dw Functioncd306 - dw Functioncd3ae - dw Functioncd3f2 - dw Functioncd478 - dw Functioncd5e9 - dw Functioncd66a - dw Functioncd6e3 - dw Functioncd71a - dw Functioncd284 - dw Functioncd777 - dw Functioncd15c - dw Functioncd212 - dw Functioncd7a4 - dw Functioncd80c - dw Functioncd824 - dw Functioncd89a - dw Functioncd900 - dw Functioncd954 - dw Functioncdafa - dw Functioncdb06 - dw Functioncda0a - dw Functioncdb80 - dw Functioncdca6 - dw Functioncda31 - dw Functioncda4d - dw Functioncdcc3 - dw Functioncdd2a - dw Functioncdd90 - dw Functioncddf9 - dw Functioncde28 - dw Functioncde54 - dw Functioncde6b - dw Functioncde89 - dw Functioncdedd - dw Functioncdf59 - dw Functionce063 - dw Functionce0c5 - dw Functioncdf1b - dw Functionce10e - dw Functionce15c - dw Functionce1e7 - dw Functionce226 - dw Functionce255 - dw Functionce2cc - dw Functioncdf8c - dw Functionce00b - dw Functionce2fd - dw Functionce35f - dw Functionce389 - dw Functionce3b4 - dw Functionce3d2 - dw Functionce3ff - dw Functioncdfcb - dw Functionce416 - dw Functionce43a - dw Functioncdad6 - dw Functionce49c - dw Functionce4dc - dw Functionce1b0 - dw Functionce508 - dw Functionce532 - dw Functionce55b - dw Functionce593 - dw Functionce5b4 - dw Functionce5dc - dw Functionce5ee - dw Functionce62f - dw Functionce688 - dw Functionce6b3 - dw Functionce6d2 - dw Functioncd58a - dw Functionce6bf - - -Functioncd06e: ; cd06e (33:506e) - call Functionce71e ; ; ; call does not return - -Jumptable_cd071: ; cd071 (33:5071) - dw Functioncd078 - dw Functioncd075 - - -Functioncd075: ; cd075 (33:5075) - call Functioncc9bd - -Functioncd078: ; cd078 (33:5078) - ret - -Functioncd079: ; cd079 (33:5079) - call Functioncd081 - ret c - call Functioncc9bd - ret - -Functioncd081: ; cd081 (33:5081) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $88 - ret nc - add $2 - ld [hl], a - ld hl, $8 - add hl, bc - dec [hl] - ld hl, $f - add hl, bc - ld a, [hl] - dec [hl] - ld hl, $b - add hl, bc - ld d, [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - scf - ret - -Functioncd0a6: ; cd0a6 (33:50a6) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $88 - jr c, .asm_cd0b3 - call Functioncc9bd - ret -.asm_cd0b3 - add $2 - ld [hl], a - ld hl, $8 - add hl, bc - dec [hl] - ld hl, $f - add hl, bc - ld a, [hl] -rept 4 - inc [hl] -endr - ld d, $10 - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - sra a - sra a - sra a - sra a - ld [hl], a - ret - -Functioncd0e3: ; cd0e3 (33:50e3) - call Functionce71e ; ; ; call does not return - -Jumptable_cd0e6: ; cd0e6 (33:50e6) - dw Functioncd0ea - dw Functioncd106 - - -Functioncd0ea: ; cd0ea (33:50ea) - call Functionce72c - ld hl, $b - add hl, bc - bit 7, [hl] - ld a, $0 - jr z, .asm_cd0f9 - ld a, $20 -.asm_cd0f9 - ld hl, $f - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and $7f - ld [hl], a - -Functioncd106: ; cd106 (33:5106) - ld hl, $f - add hl, bc - ld a, [hl] - ld hl, $b - add hl, bc - ld d, [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - inc [hl] - ret - -Functioncd12a: ; cd12a (33:512a) - call Functionce71e ; ; ; call does not return - -Jumptable_cd12d: ; cd12d (33:512d) - dw Functioncd135 - dw Functioncd131 - - -Functioncd131: ; cd131 (33:5131) - call Functioncc9bd - ret - -Functioncd135: ; cd135 (33:5135) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $84 - ret nc - ld hl, $b - add hl, bc - ld a, [hl] - call Functionce70a - ret - -Functioncd146: ; cd146 (33:5146) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $84 - jr nc, .asm_cd158 - ld hl, $b - add hl, bc - ld a, [hl] - call Functionce70a - ret -.asm_cd158 - call Functioncc9bd - ret - -Functioncd15c: ; cd15c (33:515c) - call Functionce71e ; ; ; call does not return - -Jumptable_cd15f: ; cd15f (33:515f) - dw Functioncd177 - dw Functioncd17e - dw Functioncd1dc - dw Functioncd196 - dw Functioncd1a7 - dw Functioncd1dc - dw Functioncd1d2 - dw Functioncd1dd - dw Functioncd1ee - dw Functioncd1dc - dw Functioncd1ee - dw Functioncd20e - - -Functioncd177: ; cd177 (33:5177) - call Functioncd249 - call Functionce72c - ret - -Functioncd17e: ; cd17e (33:517e) - call Functioncd081 - ret c - ld hl, $a - add hl, bc - ld a, [hl] - ld hl, $8 - add hl, bc - add [hl] - ld [hl], a - ld a, $b - call Functionce7bf - call Functionce72c - ret - -Functioncd196: ; cd196 (33:5196) - call Functionce72c - ld a, $9 - call Functionce7bf - ld hl, $f - add hl, bc - ld [hl], $0 - inc hl - ld [hl], $10 - -Functioncd1a7: ; cd1a7 (33:51a7) - ld hl, $f - add hl, bc - ld a, [hli] - ld d, [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - dec a - ld [hl], a - and $1f - ret nz - ld [hl], a - ld hl, $10 - add hl, bc - ld a, [hl] - sub $4 - ld [hl], a - ret nz - ld a, $c - call Functionce7bf - call Functionce72c - ret - -Functioncd1d2: ; cd1d2 (33:51d2) - ld a, $d - call Functionce7bf - ld hl, $e - add hl, bc - dec [hl] - -Functioncd1dc: ; cd1dc (33:51dc) - ret - -Functioncd1dd: ; cd1dd (33:51dd) - call Functioncd249 - ld a, $a - call Functionce7bf - call Functionce72c - ld hl, $10 - add hl, bc - ld [hl], $20 - -Functioncd1ee: ; cd1ee (33:51ee) - ld hl, $f - add hl, bc - ld a, [hli] - ld d, [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - dec a - ld [hl], a - and $1f - jr z, Functioncd20e - and $f - ret nz - call Functionce72c - ret - -Functioncd20e: ; cd20e (33:520e) - call Functioncc9bd - ret - -Functioncd212: ; cd212 (33:5212) - call Functionce71e ; ; ; call does not return - -Jumptable_cd215: ; cd215 (33:5215) - dw Functioncd21b - dw Functioncd222 - dw Functioncd232 - - -Functioncd21b: ; cd21b (33:521b) - call Functioncd249 - call Functionce72c - ret - -Functioncd222: ; cd222 (33:5222) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $70 - jr nc, .asm_cd22f - call Functioncd081 - ret -.asm_cd22f - call Functionce72c - -Functioncd232: ; cd232 (33:5232) - ld hl, $8 - add hl, bc - ld a, [hl] - cp $80 - jr nc, .asm_cd245 - add $4 - ld [hl], a - ld hl, $7 - add hl, bc -rept 2 - dec [hl] -endr - ret -.asm_cd245 - call Functioncc9bd - ret - -Functioncd249: ; cd249 (33:5249) - ld hl, Unknown_cd26c - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [CurItem] ; CurItem - ld e, a - pop af - ld [rSVBK], a -.asm_cd25a - ld a, [hli] - cp $ff - jr z, .asm_cd265 - cp e - jr z, .asm_cd265 - inc hl - jr .asm_cd25a -.asm_cd265 - ld a, [hl] - ld hl, $5 - add hl, bc - ld [hl], a - ret -; cd26c (33:526c) - -Unknown_cd26c: ; cd26c - db MASTER_BALL, 5 - db ULTRA_BALL, 3 - db GREAT_BALL, 6 - db POKE_BALL, 4 - db HEAVY_BALL, 2 - db LEVEL_BALL, 7 - db LURE_BALL, 6 - db FAST_BALL, 6 - db FRIEND_BALL, 3 - db MOON_BALL, 2 - db LOVE_BALL, 4 - db $ff, 2 -; cd284 - -Functioncd284: ; cd284 (33:5284) - call Functionce71e ; ; ; call does not return - -Jumptable_cd287: ; cd287 (33:5287) - dw Functioncd291 - dw Functioncd2a0 - dw Functioncd2b1 - dw Functioncd2b5 - dw Functioncd2bd - - -Functioncd291: ; cd291 (33:5291) - ld hl, $b - add hl, bc - ld a, [hl] - swap a - and $f - ld hl, $e - add hl, bc - ld [hl], a - ret - -Functioncd2a0: ; cd2a0 (33:52a0) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $88 - ret nc - ld hl, $b - add hl, bc - ld a, [hl] - call Functionce70a - ret - -Functioncd2b1: ; cd2b1 (33:52b1) - call Functioncc9bd - ret - -Functioncd2b5: ; cd2b5 (33:52b5) - call Functionce72c - ld a, $f - call Functionce7bf - -Functioncd2bd: ; cd2bd (33:52bd) - ret - -Functioncd2be: ; cd2be (33:52be) - call Functionce71e ; ; ; call does not return - -Jumptable_cd2c1: ; cd2c1 (33:52c1) - dw Functioncd2c5 - dw Functioncd2d1 - - -Functioncd2c5: ; cd2c5 (33:52c5) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $30 - inc hl - ld [hl], $48 - -Functioncd2d1: ; cd2d1 (33:52d1) - ld hl, $f - add hl, bc - ld a, [hli] - ld d, [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - inc [hl] - ld a, [hl] - and $3f - ret nz - ld hl, $f - add hl, bc - ld [hl], $20 - ld hl, $10 - add hl, bc - ld a, [hl] - ld hl, $b - add hl, bc - sub [hl] - jr z, .asm_cd302 - jr c, .asm_cd302 - ld hl, $10 - add hl, bc - ld [hl], a - ret -.asm_cd302 - call Functioncc9bd - ret - -Functioncd306: ; cd306 (33:5306) - call Functionce71e ; ; ; call does not return - -Jumptable_cd309: ; cd309 (33:5309) - dw Functioncd311 - dw Functioncd321 - dw Functioncd32a - dw Functioncd37d - - -Functioncd311: ; cd311 (33:5311) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $80 - jr nc, .asm_cd31e - call Functioncd38e - ret -.asm_cd31e - call Functionce72c - -Functioncd321: ; cd321 (33:5321) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $0 - -Functioncd32a: ; cd32a (33:532a) - ld hl, $f - add hl, bc - ld a, [hl] - cp $40 - jr nc, .asm_cd363 - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $18 - call Functionce732 - sub $18 - sra a - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $18 - call Functionce734 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and $f - ld hl, $f - add hl, bc - add [hl] - ld [hl], a - ret -.asm_cd363 - ld hl, $b - add hl, bc - ld a, [hl] - and $f0 - jr z, .asm_cd37a - sub $10 - ld d, a - ld a, [hl] - and $f - or d - ld [hl], a - ld hl, $e - add hl, bc - dec [hl] - ret -.asm_cd37a - call Functionce72c - -Functioncd37d: ; cd37d (33:537d) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $b0 - jr c, .asm_cd38a - call Functioncc9bd - ret -.asm_cd38a - call Functioncd38e - ret - -Functioncd38e: ; cd38e (33:538e) - ld hl, $b - add hl, bc - ld a, [hl] - and $f - ld hl, $7 - add hl, bc - add [hl] - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and $f - ld e, a - srl e - ld hl, $8 - add hl, bc -.asm_cd3a9 - dec [hl] - dec e - jr nz, .asm_cd3a9 - ret - -Functioncd3ae: ; cd3ae (33:53ae) - call Functionce71e ; ; ; call does not return - -Jumptable_cd3b1: ; cd3b1 (33:53b1) - dw Functioncd3b7 - dw Functioncd3cc - dw Functioncd3ee - - -Functioncd3b7: ; cd3b7 (33:53b7) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $0 - ld hl, $b - add hl, bc - ld a, [hl] - and $f - ld hl, $9 - add hl, bc - ld [hl], a - -Functioncd3cc: ; cd3cc (33:53cc) - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_cd3d6 - dec [hl] - ret -.asm_cd3d6 - ld hl, $b - add hl, bc - ld a, [hl] - swap a - and $f - ld hl, $f - add hl, bc - ld [hl], a - ld hl, $9 - add hl, bc - ld a, [hl] - xor $ff - inc a - ld [hl], a - ret - -Functioncd3ee: ; cd3ee (33:53ee) - call Functioncc9bd - ret - -Functioncd3f2: ; cd3f2 (33:53f2) - call Functionce71e ; ; ; call does not return - -Jumptable_cd3f5: ; cd3f5 (33:53f5) - dw Functioncd409 - dw Functioncd45c - dw Functioncd467 - dw Functioncd472 - dw Functioncd462 - dw Functioncd46d - dw Functioncd477 - dw Functioncd41d - dw Functioncd437 - dw Functioncd458 - - -Functioncd409: ; cd409 (33:5409) - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $e - add hl, bc - ld [hl], a - cp $7 - jr z, Functioncd41d - ld a, $11 - call Functionce7bf - ret - -Functioncd41d: ; cd41d (33:541d) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $88 - jr nc, .asm_cd42f - add $2 - ld [hl], a - ld hl, $8 - add hl, bc - dec [hl] - ret -.asm_cd42f - call Functionce72c - ld a, $10 - call Functionce7bf - -Functioncd437: ; cd437 (33:5437) - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $10 - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - inc [hl] - ret - -Functioncd458: ; cd458 (33:5458) - call Functioncc9bd - ret - -Functioncd45c: ; cd45c (33:545c) - ld hl, $a - add hl, bc - dec [hl] - ret - -Functioncd462: ; cd462 (33:5462) - ld hl, $a - add hl, bc - inc [hl] - -Functioncd467: ; cd467 (33:5467) - ld hl, $9 - add hl, bc - dec [hl] - ret - -Functioncd46d: ; cd46d (33:546d) - ld hl, $a - add hl, bc - inc [hl] - -Functioncd472: ; cd472 (33:5472) - ld hl, $9 - add hl, bc - inc [hl] - -Functioncd477: ; cd477 (33:5477) - ret - -Functioncd478: ; cd478 (33:5478) - call Functionce71e ; ; ; call does not return - -Jumptable_cd47b: ; cd47b (33:547b) - dw Functioncd48d - dw Functioncd496 - dw Functioncd4ee - dw Functioncd53a - dw Functioncd545 - dw Functioncd545 - dw Functioncd545 - dw Functioncd545 - dw Functioncd549 - - -Functioncd48d: ; cd48d (33:548d) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $40 - -Functioncd496: ; cd496 (33:5496) - ld hl, $f - add hl, bc - ld a, [hl] - cp $30 - jr nc, .asm_cd4bc - call Functionce72c - xor a - ld hl, $f - add hl, bc - ld [hli], a - ld [hl], a - ld a, $17 - call Functionce7bf - ld hl, $b - add hl, bc - bit 6, [hl] - ret z - ld hl, $d - add hl, bc - ld [hl], $5 - ret -.asm_cd4bc - ld hl, $b - add hl, bc - ld a, [hl] - and $3f - ld d, a - ld hl, $f - add hl, bc - ld a, [hl] - dec [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - call Functioncd557 - ld hl, $10 - add hl, bc - ld a, [hl] - ld hl, $7 - add hl, bc - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - ld hl, $7 - add hl, bc - ld [hl], d - ld hl, $10 - add hl, bc - ld [hl], e - ret - -Functioncd4ee: ; cd4ee (33:54ee) - ld hl, $a - add hl, bc - ld a, [hl] - cp $20 - jr nz, .asm_cd4fb - call Functioncc9bd - ret -.asm_cd4fb - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $10 - call Functionce734 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - bit 6, [hl] - jr nz, .asm_cd519 - ld hl, $f - add hl, bc - inc [hl] - jr .asm_cd51e -.asm_cd519 - ld hl, $f - add hl, bc - dec [hl] -.asm_cd51e - ld de, $80 - ld hl, $10 - add hl, bc - ld a, [hl] - ld hl, $a - add hl, bc - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - ld hl, $a - add hl, bc - ld [hl], d - ld hl, $10 - add hl, bc - ld [hl], e - ret - -Functioncd53a: ; cd53a (33:553a) - ld a, $16 - call Functionce7bf - ld hl, $1 - add hl, bc - res 5, [hl] - -Functioncd545: ; cd545 (33:5545) - call Functionce72c - ret - -Functioncd549: ; cd549 (33:5549) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $c0 - ret nc - ld a, $8 - call Functionce70a - ret - -Functioncd557: ; cd557 (33:5557) - ld hl, $b - add hl, bc - ld a, [hl] - bit 7, a - jr nz, .asm_cd574 - cp $20 - jr nc, .asm_cd570 - cp $18 - jr nc, .asm_cd56c - ld de, $200 - ret -.asm_cd56c - ld de, $180 - ret -.asm_cd570 - ld de, $100 - ret -.asm_cd574 - and $3f - cp $20 - jr nc, .asm_cd586 - cp $18 - jr nc, .asm_cd582 - ld de, $fe00 - ret -.asm_cd582 - ld de, $fe80 - ret -.asm_cd586 - ld de, rJOYP ; $ff00 - ret - -Functioncd58a: ; cd58a (33:558a) - call Functionce71e ; ; ; call does not return - -Jumptable_cd58d: ; cd58d (33:558d) - dw Functioncd591 - dw Functioncd5aa - - -Functioncd591: ; cd591 (33:5591) - ld hl, $b - add hl, bc - ld a, [hl] - and $40 - rlca - rlca - add $19 - ld hl, $3 - add hl, bc - ld [hl], a - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $40 - -Functioncd5aa: ; cd5aa (33:55aa) - ld hl, $f - add hl, bc - ld a, [hl] - cp $30 - jr nc, .asm_cd5b7 - call Functioncc9bd - ret -.asm_cd5b7 - ld hl, $b - add hl, bc - ld a, [hl] - and $3f - ld d, a - ld hl, $f - add hl, bc - ld a, [hl] - dec [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - call Functioncd557 - ld hl, $10 - add hl, bc - ld a, [hl] - ld hl, $7 - add hl, bc - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - ld hl, $7 - add hl, bc - ld [hl], d - ld hl, $10 - add hl, bc - ld [hl], e - ret - -Functioncd5e9: ; cd5e9 (33:55e9) - call Functionce71e ; ; ; call does not return - -Jumptable_cd5ec: ; cd5ec (33:55ec) - dw Functioncd5f2 - dw Functioncd5fb - dw Functioncd61b - - -Functioncd5f2: ; cd5f2 (33:55f2) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $c - -Functioncd5fb: ; cd5fb (33:55fb) - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_cd60d - dec [hl] - ld hl, $b - add hl, bc - ld a, [hl] - call Functionce70a - ret -.asm_cd60d - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $0 - ld a, $22 - call Functionce7bf - -Functioncd61b: ; cd61b (33:561b) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $98 - jr nc, .asm_cd63f - ld hl, $f - add hl, bc - ld a, [hl] - ld hl, $7 - add hl, bc - ld h, [hl] - ld l, a - ld de, $60 - add hl, de - ld e, l - ld d, h - ld hl, $f - add hl, bc - ld [hl], e - ld hl, $7 - add hl, bc - ld [hl], d -.asm_cd63f - ld hl, $8 - add hl, bc - ld a, [hl] - cp $20 - ret c - ld hl, $b - add hl, bc - ld a, [hl] - and $f0 - ld e, a - ld d, $ff - ld hl, $10 - add hl, bc - ld a, [hl] - ld hl, $8 - add hl, bc - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - ld hl, $10 - add hl, bc - ld [hl], e - ld hl, $8 - add hl, bc - ld [hl], d - ret - -Functioncd66a: ; cd66a (33:566a) - call Functionce71e ; ; ; call does not return - -Jumptable_cd66d: ; cd66d (33:566d) - dw Functioncd677 - dw Functioncd687 - dw Functioncd6c5 - dw Functioncd6c6 - dw Functioncd6d6 - - -Functioncd677: ; cd677 (33:5677) - call Functionce72c - ld a, $42 - ld [hLCDStatCustom], a - ld a, $58 - ld [hLCDStatCustom + 1], a - ld a, $5e - ld [hLCDStatCustom + 2], a - ret - -Functioncd687: ; cd687 (33:5687) - ld hl, $b - add hl, bc - ld e, [hl] - ld hl, $8 - add hl, bc - ld a, [hl] - cp e - jr nc, .asm_cd69b - call Functionce72c - xor a - ld [hLCDStatCustom + 1], a - ret -.asm_cd69b - dec a - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $10 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $8 - add hl, bc - add [hl] - sub $10 - ret c - ld [hLCDStatCustom + 1], a - ld hl, $9 - add hl, bc - ld a, [hl] - inc a - and $7 - ld [hl], a - ld hl, $f - add hl, bc -rept 2 - inc [hl] -endr - -Functioncd6c5: ; cd6c5 (33:56c5) - ret - -Functioncd6c6: ; cd6c6 (33:56c6) - ld hl, $8 - add hl, bc - ld a, [hl] - cp $70 - jr c, asm_cd6da - xor a - ld [hLCDStatCustom], a - ld [hLCDStatCustom + 1], a - ld [hLCDStatCustom + 2], a - -Functioncd6d6: ; cd6d6 (33:56d6) - call Functioncc9bd - ret -asm_cd6da: ; cd6da (33:56da) -rept 2 - inc a -endr - ld [hl], a - sub $10 - ret c - ld [hLCDStatCustom + 1], a - ret - -Functioncd6e3: ; cd6e3 (33:56e3) - call Functionce71e ; ; ; call does not return - -Jumptable_cd6e6: ; cd6e6 (33:56e6) - dw Functioncd6ea - dw Functioncd6f7 - - -Functioncd6ea: ; cd6ea (33:56ea) - call Functionce72c - ld hl, $b - add hl, bc - ld a, $24 - add [hl] - call Functionce7bf - -Functioncd6f7: ; cd6f7 (33:56f7) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $b8 - jr c, .asm_cd704 - call Functioncc9bd - ret -.asm_cd704 - ld a, $2 - call Functionce70a - ld hl, $f - add hl, bc - ld a, [hl] - dec [hl] - ld d, $8 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ret - -Functioncd71a: ; cd71a (33:571a) - call Functionce71e ; ; ; call does not return - -Jumptable_cd71d: ; cd71d (33:571d) - dw Functioncd725 - dw Functioncd728 - dw Functioncd763 - dw Functioncd776 - - -Functioncd725: ; cd725 (33:5725) - call Functionce72c - -Functioncd728: ; cd728 (33:5728) - ld hl, $8 - add hl, bc - ld a, [hl] - cp $30 - jr c, .asm_cd747 - ld a, $2 - call Functionce70a - ld hl, $f - add hl, bc - ld a, [hl] - dec [hl] - ld d, $8 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ret -.asm_cd747 - call Functionce72c - ld a, $28 - call Functionce7bf - ld hl, $a - add hl, bc - ld [hl], $0 - ld hl, $8 - add hl, bc - ld [hl], $30 - ld hl, $1 - add hl, bc - ld a, [hl] - and $1 - ld [hl], a - -Functioncd763: ; cd763 (33:5763) - ld hl, $a - add hl, bc - ld a, [hl] - cp $18 - jr nc, .asm_cd76e - inc [hl] - ret -.asm_cd76e - call Functionce72c - ld a, $29 - call Functionce7bf - -Functioncd776: ; cd776 (33:5776) - ret - -Functioncd777: ; cd777 (33:5777) - ld hl, $a - add hl, bc - ld a, [hl] - cp $38 - jr c, .asm_cd784 - call Functioncc9bd - ret -.asm_cd784 - ld a, [hl] - ld hl, $f - add hl, bc - ld l, [hl] - ld h, a - ld de, $80 - add hl, de - ld e, l - ld d, h - ld hl, $f - add hl, bc - ld [hl], e - ld hl, $a - add hl, bc - ld [hl], d - ld hl, $9 - add hl, bc - ld a, [hl] - xor $10 - ld [hl], a - ret - -Functioncd7a4: ; cd7a4 (33:57a4) - call Functionce71e ; ; ; call does not return - -Jumptable_cd7a7: ; cd7a7 (33:57a7) - dw Functioncd7ab - dw Functioncd7d2 - - -Functioncd7ab: ; cd7ab (33:57ab) - call Functionce72c - ld hl, $b - add hl, bc - ld a, [hl] - and $f0 - ld hl, $10 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and $f - sla a - sla a - sla a - ld hl, $f - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld [hl], $1 - -Functioncd7d2: ; cd7d2 (33:57d2) - ld hl, $10 - add hl, bc - ld a, [hl] - and a - jr nz, .asm_cd7de - call Functioncc9bd - ret -.asm_cd7de - ld hl, $f - add hl, bc - ld a, [hl] - inc [hl] - ld hl, $10 - add hl, bc - ld d, [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - xor $1 - ld [hl], a - ret z - ld hl, $10 - add hl, bc - dec [hl] - ret - -Functioncd80c: ; cd80c (33:580c) - call Functionce71e ; ; ; call does not return - -Jumptable_cd80f: ; cd80f (33:580f) - dw Functioncd81f - dw Functioncd817 - dw Functioncd81f - dw Functioncd820 - - -Functioncd817: ; cd817 (33:5817) - call Functionce72c - ld a, $35 - call Functionce7bf - -Functioncd81f: ; cd81f (33:581f) - ret - -Functioncd820: ; cd820 (33:5820) - call Functioncc9bd - ret - -Functioncd824: ; cd824 (33:5824) - call Functionce71e ; ; ; call does not return - -Jumptable_cd827: ; cd827 (33:5827) - dw Functioncd835 - dw Functioncd860 - dw Functioncd88f - dw Functioncd88f - dw Functioncd88f - dw Functioncd88f - dw Functioncd893 - - -Functioncd835: ; cd835 (33:5835) - call Functionce72c - ld hl, $3 - add hl, bc - ld a, [hl] - ld hl, $10 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - bit 7, [hl] - jr nz, .asm_cd852 - ld hl, $f - add hl, bc - ld [hl], $10 - jr .asm_cd858 -.asm_cd852 - ld hl, $f - add hl, bc - ld [hl], $30 -.asm_cd858 - ld hl, $b - add hl, bc - ld a, [hl] - and $7f - ld [hl], a - -Functioncd860: ; cd860 (33:5860) - ld hl, $f - add hl, bc - ld a, [hl] - ld hl, $b - add hl, bc - ld d, [hl] - call Functionce734 - ld hl, $9 - add hl, bc - ld [hl], a - bit 7, a - jr nz, .asm_cd87e - ld hl, $10 - add hl, bc - ld a, [hl] - inc a - jr .asm_cd883 -.asm_cd87e - ld hl, $10 - add hl, bc - ld a, [hl] -.asm_cd883 - call Functionce7bf - ld hl, $f - add hl, bc - inc [hl] - ld a, [hl] - and $1f - ret nz - -Functioncd88f: ; cd88f (33:588f) - call Functionce72c - ret - -Functioncd893: ; cd893 (33:5893) - ld hl, $e - add hl, bc - ld [hl], $1 - ret - -Functioncd89a: ; cd89a (33:589a) - call Functionce71e ; ; ; call does not return - -Jumptable_cd89d: ; cd89d (33:589d) - dw Functioncd8ab - dw Functioncd8cc - dw Functioncd8f5 - dw Functioncd8f5 - dw Functioncd8f5 - dw Functioncd8f5 - dw Functioncd8f9 - - -Functioncd8ab: ; cd8ab (33:58ab) - call Functionce72c - ld hl, $b - add hl, bc - bit 7, [hl] - jr nz, .asm_cd8be - ld hl, $f - add hl, bc - ld [hl], $10 - jr .asm_cd8c4 -.asm_cd8be - ld hl, $f - add hl, bc - ld [hl], $30 -.asm_cd8c4 - ld hl, $b - add hl, bc - ld a, [hl] - and $7f - ld [hl], a - -Functioncd8cc: ; cd8cc (33:58cc) - ld hl, $f - add hl, bc - ld a, [hl] - ld hl, $b - add hl, bc - ld d, [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - bit 7, a - jr nz, .asm_cd8e6 - ld a, $3d - jr .asm_cd8e8 -.asm_cd8e6 - ld a, $3c -.asm_cd8e8 - call Functionce7bf - ld hl, $f - add hl, bc -rept 2 - inc [hl] -endr - ld a, [hl] - and $1f - ret nz - -Functioncd8f5: ; cd8f5 (33:58f5) - call Functionce72c - ret - -Functioncd8f9: ; cd8f9 (33:58f9) - ld hl, $e - add hl, bc - ld [hl], $1 - ret - -Functioncd900: ; cd900 (33:5900) - call Functionce71e ; ; ; call does not return - -Jumptable_cd903: ; cd903 (33:5903) - dw Functioncd907 - dw Functioncd913 - - -Functioncd907: ; cd907 (33:5907) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $28 - inc hl - ld [hl], $0 - -Functioncd913: ; cd913 (33:5913) - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $f - add hl, bc - ld d, [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_cd950 - ld d, a - ld hl, $10 - add hl, bc - ld e, [hl] - ld hl, hPushOAM ; $ff80 - add hl, de - ld e, l - ld d, h - ld hl, $10 - add hl, bc - ld [hl], e - ld hl, $f - add hl, bc - ld [hl], d - ret -.asm_cd950 - call Functioncc9bd - ret - -Functioncd954: ; cd954 (33:5954) - call Functionce71e ; ; ; call does not return - -Jumptable_cd957: ; cd957 (33:5957) - dw Functioncd961 - dw Functioncd96a - dw Functioncd96e - dw Functioncd96a - dw Functioncd97b - - -Functioncd961: ; cd961 (33:5961) - call Functionce72c - ld hl, $b - add hl, bc - ld [hl], $0 - -Functioncd96a: ; cd96a (33:596a) - call Functioncd99a - ret - -Functioncd96e: ; cd96e (33:596e) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $88 - jr c, asm_cd988 - call Functionce72c - ret - -Functioncd97b: ; cd97b (33:597b) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $b8 - jr c, asm_cd988 - call Functioncc9bd - ret - -asm_cd988: ; cd988 (33:5988) - call Functioncd99a - ld hl, $7 - add hl, bc - inc [hl] - ld a, [hl] - and $1 - ret nz - ld hl, $8 - add hl, bc - dec [hl] - ret - -Functioncd99a: ; cd99a (33:599a) - call Functioncd9f4 - ld hl, $f - add hl, bc - ld a, [hl] - push af - push de - call Functionce734 - sra a - sra a - sra a - sra a - ld hl, $b - add hl, bc - add [hl] - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - sub $8 - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and a - jr z, .asm_cd9d7 - cp $c2 - jr c, .asm_cd9e2 -.asm_cd9d7 - dec a - ld [hl], a - and $7 - ret nz - ld hl, $10 - add hl, bc - inc [hl] - ret -.asm_cd9e2 - xor a - ld hl, $10 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld [hl], a - ld hl, $9 - add hl, bc - ld [hli], a - ld [hl], a - ret - -Functioncd9f4: ; cd9f4 (33:59f4) - ld hl, $10 - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Unknown_cda01 - add hl, de - ld d, [hl] - ret -; cda01 (33:5a01) - -Unknown_cda01: ; cda01 - db 8, 6, 5, 4, 5, 6, 8, 12, 16 -; cda0a - -Functioncda0a: ; cda0a (33:5a0a) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $30 - jr nc, .asm_cda17 - call Functioncc9bd - ret -.asm_cda17 - ld hl, $b - add hl, bc - ld a, [hl] - and $f - ld e, a - ld hl, $7 - add hl, bc - ld a, [hl] - sub e - ld [hl], a - srl e - ld hl, $8 - add hl, bc -.asm_cda2c - inc [hl] - dec e - jr nz, .asm_cda2c - ret - -Functioncda31: ; cda31 (33:5a31) - call Functionce71e ; ; ; call does not return - -Jumptable_cda34: ; cda34 (33:5a34) - dw Functioncda4c - dw Functioncda3a - dw Functioncda4c - - -Functioncda3a: ; cda3a (33:5a3a) - ld hl, $3 - add hl, bc - ld a, [hl] - inc a - call Functionce7bf - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $8 - -Functioncda4c: ; cda4c (33:5a4c) - ret - -Functioncda4d: ; cda4d (33:5a4d) - call Functionce71e ; ; ; call does not return - -Jumptable_cda50: ; cda50 (33:5a50) - dw Functioncda58 - dw Functioncda62 - dw Functioncda7a - dw Functioncda8c - - -Functioncda58: ; cda58 (33:5a58) - call Functionce72c - ld hl, $10 - add hl, bc - ld [hl], $40 - ret - -Functioncda62: ; cda62 (33:5a62) - ld hl, $10 - add hl, bc - ld a, [hl] - cp $20 - jr c, .asm_cda6f - call Functioncda8d - ret -.asm_cda6f - ld [hl], $40 - ld a, $57 - call Functionce7bf - call Functionce72c - ret - -Functioncda7a: ; cda7a (33:5a7a) - ld hl, $10 - add hl, bc - ld a, [hl] - and a - jr z, .asm_cda84 - dec [hl] - ret -.asm_cda84 - call Functionce72c - ld a, $58 - call Functionce7bf - -Functioncda8c: ; cda8c (33:5a8c) - ret - -Functioncda8d: ; cda8d (33:5a8d) - dec [hl] - ld d, $20 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $2 - add hl, bc - ld a, [hl] - add $2 - ld [hl], a - ld hl, $f - add hl, bc - ld e, [hl] - ld hl, $7 - add hl, bc - ld d, [hl] - ld hl, $b - add hl, bc - ld h, [hl] - ld a, h - and $f - swap a - ld l, a - ld a, h - and $f0 - swap a - ld h, a - add hl, de - ld e, l - ld d, h - ld hl, $f - add hl, bc - ld [hl], e - ld hl, $7 - add hl, bc - ld [hl], d - ld hl, $10 - add hl, bc - ld a, [hl] - and $1 - ret nz - ld hl, $8 - add hl, bc - dec [hl] - ret - -Functioncdad6: ; cdad6 (33:5ad6) - call Functionce71e ; ; ; call does not return - -Jumptable_cdad9: ; cdad9 (33:5ad9) - dw Functioncdadf - dw Functioncdae9 - dw Functioncdaf9 - - -Functioncdadf: ; cdadf (33:5adf) - call Functionce72c - ld hl, $10 - add hl, bc - ld [hl], $40 - ret - -Functioncdae9: ; cdae9 (33:5ae9) - ld hl, $10 - add hl, bc - ld a, [hl] - cp $20 - jr c, .asm_cdaf6 - call Functioncda8d - ret -.asm_cdaf6 - call Functionce72c - -Functioncdaf9: ; cdaf9 (33:5af9) - ret - -Functioncdafa: ; cdafa (33:5afa) - call Functioncd0e3 - ld hl, $f - add hl, bc - ld a, [hl] - add $f - ld [hl], a - ret - -Functioncdb06: ; cdb06 (33:5b06) - call Functionce71e ; ; ; call does not return - -Jumptable_cdb09: ; cdb09 (33:5b09) - dw Functioncdb13 - dw Functioncdb14 - dw Functioncdb28 - dw Functioncdb50 - dw Functioncdb65 - - -Functioncdb13: ; cdb13 (33:5b13) - ret - -Functioncdb14: ; cdb14 (33:5b14) - ld hl, $8 - add hl, bc - ld a, [hl] - cp $30 - jr c, .asm_cdb24 - ld hl, $e - add hl, bc - ld [hl], $0 - ret -.asm_cdb24 - add $4 - ld [hl], a - ret - -Functioncdb28: ; cdb28 (33:5b28) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $98 - ret nc -rept 2 - inc [hl] -endr - ld hl, $1 - add hl, bc - set 0, [hl] - ld hl, $2 - add hl, bc - ld [hl], $90 - ld hl, $d - add hl, bc - ld [hl], $0 - ld hl, $c - add hl, bc - ld [hl], $2 - ld hl, $8 - add hl, bc - dec [hl] - ret - -Functioncdb50: ; cdb50 (33:5b50) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $2c - ld hl, $d - add hl, bc - ld [hl], $0 - ld hl, $c - add hl, bc - ld [hl], $80 - -Functioncdb65: ; cdb65 (33:5b65) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $98 - ret nc -rept 2 - inc [hl] -endr - ld hl, $f - add hl, bc - ld a, [hl] - inc [hl] - ld d, $8 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ret - -Functioncdb80: ; cdb80 (33:5b80) - call Functionce71e ; ; ; call does not return - -Jumptable_cdb83: ; cdb83 (33:5b83) - dw Functioncdb9f - dw Functioncdbb3 - dw Functioncdbcf - dw Functioncdbeb - dw Functioncdc74 - dw Functioncdc1a - dw Functioncdbc1 - dw Functioncdc1e - dw Functioncdc27 - dw Functioncdc39 - dw Functioncdc74 - dw Functioncdc48 - dw Functioncdc57 - dw Functioncdc74 - - -Functioncdb9f: ; cdb9f (33:5b9f) - ld hl, $f - add hl, bc - ld [hl], $28 - inc hl - ld [hl], $10 - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $e - add hl, bc - ld [hl], a - ret - -Functioncdbb3: ; cdbb3 (33:5bb3) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $40 - jr nc, .asm_cdbbd - inc [hl] -.asm_cdbbd - call Functioncdc75 - ret - -Functioncdbc1: ; cdbc1 (33:5bc1) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $4b - jr nc, .asm_cdbcb - inc [hl] -.asm_cdbcb - call Functioncdc75 - ret - -Functioncdbcf: ; cdbcf (33:5bcf) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $88 - jr nc, .asm_cdbe6 - and $f - jr nz, asm_cdbfa - ld hl, $10 - add hl, bc - ld [hl], $10 - call Functionce72c - ret -.asm_cdbe6 - call Functionce72c - inc [hl] - ret - -Functioncdbeb: ; cdbeb (33:5beb) - ld hl, $10 - add hl, bc - ld a, [hl] - and a - jr z, .asm_cdbf5 - dec [hl] - ret -.asm_cdbf5 - ld hl, $e - add hl, bc - dec [hl] -asm_cdbfa: ; cdbfa (33:5bfa) - ld hl, $7 - add hl, bc - inc [hl] - ld hl, $8 - add hl, bc - ld d, [hl] - ld hl, $f - add hl, bc - ld e, [hl] - ld hl, hPushOAM ; $ff80 - add hl, de - ld e, l - ld d, h - ld hl, $8 - add hl, bc - ld [hl], d - ld hl, $f - add hl, bc - ld [hl], e - ret - -Functioncdc1a: ; cdc1a (33:5c1a) - call Functioncc9bd - ret - -Functioncdc1e: ; cdc1e (33:5c1e) - ld a, $4e - call Functionce7bf - call Functionce72c - ret - -Functioncdc27: ; cdc27 (33:5c27) - ld hl, $f - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - ld d, $2 - call Functionce734 - ld hl, $9 - add hl, bc - ld [hl], a - ret - -Functioncdc39: ; cdc39 (33:5c39) - ld a, $50 - call Functionce7bf - ld hl, $a - add hl, bc - ld [hl], $4 - call Functionce72c - ret - -Functioncdc48: ; cdc48 (33:5c48) - ld a, $4f - call Functionce7bf - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $40 - ret - -Functioncdc57: ; cdc57 (33:5c57) - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $20 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - cp $30 - jr c, .asm_cdc71 - dec [hl] - ret -.asm_cdc71 - call Functionce72c - -Functioncdc74: ; cdc74 (33:5c74) - ret - -Functioncdc75: ; cdc75 (33:5c75) - ld hl, $f - add hl, bc - ld a, [hli] - ld d, [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - inc [hl] - ld a, [hl] - and $3f - ret nz - ld hl, $f - add hl, bc - ld [hl], $20 - ld hl, $10 - add hl, bc - ld a, [hl] - sub $8 - ld [hl], a - ret nz - xor a - ld hl, $f - add hl, bc - ld [hli], a - ld [hl], a - call Functionce72c - ret - -Functioncdca6: ; cdca6 (33:5ca6) - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_cdcb6 - cp $d8 - jr nc, .asm_cdcb6 - call Functioncc9bd - ret -.asm_cdcb6 - ld hl, $b - add hl, bc - ld d, [hl] - ld hl, $a - add hl, bc - ld a, [hl] - sub d - ld [hl], a - ret - -Functioncdcc3: ; cdcc3 (33:5cc3) - call Functionce71e ; ; ; call does not return - -Jumptable_cdcc6: ; cdcc6 (33:5cc6) - dw Functioncdcca - dw Functioncdced - - -Functioncdcca: ; cdcca (33:5cca) - ld a, [hBattleTurn] - and a - jr z, .asm_cdcd9 - ld hl, $b - add hl, bc - ld a, [hl] - xor $ff - add $3 - ld [hl], a -.asm_cdcd9 - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $8 - ld hl, $b - add hl, bc - ld a, $59 - add [hl] - call Functionce7bf - ret - -Functioncdced: ; cdced (33:5ced) - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_cdcfa - dec [hl] - call Functioncdcfe - ret -.asm_cdcfa - call Functioncc9bd - ret - -Functioncdcfe: ; cdcfe (33:5cfe) - ld hl, $10 - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - ld d, $10 - call Functionce734 - ld d, a - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and a - jr z, .asm_cdd20 - dec a - ret z - ld hl, $a - add hl, bc - ld [hl], d - ret -.asm_cdd20 - ld hl, $a - add hl, bc - ld a, d - xor $ff - inc a - ld [hl], a - ret - -Functioncdd2a: ; cdd2a (33:5d2a) - call Functionce71e ; ; ; call does not return - -Jumptable_cdd2d: ; cdd2d (33:5d2d) - dw Functioncdd31 - dw Functioncdd4f - - -Functioncdd31: ; cdd31 (33:5d31) - call Functionce72c - ld hl, $b - add hl, bc - ld a, [hl] - and $3f - ld hl, $10 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and $80 - rlca - ld [hl], a - add $5d - call Functionce7bf - ret - -Functioncdd4f: ; cdd4f (33:5d4f) - ld hl, $b - add hl, bc - ld a, [hl] - swap a - ld d, a - ld hl, $10 - add hl, bc - ld a, [hl] - inc [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $7 - add hl, bc - ld a, [hl] - cp $80 - ret nc - ld hl, $10 - add hl, bc - ld a, [hl] - and $3 - jr nz, .asm_cdd87 - ld hl, $8 - add hl, bc - dec [hl] -.asm_cdd87 - and $1 - ret nz - ld hl, $7 - add hl, bc - inc [hl] - ret - -Functioncdd90: ; cdd90 (33:5d90) - call Functionce71e ; ; ; call does not return - -Jumptable_cdd93: ; cdd93 (33:5d93) - dw Functioncdd97 - dw Functioncddbc - - -Functioncdd97: ; cdd97 (33:5d97) - call Functionce72c - ld hl, $3 - add hl, bc - ld a, [hl] - ld hl, $f - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - and $80 - rlca - ld hl, $f - add hl, bc - add [hl] - call Functionce7bf - ld hl, $b - add hl, bc - ld a, [hl] - and $7f - ld [hl], a - -Functioncddbc: ; cddbc (33:5dbc) - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $10 - push af - push de - call Functionce734 - sra a - sra a - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - inc [hl] - and $3f - jr z, .asm_cddf0 - and $1f - ret nz - ld hl, $f - add hl, bc - ld a, [hl] - inc a - jr .asm_cddf5 -.asm_cddf0 - ld hl, $f - add hl, bc - ld a, [hl] -.asm_cddf5 - call Functionce7bf - ret - -Functioncddf9: ; cddf9 (33:5df9) - call Functionce71e ; ; ; call does not return - -Jumptable_cddfc: ; cddfc (33:5dfc) - dw Functioncde02 - dw Functioncde20 - dw Functioncde21 - - -Functioncde02: ; cde02 (33:5e02) - call Functionce72c - ld hl, $b - add hl, bc - ld a, [hl] - add $63 - call Functionce7bf - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Unknown_cde25 - add hl, de - ld a, [hl] - ld hl, $a - add hl, bc - ld [hl], a - -Functioncde20: ; cde20 (33:5e20) - ret - -Functioncde21: ; cde21 (33:5e21) - call Functioncc9bd - ret -; cde25 (33:5e25) - -Unknown_cde25: ; cde25 - db $ec, $f8, $00 -; cde28 - -Functioncde28: ; cde28 (33:5e28) - ld hl, $f - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - ld d, $4 - call Functionce734 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $a - add hl, bc - ld d, [hl] - ld hl, $10 - add hl, bc - ld e, [hl] - ld hl, $ffa0 - add hl, de - ld e, l - ld d, h - ld hl, $a - add hl, bc - ld [hl], d - ld hl, $10 - add hl, bc - ld [hl], e - ret - -Functioncde54: ; cde54 (33:5e54) - ld hl, $f - add hl, bc - ld a, [hl] -rept 2 - dec [hl] -endr - ld d, $10 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $7 - add hl, bc - inc [hl] - ret - -Functioncde6b: ; cde6b (33:5e6b) - call Functionce71e ; ; ; call does not return - -Jumptable_cde6e: ; cde6e (33:5e6e) - dw Functioncde72 - dw Functioncde88 - - -Functioncde72: ; cde72 (33:5e72) - call Functionce72c - ld hl, $b - add hl, bc - ld a, [hl] - and a - jr nz, .asm_cde83 - ld hl, $1 - add hl, bc - set 6, [hl] -.asm_cde83 - add $6a - call Functionce7bf - -Functioncde88: ; cde88 (33:5e88) - ret - -Functioncde89: ; cde89 (33:5e89) - call Functionce71e ; ; ; call does not return - -Jumptable_cde8c: ; cde8c (33:5e8c) - dw Functioncde90 - dw Functioncdebf - - -Functioncde90: ; cde90 (33:5e90) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $0 - ld hl, $b - add hl, bc - ld e, [hl] - ld a, e - and $70 - swap a - ld [hl], a - ld hl, $9 - add hl, bc - ld a, e - and $80 - jr nz, .asm_cdeb2 - ld a, e - and $f - ld [hl], a - ret -.asm_cdeb2 - ld a, e - and $f - xor $ff - inc a - ld [hl], a - ld a, $6e - call Functionce7bf - ret - -Functioncdebf: ; cdebf (33:5ebf) - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_cdec9 - dec [hl] - ret -.asm_cdec9 - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $f - add hl, bc - ld [hl], a - ld hl, $9 - add hl, bc - ld a, [hl] - xor $ff - inc a - ld [hl], a - ret - -Functioncdedd: ; cdedd (33:5edd) - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $18 - push af - push de - call Functionce734 - sra a - sra a - sra a - ld hl, $10 - add hl, bc - add [hl] - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - inc [hl] - ld a, [hl] - and $7 - ret nz - ld hl, $10 - add hl, bc - ld a, [hl] - cp $28 - jr nc, .asm_cdf17 - inc [hl] - ret -.asm_cdf17 - call Functioncc9bd - ret - -Functioncdf1b: ; cdf1b (33:5f1b) - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $18 - push af - push de - call Functionce734 - sra a - sra a - sra a - ld hl, $10 - add hl, bc - add [hl] - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - inc [hl] - ld a, [hl] - and $3 - ret nz - ld hl, $10 - add hl, bc - ld a, [hl] - cp $28 - jr nc, .asm_cdf55 - inc [hl] - ret -.asm_cdf55 - call Functioncc9bd - ret - -Functioncdf59: ; cdf59 (33:5f59) - call Functionce71e ; ; ; call does not return - -Jumptable_cdf5c: ; cdf5c (33:5f5c) - dw Functioncdf60 - dw Functioncdedd - - -Functioncdf60: ; cdf60 (33:5f60) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $84 - jr nc, .asm_cdf88 - inc [hl] - ld hl, $f - add hl, bc - ld a, [hl] - inc [hl] - ld d, $18 - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $7 - add hl, bc - ld a, [hl] - and $1 - ret nz - ld hl, $8 - add hl, bc - dec [hl] - ret -.asm_cdf88 - call Functionce72c - ret - -Functioncdf8c: ; cdf8c (33:5f8c) - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $18 - push af - push de - call Functionce734 - sra a - sra a - sra a - ld hl, $10 - add hl, bc - add [hl] - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc -rept 2 - inc [hl] -endr - ld a, [hl] - and $7 - ret nz - ld hl, $10 - add hl, bc - ld a, [hl] - cp $e8 - jr z, .asm_cdfc7 - dec [hl] - ret -.asm_cdfc7 - call Functioncc9bd - ret - -Functioncdfcb: ; cdfcb (33:5fcb) - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $18 - push af - push de - call Functionce734 - sra a - sra a - sra a - ld hl, $10 - add hl, bc - add [hl] - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc -rept 2 - inc [hl] -endr - ld a, [hl] - and $3 - ret nz - ld hl, $10 - add hl, bc - ld a, [hl] - cp $d0 - jr z, .asm_ce007 -rept 2 - dec [hl] -endr - ret -.asm_ce007 - call Functioncc9bd - ret - -Functionce00b: ; ce00b (33:600b) - call Functionce71e ; ; ; call does not return - -Jumptable_ce00e: ; ce00e (33:600e) - dw Functionce014 - dw Functionce023 - dw Functionce05f - - -Functionce014: ; ce014 (33:6014) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $34 - ld hl, $10 - add hl, bc - ld [hl], $10 - -Functionce023: ; ce023 (33:6023) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $6c - jr c, .asm_ce02d - ret -.asm_ce02d - ld a, $2 - call Functionce70a - ld hl, $f - add hl, bc - ld a, [hl] - ld hl, $10 - add hl, bc - ld d, [hl] - call Functionce734 - bit 7, a - jr nz, .asm_ce046 - xor $ff - inc a -.asm_ce046 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - sub $4 - ld [hl], a - and $1f - cp $20 - ret nz - ld hl, $10 - add hl, bc - srl [hl] - ret - -Functionce05f: ; ce05f (33:605f) - call Functioncc9bd - ret - -Functionce063: ; ce063 (33:6063) - call Functionce71e ; ; ; call does not return - -Jumptable_ce066: ; ce066 (33:6066) - dw Functionce06e - dw Functionce083 - dw Functionce091 - dw Functionce09e - - -Functionce06e: ; ce06e (33:606e) - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $e - add hl, bc - ld [hl], a - ld hl, $8 - add hl, bc - ld a, [hl] - ld hl, $f - add hl, bc - ld [hl], a - ret - -Functionce083: ; ce083 (33:6083) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $58 - ret nc - ld a, $2 - call Functionce70a - ret - -Functionce091: ; ce091 (33:6091) - ld hl, $10 - add hl, bc - ld a, [hl] - cp $20 - jr c, Functionce09e - call Functioncc9bd - ret - -Functionce09e: ; ce09e (33:609e) - ld hl, $10 - add hl, bc - ld a, [hl] - ld d, $8 - call Functionce734 - ld hl, $9 - add hl, bc - ld [hl], a - sra a - xor $ff - inc a - ld hl, $f - add hl, bc - add [hl] - ld hl, $8 - add hl, bc - ld [hl], a - ld hl, $10 - add hl, bc - ld a, [hl] - add $8 - ld [hl], a - ret - -Functionce0c5: ; ce0c5 (33:60c5) - call Functionce71e ; ; ; call does not return - -Jumptable_ce0c8: ; ce0c8 (33:60c8) - dw Functionce0ce - dw Functionce0f8 - dw Functionce0dd - - -Functionce0ce: ; ce0ce (33:60ce) - ld hl, $b - add hl, bc - ld a, [hl] - and $f0 - swap a - ld hl, $e - add hl, bc - ld [hl], a - ret - -Functionce0dd: ; ce0dd (33:60dd) - ld hl, $f - add hl, bc - ld a, [hl] - ld d, $10 - call Functionce734 - ld hl, $a - add hl, bc - bit 7, a - jr z, .asm_ce0f0 - ld [hl], a -.asm_ce0f0 - ld hl, $f - add hl, bc - ld a, [hl] - sub $4 - ld [hl], a - -Functionce0f8: ; ce0f8 (33:60f8) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $84 - jr c, .asm_ce105 - call Functioncc9bd - ret -.asm_ce105 - ld hl, $b - add hl, bc - ld a, [hl] - call Functionce70a - ret - -Functionce10e: ; ce10e (33:610e) - call Functionce71e ; ; ; call does not return - -Jumptable_ce111: ; ce111 (33:6111) - dw Functionce115 - dw Functionce12a - - -Functionce115: ; ce115 (33:6115) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $28 - ld hl, $8 - add hl, bc - ld a, [hl] - sub $28 - ld hl, $10 - add hl, bc - ld [hl], a - -Functionce12a: ; ce12a (33:612a) - ld hl, $f - add hl, bc - ld a, [hli] - ld d, [hl] - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - ld hl, $b - add hl, bc - and [hl] - jr nz, .asm_ce149 - ld hl, $7 - add hl, bc - dec [hl] -.asm_ce149 - ld hl, $f - add hl, bc - inc [hl] - ld a, [hl] - and $3f - ret nz - ld hl, $f - add hl, bc - ld [hl], $20 - inc hl - srl [hl] - ret - -Functionce15c: ; ce15c (33:615c) - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $f - add hl, bc - ld d, [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - inc [hl] - ld a, [hl] - and $1 - jr nz, .asm_ce189 - ld hl, $7 - add hl, bc - dec [hl] -.asm_ce189 - ld hl, $b - add hl, bc - ld a, [hl] - and $3 - jr nz, .asm_ce197 - ld hl, $8 - add hl, bc - inc [hl] -.asm_ce197 - ld hl, $7 - add hl, bc - ld a, [hl] - ld hl, $f - add hl, bc - cp $5a - jr nc, .asm_ce1aa - ld a, [hl] - and a - jr z, .asm_ce1ac - dec [hl] - ret -.asm_ce1aa - inc [hl] - ret -.asm_ce1ac - call Functioncc9bd - ret - -Functionce1b0: ; ce1b0 (33:61b0) - ld hl, $b - add hl, bc - ld a, [hl] - inc [hl] - ld hl, $f - add hl, bc - ld d, [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $10 - add hl, bc - ld a, [hl] - inc [hl] - ld hl, $f - add hl, bc - cp $40 - jr nc, .asm_ce1df - inc [hl] - ret -.asm_ce1df - ld a, [hl] - dec [hl] - and a - ret nz - call Functioncc9bd - ret - -Functionce1e7: ; ce1e7 (33:61e7) - call Functionce71e ; ; ; call does not return - -Jumptable_ce1ea: ; ce1ea (33:61ea) - dw Functionce1ee - dw Functionce1fb - - -Functionce1ee: ; ce1ee (33:61ee) - call Functionce72c - ld hl, $8 - add hl, bc - ld a, [hl] - ld hl, $10 - add hl, bc - ld [hl], a - -Functionce1fb: ; ce1fb (33:61fb) - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $30 - call Functionce734 - ld hl, $10 - add hl, bc - add [hl] - ld hl, $8 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - add $8 - ld d, $30 - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - inc [hl] - ret - -Functionce226: ; ce226 (33:6226) - call Functionce71e ; ; ; call does not return - -Jumptable_ce229: ; ce229 (33:6229) - dw Functionce22d - dw Functionce254 - - -Functionce22d: ; ce22d (33:622d) - call Functionce72c - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $10 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $10 - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $10 - add hl, bc - ld [hl], $f - -Functionce254: ; ce254 (33:6254) - ret - -Functionce255: ; ce255 (33:6255) - call Functionce71e ; ; ; call does not return - -Jumptable_ce258: ; ce258 (33:6258) - dw Functionce260 - dw Functionce274 - dw Functionce278 - dw Functionce289 - - -Functionce260: ; ce260 (33:6260) - call Functionce72c - ld a, [hBattleTurn] - and a - jr nz, .asm_ce26c - ld a, $f0 - jr .asm_ce26e -.asm_ce26c - ld a, $cc -.asm_ce26e - ld hl, $f - add hl, bc - ld [hl], a - ret - -Functionce274: ; ce274 (33:6274) - call Functionce29f - ret - -Functionce278: ; ce278 (33:6278) - call Functionce29f - ld hl, $7 - add hl, bc - ld a, [hl] - cp $84 - ret nc - ld a, $4 - call Functionce70a - ret - -Functionce289: ; ce289 (33:6289) - call Functionce29f - ld hl, $7 - add hl, bc - ld a, [hl] - cp $d0 - jr nc, .asm_ce29b - ld a, $4 - call Functionce70a - ret -.asm_ce29b - call Functioncc9bd - ret - -Functionce29f: ; ce29f (33:629f) - ld hl, $10 - add hl, bc - ld a, [hl] - and $7 - inc [hl] - srl a - ld e, a - ld d, $0 - ld a, [hSGB] - and a - jr nz, .asm_ce2b6 - ld hl, Unknown_ce2c4 - jr .asm_ce2b9 -.asm_ce2b6 - ld hl, Unknown_ce2c8 -.asm_ce2b9 - add hl, de - ld a, [hl] - ld hl, $f - add hl, bc - and [hl] - ld [wcfc8], a - ret -; ce2c4 (33:62c4) - -Unknown_ce2c4: ; ce2c4 - db $ff, $aa, $55, $aa -Unknown_ce2c8: ; ce2c8 - db $ff, $ff, $00, $00 -; ce2cc - -Functionce2cc: ; ce2cc (33:62cc) - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $18 - call Functionce734 - sra a - sra a - sra a - ld hl, $10 - add hl, bc - add [hl] - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - inc [hl] - ld d, $18 - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $10 - add hl, bc -rept 2 - dec [hl] -endr - ret - -Functionce2fd: ; ce2fd (33:62fd) - call Functionce71e ; ; ; call does not return - -Jumptable_ce300: ; ce300 (33:6300) - dw Functionce306 - dw Functionce330 - dw Functionce34c - - -Functionce306: ; ce306 (33:6306) - ld hl, $a - add hl, bc - ld a, [hl] - cp $e0 - jr nz, .asm_ce319 - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $2 - ret -.asm_ce319 - ld d, a - ld hl, $f - add hl, bc - ld e, [hl] - ld hl, hPushOAM ; $ff80 - add hl, de - ld e, l - ld d, h - ld hl, $a - add hl, bc - ld [hl], d - ld hl, $f - add hl, bc - ld [hl], e - ret - -Functionce330: ; ce330 (33:6330) - ld hl, $10 - add hl, bc - ld a, [hl] - and a - jr z, .asm_ce33a - dec [hl] - ret -.asm_ce33a - ld [hl], $4 - ld hl, $f - add hl, bc - ld a, [hl] - xor $ff - inc a - ld [hl], a - ld hl, $a - add hl, bc - add [hl] - ld [hl], a - ret - -Functionce34c: ; ce34c (33:634c) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $84 - jr nc, .asm_ce35b - ld a, $4 - call Functionce70a - ret -.asm_ce35b - call Functioncc9bd - ret - -Functionce35f: ; ce35f (33:635f) - call Functionce71e ; ; ; call does not return - -Jumptable_ce362: ; ce362 (33:6362) - dw Functionce366 - dw Functionce375 - - -Functionce366: ; ce366 (33:6366) - call Functionce72c - ld hl, $b - add hl, bc - ld a, [hl] - and $7f - add $81 - call Functionce7bf - -Functionce375: ; ce375 (33:6375) - ld hl, $b - add hl, bc - bit 7, [hl] - jr nz, .asm_ce383 - ld hl, $9 - add hl, bc - inc [hl] - ret -.asm_ce383 - ld hl, $9 - add hl, bc - dec [hl] - ret - -Functionce389: ; ce389 (33:6389) - call Functionce71e ; ; ; call does not return - -Jumptable_ce38c: ; ce38c (33:638c) - dw Functionce392 - dw Functionce39c - dw Functionce3ae - - -Functionce392: ; ce392 (33:6392) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $c - ret - -Functionce39c: ; ce39c (33:639c) - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_ce3a6 - dec [hl] - ret -.asm_ce3a6 - call Functionce72c - ld a, $20 - call Functionce7bf - -Functionce3ae: ; ce3ae (33:63ae) - ld hl, $a - add hl, bc - dec [hl] - ret - -Functionce3b4: ; ce3b4 (33:63b4) - ld hl, $f - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - push af - ld d, $2 - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop af - ld d, $8 - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ret - -Functionce3d2: ; ce3d2 (33:63d2) - ld hl, $a - add hl, bc - ld a, [hl] - cp $20 - jr c, .asm_ce3df - call Functioncc9bd - ret -.asm_ce3df - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $8 - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - add $2 - ld [hl], a - and $7 - ret nz - ld hl, $a - add hl, bc - inc [hl] - ret - -Functionce3ff: ; ce3ff (33:63ff) - call Functionce71e ; ; ; call does not return - -Jumptable_ce402: ; ce402 (33:6402) - dw Functionce406 - dw Functionce412 - - -Functionce406: ; ce406 (33:6406) - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $7 - add hl, bc - add [hl] - ld [hl], a - ret - -Functionce412: ; ce412 (33:6412) - call Functioncc9bd - ret - -Functionce416: ; ce416 (33:6416) - ld hl, $b - add hl, bc - ld a, [hl] - ld d, $18 - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - sra a - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - inc [hl] - ret - -Functionce43a: ; ce43a (33:643a) - call Functionce71e ; ; ; call does not return - -Jumptable_ce43d: ; ce43d (33:643d) - dw Functionce443 - dw Functionce465 - dw Functionce490 - - -Functionce443: ; ce443 (33:6443) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $28 - ld hl, $b - add hl, bc - ld a, [hl] - and $f - ld hl, $3 - add hl, bc - add [hl] - call Functionce7bf - ld hl, $b - add hl, bc - ld a, [hl] - and $f0 - or $8 - ld [hl], a - -Functionce465: ; ce465 (33:6465) - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_ce48b - dec [hl] - add $8 - ld d, a - ld hl, $b - add hl, bc - ld a, [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ret -.asm_ce48b - ld [hl], $10 - call Functionce72c - -Functionce490: ; ce490 (33:6490) - ld hl, $f - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - call Functioncc9bd - ret - -Functionce49c: ; ce49c (33:649c) - call Functionce71e ; ; ; call does not return - -Jumptable_ce49f: ; ce49f (33:649f) - dw Functionce4a3 - dw Functionce4b0 - - -Functionce4a3: ; ce4a3 (33:64a3) - call Functionce72c - ld hl, $b - add hl, bc - ld a, $24 - add [hl] - call Functionce7bf - -Functionce4b0: ; ce4b0 (33:64b0) - ld hl, $a - add hl, bc - ld a, [hl] - cp $38 - jr nc, .asm_ce4d8 - inc [hl] - ld hl, $f - add hl, bc - ld a, [hl] - inc [hl] - ld d, $18 - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ld hl, $8 - add hl, bc - ld a, [hl] - and $1 - ret nz - ld hl, $7 - add hl, bc - dec [hl] - ret -.asm_ce4d8 - call Functioncc9bd - ret - -Functionce4dc: ; ce4dc (33:64dc) - ld hl, $b - add hl, bc - ld a, [hl] - and a - ret z - ld d, a - ld hl, $f - add hl, bc - ld a, [hl] - inc [hl] - call Functionce734 - bit 7, a - jr nz, .asm_ce4f4 - xor $ff - inc a -.asm_ce4f4 - ld hl, $a - add hl, bc - ld [hl], a - ld hl, $f - add hl, bc - ld a, [hl] - and $1f - ret nz - ld hl, $b - add hl, bc - srl [hl] - ret - -Functionce508: ; ce508 (33:6508) - ld hl, $f - add hl, bc - ld a, [hl] - cp $10 - jr nc, .asm_ce52e -rept 2 - inc [hl] -endr - ld d, a - ld hl, $b - add hl, bc - ld a, [hl] - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ret -.asm_ce52e - call Functioncc9bd - ret - -Functionce532: ; ce532 (33:6532) - ld hl, $b - add hl, bc - ld e, [hl] - ld hl, $f - add hl, bc - ld d, [hl] - ld a, e - and $c0 - rlca - rlca - add [hl] - ld [hl], a - ld a, e - and $3f - push af - push de - call Functionce734 - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ret - -Functionce55b: ; ce55b (33:655b) - call Functionce71e ; ; ; call does not return - -Jumptable_ce55e: ; ce55e (33:655e) - dw Functionce564 - dw Functionce56e - dw Functionce577 - - -Functionce564: ; ce564 (33:6564) - ld d, $18 - ld hl, $b - add hl, bc - ld a, [hl] - inc [hl] - jr asm_ce58f - -Functionce56e: ; ce56e (33:656e) - call Functionce72c - ld hl, $f - add hl, bc - ld [hl], $18 - -Functionce577: ; ce577 (33:6577) - ld hl, $f - add hl, bc - ld a, [hl] - cp $80 - jr nc, .asm_ce58b - ld d, a - add $8 - ld [hl], a - ld hl, $b - add hl, bc - ld a, [hl] - jr asm_ce58f -.asm_ce58b - call Functioncc9bd - ret -asm_ce58f: ; ce58f (33:658f) - call Functionce6f1 - ret - -Functionce593: ; ce593 (33:6593) - call Functionce71e ; ; ; call does not return - -Jumptable_ce596: ; ce596 (33:6596) - dw Functionce5b3 - dw Functionce59a - - -Functionce59a: ; ce59a (33:659a) - ld hl, $7 - add hl, bc - ld a, [hl] - cp $30 - jr c, .asm_ce5b0 - ld hl, $7 - add hl, bc -rept 2 - dec [hl] -endr - ld hl, $8 - add hl, bc -rept 2 - inc [hl] -endr - ret -.asm_ce5b0 - call Functioncc9bd - -Functionce5b3: ; ce5b3 (33:65b3) - ret - -Functionce5b4: ; ce5b4 (33:65b4) - ld d, $50 - ld hl, $b - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - push af - push de - call Functionce734 - sra a - sra a - ld hl, $f - add hl, bc - add [hl] - inc [hl] - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ret - -Functionce5dc: ; ce5dc (33:65dc) - ld hl, $a - add hl, bc - ld a, [hl] - cp $d0 - jr z, .asm_ce5ea -rept 4 - dec [hl] -endr - ret -.asm_ce5ea - call Functioncc9bd - ret - -Functionce5ee: ; ce5ee (33:65ee) - call Functionce71e ; ; ; call does not return - -Jumptable_ce5f1: ; ce5f1 (33:65f1) - dw Functionce5f9 - dw Functionce60a - dw Functionce622 - dw Functionce618 - - -Functionce5f9: ; ce5f9 (33:65f9) - ld hl, $b - add hl, bc - ld a, [hl] - and a - jr nz, asm_ce61c - call Functionce72c - ld hl, $a - add hl, bc - ld [hl], $ec - -Functionce60a: ; ce60a (33:660a) - ld hl, $a - add hl, bc - ld a, [hl] - cp $4 - jr z, Functionce618 -rept 4 - inc [hl] -endr - ret - -Functionce618: ; ce618 (33:6618) - call Functioncc9bd - ret -asm_ce61c: ; ce61c (33:661c) - call Functionce72c - call Functionce72c - -Functionce622: ; ce622 (33:6622) - ld hl, $a - add hl, bc - ld a, [hl] - cp $d8 - ret z -rept 4 - dec [hl] -endr - ret - -Functionce62f: ; ce62f (33:662f) - call Functionce71e ; ; ; call does not return - -Jumptable_ce632: ; ce632 (33:6632) - dw Functionce63a - dw Functionce648 - dw Functionce65c - dw Functionce672 - - -Functionce63a: ; ce63a (33:663a) - ld hl, $b - add hl, bc - ld a, [hl] - ld hl, $e - add hl, bc - ld [hl], a - call Functionce72c - ret - -Functionce648: ; ce648 (33:6648) - ld hl, $a - add hl, bc - ld a, [hl] - add $4 - cp $70 - jr c, .asm_ce654 - xor a -.asm_ce654 - ld [hl], a - ld hl, $9 - add hl, bc -rept 2 - inc [hl] -endr - ret - -Functionce65c: ; ce65c (33:665c) - ld hl, $a - add hl, bc - ld a, [hl] - add $4 - cp $70 - jr c, .asm_ce668 - xor a -.asm_ce668 - ld [hl], a - ld hl, $9 - add hl, bc - ld a, [hl] - add $8 - ld [hl], a - ret - -Functionce672: ; ce672 (33:6672) - ld hl, $a - add hl, bc - ld a, [hl] - add $4 - cp $70 - jr c, .asm_ce67e - xor a -.asm_ce67e - ld [hl], a - ld hl, $9 - add hl, bc - ld a, [hl] - add $4 - ld [hl], a - ret - -Functionce688: ; ce688 (33:6688) - ld hl, $7 - add hl, bc - ld d, [hl] - ld hl, $f - add hl, bc - ld e, [hl] - ld hl, $b - add hl, bc - ld a, [hl] - ld l, a - and $f0 - ld h, a - swap a - or h - ld h, a - ld a, l - and $f - swap a - ld l, a - add hl, de - ld e, l - ld d, h - ld hl, $7 - add hl, bc - ld [hl], d - ld hl, $f - add hl, bc - ld [hl], e - ret - -Functionce6b3: ; ce6b3 (33:66b3) - ld d, $18 - ld hl, $b - add hl, bc - ld a, [hl] - inc [hl] - call Functionce6f1 - ret - -Functionce6bf: ; ce6bf (33:66bf) - ld d, $18 - ld hl, $10 - add hl, bc - ld a, [hl] - inc [hl] - srl a - ld hl, $b - add hl, bc - add [hl] - call Functionce6f1 - ret - -Functionce6d2: ; ce6d2 (33:66d2) - ld hl, $f - add hl, bc - ld a, [hl] - cp $20 - jr nc, .asm_ce6ed - inc [hl] - ld hl, $b - add hl, bc - ld d, [hl] - call Functionce734 - xor $ff - inc a - ld hl, $a - add hl, bc - ld [hl], a - ret -.asm_ce6ed - call Functioncc9bd - ret - -Functionce6f1: ; ce6f1 (33:66f1) - push af - push de - call Functionce734 - sra a - sra a - ld hl, $a - add hl, bc - ld [hl], a - pop de - pop af - call Functionce732 - ld hl, $9 - add hl, bc - ld [hl], a - ret - -Functionce70a: ; ce70a (33:670a) - and $f - ld e, a - ld hl, $7 - add hl, bc - add [hl] - ld [hl], a - srl e - ld hl, $8 - add hl, bc -.asm_ce719 - dec [hl] - dec e - jr nz, .asm_ce719 - ret - -Functionce71e: ; ce71e (33:671e) - pop de - ld hl, $e - add hl, bc - ld l, [hl] - ld h, $0 - add hl, hl - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Functionce72c: ; ce72c (33:672c) - ld hl, $e - add hl, bc - inc [hl] - ret - -Functionce732: ; ce732 (33:6732) - add $10 - -Functionce734: ; ce734 (33:6734) - and $3f - cp $20 - jr nc, .asm_ce73f - call Functionce749 - ld a, h - ret -.asm_ce73f - and $1f - call Functionce749 - ld a, h - xor $ff - inc a - ret - -Functionce749: ; ce749 (33:6749) - ld e, a - ld a, d - ld d, 0 - ld hl, Unknown_ce77f -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $0 -.asm_ce758 - srl a - jr nc, .asm_ce75d - add hl, de -.asm_ce75d - sla e - rl d - and a - jr nz, .asm_ce758 - ret - -Functionce765: ; ce765 (33:6765) - ld a, e - call Functionce734 - ld e, a - ret - -Functionce76b: ; ce76b (33:676b) - ld a, e - call Functionce732 - ld e, a - ret -; ce771 (33:6771) - -Functionce771: ; ce771 - ld a, e - call Functionce734 - ld e, l - ld d, h - ret -; ce778 - -Functionce778: ; ce778 - ld a, e - call Functionce732 - ld e, l - ld d, h - ret -; ce77f - -Unknown_ce77f: ; ce77f - sine_wave $100 -; ce7bf - -Functionce7bf: ; ce7bf (33:67bf) - ld hl, $3 - add hl, bc - ld [hl], a - ld hl, $c - add hl, bc - ld [hl], $0 - ld hl, $d - add hl, bc - ld [hl], $ff - ret - - -Functionce7d1: ; ce7d1 -.asm_ce7d1 - ld hl, $000c - add hl, bc - ld a, [hl] - and a - jr z, .asm_ce7e1 - dec [hl] - call Functionce823 - ld a, [hli] - push af - jr .asm_ce7fd - -.asm_ce7e1 - ld hl, $000d - add hl, bc - inc [hl] - call Functionce823 - ld a, [hli] - cp $fe - jr z, .asm_ce815 - cp $ff - jr z, .asm_ce807 - push af - ld a, [hl] - push hl - and $3f - ld hl, $000c - add hl, bc - ld [hl], a - pop hl - -.asm_ce7fd - ld a, [hl] - and $c0 - srl a - ld [BattleAnimTemps + 7], a - pop af - ret - -.asm_ce807 - xor a - ld hl, $000c - add hl, bc - ld [hl], a - ld hl, $000d - add hl, bc -rept 2 - dec [hl] -endr - jr .asm_ce7d1 - -.asm_ce815 - xor a - ld hl, $000c - add hl, bc - ld [hl], a - dec a - ld hl, $000d - add hl, bc - ld [hl], a - jr .asm_ce7d1 -; ce823 - -Functionce823: ; ce823 - ld hl, $0003 - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Unknown_ce85e -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $000d - add hl, bc - ld l, [hl] - ld h, $0 - add hl, hl - add hl, de - ret -; ce83c - -Functionce83c: ; ce83c - ld l, a - ld h, 0 - ld de, Unknown_ceeae -rept 2 - add hl, hl -endr - add hl, de - ret -; ce846 - - -Functionce846: ; ce846 (33:6846) - push hl - ld l, a - ld h, 0 -rept 2 - add hl, hl -endr - ld de, AnimObjGFX - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - inc hl - ld a, [hli] - ld h, [hl] - ld l, a - pop de - push bc - call DecompressRequest2bpp - pop bc - ret -; ce85e (33:685e) - - -Unknown_ce85e: ; ce85e - dw Unknown_ce9d0 - dw Unknown_ce9d3 - dw Unknown_ce9d6 - dw Unknown_ce9d9 - dw Unknown_ce9dc - dw Unknown_ce9df - dw Unknown_ce9e2 - dw Unknown_ce9e5 - dw Unknown_cea6b - dw Unknown_cea74 - dw Unknown_cea7d - dw Unknown_cea80 - dw Unknown_cea83 - dw Unknown_cea86 - dw Unknown_cea91 - dw Unknown_cea94 - dw Unknown_cea99 - dw Unknown_cea9e - dw Unknown_ceaaf - dw Unknown_ceabc - dw Unknown_cead3 - dw Unknown_cead6 - dw Unknown_ceadb - dw Unknown_ceade - dw Unknown_ceb06 - dw Unknown_ceb0d - dw Unknown_ceb10 - dw Unknown_ceb13 - dw Unknown_ceb16 - dw Unknown_ceb19 - dw Unknown_ceb1c - dw Unknown_ceb1f - dw Unknown_ceb26 - dw Unknown_ceb2b - dw Unknown_ceb2e - dw Unknown_ceb37 - dw Unknown_ceb3a - dw Unknown_ceb3d - dw Unknown_ceb40 - dw Unknown_ceb43 - dw Unknown_ceb46 - dw Unknown_ceb4b - dw Unknown_ceb50 - dw Unknown_ceb63 - dw Unknown_ceb68 - dw Unknown_ceb6d - dw Unknown_ceb70 - dw Unknown_ceb78 - dw Unknown_ceb89 - dw Unknown_ceb8e - dw Unknown_ceb97 - dw Unknown_ceba0 - dw Unknown_ceba9 - dw Unknown_cebb0 - dw Unknown_cebc1 - dw Unknown_cebca - dw Unknown_cebcf - dw Unknown_cebd4 - dw Unknown_cebd9 - dw Unknown_cebdc - dw Unknown_cebdf - dw Unknown_cebe2 - dw Unknown_ce9f6 - dw Unknown_cea0b - dw Unknown_cea20 - dw Unknown_cea35 - dw Unknown_cea50 - dw Unknown_cebe5 - dw Unknown_cebf3 - dw Unknown_cec0f - dw Unknown_cec20 - dw Unknown_cec25 - dw Unknown_cec2a - dw Unknown_cec37 - dw Unknown_cec44 - dw Unknown_cec4d - dw Unknown_cebec - dw Unknown_cec56 - dw Unknown_cec67 - dw Unknown_cec72 - dw Unknown_cec77 - dw Unknown_cec7c - dw Unknown_cec7f - dw Unknown_cec86 - dw Unknown_cec8b - dw Unknown_cec92 - dw Unknown_ceaf3 - dw Unknown_ceaf6 - dw Unknown_ceb01 - dw Unknown_cec97 - dw Unknown_cec9a - dw Unknown_cec9d - dw Unknown_ceca0 - dw Unknown_cecab - dw Unknown_cecb0 - dw Unknown_cecc9 - dw Unknown_ceccc - dw Unknown_cece7 - dw Unknown_cecec - dw Unknown_cecf1 - dw Unknown_cecf4 - dw Unknown_cecf7 - dw Unknown_cecfa - dw Unknown_ced09 - dw Unknown_ced0c - dw Unknown_ced19 - dw Unknown_ced22 - dw Unknown_ced2b - dw Unknown_ced32 - dw Unknown_ced39 - dw Unknown_ced3c - dw Unknown_ced3f - dw Unknown_ced44 - dw Unknown_ced49 - dw Unknown_ced4c - dw Unknown_ced4f - dw Unknown_ced54 - dw Unknown_ced57 - dw Unknown_ced5a - dw Unknown_ced5d - dw Unknown_ced62 - dw Unknown_ced65 - dw Unknown_cecb3 - dw Unknown_ced72 - dw Unknown_ced75 - dw Unknown_ced88 - dw Unknown_cec08 - dw Unknown_ced8b - dw Unknown_ced8e - dw Unknown_ced91 - dw Unknown_ced93 - dw Unknown_ced95 - dw Unknown_ced98 - dw Unknown_ced9b - dw Unknown_ceda8 - dw Unknown_cedb5 - dw Unknown_cedb8 - dw Unknown_cedbb - dw Unknown_cedbe - dw Unknown_cedc1 - dw Unknown_cedc4 - dw Unknown_cedc7 - dw Unknown_cedcc - dw Unknown_cedcf - dw Unknown_cedd2 - dw Unknown_cedd5 - dw Unknown_cedd8 - dw Unknown_ceddb - dw Unknown_cedde - dw Unknown_cede1 - dw Unknown_cede4 - dw Unknown_cede7 - dw Unknown_cedea - dw Unknown_ceded - dw Unknown_cedf0 - dw Unknown_cedf3 - dw Unknown_cedf6 - dw Unknown_cedf9 - dw Unknown_cedfc - dw Unknown_cedff - dw Unknown_cee02 - dw Unknown_cee05 - dw Unknown_cee08 - dw Unknown_cee0b - dw Unknown_cee12 - dw Unknown_cee19 - dw Unknown_cee1e - dw Unknown_cee3d - dw Unknown_cee5c - dw Unknown_cee61 - dw Unknown_cee64 - dw Unknown_cee6b - dw Unknown_cee70 - dw Unknown_cee75 - dw Unknown_cee7e - dw Unknown_cecbe - dw Unknown_cee81 - dw Unknown_cee84 - dw Unknown_cee8d - dw Unknown_cee96 - dw Unknown_cee9f - dw Unknown_ceea2 - dw Unknown_ceea5 - dw Unknown_ceea8 - dw Unknown_ceeab -; ce9d0 - -Unknown_ce9d0: db $00,$06, $fc -Unknown_ce9d3: db $01,$06, $fc -Unknown_ce9d6: db $02,$06, $fc -Unknown_ce9d9: db $03,$06, $fc -Unknown_ce9dc: db $04,$06, $fc -Unknown_ce9df: db $05,$06, $fc -Unknown_ce9e2: db $06,$06, $fc -Unknown_ce9e5: db $03,$04, $01,$01, $03,$04, $01,$01, $03,$04, $01,$01, $03,$04, $01,$01, $fc -Unknown_ce9f6: db $4b,$02, $4c,$02, $4d,$04, $4e,$02, $fd,$02, $4e,$02, $fd,$02, $4e,$02, $fd,$02, $4e,$02, $fc -Unknown_cea0b: db $4b,$42, $4c,$42, $4d,$44, $4e,$42, $fd,$02, $4e,$42, $fd,$02, $4e,$42, $fd,$02, $4e,$42, $fc -Unknown_cea20: db $4b,$c2, $4c,$c2, $4d,$c4, $4e,$c2, $fd,$02, $4e,$c2, $fd,$02, $4e,$c2, $fd,$02, $4e,$c2, $fc -Unknown_cea35: db $4b,$01, $4c,$01, $4d,$01, $4f,$01, $50,$01, $51,$01, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fc -Unknown_cea50: db $4b,$41, $4c,$41, $4d,$41, $4f,$41, $50,$41, $51,$41, $52,$42, $fd,$02, $52,$42, $fd,$02, $52,$42, $fd,$02, $52,$42, $fc -Unknown_cea6b: db $00,$03, $07,$03, $08,$03, $09,$03, $fc -Unknown_cea74: db $0a,$07, $0b,$07, $0a,$07, $0b,$47, $fe -Unknown_cea7d: db $0c,$08, $ff -Unknown_cea80: db $0d,$08, $ff -Unknown_cea83: db $0a,$08, $ff -Unknown_cea86: db $0a,$07, $0b,$07, $0a,$07, $0b,$47, $0a,$07, $ff -Unknown_cea91: db $0a,$08, $ff -Unknown_cea94: db $0a,$04, $0e,$04, $fe -Unknown_cea99: db $0f,$04, $10,$04, $fe -Unknown_cea9e: db $10,$04, $0f,$04, $0e,$04, $0a,$04, $0e,$04, $0a,$04, $0e,$04, $0a,$04, $fc -Unknown_ceaaf: db $10,$01, $0f,$01, $12,$01, $11,$01, $12,$01, $0f,$01, $fe -Unknown_ceabc: db $10,$03, $0f,$03, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$03, $fc -Unknown_cead3: db $13,$14, $fc -Unknown_cead6: db $10,$01, $0f,$01, $fe -Unknown_ceadb: db $14,$08, $ff -Unknown_ceade: db $17,$04, $16,$08, $15,$08, $16,$08, $17,$04, $17,$04, $16,$48, $15,$48, $16,$48, $17,$04, $fe -Unknown_ceaf3: db $69,$08, $ff -Unknown_ceaf6: db $69,$20, $6a,$04, $6b,$04, $6d,$04, $6c,$04, $ff -Unknown_ceb01: db $6c,$08, $6d,$08, $fe -Unknown_ceb06: db $18,$04, $19,$04, $1a,$04, $fc -Unknown_ceb0d: db $1b,$08, $ff -Unknown_ceb10: db $0f,$08, $ff -Unknown_ceb13: db $1c,$08, $ff -Unknown_ceb16: db $0a,$08, $fc -Unknown_ceb19: db $1d,$08, $ff -Unknown_ceb1c: db $17,$08, $ff -Unknown_ceb1f: db $0f,$03, $10,$03, $1e,$03, $ff -Unknown_ceb26: db $1f,$10, $20,$03, $fc -Unknown_ceb2b: db $20,$08, $ff -Unknown_ceb2e: db $20,$08, $21,$08, $1b,$08, $21,$08, $fe -Unknown_ceb37: db $22,$08, $ff -Unknown_ceb3a: db $1b,$08, $ff -Unknown_ceb3d: db $23,$08, $ff -Unknown_ceb40: db $24,$08, $ff -Unknown_ceb43: db $25,$08, $ff -Unknown_ceb46: db $26,$08, $27,$08, $ff -Unknown_ceb4b: db $28,$08, $29,$08, $fc -Unknown_ceb50: db $2a,$01, $2b,$01, $2c,$01, $2d,$01, $2e,$01, $2d,$01, $2c,$01, $2b,$01, $2a,$01, $fc -Unknown_ceb63: db $14,$01, $15,$01, $fe -Unknown_ceb68: db $2f,$04, $30,$28, $fc -Unknown_ceb6d: db $31,$08, $ff -Unknown_ceb70: db $32,$20, $33,$20, $34,$20, $35,$20 ; fallthrough -Unknown_ceb78: db $fd,$02, $35,$04, $fd,$02, $35,$04, $fd,$02, $35,$04, $fd,$02, $35,$04, $fc -Unknown_ceb89: db $14,$04, $15,$04, $fe -Unknown_ceb8e: db $36,$02, $37,$02, $38,$02, $39,$20, $fc -Unknown_ceb97: db $3a,$02, $3b,$02, $3c,$02, $3d,$20, $fc -Unknown_ceba0: db $3a,$42, $3b,$42, $3c,$42, $3d,$60, $fc -Unknown_ceba9: db $3e,$08, $3f,$08, $40,$08, $ff -Unknown_cebb0: db $40,$02, $fd,$02, $40,$02, $fd,$02, $41,$02, $fd,$02, $41,$02, $fd,$02, $fe -Unknown_cebc1: db $42,$02, $43,$02, $44,$02, $45,$02, $fe -Unknown_cebca: db $19,$02, $fd,$02, $fe -Unknown_cebcf: db $46,$04, $47,$04, $fe -Unknown_cebd4: db $18,$02, $fd,$02, $fe -Unknown_cebd9: db $48,$08, $ff -Unknown_cebdc: db $48,$48, $ff -Unknown_cebdf: db $49,$08, $ff -Unknown_cebe2: db $4a,$08, $ff -Unknown_cebe5: db $20,$10, $1f,$10, $1e,$10, $ff -Unknown_cebec: db $20,$08, $1f,$08, $1e,$08, $ff -Unknown_cebf3: db $fd,$14, $55,$28, $54,$28, $53,$14, $fd,$04, $53,$04, $fd,$04, $53,$04, $fd,$04, $53,$04, $fc -Unknown_cec08: db $1e,$08, $1f,$08, $20,$08, $fc -Unknown_cec0f: db $fd,$00, $14,$00, $15,$00, $14,$40, $fd,$00, $16,$40, $15,$00, $16,$00, $fe -Unknown_cec20: db $56,$02, $57,$04, $fc -Unknown_cec25: db $56,$c2, $57,$c4, $fc -Unknown_cec2a: db $56,$01, $57,$01, $58,$01, $57,$c1, $58,$c1, $57,$02, $fc -Unknown_cec37: db $56,$c1, $57,$c1, $58,$c1, $57,$01, $58,$01, $57,$c2, $fc -Unknown_cec44: db $57,$c1, $58,$c1, $57,$01, $58,$01, $fe -Unknown_cec4d: db $59,$01, $5a,$01, $5b,$01, $5c,$02, $fc -Unknown_cec56: db $0a,$0a, $0b,$43, $5d,$43, $0b,$c3, $0a,$82, $0b,$81, $5d,$01, $0b,$01, $fe -Unknown_cec67: db $0a,$03, $0b,$47, $0a,$07, $0b,$07, $0a,$03, $fe -Unknown_cec72: db $5e,$20, $5e,$20, $fc -Unknown_cec77: db $5f,$20, $5f,$20, $fc -Unknown_cec7c: db $60,$08, $ff -Unknown_cec7f: db $61,$01, $62,$01, $63,$01, $ff -Unknown_cec86: db $63,$07, $64,$07, $fe -Unknown_cec8b: db $65,$01, $66,$01, $67,$01, $ff -Unknown_cec92: db $67,$07, $68,$07, $fe -Unknown_cec97: db $6e,$08, $ff -Unknown_cec9a: db $6f,$08, $ff -Unknown_cec9d: db $6e,$88, $ff -Unknown_ceca0: db $18,$04, $70,$04, $71,$04, $72,$04, $73,$04, $fc -Unknown_cecab: db $74,$04, $75,$04, $fe -Unknown_cecb0: db $14,$08, $ff -Unknown_cecb3: db $74,$03, $14,$03, $15,$03, $14,$03, $15,$03, $fc -Unknown_cecbe: db $14,$00, $15,$00, $14,$00, $15,$00, $74,$0c, $fc -Unknown_cecc9: db $76,$08, $ff -Unknown_ceccc: db $77,$01, $78,$01, $79,$01, $7a,$01, $7b,$01, $7c,$01, $7d,$01, $7c,$c1, $7b,$c1, $7a,$c1, $79,$c1, $78,$c1, $77,$c1, $fc -Unknown_cece7: db $1b,$04, $7e,$04, $fe -Unknown_cecec: db $1b,$44, $7e,$44, $fe -Unknown_cecf1: db $7f,$08, $ff -Unknown_cecf4: db $25,$08, $ff -Unknown_cecf7: db $80,$08, $ff -Unknown_cecfa: db $83,$07, $82,$07, $81,$07, $82,$07, $83,$07, $82,$07, $81,$07, $fc -Unknown_ced09: db $1b,$10, $fc -Unknown_ced0c: db $fd,$0f, $84,$0f, $85,$0f, $29,$0f, $28,$0f, $86,$20, $fc -Unknown_ced19: db $1b,$03, $87,$03, $88,$03, $89,$03, $fc -Unknown_ced22: db $8a,$02, $8b,$02, $8c,$02, $8d,$02, $fc -Unknown_ced2b: db $61,$02, $62,$02, $63,$02, $ff -Unknown_ced32: db $65,$02, $66,$02, $67,$02, $ff -Unknown_ced39: db $8e,$08, $ff -Unknown_ced3c: db $8e,$48, $ff -Unknown_ced3f: db $8f,$10, $90,$10, $fe -Unknown_ced44: db $91,$10, $92,$10, $fe -Unknown_ced49: db $93,$08, $ff -Unknown_ced4c: db $1e,$08, $ff -Unknown_ced4f: db $1b,$07, $94,$07, $fe -Unknown_ced54: db $95,$08, $ff -Unknown_ced57: db $96,$08, $ff -Unknown_ced5a: db $95,$08, $ff -Unknown_ced5d: db $97,$01, $97,$41, $fe -Unknown_ced62: db $98,$08, $ff -Unknown_ced65: db $99,$20, $99,$20, $99,$20, $99,$20, $99,$20, $9a,$08, $ff -Unknown_ced72: db $9b,$08, $ff -Unknown_ced75: db $9c,$02, $9d,$02, $9e,$08, $fd,$02, $9e,$02, $fd,$02, $9e,$02, $fd,$02, $9e,$02, $fc -Unknown_ced88: db $9f,$08, $ff -Unknown_ced8b: db $0f,$08, $ff -Unknown_ced8e: db $6b,$18, $fc -Unknown_ced91: db $a0,$01 ; fallthrough -Unknown_ced93: db $a1,$01 ; fallthrough -Unknown_ced95: db $a2,$01, $fc -Unknown_ced98: db $a3,$08, $ff -Unknown_ced9b: db $a4,$04, $a5,$04, $a6,$04, $a7,$04, $a6,$44, $a5,$44, $fe -Unknown_ceda8: db $a8,$04, $a9,$04, $aa,$04, $ab,$04, $aa,$44, $a9,$44, $fe -Unknown_cedb5: db $1b,$08, $ff -Unknown_cedb8: db $ac,$08, $ff -Unknown_cedbb: db $ad,$08, $ff -Unknown_cedbe: db $ae,$08, $ff -Unknown_cedc1: db $af,$08, $ff -Unknown_cedc4: db $b0,$20, $fc -Unknown_cedc7: db $b1,$07, $b1,$47, $fe -Unknown_cedcc: db $b2,$08, $ff -Unknown_cedcf: db $b3,$08, $ff -Unknown_cedd2: db $b3,$48, $ff -Unknown_cedd5: db $b3,$88, $ff -Unknown_cedd8: db $b3,$c8, $ff -Unknown_ceddb: db $b5,$08, $ff -Unknown_cedde: db $b5,$48, $ff -Unknown_cede1: db $b5,$88, $ff -Unknown_cede4: db $b5,$c8, $ff -Unknown_cede7: db $b4,$08, $ff -Unknown_cedea: db $6b,$08, $ff -Unknown_ceded: db $b6,$08, $ff -Unknown_cedf0: db $b7,$20, $ff -Unknown_cedf3: db $1b,$20, $ff -Unknown_cedf6: db $b8,$20, $ff -Unknown_cedf9: db $b8,$60, $ff -Unknown_cedfc: db $b9,$20, $ff -Unknown_cedff: db $ba,$20, $ff -Unknown_cee02: db $bb,$60, $ff -Unknown_cee05: db $bb,$20, $ff -Unknown_cee08: db $bc,$20, $ff -Unknown_cee0b: db $bd,$0b, $be,$0b, $1b,$0b, $fc -Unknown_cee12: db $bf,$04, $c0,$04, $c1,$04, $fc -Unknown_cee19: db $c2,$20, $c2,$20, $fc -Unknown_cee1e: db $4b,$02, $4c,$02, $4d,$20, $4d,$20, $4d,$20, $4f,$01, $50,$01, $51,$01, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fc -Unknown_cee3d: db $4b,$c2, $4c,$c2, $4d,$e0, $4d,$e0, $4d,$e0, $4f,$c1, $50,$c1, $51,$c1, $52,$c2, $fd,$02, $52,$c2, $fd,$02, $52,$c2, $fd,$02, $52,$c2, $fc -Unknown_cee5c: db $c3,$01, $c3,$c1, $fe -Unknown_cee61: db $c4,$20, $ff -Unknown_cee64: db $c5,$04, $c6,$04, $c7,$04, $fc -Unknown_cee6b: db $c8,$01, $c8,$41, $fe -Unknown_cee70: db $c9,$03, $05,$03, $fc -Unknown_cee75: db $ca,$20, $cb,$03, $ca,$03, $cb,$03, $fe -Unknown_cee7e: db $03,$a0, $ff -Unknown_cee81: db $cc,$20, $ff -Unknown_cee84: db $7f,$02, $25,$02, $80,$02, $25,$02, $fe -Unknown_cee8d: db $cd,$04, $ce,$04, $cd,$c4, $ce,$c4, $fe -Unknown_cee96: db $cf,$04, $d0,$04, $d1,$04, $d2,$04, $fc -Unknown_cee9f: db $d3,$20, $ff -Unknown_ceea2: db $d4,$08, $ff -Unknown_ceea5: db $d5,$08, $ff -Unknown_ceea8: db $d6,$08, $ff -Unknown_ceeab: db $d7,$08, $ff -; ceeae - - -Unknown_ceeae: ; ceeae -; ?, length, address - dbbw $00, $10, Unknown_cf2f6 - dbbw $04, $09, Unknown_cf262 - dbbw $08, $04, Unknown_cf22e - dbbw $09, $04, Unknown_cf21e - dbbw $0d, $04, Unknown_cf386 - dbbw $0f, $04, Unknown_cf21e - dbbw $13, $04, Unknown_cf386 - dbbw $04, $10, Unknown_cf2f6 - dbbw $08, $10, Unknown_cf2f6 - dbbw $08, $10, Unknown_cf336 - dbbw $00, $04, Unknown_cf386 - dbbw $02, $04, Unknown_cf21e - dbbw $06, $02, Unknown_cf376 - dbbw $07, $02, Unknown_cf376 - dbbw $02, $04, Unknown_cf386 - dbbw $04, $01, Unknown_cf736 - dbbw $05, $01, Unknown_cf736 - dbbw $00, $02, Unknown_cf20e - dbbw $02, $02, Unknown_cf20e - dbbw $00, $04, Unknown_cf3a6 - dbbw $00, $01, Unknown_cf736 - dbbw $01, $01, Unknown_cf736 - dbbw $02, $01, Unknown_cf736 - dbbw $03, $01, Unknown_cf736 - dbbw $00, $04, Unknown_cf22e - dbbw $01, $10, Unknown_cf2f6 - dbbw $05, $10, Unknown_cf2f6 - dbbw $00, $04, Unknown_cf21e - dbbw $05, $0c, Unknown_cf2b6 - dbbw $02, $04, Unknown_cf22e - dbbw $06, $01, Unknown_cf736 - dbbw $07, $01, Unknown_cf736 - dbbw $08, $01, Unknown_cf736 - dbbw $04, $04, Unknown_cf21e - dbbw $09, $16, Unknown_cf3b6 - dbbw $04, $02, Unknown_cf20e - dbbw $06, $02, Unknown_cf20e - dbbw $0c, $01, Unknown_cf736 - dbbw $0a, $01, Unknown_cf736 - dbbw $0b, $04, Unknown_cf22e - dbbw $08, $04, Unknown_cf386 - dbbw $06, $04, Unknown_cf386 - dbbw $00, $05, Unknown_cf40e - dbbw $03, $06, Unknown_cf422 - dbbw $00, $07, Unknown_cf43a - dbbw $03, $08, Unknown_cf456 - dbbw $00, $09, Unknown_cf476 - dbbw $00, $04, Unknown_cf49a - dbbw $02, $04, Unknown_cf4aa - dbbw $04, $06, Unknown_cf4ba - dbbw $00, $02, Unknown_cf4da - dbbw $00, $07, Unknown_cf512 - dbbw $00, $0e, Unknown_cf4da - dbbw $00, $15, Unknown_cf512 - dbbw $00, $02, Unknown_cf566 - dbbw $00, $06, Unknown_cf566 - dbbw $00, $0a, Unknown_cf566 - dbbw $00, $0e, Unknown_cf566 - dbbw $00, $02, Unknown_cf59e - dbbw $00, $06, Unknown_cf59e - dbbw $00, $0a, Unknown_cf59e - dbbw $00, $0e, Unknown_cf59e - dbbw $00, $04, Unknown_cf5d6 - dbbw $00, $10, Unknown_cf5d6 - dbbw $00, $1a, Unknown_cf5d6 - dbbw $00, $1a, Unknown_cf63e - dbbw $0e, $04, Unknown_cf6a6 - dbbw $0e, $08, Unknown_cf6a6 - dbbw $0e, $04, Unknown_cf6c6 - dbbw $0e, $08, Unknown_cf6c6 - dbbw $0e, $04, Unknown_cf6e6 - dbbw $0e, $04, Unknown_cf6f6 - dbbw $00, $06, Unknown_cf706 - dbbw $03, $04, Unknown_cf71e - dbbw $03, $02, Unknown_cf72e - dbbw $01, $05, Unknown_cf736 - dbbw $01, $06, Unknown_cf74a - dbbw $01, $07, Unknown_cf762 - dbbw $01, $03, Unknown_cf762 - dbbw $01, $08, Unknown_cf77e - dbbw $01, $09, Unknown_cf79e - dbbw $01, $0a, Unknown_cf7c2 - dbbw $01, $06, Unknown_cf7c2 - dbbw $00, $09, Unknown_cf262 - dbbw $04, $04, Unknown_cf22e - dbbw $05, $04, Unknown_cf22e - dbbw $00, $02, Unknown_cf216 - dbbw $02, $02, Unknown_cf216 - dbbw $04, $02, Unknown_cf216 - dbbw $02, $04, Unknown_cf7ea - dbbw $02, $04, Unknown_cf7fa - dbbw $02, $02, Unknown_cf376 - dbbw $04, $02, Unknown_cf376 - dbbw $06, $04, Unknown_cf396 - dbbw $08, $02, Unknown_cf376 - dbbw $09, $02, Unknown_cf376 - dbbw $05, $02, Unknown_cf80a - dbbw $00, $02, Unknown_cf812 - dbbw $00, $05, Unknown_cf812 - dbbw $00, $09, Unknown_cf812 - dbbw $09, $09, Unknown_cf812 - dbbw $00, $04, Unknown_cf836 - dbbw $00, $07, Unknown_cf836 - dbbw $00, $09, Unknown_cf836 - dbbw $09, $09, Unknown_cf836 - dbbw $04, $01, Unknown_cf80e - dbbw $05, $02, Unknown_cf37e - dbbw $06, $04, Unknown_cf21e - dbbw $0a, $04, Unknown_cf21e - dbbw $0e, $04, Unknown_cf21e - dbbw $08, $05, Unknown_cf8f6 - dbbw $0d, $03, Unknown_cf90a - dbbw $01, $08, Unknown_cfa06 - dbbw $03, $08, Unknown_cfa06 - dbbw $05, $08, Unknown_cfa06 - dbbw $07, $08, Unknown_cfa06 - dbbw $06, $04, Unknown_cf22e - dbbw $07, $04, Unknown_cf22e - dbbw $0a, $02, Unknown_cf4d2 - dbbw $00, $01, Unknown_cf916 - dbbw $00, $03, Unknown_cf91a - dbbw $00, $06, Unknown_cf926 - dbbw $00, $09, Unknown_cf93e - dbbw $00, $0c, Unknown_cf962 - dbbw $00, $0e, Unknown_cf992 - dbbw $00, $0f, Unknown_cf9ca - dbbw $04, $04, Unknown_cf21e - dbbw $08, $04, Unknown_cf21e - dbbw $0d, $01, Unknown_cf736 - dbbw $0e, $04, Unknown_cfa26 - dbbw $10, $01, Unknown_cf736 - dbbw $11, $01, Unknown_cf736 - dbbw $04, $02, Unknown_cf37e - dbbw $05, $02, Unknown_cf37e - dbbw $0a, $04, Unknown_cf386 - dbbw $00, $08, Unknown_cfa36 - dbbw $00, $0c, Unknown_cfa76 - dbbw $00, $10, Unknown_cfa36 - dbbw $09, $02, Unknown_cfaa6 - dbbw $09, $04, Unknown_cfaa6 - dbbw $09, $06, Unknown_cfaa6 - dbbw $09, $08, Unknown_cfaa6 - dbbw $12, $05, Unknown_cfac6 - dbbw $00, $04, Unknown_cfada - dbbw $04, $04, Unknown_cfada - dbbw $08, $04, Unknown_cfada - dbbw $0c, $04, Unknown_cfada - dbbw $00, $06, Unknown_cfaea - dbbw $04, $04, Unknown_cf21e - dbbw $0a, $04, Unknown_cf386 - dbbw $15, $04, Unknown_cf4aa - dbbw $04, $04, Unknown_cf4aa - dbbw $0c, $04, Unknown_cf386 - dbbw $0a, $04, Unknown_cfb02 - dbbw $0c, $04, Unknown_cf21e - dbbw $00, $24, Unknown_cfb12 - dbbw $0d, $02, Unknown_cfba2 - dbbw $0d, $04, Unknown_cfba2 - dbbw $0d, $06, Unknown_cfba2 - dbbw $02, $08, Unknown_cfbba - dbbw $08, $07, Unknown_cfbda - dbbw $08, $05, Unknown_cfbda - dbbw $08, $03, Unknown_cfbda - dbbw $00, $10, Unknown_cf2b6 - dbbw $00, $09, Unknown_cfbf6 - dbbw $06, $09, Unknown_cfbf6 - dbbw $0c, $09, Unknown_cfbf6 - dbbw $12, $09, Unknown_cfbf6 - dbbw $18, $09, Unknown_cfbf6 - dbbw $1e, $09, Unknown_cfbf6 - dbbw $24, $09, Unknown_cfbf6 - dbbw $2a, $09, Unknown_cfbf6 - dbbw $03, $04, Unknown_cfc1a - dbbw $12, $04, Unknown_cf21e - dbbw $10, $04, Unknown_cf386 - dbbw $16, $01, Unknown_cf736 - dbbw $17, $04, Unknown_cf22e - dbbw $18, $04, Unknown_cf21e - dbbw $1c, $04, Unknown_cf21e - dbbw $20, $03, Unknown_cf21e - dbbw $23, $04, Unknown_cf386 - dbbw $25, $03, Unknown_cf21e - dbbw $17, $04, Unknown_cf21e - dbbw $0a, $10, Unknown_cf2f6 - dbbw $10, $10, Unknown_cf2b6 - dbbw $00, $10, Unknown_cf2b6 - dbbw $04, $04, Unknown_cf21e - dbbw $08, $02, Unknown_cf20e - dbbw $20, $06, Unknown_cfc2a - dbbw $08, $01, Unknown_cf736 - dbbw $04, $04, Unknown_cf21e - dbbw $1a, $04, Unknown_cf4aa - dbbw $16, $09, Unknown_cf262 - dbbw $10, $10, Unknown_cfc42 - dbbw $09, $06, Unknown_cfc82 - dbbw $11, $09, Unknown_cf23e - dbbw $0e, $04, Unknown_cf21e - dbbw $0b, $04, Unknown_cf4aa - dbbw $1c, $06, Unknown_cf22e - dbbw $20, $10, Unknown_cfc42 - dbbw $05, $06, Unknown_cfc9a - dbbw $0b, $04, Unknown_cf21e - dbbw $09, $04, Unknown_cfcb2 - dbbw $0b, $04, Unknown_cf386 - dbbw $11, $0d, Unknown_cfcc2 - dbbw $00, $09, Unknown_cf23e - dbbw $09, $09, Unknown_cf23e - dbbw $00, $0c, Unknown_cf286 - dbbw $06, $0c, Unknown_cf286 - dbbw $0c, $0c, Unknown_cf286 - dbbw $12, $0c, Unknown_cf286 - dbbw $00, $0d, Unknown_cfcc2 - dbbw $00, $07, Unknown_cf85a - dbbw $00, $06, Unknown_cf8ae - dbbw $00, $0e, Unknown_cf876 - dbbw $00, $0c, Unknown_cf8c6 -; cf20e - - -Unknown_cf20e: - db $f8, $fc, $00, $00 - db $00, $fc, $01, $00 - -Unknown_cf216: - db $fc, $f8, $00, $00 - db $fc, $00, $01, $00 - -Unknown_cf21e: - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $02, $00 - db $00, $00, $03, $00 - -Unknown_cf22e: - db $f8, $f8, $00, $00 - db $f8, $00, $00, $20 - db $00, $f8, $00, $40 - db $00, $00, $00, $60 - -Unknown_cf23e: - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $02, $00 - db $fc, $f4, $03, $00 - db $fc, $fc, $04, $00 - db $fc, $04, $05, $00 - db $04, $f4, $06, $00 - db $04, $fc, $07, $00 - db $04, $04, $08, $00 - -Unknown_cf262: - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $00, $20 - db $fc, $f4, $02, $00 - db $fc, $fc, $03, $00 - db $fc, $04, $02, $60 - db $04, $f4, $00, $40 - db $04, $fc, $01, $60 - db $04, $04, $00, $60 - -Unknown_cf286: - db $f0, $f4, $00, $00 - db $f0, $fc, $01, $00 - db $f0, $04, $02, $00 - db $f8, $f4, $03, $00 - db $f8, $fc, $04, $00 - db $f8, $04, $05, $00 - db $00, $f4, $05, $60 - db $00, $fc, $04, $60 - db $00, $04, $03, $60 - db $08, $f4, $02, $60 - db $08, $fc, $01, $60 - db $08, $04, $00, $60 - -Unknown_cf2b6: - db $f0, $f0, $00, $00 - db $f0, $f8, $01, $00 - db $f0, $00, $02, $00 - db $f0, $08, $03, $00 - db $f8, $f0, $04, $00 - db $f8, $f8, $05, $00 - db $f8, $00, $06, $00 - db $f8, $08, $07, $00 - db $00, $f0, $08, $00 - db $00, $f8, $09, $00 - db $00, $00, $0a, $00 - db $00, $08, $0b, $00 - db $08, $f0, $0c, $00 - db $08, $f8, $0d, $00 - db $08, $00, $0e, $00 - db $08, $08, $0f, $00 - -Unknown_cf2f6: - db $f0, $f0, $00, $00 - db $f0, $f8, $01, $00 - db $f8, $f0, $02, $00 - db $f8, $f8, $03, $00 - db $f0, $00, $01, $20 - db $f0, $08, $00, $20 - db $f8, $00, $03, $20 - db $f8, $08, $02, $20 - db $00, $f0, $02, $40 - db $00, $f8, $03, $40 - db $08, $f0, $00, $40 - db $08, $f8, $01, $40 - db $00, $00, $03, $60 - db $00, $08, $02, $60 - db $08, $00, $01, $60 - db $08, $08, $00, $60 - -Unknown_cf336: - db $ec, $ec, $00, $00 - db $ec, $f4, $01, $00 - db $f4, $ec, $02, $00 - db $f4, $f4, $03, $00 - db $ec, $04, $01, $20 - db $ec, $0c, $00, $20 - db $f4, $04, $03, $20 - db $f4, $0c, $02, $20 - db $04, $ec, $02, $40 - db $04, $f4, $03, $40 - db $0c, $ec, $00, $40 - db $0c, $f4, $01, $40 - db $04, $04, $03, $60 - db $04, $0c, $02, $60 - db $0c, $04, $01, $60 - db $0c, $0c, $00, $60 - -Unknown_cf376: - db $fc, $f8, $00, $00 - db $fc, $00, $00, $20 - -Unknown_cf37e: - db $00, $f8, $00, $00 - db $00, $00, $00, $20 - -Unknown_cf386: - db $f8, $f8, $00, $00 - db $f8, $00, $00, $20 - db $00, $f8, $01, $00 - db $00, $00, $01, $20 - -Unknown_cf396: - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $00, $40 - db $00, $00, $01, $40 - -Unknown_cf3a6: - db $fa, $f8, $02, $00 - db $02, $f8, $03, $00 - db $f6, $00, $02, $00 - db $fe, $00, $03, $00 - -Unknown_cf3b6: - db $08, $a8, $01, $00 - db $00, $b0, $02, $00 - db $00, $b8, $03, $00 - db $00, $c0, $00, $00 - db $00, $c8, $03, $00 - db $00, $d0, $00, $00 - db $00, $d8, $03, $00 - db $00, $e0, $00, $00 - db $00, $e8, $03, $00 - db $00, $f0, $00, $00 - db $00, $f8, $01, $00 - db $f8, $00, $02, $00 - db $f8, $08, $03, $00 - db $f8, $10, $00, $00 - db $f8, $18, $03, $00 - db $f8, $20, $00, $00 - db $f8, $28, $03, $00 - db $f8, $30, $00, $00 - db $f8, $38, $03, $00 - db $f8, $40, $00, $00 - db $f8, $48, $01, $00 - db $f0, $50, $02, $00 - -Unknown_cf40e: - db $ec, $f8, $00, $00 - db $ec, $00, $00, $20 - db $f4, $f8, $01, $00 - db $f4, $00, $01, $20 - db $fc, $fc, $02, $00 - -Unknown_cf422: - db $e4, $f8, $00, $00 - db $e4, $00, $00, $20 - db $ec, $f8, $01, $00 - db $ec, $00, $01, $20 - db $f4, $fc, $02, $00 - db $fc, $fc, $02, $00 - -Unknown_cf43a: - db $dc, $f8, $00, $00 - db $dc, $00, $00, $20 - db $e4, $f8, $01, $00 - db $e4, $00, $01, $20 - db $ec, $fc, $02, $00 - db $f4, $fc, $02, $00 - db $fc, $fc, $02, $00 - -Unknown_cf456: - db $d4, $f8, $00, $00 - db $d4, $00, $00, $20 - db $dc, $f8, $01, $00 - db $dc, $00, $01, $20 - db $e4, $fc, $02, $00 - db $ec, $fc, $02, $00 - db $f4, $fc, $02, $00 - db $fc, $fc, $02, $00 - -Unknown_cf476: - db $cc, $f8, $00, $00 - db $cc, $00, $00, $20 - db $d4, $f8, $01, $00 - db $d4, $00, $01, $20 - db $dc, $fc, $02, $00 - db $e4, $fc, $02, $00 - db $ec, $fc, $02, $00 - db $f4, $fc, $02, $00 - db $fc, $fc, $02, $00 - -Unknown_cf49a: - db $f8, $f8, $00, $00 - db $f8, $00, $00, $20 - db $00, $f8, $01, $00 - db $00, $00, $00, $60 - -Unknown_cf4aa: - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $01, $60 - db $00, $00, $00, $60 - -Unknown_cf4ba: - db $f4, $f8, $00, $00 - db $f4, $00, $01, $00 - db $fc, $f8, $02, $00 - db $fc, $00, $03, $00 - db $04, $f8, $04, $00 - db $04, $00, $05, $00 - -Unknown_cf4d2: - db $fd, $f8, $00, $00 - db $f9, $00, $00, $00 - -Unknown_cf4da: - db $f8, $f4, $00, $00 - db $f8, $04, $00, $00 - db $e8, $f4, $00, $00 - db $e8, $04, $00, $00 - db $f0, $ec, $00, $00 - db $f0, $f4, $01, $00 - db $f0, $fc, $00, $00 - db $f0, $04, $01, $00 - db $f0, $0c, $00, $00 - db $f8, $e4, $00, $00 - db $f8, $ec, $01, $00 - db $f8, $fc, $01, $00 - db $f8, $0c, $01, $00 - db $f8, $14, $00, $00 - -Unknown_cf512: - db $f0, $f4, $00, $00 - db $f0, $04, $00, $00 - db $f8, $ec, $00, $00 - db $f8, $f4, $01, $00 - db $f8, $fc, $00, $00 - db $f8, $04, $01, $00 - db $f8, $0c, $00, $00 - db $e0, $f4, $00, $00 - db $e0, $04, $00, $00 - db $e8, $ec, $00, $00 - db $e8, $f4, $01, $00 - db $e8, $fc, $00, $00 - db $e8, $04, $01, $00 - db $e8, $0c, $00, $00 - db $f0, $e4, $00, $00 - db $f0, $ec, $01, $00 - db $f0, $fc, $01, $00 - db $f0, $0c, $01, $00 - db $f0, $14, $00, $00 - db $f8, $e4, $01, $00 - db $f8, $14, $01, $00 - -Unknown_cf566: - db $cc, $f8, $00, $00 - db $cc, $00, $01, $00 - db $d4, $f8, $02, $00 - db $d4, $00, $03, $00 - db $dc, $f8, $04, $00 - db $dc, $00, $05, $00 - db $e4, $f8, $06, $00 - db $e4, $00, $07, $00 - db $ec, $f8, $08, $00 - db $ec, $00, $09, $00 - db $f4, $f8, $0a, $00 - db $f4, $00, $0b, $00 - db $fc, $f8, $0c, $00 - db $fc, $00, $0d, $00 - -Unknown_cf59e: - db $cc, $f8, $0c, $00 - db $cc, $00, $0d, $00 - db $d4, $f8, $08, $00 - db $d4, $00, $09, $00 - db $dc, $f8, $04, $00 - db $dc, $00, $05, $00 - db $e4, $f8, $00, $00 - db $e4, $00, $01, $00 - db $ec, $f8, $02, $00 - db $ec, $00, $03, $00 - db $f4, $00, $02, $00 - db $f4, $08, $03, $00 - db $fc, $00, $0a, $00 - db $fc, $08, $0b, $00 - -Unknown_cf5d6: - db $0c, $f0, $00, $40 - db $0c, $f8, $02, $40 - db $0c, $00, $02, $60 - db $0c, $08, $00, $60 - db $fc, $e8, $09, $20 - db $fc, $f0, $08, $20 - db $fc, $f8, $06, $00 - db $fc, $00, $07, $00 - db $fc, $08, $08, $00 - db $fc, $10, $09, $00 - db $04, $e8, $01, $20 - db $04, $f0, $00, $20 - db $04, $f8, $0c, $00 - db $04, $00, $0d, $00 - db $04, $08, $00, $00 - db $04, $10, $01, $00 - db $ec, $f0, $00, $00 - db $ec, $f8, $02, $00 - db $ec, $00, $02, $20 - db $ec, $08, $00, $20 - db $f4, $e8, $03, $20 - db $f4, $f0, $02, $20 - db $f4, $f8, $04, $00 - db $f4, $00, $05, $00 - db $f4, $08, $02, $00 - db $f4, $10, $03, $00 - -Unknown_cf63e: - db $ec, $f0, $00, $00 - db $ec, $f8, $02, $00 - db $ec, $00, $02, $20 - db $ec, $08, $00, $20 - db $f4, $ec, $00, $00 - db $f4, $f4, $01, $00 - db $f4, $f8, $05, $20 - db $f4, $00, $04, $20 - db $f4, $04, $01, $20 - db $f4, $0c, $00, $20 - db $fc, $ec, $02, $00 - db $fc, $f4, $03, $00 - db $fc, $f8, $07, $20 - db $fc, $00, $06, $20 - db $fc, $04, $03, $20 - db $fc, $0c, $02, $20 - db $04, $ec, $04, $00 - db $04, $f4, $05, $00 - db $04, $f8, $0d, $20 - db $04, $00, $0c, $20 - db $04, $04, $05, $20 - db $04, $0c, $04, $20 - db $0c, $f0, $00, $40 - db $0c, $f8, $02, $40 - db $0c, $00, $02, $60 - db $0c, $08, $00, $60 - -Unknown_cf6a6: - db $e8, $fc, $02, $00 - db $10, $fc, $02, $60 - db $fc, $e8, $01, $00 - db $fc, $10, $01, $60 - db $e0, $fc, $02, $00 - db $18, $fc, $02, $60 - db $fc, $e0, $01, $00 - db $fc, $18, $01, $60 - -Unknown_cf6c6: - db $ed, $ed, $00, $20 - db $ed, $0b, $00, $00 - db $0b, $ed, $00, $60 - db $0b, $0b, $00, $40 - db $e5, $e5, $00, $20 - db $e5, $13, $00, $00 - db $13, $e5, $00, $60 - db $13, $13, $00, $40 - -Unknown_cf6e6: - db $ec, $fc, $02, $00 - db $0c, $fc, $02, $60 - db $fc, $ec, $01, $00 - db $fc, $0c, $01, $60 - -Unknown_cf6f6: - db $f0, $f0, $00, $20 - db $f0, $08, $00, $00 - db $08, $f0, $00, $60 - db $08, $08, $00, $40 - -Unknown_cf706: - db $e8, $fc, $00, $00 - db $f0, $fa, $00, $00 - db $f8, $f8, $00, $00 - db $00, $f8, $00, $00 - db $08, $fa, $00, $00 - db $10, $fc, $00, $00 - -Unknown_cf71e: - db $fc, $f0, $00, $20 - db $fa, $f8, $00, $20 - db $fa, $00, $00, $00 - db $fc, $08, $00, $00 - -Unknown_cf72e: - db $fc, $f8, $00, $60 - db $fc, $00, $00, $40 - -Unknown_cf736: - db $fc, $fc, $00, $00 - db $fc, $f4, $01, $00 - db $fc, $fc, $01, $20 - db $04, $f4, $01, $40 - db $04, $fc, $01, $60 - -Unknown_cf74a: - db $fc, $fc, $00, $00 - db $02, $f6, $00, $00 - db $02, $ee, $01, $00 - db $02, $f6, $01, $20 - db $0a, $ee, $01, $40 - db $0a, $f6, $01, $60 - -Unknown_cf762: - db $fc, $fc, $00, $00 - db $02, $f6, $00, $00 - db $08, $f0, $00, $00 - db $08, $e8, $01, $00 - db $08, $f0, $01, $20 - db $10, $e8, $01, $40 - db $10, $f0, $01, $60 - -Unknown_cf77e: - db $fc, $fc, $00, $00 - db $02, $f6, $00, $00 - db $08, $f0, $00, $00 - db $0e, $ea, $00, $00 - db $0e, $e2, $01, $00 - db $0e, $ea, $01, $20 - db $16, $e2, $01, $40 - db $16, $ea, $01, $60 - -Unknown_cf79e: - db $fc, $fc, $00, $00 - db $02, $f6, $00, $00 - db $08, $f0, $00, $00 - db $0e, $ea, $00, $00 - db $14, $e4, $00, $00 - db $14, $dc, $01, $00 - db $14, $e4, $01, $20 - db $1c, $dc, $01, $40 - db $1c, $e4, $01, $60 - -Unknown_cf7c2: - db $fc, $fc, $00, $00 - db $02, $f6, $00, $00 - db $08, $f0, $00, $00 - db $0e, $ea, $00, $00 - db $14, $e4, $00, $00 - db $1a, $de, $00, $00 - db $1a, $d6, $01, $00 - db $1a, $de, $01, $20 - db $22, $d6, $01, $40 - db $22, $de, $01, $60 - -Unknown_cf7ea: - db $fc, $f0, $00, $00 - db $fc, $f8, $01, $00 - db $fc, $00, $01, $20 - db $fc, $08, $00, $20 - -Unknown_cf7fa: - db $fc, $f0, $02, $00 - db $fc, $f8, $01, $00 - db $fc, $00, $01, $20 - db $fc, $08, $02, $20 - -Unknown_cf80a: - db $f8, $fc, $00, $00 - -Unknown_cf80e: - db $00, $fc, $00, $00 - -Unknown_cf812: - db $fc, $e4, $00, $00 - db $fc, $ec, $01, $00 - db $fc, $f4, $02, $00 - db $fc, $fc, $03, $00 - db $fc, $04, $04, $00 - db $fc, $0c, $05, $00 - db $fc, $14, $06, $00 - db $f4, $0c, $07, $00 - db $f4, $14, $08, $00 - -Unknown_cf836: - db $f4, $e4, $08, $20 - db $f4, $ec, $07, $20 - db $fc, $e4, $06, $20 - db $fc, $ec, $05, $20 - db $fc, $f4, $04, $20 - db $fc, $fc, $03, $20 - db $fc, $04, $02, $20 - db $fc, $0c, $01, $20 - db $fc, $14, $00, $20 - -Unknown_cf85a: - db $00, $e4, $00, $10 - db $00, $ec, $01, $10 - db $00, $f4, $02, $10 - db $00, $fc, $03, $10 - db $00, $04, $04, $10 - db $00, $0c, $05, $10 - db $00, $14, $06, $10 - -Unknown_cf876: - db $f8, $e4, $00, $10 - db $00, $e4, $01, $10 - db $f8, $ec, $02, $10 - db $00, $ec, $03, $10 - db $f8, $f4, $04, $10 - db $00, $f4, $05, $10 - db $f8, $fc, $06, $10 - db $00, $fc, $07, $10 - db $f8, $04, $08, $10 - db $00, $04, $09, $10 - db $f8, $0c, $0a, $10 - db $00, $0c, $0b, $10 - db $f8, $14, $0c, $10 - db $00, $14, $0d, $10 - -Unknown_cf8ae: - db $00, $e8, $00, $11 - db $00, $f0, $01, $11 - db $00, $f8, $02, $11 - db $00, $00, $03, $11 - db $00, $08, $04, $11 - db $00, $10, $05, $11 - -Unknown_cf8c6: - db $00, $e8, $00, $11 - db $08, $e8, $01, $11 - db $00, $f0, $02, $11 - db $08, $f0, $03, $11 - db $00, $f8, $04, $11 - db $08, $f8, $05, $11 - db $00, $00, $06, $11 - db $08, $00, $07, $11 - db $00, $08, $08, $11 - db $08, $08, $09, $11 - db $00, $10, $0a, $11 - db $08, $10, $0b, $11 - -Unknown_cf8f6: - db $f4, $04, $00, $00 - db $fc, $f4, $01, $00 - db $fc, $fc, $02, $00 - db $fc, $04, $03, $00 - db $04, $f4, $04, $00 - -Unknown_cf90a: - db $fc, $f4, $00, $00 - db $fc, $fc, $01, $00 - db $fc, $04, $02, $00 - -Unknown_cf916: - db $e4, $0c, $01, $60 - -Unknown_cf91a: - db $e4, $0c, $00, $00 - db $e4, $04, $01, $60 - db $ec, $0c, $01, $60 - -Unknown_cf926: - db $e4, $0c, $01, $00 - db $e4, $04, $00, $00 - db $e4, $fc, $01, $60 - db $ec, $0c, $00, $00 - db $ec, $04, $01, $60 - db $f4, $0c, $01, $60 - -Unknown_cf93e: - db $e4, $f4, $01, $60 - db $e4, $fc, $00, $00 - db $e4, $04, $01, $00 - db $ec, $fc, $01, $60 - db $ec, $04, $00, $00 - db $ec, $0c, $01, $00 - db $f4, $04, $01, $60 - db $f4, $0c, $00, $00 - db $fc, $0c, $01, $60 - -Unknown_cf962: - db $e4, $ec, $01, $60 - db $e4, $f4, $00, $00 - db $e4, $fc, $01, $00 - db $ec, $f4, $01, $60 - db $ec, $fc, $00, $00 - db $ec, $04, $01, $00 - db $f4, $fc, $01, $60 - db $f4, $04, $00, $00 - db $f4, $0c, $01, $00 - db $fc, $04, $01, $60 - db $fc, $0c, $00, $00 - db $04, $0c, $01, $60 - -Unknown_cf992: - db $e4, $ec, $00, $00 - db $e4, $f4, $01, $00 - db $ec, $ec, $01, $60 - db $ec, $f4, $00, $00 - db $ec, $fc, $01, $00 - db $f4, $f4, $01, $60 - db $f4, $fc, $00, $00 - db $f4, $04, $01, $00 - db $fc, $fc, $01, $60 - db $fc, $04, $00, $00 - db $fc, $0c, $01, $00 - db $04, $04, $01, $60 - db $04, $0c, $00, $00 - db $0c, $0c, $01, $60 - -Unknown_cf9ca: - db $e4, $ec, $01, $00 - db $ec, $ec, $00, $00 - db $ec, $f4, $01, $00 - db $f4, $ec, $01, $60 - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $fc, $f4, $01, $60 - db $fc, $fc, $00, $00 - db $fc, $04, $01, $00 - db $04, $fc, $01, $60 - db $04, $04, $00, $00 - db $04, $0c, $01, $00 - db $0c, $04, $01, $60 - db $0c, $0c, $00, $00 - db $14, $0c, $01, $60 - -Unknown_cfa06: - db $f0, $f8, $00, $00 - db $f8, $f8, $01, $00 - db $f0, $00, $00, $20 - db $f8, $00, $01, $20 - db $00, $f8, $01, $40 - db $08, $f8, $00, $40 - db $00, $00, $01, $60 - db $08, $00, $00, $60 - -Unknown_cfa26: - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $01, $60 - db $00, $00, $00, $60 - -Unknown_cfa36: - db $f4, $f8, $00, $00 - db $f4, $00, $01, $00 - db $fc, $f8, $02, $00 - db $fc, $00, $03, $00 - db $fc, $f8, $00, $00 - db $fc, $00, $01, $00 - db $04, $f8, $02, $00 - db $04, $00, $03, $00 - db $ec, $f8, $00, $00 - db $ec, $00, $01, $00 - db $f4, $f8, $02, $00 - db $f4, $00, $03, $00 - db $04, $f8, $00, $00 - db $04, $00, $01, $00 - db $0c, $f8, $02, $00 - db $0c, $00, $03, $00 - -Unknown_cfa76: - db $f0, $f8, $00, $00 - db $f0, $00, $01, $00 - db $f8, $f8, $02, $00 - db $f8, $00, $03, $00 - db $f8, $f8, $00, $00 - db $f8, $00, $01, $00 - db $00, $f8, $02, $00 - db $00, $00, $03, $00 - db $00, $f8, $00, $00 - db $00, $00, $01, $00 - db $08, $f8, $02, $00 - db $08, $00, $03, $00 - -Unknown_cfaa6: - db $fc, $fc, $00, $00 - db $f8, $04, $00, $00 - db $f4, $0c, $00, $00 - db $f0, $14, $00, $00 - db $ec, $1c, $00, $00 - db $e8, $24, $00, $00 - db $e0, $2c, $00, $00 - db $dc, $34, $00, $00 - -Unknown_cfac6: - db $ec, $fc, $00, $00 - db $f4, $fc, $01, $00 - db $fc, $fc, $02, $00 - db $04, $fc, $01, $40 - db $0c, $fc, $00, $40 - -Unknown_cfada: - db $fc, $f0, $00, $00 - db $fc, $f8, $01, $00 - db $fc, $00, $02, $00 - db $fc, $08, $03, $00 - -Unknown_cfaea: - db $f8, $f4, $00, $00 - db $f8, $fc, $01, $00 - db $f8, $04, $02, $00 - db $00, $f4, $03, $00 - db $00, $fc, $04, $00 - db $00, $04, $05, $00 - -Unknown_cfb02: - db $f8, $f8, $00, $00 - db $f8, $00, $05, $00 - db $00, $f8, $01, $00 - db $00, $00, $05, $00 - -Unknown_cfb12: - db $e4, $08, $00, $00 - db $e4, $10, $01, $00 - db $ec, $f8, $02, $00 - db $ec, $00, $03, $00 - db $ec, $08, $04, $00 - db $ec, $10, $05, $00 - db $ec, $18, $06, $00 - db $f4, $f0, $07, $00 - db $f4, $f8, $08, $00 - db $f4, $00, $09, $00 - db $f4, $08, $0a, $00 - db $f4, $10, $0b, $00 - db $f4, $18, $0c, $00 - db $f4, $20, $0d, $00 - db $fc, $e8, $0e, $00 - db $fc, $f0, $0f, $00 - db $fc, $f8, $10, $00 - db $fc, $00, $11, $00 - db $fc, $08, $12, $00 - db $fc, $10, $13, $00 - db $04, $d8, $14, $00 - db $04, $e0, $15, $00 - db $04, $e8, $16, $00 - db $04, $f0, $17, $00 - db $04, $f8, $18, $00 - db $04, $00, $19, $00 - db $04, $08, $1a, $00 - db $04, $10, $1b, $00 - db $04, $18, $1c, $00 - db $0c, $d8, $1d, $00 - db $0c, $e0, $1e, $00 - db $0c, $f0, $1f, $00 - db $0c, $f8, $20, $00 - db $0c, $00, $21, $00 - db $0c, $08, $22, $00 - db $14, $00, $23, $00 - -Unknown_cfba2: - db $04, $f8, $02, $00 - db $04, $00, $03, $00 - db $fc, $f8, $01, $00 - db $fc, $00, $01, $20 - db $f4, $f8, $00, $00 - db $f4, $00, $00, $20 - -Unknown_cfbba: - db $f8, $f0, $00, $00 - db $f8, $f8, $01, $00 - db $f8, $00, $02, $00 - db $f8, $08, $03, $00 - db $00, $f0, $04, $00 - db $00, $f8, $05, $00 - db $00, $00, $06, $00 - db $00, $08, $07, $00 - -Unknown_cfbda: - db $f4, $fc, $00, $00 - db $fc, $fc, $00, $00 - db $04, $fc, $00, $00 - db $ec, $fc, $00, $00 - db $0c, $fc, $00, $00 - db $e4, $fc, $00, $00 - db $14, $fc, $00, $00 - -Unknown_cfbf6: - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $02, $00 - db $fc, $f4, $03, $00 - db $fc, $fc, $04, $00 - db $fc, $04, $05, $00 - db $04, $f4, $00, $40 - db $04, $fc, $01, $40 - db $04, $04, $02, $40 - -Unknown_cfc1a: - db $fc, $f0, $00, $00 - db $fc, $f8, $01, $00 - db $fc, $00, $01, $20 - db $fc, $08, $00, $20 - -Unknown_cfc2a: - db $fc, $e8, $00, $00 - db $fc, $f0, $01, $00 - db $fc, $f8, $02, $00 - db $fc, $00, $02, $20 - db $fc, $08, $01, $20 - db $fc, $10, $00, $20 - -Unknown_cfc42: - db $f0, $f0, $00, $00 - db $f0, $f8, $01, $00 - db $f0, $00, $02, $00 - db $f0, $08, $00, $20 - db $f8, $f0, $03, $00 - db $f8, $f8, $04, $00 - db $f8, $00, $04, $20 - db $f8, $08, $05, $00 - db $00, $f0, $05, $60 - db $00, $f8, $04, $40 - db $00, $00, $04, $60 - db $00, $08, $03, $60 - db $08, $f0, $00, $40 - db $08, $f8, $02, $60 - db $08, $00, $01, $60 - db $08, $08, $00, $60 - -Unknown_cfc82: - db $f8, $f0, $00, $00 - db $f8, $f8, $01, $00 - db $f8, $00, $00, $60 - db $00, $f8, $00, $00 - db $00, $00, $01, $00 - db $00, $08, $00, $60 - -Unknown_cfc9a: - db $f8, $0c, $00, $00 - db $f8, $14, $01, $00 - db $00, $fc, $02, $00 - db $00, $04, $03, $00 - db $00, $0c, $04, $00 - db $00, $14, $05, $00 - -Unknown_cfcb2: - db $f8, $f8, $00, $00 - db $f8, $00, $01, $60 - db $00, $f8, $01, $00 - db $00, $00, $01, $20 - -Unknown_cfcc2: - db $f0, $9c, $00, $00 - db $e0, $ac, $00, $00 - db $f8, $bc, $00, $00 - db $d8, $cc, $00, $00 - db $e8, $dc, $00, $00 - db $d8, $ec, $00, $00 - db $e8, $fc, $00, $00 - db $e8, $04, $00, $00 - db $d8, $14, $00, $00 - db $00, $24, $00, $00 - db $f0, $34, $00, $00 - db $e0, $44, $00, $00 - db $f0, $54, $00, $00 -; cfcf6 - - -AnimObjGFX: ; cfcf6 - -object_gfx: MACRO -; label, # tiles - db \2 - db BANK(\1) - dw \1 -ENDM - - object_gfx AnimObj00GFX, 0 - object_gfx AnimObj01GFX, 21 - object_gfx AnimObj02GFX, 6 - object_gfx AnimObj03GFX, 6 - object_gfx AnimObj04GFX, 20 - object_gfx AnimObj05GFX, 26 - object_gfx AnimObj06GFX, 18 - object_gfx AnimObj07GFX, 12 - object_gfx AnimObj08GFX, 9 - object_gfx AnimObj09GFX, 17 - object_gfx AnimObj10GFX, 6 - object_gfx AnimObj11GFX, 10 - object_gfx AnimObj12GFX, 9 - object_gfx AnimObj13GFX, 13 - object_gfx AnimObj14GFX, 16 - object_gfx AnimObj15GFX, 2 - object_gfx AnimObj16GFX, 11 - object_gfx AnimObj17GFX, 9 - object_gfx AnimObj18GFX, 9 - object_gfx AnimObj19GFX, 19 - object_gfx AnimObj20GFX, 10 - object_gfx AnimObj21GFX, 12 - object_gfx AnimObj22GFX, 18 - object_gfx AnimObj23GFX, 13 - object_gfx AnimObj24GFX, 10 - object_gfx AnimObj25GFX, 27 - object_gfx AnimObj26GFX, 12 - object_gfx AnimObj27GFX, 14 - object_gfx AnimObj28GFX, 16 - object_gfx AnimObj29GFX, 7 - object_gfx AnimObj30GFX, 8 - object_gfx AnimObj31GFX, 40 - object_gfx AnimObj32GFX, 36 - object_gfx AnimObj33GFX, 16 - object_gfx AnimObj34GFX, 48 - object_gfx AnimObj35GFX, 18 - object_gfx AnimObj36GFX, 38 - object_gfx AnimObj37GFX, 35 - object_gfx AnimObj38GFX, 18 - object_gfx AnimObj39GFX, 24 - object_gfx NULL, 1 - object_gfx NULL, 1 -; cfd9e +INCLUDE "battle/objects/engine.asm" +INCLUDE "battle/objects/data.asm" +INCLUDE "battle/objects/functions.asm" +INCLUDE "battle/objects/helpers.asm" +INCLUDE "battle/objects/framesets.asm" +INCLUDE "battle/objects/oam.asm" +INCLUDE "battle/objects/gfx_headers.asm" diff --git a/battle/anims.asm b/battle/anims.asm index d18cfff43..5d8050c83 100644 --- a/battle/anims.asm +++ b/battle/anims.asm @@ -290,129 +290,129 @@ BattleAnim_MirrorMove: ; c929b BattleAnim_SweetScent2: ; c929c anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC - anim_obj ANIM_OBJ_FLOWER, 64, 96, $2 + anim_obj ANIM_OBJ_FLOWER, 8, 0, 12, 0, $2 anim_wait 2 - anim_obj ANIM_OBJ_FLOWER, 64, 80, $2 + anim_obj ANIM_OBJ_FLOWER, 8, 0, 10, 0, $2 anim_wait 64 - anim_obj ANIM_OBJ_COTTON, 136, 40, $15 - anim_obj ANIM_OBJ_COTTON, 136, 40, $2a - anim_obj ANIM_OBJ_COTTON, 136, 40, $3f - anim_bgeffect $6, $0, $2, $0 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $15 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $2a + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $3f + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_wait 128 anim_ret ; c92c1 -BattleAnim_ThrowPokeBall: ; c92c1 +BattleAnim_ThrowPokeBall anim_jumpif NO_ITEM, .TheTrainerBlockedTheBall anim_jumpif MASTER_BALL, .MasterBall anim_jumpif ULTRA_BALL, .UltraBall anim_jumpif GREAT_BALL, .GreatBall ; any other ball anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE - anim_sound $1a, SFX_THROW_BALL - anim_obj $15, 68, 92, $40 + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40 anim_wait 36 - anim_obj $15, 136, 65, $0 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 anim_setobj $2, $7 anim_wait 16 - anim_sound $1, SFX_BALL_POOF - anim_obj $1c, 136, 64, $10 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10 anim_wait 16 anim_jump .Shake ; c92f2 -.TheTrainerBlockedTheBall: ; c92f2 +.TheTrainerBlockedTheBall anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT - anim_sound $1a, SFX_THROW_BALL - anim_obj $16, 64, 92, $20 + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_16, 8, 0, 11, 4, $20 anim_wait 20 - anim_obj $1, 112, 40, $0 + anim_obj ANIM_OBJ_01, 14, 0, 5, 0, $0 anim_wait 32 anim_ret ; c9305 -.UltraBall: ; c9305 +.UltraBall anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE - anim_sound $1a, SFX_THROW_BALL - anim_obj $15, 68, 92, $40 + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40 anim_wait 36 - anim_obj $15, 136, 65, $0 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 anim_setobj $2, $7 anim_wait 16 - anim_sound $1, SFX_BALL_POOF - anim_obj $1c, 136, 64, $10 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10 anim_wait 16 anim_jump .Shake ; c9326 -.GreatBall: ; c9326 +.GreatBall anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE - anim_sound $1a, SFX_THROW_BALL - anim_obj $15, 68, 92, $40 + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 4, 11, 4, $40 anim_wait 36 - anim_obj $15, 136, 65, $0 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 anim_setobj $2, $7 anim_wait 16 - anim_sound $1, SFX_BALL_POOF - anim_obj $1c, 136, 64, $10 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10 anim_wait 16 anim_jump .Shake ; c9347 -.MasterBall: ; c9347 +.MasterBall anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED - anim_sound $1a, SFX_THROW_BALL - anim_obj $15, 64, 92, $20 + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_POKE_BALL, 8, 0, 11, 4, $20 anim_wait 36 - anim_obj $15, 136, 65, $0 + anim_obj ANIM_OBJ_POKE_BALL, -15, 0, 8, 1, $0 anim_setobj $2, $7 anim_wait 16 - anim_sound $1, SFX_BALL_POOF - anim_obj $1c, 136, 64, $10 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10 anim_wait 24 - anim_sound $1, SFX_MASTER_BALL - anim_obj $2b, 136, 56, $30 - anim_obj $2b, 136, 56, $31 - anim_obj $2b, 136, 56, $32 - anim_obj $2b, 136, 56, $33 - anim_obj $2b, 136, 56, $34 - anim_obj $2b, 136, 56, $35 - anim_obj $2b, 136, 56, $36 - anim_obj $2b, 136, 56, $37 + anim_sound 0, 1, SFX_MASTER_BALL + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $30 + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $31 + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $32 + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $33 + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $34 + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $35 + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $36 + anim_obj ANIM_OBJ_2B, -15, 0, 7, 0, $37 anim_wait 64 -.Shake: ; c9392 +.Shake anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0 anim_wait 8 - anim_incobj $2 + anim_incobj 2 anim_wait 16 - anim_sound $1, SFX_CHANGE_DEX_MODE - anim_incobj $1 + anim_sound 0, 1, SFX_CHANGE_DEX_MODE + anim_incobj 1 anim_wait 32 - anim_sound $1, SFX_BALL_BOUNCE + anim_sound 0, 1, SFX_BALL_BOUNCE anim_wait 32 anim_wait 32 anim_wait 32 anim_wait 8 anim_setvar $0 -.Loop: ; c93aa +.Loop anim_wait 48 anim_checkpokeball anim_jumpvar $1, .Click anim_jumpvar $2, .BreakFree - anim_incobj $1 - anim_sound $1, SFX_BALL_WIGGLE + anim_incobj 1 + anim_sound 0, 1, SFX_BALL_WIGGLE anim_jump .Loop ; c93bc -.Click: ; c93bc +.Click anim_clearsprites anim_ret ; c93be -.BreakFree: ; c93be +.BreakFree anim_setobj $1, $b - anim_sound $1, SFX_BALL_POOF - anim_obj $1c, 136, 64, $10 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_1C, -15, 0, 8, 0, $10 anim_wait 2 anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0 anim_wait 32 @@ -420,72 +420,69 @@ BattleAnim_ThrowPokeBall: ; c92c1 ; c93d1 BattleAnim_SendOutMon: ; c93d1 - anim_jumpif $0, BattleAnim_SendOutMon_branch_c9471 - anim_jumpif $1, BattleAnim_SendOutMon_branch_c941c - anim_jumpif $2, BattleAnim_SendOutMon_branch_c93fa + anim_jumpif $0, .Normal + anim_jumpif $1, .Shiny + anim_jumpif $2, .Unknown anim_1gfx ANIM_GFX_SMOKE - anim_call BattleAnim_SendOutMon_branch_cbca7 - anim_bgeffect $2b, $0, $1, $0 - anim_sound $0, SFX_BALL_POOF - anim_obj $1b, 48, 96, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_2B, $0, $1, $0 + anim_sound 0, 0, SFX_BALL_POOF + anim_obj ANIM_OBJ_1B, 6, 0, 12, 0, $0 anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 anim_wait 128 anim_wait 4 - anim_call BattleAnim_SendOutMon_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret -; c93fa -BattleAnim_SendOutMon_branch_c93fa: ; c93fa +.Unknown anim_1gfx ANIM_GFX_SMOKE - anim_call BattleAnim_SendOutMon_branch_cbca7 - anim_bgeffect $2a, $0, $1, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_2A, $0, $1, $0 anim_wait 1 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 4 - anim_sound $0, SFX_BALL_POOF - anim_obj $1b, 48, 96, $0 - anim_incbgeffect $2a + anim_sound 0, 0, SFX_BALL_POOF + anim_obj ANIM_OBJ_1B, 6, 0, 12, 0, $0 + anim_incbgeffect ANIM_BG_2A anim_wait 96 - anim_incbgeffect $2a - anim_call BattleAnim_SendOutMon_branch_cbcb7 + anim_incbgeffect ANIM_BG_2A + anim_call BattleAnim_ShowMon_0 anim_ret -; c941c -BattleAnim_SendOutMon_branch_c941c: ; c941c +.Shiny anim_1gfx ANIM_GFX_SPEED anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 - anim_bgeffect $6, $0, $2, $0 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $0 anim_wait 4 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $8 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $8 anim_wait 4 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $10 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $10 anim_wait 4 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $18 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $18 anim_wait 4 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $20 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $20 anim_wait 4 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $28 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $28 anim_wait 4 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $30 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $30 anim_wait 4 - anim_sound $0, SFX_SHINE - anim_obj $6d, 48, 96, $38 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_6D, 6, 0, 12, 0, $38 anim_wait 32 anim_ret -; c9471 -BattleAnim_SendOutMon_branch_c9471: ; c9471 +.Normal anim_1gfx ANIM_GFX_SMOKE - anim_sound $0, SFX_BALL_POOF - anim_obj $1c, 44, 96, $0 + anim_sound 0, 0, SFX_BALL_POOF + anim_obj ANIM_OBJ_1C, 5, 4, 12, 0, $0 anim_wait 4 anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 anim_wait 32 @@ -493,7 +490,7 @@ BattleAnim_SendOutMon_branch_c9471: ; c9471 ; c9483 BattleAnim_ReturnMon: ; c9483 - anim_sound $0, SFX_BALL_POOF + anim_sound 0, 0, SFX_BALL_POOF BattleAnim_BatonPass_branch_c9486: ; c9486 anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0 anim_wait 32 @@ -502,111 +499,111 @@ BattleAnim_BatonPass_branch_c9486: ; c9486 BattleAnim_Confused: ; c948d anim_1gfx ANIM_GFX_STATUS - anim_sound $0, SFX_KINESIS - anim_obj ANIM_OBJ_CHICK, 44, 56, $15 - anim_obj ANIM_OBJ_CHICK, 44, 56, $aa - anim_obj ANIM_OBJ_CHICK, 44, 56, $bf + anim_sound 0, 0, SFX_KINESIS + anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $15 + anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $aa + anim_obj ANIM_OBJ_CHICK, 5, 4, 7, 0, $bf anim_wait 96 anim_ret ; c94a3 BattleAnim_Slp: ; c94a3 anim_1gfx ANIM_GFX_STATUS - anim_sound $0, SFX_TAIL_WHIP -BattleAnim_Slp_branch_c94a8: ; c94a8 - anim_obj $54, 64, 80, $0 + anim_sound 0, 0, SFX_TAIL_WHIP +.loop + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 anim_wait 40 - anim_loop $3, BattleAnim_Slp_branch_c94a8 + anim_loop 3, .loop anim_wait 32 anim_ret ; c94b4 BattleAnim_Brn: ; c94b4 anim_1gfx ANIM_GFX_FIRE -BattleAnim_Brn_branch_c94b6: ; c94b6 - anim_sound $0, SFX_BURN - anim_obj $10, 56, 88, $10 +.loop + anim_sound 0, 0, SFX_BURN + anim_obj ANIM_OBJ_BURNED, 7, 0, 11, 0, $10 anim_wait 4 - anim_loop $3, BattleAnim_Brn_branch_c94b6 + anim_loop 3, .loop anim_wait 6 anim_ret ; c94c5 BattleAnim_Psn: ; c94c5 anim_1gfx ANIM_GFX_POISON - anim_sound $0, SFX_POISON - anim_obj ANIM_OBJ_SKULL, 64, 56, $0 + anim_sound 0, 0, SFX_POISON + anim_obj ANIM_OBJ_SKULL, 8, 0, 7, 0, $0 anim_wait 8 - anim_sound $0, SFX_POISON - anim_obj ANIM_OBJ_SKULL, 48, 56, $0 + anim_sound 0, 0, SFX_POISON + anim_obj ANIM_OBJ_SKULL, 6, 0, 7, 0, $0 anim_wait 8 anim_ret ; c94da BattleAnim_Sap: ; c94da anim_1gfx ANIM_GFX_CHARGE - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 128, 48, $2 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, 16, 0, 6, 0, $2 anim_wait 6 - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 136, 64, $3 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, -15, 0, 8, 0, $3 anim_wait 6 - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 136, 32, $4 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, -15, 0, 4, 0, $4 anim_wait 16 anim_ret ; c94f8 BattleAnim_Frz: ; c94f8 anim_1gfx ANIM_GFX_ICE - anim_obj ANIM_OBJ_FROZEN, 44, 110, $0 - anim_sound $0, SFX_SHINE + anim_obj ANIM_OBJ_FROZEN, 5, 4, 13, 6, $0 + anim_sound 0, 0, SFX_SHINE anim_wait 16 - anim_sound $0, SFX_SHINE + anim_sound 0, 0, SFX_SHINE anim_wait 16 anim_ret ; c9508 BattleAnim_Par: ; c9508 anim_1gfx ANIM_GFX_STATUS - anim_bgeffect $6, $0, $2, $0 - anim_sound $0, SFX_THUNDERSHOCK - anim_obj ANIM_OBJ_PARALYZED, 20, 88, $42 - anim_obj ANIM_OBJ_PARALYZED, 76, 88, $c2 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_PARALYZED, 2, 4, 11, 0, $42 + anim_obj ANIM_OBJ_PARALYZED, 9, 4, 11, 0, $c2 anim_wait 128 anim_ret ; c951e BattleAnim_InLove: ; c951e anim_1gfx ANIM_GFX_OBJECTS - anim_sound $0, SFX_LICK - anim_obj ANIM_OBJ_HEART, 64, 76, $0 + anim_sound 0, 0, SFX_LICK + anim_obj ANIM_OBJ_HEART, 8, 0, 9, 4, $0 anim_wait 32 - anim_sound $0, SFX_LICK - anim_obj ANIM_OBJ_HEART, 36, 72, $0 + anim_sound 0, 0, SFX_LICK + anim_obj ANIM_OBJ_HEART, 4, 4, 9, 0, $0 anim_wait 32 anim_ret ; c9533 BattleAnim_InSandstorm: ; c9533 anim_1gfx ANIM_GFX_POWDER - anim_obj $a2, 88, 0, $0 + anim_obj ANIM_OBJ_A2, 11, 0, 0, 0, $0 anim_wait 8 - anim_obj $a2, 72, 0, $1 + anim_obj ANIM_OBJ_A2, 9, 0, 0, 0, $1 anim_wait 8 - anim_obj $a2, 56, 0, $2 -BattleAnim_InSandstorm_branch_c9546: ; c9546 - anim_sound $1, SFX_MENU + anim_obj ANIM_OBJ_A2, 7, 0, 0, 0, $2 +.loop + anim_sound 0, 1, SFX_MENU anim_wait 8 - anim_loop $6, BattleAnim_InSandstorm_branch_c9546 + anim_loop 6, .loop anim_wait 8 anim_ret ; c9550 BattleAnim_InNightmare: ; c9550 anim_1gfx ANIM_GFX_ANGELS - anim_sound $0, SFX_BUBBLEBEAM - anim_obj $95, 68, 80, $0 + anim_sound 0, 0, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_95, 8, 4, 10, 0, $0 anim_wait 40 anim_ret ; c955c @@ -614,11 +611,11 @@ BattleAnim_InNightmare: ; c9550 BattleAnim_InWhirlpool: ; c955c anim_1gfx ANIM_GFX_WIND anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0 - anim_sound $1, SFX_SURF -BattleAnim_InWhirlpool_branch_c9566: ; c9566 - anim_obj ANIM_OBJ_GUST, 132, 72, $0 + anim_sound 0, 1, SFX_SURF +.loop + anim_obj ANIM_OBJ_GUST, -16, 4, 9, 0, $0 anim_wait 6 - anim_loop $6, BattleAnim_InWhirlpool_branch_c9566 + anim_loop 6, .loop anim_incbgeffect ANIM_BG_WHIRLPOOL anim_wait 1 anim_ret @@ -626,8 +623,8 @@ BattleAnim_InWhirlpool_branch_c9566: ; c9566 BattleAnim_HitConfusion: ; c9574 anim_1gfx ANIM_GFX_HIT - anim_sound $0, SFX_POUND - anim_obj $4, 44, 96, $0 + anim_sound 0, 0, SFX_POUND + anim_obj ANIM_OBJ_04, 5, 4, 12, 0, $0 anim_wait 16 anim_ret ; c9580 @@ -637,77 +634,77 @@ BattleAnim_Miss: ; c9580 ; c9581 BattleAnim_EnemyDamage: ; c9581 -BattleAnim_EnemyDamage_branch_c9581: ; c9581 +.loop anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0 anim_wait 5 anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 anim_wait 5 - anim_loop $3, BattleAnim_EnemyDamage_branch_c9581 + anim_loop 3, .loop anim_ret ; c9592 BattleAnim_EnemyStatDown: ; c9592 - anim_call BattleAnim_EnemyStatDown_branch_cbcc2 + anim_call BattleAnim_FollowEnemyFeet_1 anim_bgeffect ANIM_BG_VIBRATE_MON, $0, $0, $0 anim_wait 40 - anim_call BattleAnim_EnemyStatDown_branch_cbcd2 + anim_call BattleAnim_ShowMon_1 anim_wait 1 anim_ret ; c95a0 BattleAnim_PlayerStatDown: ; c95a0 - anim_call BattleAnim_PlayerStatDown_branch_cbcc2 + anim_call BattleAnim_FollowEnemyFeet_1 anim_bgeffect ANIM_BG_WOBBLE_MON, $0, $0, $0 anim_wait 40 - anim_call BattleAnim_PlayerStatDown_branch_cbcd2 + anim_call BattleAnim_ShowMon_1 anim_wait 1 anim_ret ; c95ae BattleAnim_PlayerDamage: ; c95ae - anim_bgeffect $20, $20, $2, $20 + anim_bgeffect ANIM_BG_20, $20, $2, $20 anim_wait 40 anim_ret ; c95b5 BattleAnim_Wobble: ; c95b5 - anim_bgeffect $35, $0, $0, $0 + anim_bgeffect ANIM_BG_35, $0, $0, $0 anim_wait 40 anim_ret ; c95bc BattleAnim_Shake: ; c95bc - anim_bgeffect $1f, $20, $2, $40 + anim_bgeffect ANIM_BG_1F, $20, $2, $40 anim_wait 40 anim_ret ; c95c3 BattleAnim_Pound: ; c95c3 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_POUND - anim_obj $8, 136, 56, $0 + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_08, -15, 0, 7, 0, $0 anim_wait 6 - anim_obj $1, 136, 56, $0 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; c95d5 BattleAnim_KarateChop: ; c95d5 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_KARATE_CHOP - anim_obj $8, 136, 40, $0 + anim_sound 0, 1, SFX_KARATE_CHOP + anim_obj ANIM_OBJ_08, -15, 0, 5, 0, $0 anim_wait 6 - anim_obj $1, 136, 40, $0 + anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0 anim_wait 6 - anim_sound $1, SFX_KARATE_CHOP - anim_obj $8, 136, 44, $0 + anim_sound 0, 1, SFX_KARATE_CHOP + anim_obj ANIM_OBJ_08, -15, 0, 5, 4, $0 anim_wait 6 - anim_obj $1, 136, 44, $0 + anim_obj ANIM_OBJ_01, -15, 0, 5, 4, $0 anim_wait 6 - anim_sound $1, SFX_KARATE_CHOP - anim_obj $8, 136, 48, $0 + anim_sound 0, 1, SFX_KARATE_CHOP + anim_obj ANIM_OBJ_08, -15, 0, 6, 0, $0 anim_wait 6 - anim_obj $1, 136, 48, $0 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 anim_wait 16 anim_ret ; c9605 @@ -715,19 +712,19 @@ BattleAnim_KarateChop: ; c95d5 BattleAnim_Doubleslap: ; c9605 anim_1gfx ANIM_GFX_HIT anim_jumpif $1, BattleAnim_Doubleslap_branch_c961b - anim_sound $1, SFX_DOUBLESLAP - anim_obj $8, 144, 48, $0 + anim_sound 0, 1, SFX_DOUBLESLAP + anim_obj ANIM_OBJ_08, -14, 0, 6, 0, $0 anim_wait 6 - anim_obj $1, 144, 48, $0 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 anim_wait 8 anim_ret ; c961b BattleAnim_Doubleslap_branch_c961b: ; c961b - anim_sound $1, SFX_DOUBLESLAP - anim_obj $8, 120, 48, $0 + anim_sound 0, 1, SFX_DOUBLESLAP + anim_obj ANIM_OBJ_08, 15, 0, 6, 0, $0 anim_wait 6 - anim_obj $1, 120, 48, $0 + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 anim_wait 8 anim_ret ; c962b @@ -735,19 +732,19 @@ BattleAnim_Doubleslap_branch_c961b: ; c961b BattleAnim_CometPunch: ; c962b anim_1gfx ANIM_GFX_HIT anim_jumpif $1, BattleAnim_CometPunch_branch_c9641 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $6, 144, 48, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_06, -14, 0, 6, 0, $0 anim_wait 6 - anim_obj $1, 144, 48, $0 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 anim_wait 8 anim_ret ; c9641 BattleAnim_CometPunch_branch_c9641: ; c9641 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $6, 120, 64, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_06, 15, 0, 8, 0, $0 anim_wait 6 - anim_obj $1, 120, 64, $0 + anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0 anim_wait 8 anim_ret ; c9651 @@ -755,37 +752,36 @@ BattleAnim_CometPunch_branch_c9641: ; c9641 BattleAnim_Bide_branch_c9651: ; c9651 BattleAnim_MegaPunch: ; c9651 anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $40, $2, $0 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 anim_wait 48 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 -BattleAnim_Bide_branch_c965e: ; c965e -BattleAnim_MegaPunch_branch_c965e: ; c965e - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $6, 136, 56, $0 - anim_obj $0, 136, 56, $0 +.loop + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 6 - anim_obj $6, 136, 56, $0 + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 anim_wait 6 - anim_loop $3, BattleAnim_Bide_branch_c965e + anim_loop 3, .loop anim_ret ; c9677 BattleAnim_Stomp: ; c9677 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_STOMP - anim_obj $7, 136, 40, $0 + anim_sound 0, 1, SFX_STOMP + anim_obj ANIM_OBJ_07, -15, 0, 5, 0, $0 anim_wait 6 - anim_obj $1, 136, 40, $0 + anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0 anim_wait 6 - anim_sound $1, SFX_STOMP - anim_obj $7, 136, 44, $0 + anim_sound 0, 1, SFX_STOMP + anim_obj ANIM_OBJ_07, -15, 0, 5, 4, $0 anim_wait 6 - anim_obj $1, 136, 44, $0 + anim_obj ANIM_OBJ_01, -15, 0, 5, 4, $0 anim_wait 6 - anim_sound $1, SFX_STOMP - anim_obj $7, 136, 48, $0 + anim_sound 0, 1, SFX_STOMP + anim_obj ANIM_OBJ_07, -15, 0, 6, 0, $0 anim_wait 6 - anim_obj $1, 136, 48, $0 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 anim_wait 16 anim_ret ; c96a7 @@ -793,19 +789,19 @@ BattleAnim_Stomp: ; c9677 BattleAnim_DoubleKick: ; c96a7 anim_1gfx ANIM_GFX_HIT anim_jumpif $1, BattleAnim_DoubleKick_branch_c96bd - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 144, 48, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -14, 0, 6, 0, $0 anim_wait 6 - anim_obj $1, 144, 48, $0 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 anim_wait 8 anim_ret ; c96bd BattleAnim_DoubleKick_branch_c96bd: ; c96bd - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 120, 64, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 15, 0, 8, 0, $0 anim_wait 6 - anim_obj $1, 120, 64, $0 + anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0 anim_wait 8 anim_ret ; c96cd @@ -813,128 +809,128 @@ BattleAnim_DoubleKick_branch_c96bd: ; c96bd BattleAnim_JumpKick: ; c96cd anim_1gfx ANIM_GFX_HIT anim_jumpif $1, BattleAnim_JumpKick_branch_c96f1 - anim_sound $1, SFX_JUMP_KICK - anim_obj $7, 112, 72, $0 - anim_obj $7, 100, 60, $0 + anim_sound 0, 1, SFX_JUMP_KICK + anim_obj ANIM_OBJ_07, 14, 0, 9, 0, $0 + anim_obj ANIM_OBJ_07, 12, 4, 7, 4, $0 anim_setobj $1, $2 anim_setobj $2, $2 anim_wait 24 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $4, 136, 48, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0 anim_wait 16 anim_ret ; c96f1 BattleAnim_JumpKick_branch_c96f1: ; c96f1 anim_wait 8 - anim_sound $0, SFX_DOUBLE_KICK - anim_obj $4, 44, 88, $0 + anim_sound 0, 0, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, 5, 4, 11, 0, $0 anim_wait 16 anim_ret ; c96fc BattleAnim_HiJumpKick: ; c96fc anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $40, $2, $0 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 anim_jumpif $1, BattleAnim_HiJumpKick_branch_c971e anim_wait 32 - anim_sound $1, SFX_JUMP_KICK - anim_obj $7, 112, 72, $0 + anim_sound 0, 1, SFX_JUMP_KICK + anim_obj ANIM_OBJ_07, 14, 0, 9, 0, $0 anim_setobj $1, $2 anim_wait 16 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $4, 136, 48, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0 anim_wait 16 anim_ret ; c971e BattleAnim_HiJumpKick_branch_c971e: ; c971e anim_wait 16 - anim_sound $0, SFX_DOUBLE_KICK - anim_obj $4, 44, 88, $0 + anim_sound 0, 0, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_04, 5, 4, 11, 0, $0 anim_wait 16 anim_ret ; c9729 BattleAnim_RollingKick: ; c9729 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 112, 56, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 14, 0, 7, 0, $0 anim_setobj $1, $3 anim_wait 12 - anim_obj $1, 136, 48, $0 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 anim_wait 16 anim_ret ; c973e BattleAnim_MegaKick: ; c973e anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $40, $2, $0 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 anim_wait 67 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 -BattleAnim_MegaKick_branch_c974b: ; c974b - anim_sound $1, SFX_MEGA_KICK - anim_obj $7, 136, 56, $0 - anim_obj $0, 136, 56, $0 +.loop + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_07, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 6 - anim_obj $7, 136, 56, $0 + anim_obj ANIM_OBJ_07, -15, 0, 7, 0, $0 anim_wait 6 - anim_loop $3, BattleAnim_MegaKick_branch_c974b + anim_loop 3, .loop anim_ret ; c9764 BattleAnim_HyperFang: ; c9764 anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $20, $1, $0 - anim_sound $1, SFX_BITE - anim_obj $9, 136, 56, $0 + anim_bgeffect ANIM_BG_1F, $20, $1, $0 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0 anim_wait 6 - anim_obj $1, 136, 56, $0 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; c977b BattleAnim_SuperFang: ; c977b anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $40, $2, $0 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 anim_wait 48 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 -BattleAnim_SuperFang_branch_c9788: ; c9788 - anim_sound $1, SFX_BITE - anim_obj $9, 136, 56, $0 - anim_obj $0, 136, 56, $0 +.loop + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 6 - anim_obj $9, 136, 56, $0 + anim_obj ANIM_OBJ_09, -15, 0, 7, 0, $0 anim_wait 6 - anim_loop $3, BattleAnim_SuperFang_branch_c9788 + anim_loop 3, .loop anim_ret ; c97a1 BattleAnim_Ember: ; c97a1 anim_1gfx ANIM_GFX_FIRE - anim_sound $1a, SFX_EMBER - anim_obj $b, 64, 96, $12 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0B, 8, 0, 12, 0, $12 anim_wait 4 - anim_sound $1a, SFX_EMBER - anim_obj $b, 64, 100, $14 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0B, 8, 0, 12, 4, $14 anim_wait 4 - anim_sound $1a, SFX_EMBER - anim_obj $b, 64, 84, $13 - anim_wait 16 - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 - anim_sound $1, SFX_EMBER - anim_obj $b, 120, 68, $30 - anim_obj $b, 132, 68, $30 - anim_obj $b, 144, 68, $30 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0B, 8, 0, 10, 4, $13 + anim_wait 16 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0B, 15, 0, 8, 4, $30 + anim_obj ANIM_OBJ_0B, -16, 4, 8, 4, $30 + anim_obj ANIM_OBJ_0B, -14, 0, 8, 4, $30 anim_wait 32 anim_ret ; c97d8 BattleAnim_FirePunch: ; c97d8 anim_2gfx ANIM_GFX_HIT, ANIM_GFX_FIRE - anim_obj $a, 136, 56, $43 + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 anim_call BattleAnim_FirePunch_branch_cbbcc anim_wait 16 anim_ret @@ -942,100 +938,100 @@ BattleAnim_FirePunch: ; c97d8 BattleAnim_FireSpin: ; c97e5 anim_1gfx ANIM_GFX_FIRE -BattleAnim_FireSpin_branch_c97e7: ; c97e7 - anim_sound $1a, SFX_EMBER - anim_obj $e, 64, 88, $4 +.loop + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 11, 0, $4 anim_wait 2 - anim_sound $1a, SFX_EMBER - anim_obj $e, 64, 96, $3 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 12, 0, $3 anim_wait 2 - anim_sound $1a, SFX_EMBER - anim_obj $e, 64, 88, $3 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 11, 0, $3 anim_wait 2 - anim_sound $1a, SFX_EMBER - anim_obj $e, 64, 96, $4 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0E, 8, 0, 12, 0, $4 anim_wait 2 - anim_loop $2, BattleAnim_FireSpin_branch_c97e7 + anim_loop 2, .loop anim_wait 96 anim_ret ; c9811 BattleAnim_DragonRage: ; c9811 anim_1gfx ANIM_GFX_FIRE -BattleAnim_DragonRage_branch_c9813: ; c9813 - anim_sound $1a, SFX_EMBER - anim_obj $c, 64, 92, $0 +.loop + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0C, 8, 0, 11, 4, $0 anim_wait 3 - anim_loop $10, BattleAnim_DragonRage_branch_c9813 + anim_loop 16, .loop anim_wait 64 anim_ret ; c9822 BattleAnim_Flamethrower: ; c9822 anim_1gfx ANIM_GFX_FIRE - anim_sound $1a, SFX_EMBER - anim_obj $d, 64, 92, $3 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0D, 8, 0, 11, 4, $3 anim_wait 2 - anim_obj $d, 75, 86, $5 + anim_obj ANIM_OBJ_0D, 9, 3, 10, 6, $5 anim_wait 2 - anim_obj $d, 85, 81, $7 + anim_obj ANIM_OBJ_0D, 10, 5, 10, 1, $7 anim_wait 2 - anim_obj $d, 96, 76, $9 + anim_obj ANIM_OBJ_0D, 12, 0, 9, 4, $9 anim_wait 2 - anim_obj $d, 106, 71, $b + anim_obj ANIM_OBJ_0D, 13, 2, 8, 7, $b anim_wait 2 - anim_obj $d, 116, 66, $c + anim_obj ANIM_OBJ_0D, 14, 4, 8, 2, $c anim_wait 2 - anim_obj $d, 126, 61, $a + anim_obj ANIM_OBJ_0D, 15, 6, 7, 5, $a anim_wait 2 - anim_obj $d, 136, 56, $8 + anim_obj ANIM_OBJ_0D, -15, 0, 7, 0, $8 anim_wait 16 -BattleAnim_Flamethrower_branch_c9857: ; c9857 - anim_sound $1, SFX_EMBER +.loop + anim_sound 0, 1, SFX_EMBER anim_wait 16 - anim_loop $6, BattleAnim_Flamethrower_branch_c9857 + anim_loop 6, .loop anim_wait 16 anim_ret ; c9861 BattleAnim_FireBlast: ; c9861 anim_1gfx ANIM_GFX_FIRE -BattleAnim_FireBlast_branch_c9863: ; c9863 - anim_sound $1a, SFX_EMBER - anim_obj $f, 64, 92, $7 +.loop1 + anim_sound 6, 2, SFX_EMBER + anim_obj ANIM_OBJ_0F, 8, 0, 11, 4, $7 anim_wait 6 - anim_loop $a, BattleAnim_FireBlast_branch_c9863 -BattleAnim_FireBlast_branch_c9870: ; c9870 - anim_sound $1, SFX_EMBER - anim_wait 8 - anim_loop $a, BattleAnim_FireBlast_branch_c9870 - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 - anim_incobj $4 - anim_incobj $5 - anim_incobj $6 - anim_incobj $7 - anim_incobj $8 - anim_incobj $9 - anim_incobj $a + anim_loop 10, .loop1 +.loop2 + anim_sound 0, 1, SFX_EMBER + anim_wait 8 + anim_loop 10, .loop2 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 + anim_incobj 10 anim_wait 2 -BattleAnim_FireBlast_branch_c988d: ; c988d - anim_sound $1, SFX_EMBER - anim_obj $f, 136, 56, $1 - anim_obj $f, 136, 56, $2 - anim_obj $f, 136, 56, $3 - anim_obj $f, 136, 56, $4 - anim_obj $f, 136, 56, $5 - anim_wait 16 - anim_loop $2, BattleAnim_FireBlast_branch_c988d +.loop3 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $1 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $2 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $3 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $4 + anim_obj ANIM_OBJ_0F, -15, 0, 7, 0, $5 + anim_wait 16 + anim_loop 2, .loop3 anim_wait 32 anim_ret ; c98b0 BattleAnim_IcePunch: ; c98b0 anim_2gfx ANIM_GFX_HIT, ANIM_GFX_ICE - anim_obj $a, 136, 56, $43 + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 anim_call BattleAnim_IcePunch_branch_cbbdf anim_wait 32 anim_ret @@ -1043,59 +1039,59 @@ BattleAnim_IcePunch: ; c98b0 BattleAnim_IceBeam: ; c98bd anim_1gfx ANIM_GFX_ICE -BattleAnim_IceBeam_branch_c98bf: ; c98bf - anim_sound $1a, SFX_SHINE - anim_obj $13, 64, 92, $4 +.loop + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_13, 8, 0, 11, 4, $4 anim_wait 4 - anim_loop $5, BattleAnim_IceBeam_branch_c98bf - anim_obj $29, 136, 74, $10 -BattleAnim_IceBeam_branch_c98d1: ; c98d1 - anim_sound $1a, SFX_SHINE - anim_obj $13, 64, 92, $4 + anim_loop 5, .loop + anim_obj ANIM_OBJ_29, -15, 0, 9, 2, $10 +.loop2 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_13, 8, 0, 11, 4, $4 anim_wait 4 - anim_loop $f, BattleAnim_IceBeam_branch_c98d1 + anim_loop 15, .loop2 anim_wait 48 - anim_sound $1, SFX_SHINE + anim_sound 0, 1, SFX_SHINE anim_wait 8 - anim_sound $1, SFX_SHINE + anim_sound 0, 1, SFX_SHINE anim_wait 8 anim_ret ; c98e8 BattleAnim_Blizzard: ; c98e8 anim_1gfx ANIM_GFX_ICE -BattleAnim_Blizzard_branch_c98ea: ; c98ea - anim_sound $1a, SFX_SHINE - anim_obj $11, 64, 88, $63 +.loop + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_11, 8, 0, 11, 0, $63 anim_wait 2 - anim_sound $1a, SFX_SHINE - anim_obj $11, 64, 80, $64 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_11, 8, 0, 10, 0, $64 anim_wait 2 - anim_sound $1a, SFX_SHINE - anim_obj $11, 64, 96, $63 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_11, 8, 0, 12, 0, $63 anim_wait 2 - anim_loop $3, BattleAnim_Blizzard_branch_c98ea + anim_loop 3, .loop anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0 anim_wait 32 - anim_obj $29, 136, 74, $10 + anim_obj ANIM_OBJ_29, -15, 0, 9, 2, $10 anim_wait 128 - anim_sound $1, SFX_SHINE + anim_sound 0, 1, SFX_SHINE anim_wait 8 - anim_sound $1, SFX_SHINE + anim_sound 0, 1, SFX_SHINE anim_wait 24 anim_ret ; c991e BattleAnim_Bubble: ; c991e anim_1gfx ANIM_GFX_BUBBLE - anim_sound $82, SFX_WATER_GUN - anim_obj $21, 64, 92, $c1 + anim_sound 32, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $c1 anim_wait 6 - anim_sound $82, SFX_WATER_GUN - anim_obj $21, 64, 92, $e1 + anim_sound 32, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $e1 anim_wait 6 - anim_sound $82, SFX_WATER_GUN - anim_obj $21, 64, 92, $d1 + anim_sound 32, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $d1 anim_wait 128 anim_wait 32 anim_ret @@ -1103,87 +1099,87 @@ BattleAnim_Bubble: ; c991e BattleAnim_Bubblebeam: ; c993d anim_1gfx ANIM_GFX_BUBBLE -BattleAnim_Bubblebeam_branch_c993f: ; c993f - anim_sound $42, SFX_BUBBLEBEAM - anim_obj $21, 64, 92, $92 +.loop + anim_sound 16, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $92 anim_wait 6 - anim_sound $42, SFX_BUBBLEBEAM - anim_obj $21, 64, 92, $b3 + anim_sound 16, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $b3 anim_wait 6 - anim_sound $42, SFX_BUBBLEBEAM - anim_obj $21, 64, 92, $f4 + anim_sound 16, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_21, 8, 0, 11, 4, $f4 anim_wait 8 - anim_loop $3, BattleAnim_Bubblebeam_branch_c993f + anim_loop 3, .loop anim_wait 64 anim_clearobjs - anim_bgeffect $30, $0, $0, $0 + anim_bgeffect ANIM_BG_30, $0, $0, $0 anim_wait 1 - anim_call BattleAnim_Bubblebeam_branch_cbcca - anim_bgeffect $31, $1c, $0, $0 + anim_call BattleAnim_FollowPlayerHead_1 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 anim_wait 19 - anim_call BattleAnim_Bubblebeam_branch_cbcd2 - anim_bgeffect $32, $0, $0, $0 + anim_call BattleAnim_ShowMon_1 + anim_bgeffect ANIM_BG_32, $0, $0, $0 anim_wait 8 anim_ret ; c9979 BattleAnim_WaterGun: ; c9979 - anim_bgeffect $30, $0, $0, $0 + anim_bgeffect ANIM_BG_30, $0, $0, $0 anim_1gfx ANIM_GFX_WATER - anim_call BattleAnim_WaterGun_branch_cbcca - anim_sound $42, SFX_WATER_GUN - anim_obj $24, 64, 88, $0 + anim_call BattleAnim_FollowPlayerHead_1 + anim_sound 16, 2, SFX_WATER_GUN + anim_obj ANIM_OBJ_24, 8, 0, 11, 0, $0 anim_wait 8 - anim_obj $24, 64, 76, $0 + anim_obj ANIM_OBJ_24, 8, 0, 9, 4, $0 anim_wait 8 - anim_obj $24, 64, 82, $0 + anim_obj ANIM_OBJ_24, 8, 0, 10, 2, $0 anim_wait 24 - anim_bgeffect $31, $1c, $0, $0 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 anim_wait 8 - anim_bgeffect $31, $8, $0, $0 + anim_bgeffect ANIM_BG_31, $8, $0, $0 anim_wait 8 - anim_bgeffect $31, $30, $0, $0 + anim_bgeffect ANIM_BG_31, $30, $0, $0 anim_wait 32 - anim_call BattleAnim_WaterGun_branch_cbcd2 - anim_bgeffect $32, $0, $0, $0 + anim_call BattleAnim_ShowMon_1 + anim_bgeffect ANIM_BG_32, $0, $0, $0 anim_wait 16 anim_ret ; c99b4 BattleAnim_HydroPump: ; c99b4 - anim_bgeffect $30, $0, $0, $0 + anim_bgeffect ANIM_BG_30, $0, $0, $0 anim_1gfx ANIM_GFX_WATER - anim_call BattleAnim_HydroPump_branch_cbcca - anim_sound $1, SFX_HYDRO_PUMP - anim_obj $25, 108, 72, $0 - anim_bgeffect $31, $1c, $0, $0 - anim_wait 8 - anim_sound $1, SFX_HYDRO_PUMP - anim_obj $25, 116, 72, $0 - anim_bgeffect $31, $8, $0, $0 - anim_wait 8 - anim_sound $1, SFX_HYDRO_PUMP - anim_obj $25, 124, 72, $0 - anim_bgeffect $31, $30, $0, $0 - anim_wait 8 - anim_sound $1, SFX_HYDRO_PUMP - anim_obj $25, 132, 72, $0 - anim_bgeffect $31, $1c, $0, $0 - anim_wait 8 - anim_sound $1, SFX_HYDRO_PUMP - anim_obj $25, 140, 72, $0 - anim_bgeffect $31, $8, $0, $0 - anim_wait 8 - anim_sound $1, SFX_HYDRO_PUMP - anim_obj $25, 148, 72, $0 - anim_bgeffect $31, $30, $0, $0 - anim_wait 8 - anim_sound $1, SFX_HYDRO_PUMP - anim_obj $25, 156, 72, $0 - anim_bgeffect $31, $1c, $0, $0 + anim_call BattleAnim_FollowPlayerHead_1 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, 13, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, 14, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $8, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, 15, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $30, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -16, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -15, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $8, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -14, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $30, $0, $0 + anim_wait 8 + anim_sound 0, 1, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_25, -13, 4, 9, 0, $0 + anim_bgeffect ANIM_BG_31, $1c, $0, $0 anim_wait 32 - anim_call BattleAnim_HydroPump_branch_cbcd2 - anim_bgeffect $32, $0, $0, $0 + anim_call BattleAnim_ShowMon_1 + anim_bgeffect ANIM_BG_32, $0, $0, $0 anim_wait 16 anim_ret ; c9a2a @@ -1191,89 +1187,89 @@ BattleAnim_HydroPump: ; c99b4 BattleAnim_Surf: ; c9a2a anim_1gfx ANIM_GFX_BUBBLE anim_bgeffect ANIM_BG_SURF, $0, $0, $0 - anim_obj $22, 88, 104, $8 -BattleAnim_Surf_branch_c9a36: ; c9a36 - anim_sound $1, SFX_SURF + anim_obj ANIM_OBJ_22, 11, 0, 13, 0, $8 +.loop + anim_sound 0, 1, SFX_SURF anim_wait 32 - anim_loop $4, BattleAnim_Surf_branch_c9a36 - anim_incobj $1 + anim_loop 4, .loop + anim_incobj 1 anim_wait 56 anim_ret ; c9a42 BattleAnim_VineWhip: ; c9a42 anim_1gfx ANIM_GFX_WHIP - anim_sound $1, SFX_VINE_WHIP - anim_obj $40, 116, 52, $80 + anim_sound 0, 1, SFX_VINE_WHIP + anim_obj ANIM_OBJ_40, 14, 4, 6, 4, $80 anim_wait 4 - anim_sound $1, SFX_VINE_WHIP - anim_obj $3f, 128, 60, $0 + anim_sound 0, 1, SFX_VINE_WHIP + anim_obj ANIM_OBJ_3F, 16, 0, 7, 4, $0 anim_wait 4 - anim_incobj $1 + anim_incobj 1 anim_wait 4 anim_ret ; c9a5a BattleAnim_LeechSeed: ; c9a5a anim_1gfx ANIM_GFX_PLANT - anim_sound $42, SFX_VINE_WHIP - anim_obj $4a, 48, 80, $20 + anim_sound 16, 2, SFX_VINE_WHIP + anim_obj ANIM_OBJ_4A, 6, 0, 10, 0, $20 anim_wait 8 - anim_sound $42, SFX_VINE_WHIP - anim_obj $4a, 48, 80, $30 + anim_sound 16, 2, SFX_VINE_WHIP + anim_obj ANIM_OBJ_4A, 6, 0, 10, 0, $30 anim_wait 8 - anim_sound $42, SFX_VINE_WHIP - anim_obj $4a, 48, 80, $28 + anim_sound 16, 2, SFX_VINE_WHIP + anim_obj ANIM_OBJ_4A, 6, 0, 10, 0, $28 anim_wait 32 - anim_sound $1, SFX_CHARGE + anim_sound 0, 1, SFX_CHARGE anim_wait 128 anim_ret ; c9a7c BattleAnim_RazorLeaf: ; c9a7c anim_1gfx ANIM_GFX_PLANT - anim_sound $0, SFX_VINE_WHIP - anim_obj $14, 48, 80, $28 - anim_obj $14, 48, 80, $5c - anim_obj $14, 48, 80, $10 - anim_obj $14, 48, 80, $e8 - anim_obj $14, 48, 80, $9c - anim_obj $14, 48, 80, $d0 + anim_sound 0, 0, SFX_VINE_WHIP + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $28 + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $5c + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $10 + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $e8 + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $9c + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $d0 anim_wait 6 - anim_obj $14, 48, 80, $1c - anim_obj $14, 48, 80, $50 - anim_obj $14, 48, 80, $dc - anim_obj $14, 48, 80, $90 + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $1c + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $50 + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $dc + anim_obj ANIM_OBJ_14, 6, 0, 10, 0, $90 anim_wait 80 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $3 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 3 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $5 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 5 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $7 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 7 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $9 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 9 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $1 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 1 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $2 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 2 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $4 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 4 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $6 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 6 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $8 + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 8 anim_wait 2 - anim_sound $42, SFX_VINE_WHIP - anim_incobj $a + anim_sound 16, 2, SFX_VINE_WHIP + anim_incobj 10 anim_wait 64 anim_ret ; c9af2 @@ -1281,16 +1277,16 @@ BattleAnim_RazorLeaf: ; c9a7c BattleAnim_Solarbeam: ; c9af2 anim_jumpif $0, BattleAnim_Solarbeam_branch_c9b30 anim_1gfx ANIM_GFX_CHARGE - anim_sound $0, SFX_CHARGE - anim_obj $3d, 48, 84, $0 - anim_obj $3c, 48, 84, $0 - anim_obj $3c, 48, 84, $8 - anim_obj $3c, 48, 84, $10 - anim_obj $3c, 48, 84, $18 - anim_obj $3c, 48, 84, $20 - anim_obj $3c, 48, 84, $28 - anim_obj $3c, 48, 84, $30 - anim_obj $3c, 48, 84, $38 + anim_sound 0, 0, SFX_CHARGE + anim_obj ANIM_OBJ_3D, 6, 0, 10, 4, $0 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $0 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $8 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $10 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $18 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $20 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $28 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $30 + anim_obj ANIM_OBJ_3C, 6, 0, 10, 4, $38 anim_wait 104 anim_bgeffect ANIM_BG_FLASH_WHITE, $0, $4, $2 anim_wait 64 @@ -1299,7 +1295,7 @@ BattleAnim_Solarbeam: ; c9af2 BattleAnim_Solarbeam_branch_c9b30: ; c9b30 anim_1gfx ANIM_GFX_BEAM - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_call BattleAnim_Solarbeam_branch_cbb39 anim_wait 48 anim_ret @@ -1307,31 +1303,31 @@ BattleAnim_Solarbeam_branch_c9b30: ; c9b30 BattleAnim_Thunderpunch: ; c9b3c anim_2gfx ANIM_GFX_HIT, ANIM_GFX_LIGHTNING - anim_obj $a, 136, 56, $43 + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2 - anim_sound $1, SFX_THUNDER - anim_obj $2f, 152, 68, $0 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0 anim_wait 64 anim_ret ; c9b53 BattleAnim_Thundershock: ; c9b53 anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION - anim_obj $34, 136, 56, $2 + anim_obj ANIM_OBJ_34, -15, 0, 7, 0, $2 anim_wait 16 - anim_sound $1, SFX_THUNDERSHOCK - anim_obj $33, 136, 56, $0 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_33, -15, 0, 7, 0, $0 anim_wait 96 anim_ret ; c9b66 BattleAnim_Thunderbolt: ; c9b66 anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION - anim_obj $32, 136, 56, $2 + anim_obj ANIM_OBJ_32, -15, 0, 7, 0, $2 anim_wait 16 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_sound $1, SFX_THUNDERSHOCK - anim_obj $31, 136, 56, $0 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_31, -15, 0, 7, 0, $0 anim_wait 64 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 anim_wait 64 @@ -1341,11 +1337,11 @@ BattleAnim_Thunderbolt: ; c9b66 BattleAnim_ThunderWave: ; c9b84 anim_1gfx ANIM_GFX_LIGHTNING anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 - anim_sound $1, SFX_THUNDERSHOCK - anim_obj $30, 136, 56, $0 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_30, -15, 0, 7, 0, $0 anim_wait 20 anim_bgp $1b - anim_incobj $1 + anim_incobj 1 anim_wait 96 anim_ret ; c9b9a @@ -1353,14 +1349,14 @@ BattleAnim_ThunderWave: ; c9b84 BattleAnim_Thunder: ; c9b9a anim_1gfx ANIM_GFX_LIGHTNING anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20 - anim_sound $1, SFX_THUNDER - anim_obj $2e, 120, 68, $0 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2E, 15, 0, 8, 4, $0 anim_wait 16 - anim_sound $1, SFX_THUNDER - anim_obj $2f, 152, 68, $0 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0 anim_wait 16 - anim_sound $1, SFX_THUNDER - anim_obj $2d, 136, 68, $0 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2D, -15, 0, 8, 4, $0 anim_wait 48 anim_ret ; c9bbd @@ -1368,50 +1364,50 @@ BattleAnim_Thunder: ; c9b9a BattleAnim_RazorWind: ; c9bbd anim_jumpif $1, BattleAnim_RazorWind_branch_c9fb5 anim_1gfx ANIM_GFX_WHIP - anim_bgeffect $6, $0, $1, $0 -BattleAnim_RazorWind_branch_c9bc8: ; c9bc8 + anim_bgeffect ANIM_BG_06, $0, $1, $0 +.loop anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_sound $1, SFX_RAZOR_WIND - anim_obj $42, 152, 40, $3 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_42, -13, 0, 5, 0, $3 anim_wait 4 - anim_sound $1, SFX_RAZOR_WIND - anim_obj $42, 136, 56, $3 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_42, -15, 0, 7, 0, $3 anim_wait 4 - anim_sound $1, SFX_RAZOR_WIND - anim_obj $42, 152, 64, $3 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_42, -13, 0, 8, 0, $3 anim_wait 4 - anim_sound $1, SFX_RAZOR_WIND - anim_obj $41, 120, 40, $83 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_41, 15, 0, 5, 0, $83 anim_wait 4 - anim_sound $1, SFX_RAZOR_WIND - anim_obj $41, 120, 64, $83 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_41, 15, 0, 8, 0, $83 anim_wait 4 - anim_loop $3, BattleAnim_RazorWind_branch_c9bc8 + anim_loop 3, .loop anim_wait 24 anim_ret ; c9c00 BattleAnim_Sonicboom_JP: ; c9c00 anim_2gfx ANIM_GFX_WHIP, ANIM_GFX_HIT -BattleAnim_Sonicboom_JP_branch_c9c03: ; c9c03 - anim_sound $c, SFX_RAZOR_WIND - anim_obj $43, 64, 80, $3 +.loop + anim_sound 3, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_43, 8, 0, 10, 0, $3 anim_wait 8 - anim_sound $c, SFX_RAZOR_WIND - anim_obj $43, 64, 88, $2 + anim_sound 3, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_43, 8, 0, 11, 0, $2 anim_wait 8 - anim_sound $c, SFX_RAZOR_WIND - anim_obj $43, 64, 96, $4 + anim_sound 3, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_43, 8, 0, 12, 0, $4 anim_wait 8 - anim_loop $2, BattleAnim_Sonicboom_JP_branch_c9c03 + anim_loop 2, .loop anim_wait 32 - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 - anim_incobj $4 - anim_incobj $5 - anim_incobj $6 - anim_obj $1, 136, 56, $0 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; c9c36 @@ -1419,15 +1415,14 @@ BattleAnim_Sonicboom_JP_branch_c9c03: ; c9c03 BattleAnim_Gust: ; c9c36 BattleAnim_Sonicboom: ; c9c36 anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT -BattleAnim_Gust_branch_c9c39: ; c9c39 -BattleAnim_Sonicboom_branch_c9c39: ; c9c39 - anim_sound $1, SFX_RAZOR_WIND - anim_obj ANIM_OBJ_GUST, 136, 72, $0 +.loop + anim_sound 0, 1, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_GUST, -15, 0, 9, 0, $0 anim_wait 6 - anim_loop $9, BattleAnim_Gust_branch_c9c39 - anim_obj $1, 144, 64, $18 + anim_loop 9, .loop + anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $18 anim_wait 8 - anim_obj $1, 128, 32, $18 + anim_obj ANIM_OBJ_01, 16, 0, 4, 0, $18 anim_wait 16 anim_ret ; c9c53 @@ -1435,36 +1430,36 @@ BattleAnim_Sonicboom_branch_c9c39: ; c9c39 BattleAnim_Selfdestruct: ; c9c53 anim_1gfx ANIM_GFX_EXPLOSION anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24 - anim_jumpif $1, BattleAnim_Selfdestruct_branch_c9c63 + anim_jumpif $1, .loop anim_call BattleAnim_Selfdestruct_branch_cbb8f anim_wait 16 anim_ret ; c9c63 -BattleAnim_Selfdestruct_branch_c9c63: ; c9c63 +.loop anim_call BattleAnim_Selfdestruct_branch_cbb62 anim_wait 5 anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 - anim_loop $2, BattleAnim_Selfdestruct_branch_c9c63 + anim_loop 2, .loop anim_wait 16 anim_ret ; c9c72 BattleAnim_Explosion: ; c9c72 anim_1gfx ANIM_GFX_EXPLOSION - anim_bgeffect $1f, $60, $4, $10 + anim_bgeffect ANIM_BG_1F, $60, $4, $10 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24 - anim_jumpif $1, BattleAnim_Explosion_branch_c9c87 + anim_jumpif $1, .loop anim_call BattleAnim_Explosion_branch_cbb8f anim_wait 16 anim_ret ; c9c87 -BattleAnim_Explosion_branch_c9c87: ; c9c87 +.loop anim_call BattleAnim_Explosion_branch_cbb62 anim_wait 5 anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 - anim_loop $2, BattleAnim_Explosion_branch_c9c87 + anim_loop 2, .loop anim_wait 16 anim_ret ; c9c96 @@ -1478,64 +1473,64 @@ BattleAnim_Acid: ; c9c96 BattleAnim_RockThrow: ; c9c9d anim_1gfx ANIM_GFX_ROCKS - anim_bgeffect $1f, $60, $1, $0 - anim_sound $1, SFX_STRENGTH - anim_obj $1e, 128, 64, $40 + anim_bgeffect ANIM_BG_1F, $60, $1, $0 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40 anim_wait 2 - anim_sound $1, SFX_STRENGTH - anim_obj $1d, 120, 68, $30 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, 15, 0, 8, 4, $30 anim_wait 2 - anim_sound $1, SFX_STRENGTH - anim_obj $1e, 152, 68, $30 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30 anim_wait 2 - anim_sound $1, SFX_STRENGTH - anim_obj $1d, 144, 64, $40 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, -14, 0, 8, 0, $40 anim_wait 2 - anim_sound $1, SFX_STRENGTH - anim_obj $1e, 136, 68, $30 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30 anim_wait 96 anim_ret ; c9cd2 BattleAnim_RockSlide: ; c9cd2 anim_1gfx ANIM_GFX_ROCKS - anim_bgeffect $1f, $c0, $1, $0 -BattleAnim_RockSlide_branch_c9cd9: ; c9cd9 - anim_sound $1, SFX_STRENGTH - anim_obj $1e, 128, 64, $40 + anim_bgeffect ANIM_BG_1F, $c0, $1, $0 +.loop + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40 anim_wait 4 - anim_sound $1, SFX_STRENGTH - anim_obj $1d, 120, 68, $30 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, 15, 0, 8, 4, $30 anim_wait 4 - anim_sound $1, SFX_STRENGTH - anim_obj $1e, 152, 68, $30 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30 anim_wait 4 - anim_sound $1, SFX_STRENGTH - anim_obj $1d, 144, 64, $40 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1D, -14, 0, 8, 0, $40 anim_wait 4 - anim_sound $1, SFX_STRENGTH - anim_obj $1e, 136, 68, $30 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30 anim_wait 16 - anim_loop $4, BattleAnim_RockSlide_branch_c9cd9 + anim_loop 4, .loop anim_wait 96 anim_ret ; c9d0c BattleAnim_Sing: ; c9d0c anim_1gfx ANIM_GFX_NOISE - anim_sound $42, SFX_SING -BattleAnim_Sing_branch_c9d11: ; c9d11 - anim_obj $23, 64, 92, $0 + anim_sound 16, 2, SFX_SING +.loop + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $0 anim_wait 8 - anim_obj $23, 64, 92, $1 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $1 anim_wait 8 - anim_obj $23, 64, 92, $2 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $2 anim_wait 8 - anim_obj $23, 64, 92, $0 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $0 anim_wait 8 - anim_obj $23, 64, 92, $2 + anim_obj ANIM_OBJ_23, 8, 0, 11, 4, $2 anim_wait 8 - anim_loop $4, BattleAnim_Sing_branch_c9d11 + anim_loop 4, .loop anim_wait 64 anim_ret ; c9d35 @@ -1545,35 +1540,32 @@ BattleAnim_SleepPowder: ; c9d35 BattleAnim_Spore: ; c9d35 BattleAnim_StunSpore: ; c9d35 anim_1gfx ANIM_GFX_POWDER -BattleAnim_Poisonpowder_branch_c9d37: ; c9d37 -BattleAnim_SleepPowder_branch_c9d37: ; c9d37 -BattleAnim_Spore_branch_c9d37: ; c9d37 -BattleAnim_StunSpore_branch_c9d37: ; c9d37 - anim_sound $1, SFX_POWDER - anim_obj $26, 104, 16, $0 +.loop + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 13, 0, 2, 0, $0 anim_wait 4 - anim_sound $1, SFX_POWDER - anim_obj $26, 136, 16, $0 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, -15, 0, 2, 0, $0 anim_wait 4 - anim_sound $1, SFX_POWDER - anim_obj $26, 112, 16, $0 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 14, 0, 2, 0, $0 anim_wait 4 - anim_sound $1, SFX_POWDER - anim_obj $26, 128, 16, $0 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 16, 0, 2, 0, $0 anim_wait 4 - anim_sound $1, SFX_POWDER - anim_obj $26, 120, 16, $0 + anim_sound 0, 1, SFX_POWDER + anim_obj ANIM_OBJ_26, 15, 0, 2, 0, $0 anim_wait 4 - anim_loop $2, BattleAnim_Poisonpowder_branch_c9d37 + anim_loop 2, .loop anim_wait 96 anim_ret ; c9d6a BattleAnim_HyperBeam: ; c9d6a anim_1gfx ANIM_GFX_BEAM - anim_bgeffect $1f, $30, $4, $10 + anim_bgeffect ANIM_BG_1F, $30, $4, $10 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40 - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_call BattleAnim_HyperBeam_branch_cbb39 anim_wait 48 anim_ret @@ -1581,31 +1573,31 @@ BattleAnim_HyperBeam: ; c9d6a BattleAnim_AuroraBeam: ; c9d80 anim_1gfx ANIM_GFX_BEAM - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 anim_wait 64 anim_call BattleAnim_AuroraBeam_branch_cbb39 anim_wait 48 - anim_incobj $5 + anim_incobj 5 anim_wait 64 anim_ret ; c9d95 BattleAnim_Vicegrip: ; c9d95 anim_1gfx ANIM_GFX_CUT - anim_sound $1, SFX_VICEGRIP - anim_obj $37, 152, 40, $0 - anim_obj $39, 120, 72, $0 + anim_sound 0, 1, SFX_VICEGRIP + anim_obj ANIM_OBJ_37, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0 anim_wait 32 anim_ret ; c9da6 BattleAnim_Scratch: ; c9da6 anim_1gfx ANIM_GFX_CUT - anim_sound $1, SFX_SCRATCH - anim_obj $37, 144, 48, $0 - anim_obj $37, 140, 44, $0 - anim_obj $37, 136, 40, $0 + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0 anim_wait 32 anim_ret ; c9dbc @@ -1613,80 +1605,80 @@ BattleAnim_Scratch: ; c9da6 BattleAnim_FurySwipes: ; c9dbc anim_1gfx ANIM_GFX_CUT anim_jumpif $1, BattleAnim_FurySwipes_branch_c9dd9 - anim_sound $1, SFX_SCRATCH - anim_obj $37, 144, 48, $0 - anim_obj $37, 140, 44, $0 - anim_obj $37, 136, 40, $0 - anim_sound $1, SFX_SCRATCH + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0 + anim_sound 0, 1, SFX_SCRATCH anim_wait 32 anim_ret ; c9dd9 BattleAnim_FurySwipes_branch_c9dd9: ; c9dd9 - anim_sound $1, SFX_SCRATCH - anim_obj $38, 120, 48, $0 - anim_obj $38, 124, 44, $0 - anim_obj $38, 128, 40, $0 - anim_sound $1, SFX_SCRATCH + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_38, 15, 0, 6, 0, $0 + anim_obj ANIM_OBJ_38, 15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_38, 16, 0, 5, 0, $0 + anim_sound 0, 1, SFX_SCRATCH anim_wait 32 anim_ret ; c9df0 BattleAnim_Cut: ; c9df0 anim_1gfx ANIM_GFX_CUT - anim_sound $1, SFX_CUT - anim_obj $3a, 152, 40, $0 + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 anim_wait 32 anim_ret ; c9dfc BattleAnim_Slash: ; c9dfc anim_1gfx ANIM_GFX_CUT - anim_sound $1, SFX_CUT - anim_obj $3a, 152, 40, $0 - anim_obj $3a, 148, 36, $0 + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_3A, -14, 4, 4, 4, $0 anim_wait 32 anim_ret ; c9e0d BattleAnim_Clamp: ; c9e0d anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT - anim_obj $35, 136, 56, $a0 - anim_obj $35, 136, 56, $20 + anim_obj ANIM_OBJ_35, -15, 0, 7, 0, $a0 + anim_obj ANIM_OBJ_35, -15, 0, 7, 0, $20 anim_wait 16 - anim_sound $1, SFX_BITE - anim_obj $1, 144, 48, $18 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $18 anim_wait 32 - anim_sound $1, SFX_BITE - anim_obj $1, 128, 64, $18 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, 16, 0, 8, 0, $18 anim_wait 16 anim_ret ; c9e2e BattleAnim_Bite: ; c9e2e anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT - anim_obj $36, 136, 56, $98 - anim_obj $36, 136, 56, $18 + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $98 + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $18 anim_wait 8 - anim_sound $1, SFX_BITE - anim_obj $1, 144, 48, $18 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $18 anim_wait 16 - anim_sound $1, SFX_BITE - anim_obj $1, 128, 64, $18 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_01, 16, 0, 8, 0, $18 anim_wait 8 anim_ret ; c9e4f BattleAnim_Teleport: ; c9e4f anim_1gfx ANIM_GFX_SPEED - anim_call BattleAnim_Teleport_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TELEPORT, $0, $1, $0 anim_wait 32 anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 anim_wait 3 anim_incbgeffect ANIM_BG_TELEPORT - anim_call BattleAnim_Teleport_branch_cbcb7 - anim_bgeffect $6, $0, $1, $0 + anim_call BattleAnim_ShowMon_0 + anim_bgeffect ANIM_BG_06, $0, $1, $0 anim_call BattleAnim_Teleport_branch_cbb12 anim_wait 64 anim_ret @@ -1696,8 +1688,8 @@ BattleAnim_Fly: ; c9e6f anim_jumpif $1, BattleAnim_Fly_branch_c9e89 anim_jumpif $2, BattleAnim_Fly_branch_c9e82 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_WING_ATTACK - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 32 BattleAnim_Fly_branch_c9e82: ; c9e82 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 @@ -1707,7 +1699,7 @@ BattleAnim_Fly_branch_c9e82: ; c9e82 BattleAnim_Fly_branch_c9e89: ; c9e89 anim_1gfx ANIM_GFX_SPEED - anim_bgeffect $6, $0, $1, $0 + anim_bgeffect ANIM_BG_06, $0, $1, $0 anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 anim_call BattleAnim_Fly_branch_cbb12 anim_wait 64 @@ -1715,125 +1707,125 @@ BattleAnim_Fly_branch_c9e89: ; c9e89 ; c9e9a BattleAnim_DoubleTeam: ; c9e9a - anim_call BattleAnim_DoubleTeam_branch_cbcaf - anim_sound $0, SFX_PSYBEAM + anim_call BattleAnim_FollowPlayerHead_0 + anim_sound 0, 0, SFX_PSYBEAM anim_bgeffect ANIM_BG_DOUBLE_TEAM, $0, $1, $0 anim_wait 96 anim_incbgeffect ANIM_BG_DOUBLE_TEAM anim_wait 24 anim_incbgeffect ANIM_BG_DOUBLE_TEAM - anim_call BattleAnim_DoubleTeam_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; c9eaf BattleAnim_Recover: ; c9eaf anim_1gfx ANIM_GFX_BUBBLE - anim_call BattleAnim_Recover_branch_cbca7 - anim_sound $0, SFX_FULL_HEAL - anim_bgeffect $18, $0, $1, $40 - anim_obj $2c, 44, 88, $30 - anim_obj $2c, 44, 88, $31 - anim_obj $2c, 44, 88, $32 - anim_obj $2c, 44, 88, $33 - anim_obj $2c, 44, 88, $34 - anim_obj $2c, 44, 88, $35 - anim_obj $2c, 44, 88, $36 - anim_obj $2c, 44, 88, $37 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_FULL_HEAL + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $30 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $31 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $32 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $33 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $34 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $35 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $36 + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $37 anim_wait 64 - anim_incbgeffect $18 - anim_call BattleAnim_Recover_branch_cbcb7 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 anim_ret ; c9eeb BattleAnim_Absorb: ; c9eeb anim_1gfx ANIM_GFX_CHARGE - anim_obj $3d, 44, 88, $0 -BattleAnim_Absorb_branch_c9ef2: ; c9ef2 - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 128, 48, $2 + anim_obj ANIM_OBJ_3D, 5, 4, 11, 0, $0 +.loop + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, 16, 0, 6, 0, $2 anim_wait 6 - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 136, 64, $3 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, -15, 0, 8, 0, $3 anim_wait 6 - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 136, 32, $4 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, -15, 0, 4, 0, $4 anim_wait 6 - anim_loop $5, BattleAnim_Absorb_branch_c9ef2 + anim_loop 5, .loop anim_wait 32 anim_ret ; c9f13 BattleAnim_MegaDrain: ; c9f13 anim_1gfx ANIM_GFX_CHARGE - anim_call BattleAnim_MegaDrain_branch_cbca7 - anim_bgeffect $1c, $0, $0, $10 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1C, $0, $0, $10 anim_setvar $0 -BattleAnim_MegaDrain_branch_c9f1f: ; c9f1f - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 128, 48, $2 +.loop + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, 16, 0, 6, 0, $2 anim_wait 6 - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 136, 64, $3 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, -15, 0, 8, 0, $3 anim_wait 6 - anim_sound $1b, SFX_WATER_GUN - anim_obj $45, 136, 32, $4 + anim_sound 6, 3, SFX_WATER_GUN + anim_obj ANIM_OBJ_45, -15, 0, 4, 0, $4 anim_wait 6 anim_incvar - anim_jumpvar $7, BattleAnim_MegaDrain_branch_c9f4e - anim_jumpvar $2, BattleAnim_MegaDrain_branch_c9f46 - anim_jump BattleAnim_MegaDrain_branch_c9f1f + anim_jumpvar $7, .done + anim_jumpvar $2, .spawn + anim_jump .loop ; c9f46 -BattleAnim_MegaDrain_branch_c9f46: ; c9f46 - anim_obj $3d, 44, 88, $0 - anim_jump BattleAnim_MegaDrain_branch_c9f1f +.spawn + anim_obj ANIM_OBJ_3D, 5, 4, 11, 0, $0 + anim_jump .loop ; c9f4e -BattleAnim_MegaDrain_branch_c9f4e: ; c9f4e +.done anim_wait 32 - anim_incbgeffect $1c - anim_call BattleAnim_MegaDrain_branch_cbcb7 + anim_incbgeffect ANIM_BG_1C + anim_call BattleAnim_ShowMon_0 anim_ret ; c9f55 BattleAnim_EggBomb: ; c9f55 anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION - anim_sound $0, SFX_SWITCH_POKEMON - anim_obj $46, 44, 104, $1 + anim_sound 0, 0, SFX_SWITCH_POKEMON + anim_obj ANIM_OBJ_46, 5, 4, 13, 0, $1 anim_wait 128 anim_wait 96 - anim_incobj $1 + anim_incobj 1 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 - anim_sound $1, SFX_EGG_BOMB - anim_obj $18, 128, 64, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, 16, 0, 8, 0, $0 anim_wait 8 - anim_sound $1, SFX_EGG_BOMB - anim_obj $18, 144, 68, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, -14, 0, 8, 4, $0 anim_wait 8 - anim_sound $1, SFX_EGG_BOMB - anim_obj $18, 136, 72, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, -15, 0, 9, 0, $0 anim_wait 24 anim_ret ; c9f85 BattleAnim_Softboiled: ; c9f85 anim_2gfx ANIM_GFX_EGG, ANIM_GFX_BUBBLE - anim_call BattleAnim_Softboiled_branch_cbca7 - anim_sound $0, SFX_SWITCH_POKEMON - anim_obj $46, 44, 104, $6 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SWITCH_POKEMON + anim_obj ANIM_OBJ_46, 5, 4, 13, 0, $6 anim_wait 128 - anim_incobj $2 - anim_obj $46, 76, 104, $b + anim_incobj 2 + anim_obj ANIM_OBJ_46, 9, 4, 13, 0, $b anim_wait 16 - anim_bgeffect $18, $0, $1, $40 - anim_sound $0, SFX_METRONOME -BattleAnim_Softboiled_branch_c9fa4: ; c9fa4 - anim_obj $2c, 44, 88, $20 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_sound 0, 0, SFX_METRONOME +.loop + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $20 anim_wait 8 - anim_loop $8, BattleAnim_Softboiled_branch_c9fa4 + anim_loop 8, .loop anim_wait 128 - anim_incbgeffect $18 - anim_call BattleAnim_Softboiled_branch_cbcb7 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 anim_ret ; c9fb5 @@ -1842,211 +1834,208 @@ BattleAnim_RazorWind_branch_c9fb5: ; c9fb5 BattleAnim_SkullBash_branch_c9fb5: ; c9fb5 BattleAnim_SkyAttack_branch_c9fb5: ; c9fb5 anim_1gfx ANIM_GFX_SPEED - anim_call BattleAnim_FocusEnergy_branch_cbca7 - anim_bgeffect $16, $0, $1, $40 - anim_bgeffect $6, $0, $2, $0 -BattleAnim_FocusEnergy_branch_c9fc4: ; c9fc4 -BattleAnim_RazorWind_branch_c9fc4: ; c9fc4 -BattleAnim_SkullBash_branch_c9fc4: ; c9fc4 -BattleAnim_SkyAttack_branch_c9fc4: ; c9fc4 - anim_sound $0, SFX_SWORDS_DANCE - anim_obj $47, 44, 108, $6 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_16, $0, $1, $40 + anim_bgeffect ANIM_BG_06, $0, $2, $0 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 36, 108, $6 + anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 52, 108, $8 + anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 28, 108, $8 + anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 60, 108, $6 + anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 20, 108, $8 + anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 68, 108, $8 + anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8 anim_wait 2 - anim_loop $3, BattleAnim_FocusEnergy_branch_c9fc4 + anim_loop 3, .loop anim_wait 8 - anim_incbgeffect $16 - anim_call BattleAnim_FocusEnergy_branch_cbcb7 + anim_incbgeffect ANIM_BG_16 + anim_call BattleAnim_ShowMon_0 anim_ret ; c9ffc BattleAnim_Bide: ; c9ffc anim_jumpif $0, BattleAnim_Bide_branch_c9651 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Bide_branch_cbca7 - anim_sound $0, SFX_ESCAPE_ROPE - anim_bgeffect $1a, $0, $1, $20 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_ESCAPE_ROPE + anim_bgeffect ANIM_BG_1A, $0, $1, $20 anim_wait 72 - anim_incbgeffect $1a - anim_call BattleAnim_Bide_branch_cbcb7 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 anim_ret ; ca014 BattleAnim_Bind: ; ca014 anim_1gfx ANIM_GFX_ROPE - anim_sound $1, SFX_BIND - anim_obj $48, 132, 64, $0 + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_48, -16, 4, 8, 0, $0 anim_wait 8 - anim_obj $49, 132, 56, $0 + anim_obj ANIM_OBJ_49, -16, 4, 7, 0, $0 anim_wait 8 - anim_obj $48, 132, 48, $0 + anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0 anim_wait 64 - anim_sound $1, SFX_BIND - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 + anim_sound 0, 1, SFX_BIND + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 anim_wait 96 anim_ret ; ca036 BattleAnim_Wrap: ; ca036 anim_1gfx ANIM_GFX_ROPE - anim_sound $1, SFX_BIND - anim_obj $48, 132, 64, $0 + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_48, -16, 4, 8, 0, $0 anim_wait 8 - anim_obj $48, 132, 56, $0 + anim_obj ANIM_OBJ_48, -16, 4, 7, 0, $0 anim_wait 8 - anim_obj $48, 132, 48, $0 + anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0 anim_wait 64 - anim_sound $1, SFX_BIND - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 + anim_sound 0, 1, SFX_BIND + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 anim_wait 96 anim_ret ; ca058 BattleAnim_Confusion: ; ca058 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Confusion_branch_cbcca - anim_sound $1, SFX_PSYCHIC + anim_call BattleAnim_FollowPlayerHead_1 + anim_sound 0, 1, SFX_PSYCHIC anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8 anim_wait 128 anim_incbgeffect ANIM_BG_NIGHT_SHADE - anim_call BattleAnim_Confusion_branch_cbcd2 + anim_call BattleAnim_ShowMon_1 anim_ret ; ca06c BattleAnim_Constrict: ; ca06c anim_1gfx ANIM_GFX_ROPE - anim_sound $1, SFX_BIND - anim_obj $49, 132, 64, $0 + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_49, -16, 4, 8, 0, $0 anim_wait 8 - anim_obj $48, 132, 48, $0 + anim_obj ANIM_OBJ_48, -16, 4, 6, 0, $0 anim_wait 8 - anim_obj $49, 132, 40, $0 + anim_obj ANIM_OBJ_49, -16, 4, 5, 0, $0 anim_wait 8 - anim_obj $48, 132, 56, $0 + anim_obj ANIM_OBJ_48, -16, 4, 7, 0, $0 anim_wait 64 anim_ret ; ca08a BattleAnim_Earthquake: ; ca08a - anim_bgeffect $1f, $60, $4, $10 -BattleAnim_Earthquake_branch_ca08f: ; ca08f - anim_sound $1, SFX_EMBER + anim_bgeffect ANIM_BG_1F, $60, $4, $10 +.loop + anim_sound 0, 1, SFX_EMBER anim_wait 24 - anim_loop $4, BattleAnim_Earthquake_branch_ca08f + anim_loop 4, .loop anim_ret ; ca098 BattleAnim_Fissure: ; ca098 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40 - anim_bgeffect $1f, $60, $4, $0 -BattleAnim_Fissure_branch_ca0a2: ; ca0a2 - anim_sound $1, SFX_EMBER + anim_bgeffect ANIM_BG_1F, $60, $4, $0 +.loop + anim_sound 0, 1, SFX_EMBER anim_wait 24 - anim_loop $4, BattleAnim_Fissure_branch_ca0a2 + anim_loop 4, .loop anim_ret ; ca0ab BattleAnim_Growl: ; ca0ab anim_1gfx ANIM_GFX_NOISE anim_enemyfeetobj - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_cry $0 -BattleAnim_Growl_branch_ca0b5: ; ca0b5 +.loop anim_call BattleAnim_Growl_branch_cbbbc anim_wait 16 - anim_loop $3, BattleAnim_Growl_branch_ca0b5 + anim_loop 3, .loop anim_wait 9 anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0 anim_wait 8 - anim_bgeffect $19, $0, $0, $40 + anim_bgeffect ANIM_BG_19, $0, $0, $40 anim_wait 64 - anim_incbgeffect $19 + anim_incbgeffect ANIM_BG_19 anim_wait 1 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 5 - anim_incobj $a + anim_incobj 10 anim_wait 8 anim_ret ; ca0d7 BattleAnim_Roar: ; ca0d7 anim_1gfx ANIM_GFX_NOISE - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_cry $1 -BattleAnim_Roar_branch_ca0e0: ; ca0e0 +.loop anim_call BattleAnim_Roar_branch_cbbbc anim_wait 16 - anim_loop $3, BattleAnim_Roar_branch_ca0e0 + anim_loop 3, .loop anim_wait 16 - anim_jumpif $0, BattleAnim_Roar_branch_ca0f3 - anim_bgeffect $27, $0, $0, $0 + anim_jumpif $0, .done + anim_bgeffect ANIM_BG_27, $0, $0, $0 anim_wait 64 -BattleAnim_Roar_branch_ca0f3: ; ca0f3 +.done anim_ret ; ca0f4 BattleAnim_Supersonic: ; ca0f4 anim_1gfx ANIM_GFX_PSYCHIC -BattleAnim_Supersonic_branch_ca0f6: ; ca0f6 - anim_sound $1a, SFX_SUPERSONIC - anim_obj $4c, 64, 88, $2 +.loop + anim_sound 6, 2, SFX_SUPERSONIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 anim_wait 4 - anim_loop $a, BattleAnim_Supersonic_branch_ca0f6 + anim_loop 10, .loop anim_wait 64 anim_ret ; ca105 BattleAnim_Screech: ; ca105 anim_1gfx ANIM_GFX_PSYCHIC - anim_bgeffect $1f, $8, $1, $20 - anim_sound $1a, SFX_SCREECH -BattleAnim_Screech_branch_ca10f: ; ca10f - anim_obj $4c, 64, 88, $2 + anim_bgeffect ANIM_BG_1F, $8, $1, $20 + anim_sound 6, 2, SFX_SCREECH +.loop + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 anim_wait 2 - anim_loop $2, BattleAnim_Screech_branch_ca10f + anim_loop 2, .loop anim_wait 64 anim_ret ; ca11b BattleAnim_ConfuseRay: ; ca11b anim_1gfx ANIM_GFX_SPEED - anim_bgeffect $6, $0, $2, $0 - anim_bgeffect $8, $0, $4, $0 - anim_obj $4d, 64, 88, $0 - anim_obj $4d, 64, 88, $80 - anim_obj $4d, 64, 88, $88 - anim_obj $4d, 64, 88, $90 - anim_obj $4d, 64, 88, $98 - anim_obj $4d, 64, 88, $a0 - anim_obj $4d, 64, 88, $a8 - anim_obj $4d, 64, 88, $b0 - anim_obj $4d, 64, 88, $b8 -BattleAnim_ConfuseRay_branch_ca154: ; ca154 - anim_sound $1a, SFX_WHIRLWIND - anim_wait 16 - anim_loop $8, BattleAnim_ConfuseRay_branch_ca154 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_08, $0, $4, $0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $80 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $88 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $90 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $98 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $a0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $a8 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $b0 + anim_obj ANIM_OBJ_4D, 8, 0, 11, 0, $b8 +.loop + anim_sound 6, 2, SFX_WHIRLWIND + anim_wait 16 + anim_loop 8, .loop anim_wait 32 anim_ret ; ca15e BattleAnim_Leer: ; ca15e anim_1gfx ANIM_GFX_BEAM - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_call BattleAnim_Leer_branch_cbadc anim_wait 16 anim_ret @@ -2054,128 +2043,127 @@ BattleAnim_Leer: ; ca15e BattleAnim_Reflect: ; ca16a anim_1gfx ANIM_GFX_REFLECT - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_sound $0, SFX_SHINE - anim_obj $50, 72, 80, $0 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 anim_wait 24 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_sound $0, SFX_SHINE - anim_obj $50, 72, 80, $0 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 anim_wait 64 anim_ret ; ca18e BattleAnim_LightScreen: ; ca18e anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_REFLECT - anim_bgeffect $6, $0, $2, $0 - anim_sound $0, SFX_FLASH - anim_obj $50, 72, 80, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_FLASH + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 anim_wait 4 - anim_obj $6d, 72, 80, $0 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $0 anim_wait 4 - anim_obj $6d, 72, 80, $8 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $8 anim_wait 4 - anim_obj $6d, 72, 80, $10 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $10 anim_wait 4 - anim_obj $6d, 72, 80, $18 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $18 anim_wait 4 - anim_obj $50, 72, 80, $0 - anim_obj $6d, 72, 80, $20 + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $20 anim_wait 4 - anim_obj $6d, 72, 80, $28 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $28 anim_wait 4 - anim_obj $6d, 72, 80, $30 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $30 anim_wait 4 - anim_obj $6d, 72, 80, $38 + anim_obj ANIM_OBJ_6D, 9, 0, 10, 0, $38 anim_wait 64 anim_ret ; ca1d5 BattleAnim_Amnesia: ; ca1d5 anim_1gfx ANIM_GFX_STATUS - anim_sound $0, SFX_LICK - anim_obj $53, 64, 80, $2 + anim_sound 0, 0, SFX_LICK + anim_obj ANIM_OBJ_53, 8, 0, 10, 0, $2 anim_wait 16 - anim_obj $53, 68, 80, $1 + anim_obj ANIM_OBJ_53, 8, 4, 10, 0, $1 anim_wait 16 - anim_obj $53, 72, 80, $0 + anim_obj ANIM_OBJ_53, 9, 0, 10, 0, $0 anim_wait 64 anim_ret ; ca1ed BattleAnim_DizzyPunch: ; ca1ed anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_HIT - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $0, 136, 40, $0 - anim_obj $2, 136, 64, $0 - anim_wait 16 - anim_sound $1, SFX_KINESIS - anim_obj ANIM_OBJ_CHICK, 136, 24, $15 - anim_obj ANIM_OBJ_CHICK, 136, 24, $aa - anim_obj ANIM_OBJ_CHICK, 136, 24, $bf + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 5, 0, $0 + anim_obj ANIM_OBJ_02, -15, 0, 8, 0, $0 + anim_wait 16 + anim_sound 0, 1, SFX_KINESIS + anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $15 + anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $aa + anim_obj ANIM_OBJ_CHICK, -15, 0, 3, 0, $bf anim_wait 96 anim_ret ; ca212 BattleAnim_Rest: ; ca212 anim_1gfx ANIM_GFX_STATUS - anim_sound $0, SFX_TAIL_WHIP -BattleAnim_Rest_branch_ca217: ; ca217 - anim_obj $54, 64, 80, $0 + anim_sound 0, 0, SFX_TAIL_WHIP +.loop + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 anim_wait 40 - anim_loop $3, BattleAnim_Rest_branch_ca217 + anim_loop 3, .loop anim_wait 32 anim_ret ; ca223 BattleAnim_AcidArmor: ; ca223 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_AcidArmor_branch_cbcaf + anim_call BattleAnim_FollowPlayerHead_0 anim_bgeffect ANIM_BG_ACID_ARMOR, $0, $1, $8 - anim_sound $0, SFX_MEGA_PUNCH + anim_sound 0, 0, SFX_MEGA_PUNCH anim_wait 64 anim_incbgeffect ANIM_BG_ACID_ARMOR - anim_call BattleAnim_AcidArmor_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca237 BattleAnim_Splash: ; ca237 anim_1gfx ANIM_GFX_HIT - anim_sound $0, SFX_VICEGRIP - anim_call BattleAnim_Splash_branch_cbcaf - anim_bgeffect $22, $0, $1, $0 + anim_sound 0, 0, SFX_VICEGRIP + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0 anim_wait 96 - anim_incbgeffect $22 - anim_call BattleAnim_Splash_branch_cbcb7 + anim_incbgeffect ANIM_BG_BOUNCE_DOWN + anim_call BattleAnim_ShowMon_0 anim_ret ; ca24b BattleAnim_Dig: ; ca24b anim_2gfx ANIM_GFX_SAND, ANIM_GFX_HIT - anim_jumpif $0, BattleAnim_Dig_branch_ca27d - anim_jumpif $2, BattleAnim_Dig_branch_ca286 - anim_call BattleAnim_Dig_branch_cbcaf - anim_bgeffect $23, $0, $1, $1 - anim_obj $57, 72, 104, $0 -BattleAnim_Dig_branch_ca263: ; ca263 - anim_sound $0, SFX_RAZOR_WIND - anim_obj $56, 56, 104, $0 - anim_wait 16 - anim_loop $6, BattleAnim_Dig_branch_ca263 + anim_jumpif $0, .hit + anim_jumpif $2, .fail + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_DIG, $0, $1, $1 + anim_obj ANIM_OBJ_57, 9, 0, 13, 0, $0 +.loop + anim_sound 0, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_56, 7, 0, 13, 0, $0 + anim_wait 16 + anim_loop 6, .loop anim_wait 32 anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 anim_wait 8 - anim_incbgeffect $23 - anim_call BattleAnim_Dig_branch_cbcb7 + anim_incbgeffect ANIM_BG_DIG + anim_call BattleAnim_ShowMon_0 anim_ret -; ca27d -BattleAnim_Dig_branch_ca27d: ; ca27d - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $1, 136, 56, $0 +.hit + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 32 -BattleAnim_Dig_branch_ca286: ; ca286 +.fail anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 anim_wait 32 anim_ret @@ -2189,168 +2177,168 @@ BattleAnim_SandAttack: ; ca28d BattleAnim_StringShot: ; ca293 anim_1gfx ANIM_GFX_WEB - anim_bgeffect $7, $0, $2, $0 - anim_sound $1a, SFX_MENU - anim_obj $5a, 64, 80, $0 + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_5A, 8, 0, 10, 0, $0 anim_wait 4 - anim_sound $1, SFX_MENU - anim_obj $5a, 132, 48, $1 + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_5A, -16, 4, 6, 0, $1 anim_wait 4 - anim_sound $1a, SFX_MENU - anim_obj $5a, 64, 88, $0 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_5A, 8, 0, 11, 0, $0 anim_wait 4 - anim_sound $1, SFX_MENU - anim_obj $5a, 132, 64, $1 + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_5A, -16, 4, 8, 0, $1 anim_wait 4 - anim_sound $1a, SFX_MENU - anim_obj $5a, 64, 84, $0 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_5A, 8, 0, 10, 4, $0 anim_wait 4 - anim_sound $1, SFX_MENU - anim_obj $5a, 132, 56, $2 + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_5A, -16, 4, 7, 0, $2 anim_wait 64 anim_ret ; ca2d1 BattleAnim_Headbutt: ; ca2d1 anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $14, $2, $0 + anim_bgeffect ANIM_BG_1F, $14, $2, $0 anim_wait 32 - anim_call BattleAnim_Headbutt_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 4 - anim_sound $1, SFX_HEADBUTT - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_HEADBUTT + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 8 - anim_call BattleAnim_Headbutt_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca2ef BattleAnim_Tackle: ; ca2ef anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Tackle_branch_cbcaf + anim_call BattleAnim_FollowPlayerHead_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 4 - anim_sound $1, SFX_TACKLE - anim_obj $0, 136, 48, $0 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0 anim_wait 8 - anim_call BattleAnim_Tackle_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca307 BattleAnim_BodySlam: ; ca307 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_BodySlam_branch_cbcaf - anim_bgeffect $22, $0, $1, $0 + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0 anim_wait 32 - anim_incbgeffect $22 + anim_incbgeffect ANIM_BG_BOUNCE_DOWN anim_wait 4 - anim_bgeffect $25, $0, $1, $0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 anim_wait 3 - anim_sound $1, SFX_TACKLE - anim_obj $1, 136, 48, $0 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 anim_wait 6 - anim_sound $1, SFX_TACKLE - anim_obj $1, 144, 48, $0 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 anim_wait 3 - anim_call BattleAnim_BodySlam_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca331 BattleAnim_TakeDown: ; ca331 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_TakeDown_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 3 - anim_sound $1, SFX_TACKLE + anim_sound 0, 1, SFX_TACKLE anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_obj $1, 128, 56, $0 + anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_TACKLE + anim_sound 0, 1, SFX_TACKLE anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_obj $1, 144, 48, $0 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 anim_wait 3 - anim_call BattleAnim_TakeDown_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca35c BattleAnim_DoubleEdge: ; ca35c anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_DoubleEdge_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $10 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 3 - anim_sound $1, SFX_TACKLE - anim_obj $0, 128, 48, $0 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_00, 16, 0, 6, 0, $0 anim_wait 6 - anim_sound $1, SFX_TACKLE - anim_obj $0, 144, 48, $0 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_00, -14, 0, 6, 0, $0 anim_wait 3 - anim_call BattleAnim_DoubleEdge_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca382 BattleAnim_Submission: ; ca382 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Submission_branch_cbcc2 - anim_bgeffect $26, $0, $0, $0 - anim_sound $1, SFX_SUBMISSION + anim_call BattleAnim_FollowEnemyFeet_1 + anim_bgeffect ANIM_BG_26, $0, $0, $0 + anim_sound 0, 1, SFX_SUBMISSION anim_wait 32 - anim_obj $1, 120, 48, $0 + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 anim_wait 32 - anim_obj $1, 152, 56, $0 + anim_obj ANIM_OBJ_01, -13, 0, 7, 0, $0 anim_wait 32 - anim_obj $1, 136, 52, $0 + anim_obj ANIM_OBJ_01, -15, 0, 6, 4, $0 anim_wait 32 - anim_incbgeffect $26 - anim_call BattleAnim_Submission_branch_cbcd2 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_1 anim_ret ; ca3a8 BattleAnim_Whirlwind: ; ca3a8 anim_1gfx ANIM_GFX_WIND -BattleAnim_Whirlwind_branch_ca3aa: ; ca3aa - anim_sound $0, SFX_RAZOR_WIND - anim_obj ANIM_OBJ_GUST, 64, 112, $0 +.loop + anim_sound 0, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_GUST, 8, 0, 14, 0, $0 anim_wait 6 - anim_loop $9, BattleAnim_Whirlwind_branch_ca3aa - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 - anim_incobj $4 - anim_incobj $5 - anim_incobj $6 - anim_incobj $7 - anim_incobj $8 - anim_incobj $9 - anim_sound $42, SFX_WHIRLWIND + anim_loop 9, .loop + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 + anim_sound 16, 2, SFX_WHIRLWIND anim_wait 128 - anim_jumpif $0, BattleAnim_Whirlwind_branch_ca3d7 - anim_bgeffect $27, $0, $0, $0 + anim_jumpif $0, .done + anim_bgeffect ANIM_BG_27, $0, $0, $0 anim_wait 64 -BattleAnim_Whirlwind_branch_ca3d7: ; ca3d7 +.done anim_ret ; ca3d8 BattleAnim_Hypnosis: ; ca3d8 anim_1gfx ANIM_GFX_PSYCHIC -BattleAnim_Hypnosis_branch_ca3da: ; ca3da - anim_sound $1a, SFX_SUPERSONIC - anim_obj $4c, 64, 88, $2 - anim_obj $4c, 56, 80, $2 +.loop + anim_sound 6, 2, SFX_SUPERSONIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 + anim_obj ANIM_OBJ_4C, 7, 0, 10, 0, $2 anim_wait 8 - anim_loop $3, BattleAnim_Hypnosis_branch_ca3da + anim_loop 3, .loop anim_wait 56 anim_ret ; ca3ee BattleAnim_Haze: ; ca3ee anim_1gfx ANIM_GFX_HAZE - anim_sound $1, SFX_SURF -BattleAnim_Haze_branch_ca3f3: ; ca3f3 - anim_obj $5b, 48, 56, $0 - anim_obj $5b, 132, 16, $0 + anim_sound 0, 1, SFX_SURF +.loop + anim_obj ANIM_OBJ_5B, 6, 0, 7, 0, $0 + anim_obj ANIM_OBJ_5B, -16, 4, 2, 0, $0 anim_wait 12 - anim_loop $5, BattleAnim_Haze_branch_ca3f3 + anim_loop 5, .loop anim_wait 96 anim_ret ; ca404 @@ -2358,63 +2346,63 @@ BattleAnim_Haze_branch_ca3f3: ; ca3f3 BattleAnim_Mist: ; ca404 anim_obp0 $54 anim_1gfx ANIM_GFX_HAZE - anim_sound $0, SFX_SURF -BattleAnim_Mist_branch_ca40b: ; ca40b - anim_obj $5c, 48, 56, $0 + anim_sound 0, 0, SFX_SURF +.loop + anim_obj ANIM_OBJ_5C, 6, 0, 7, 0, $0 anim_wait 8 - anim_loop $a, BattleAnim_Mist_branch_ca40b + anim_loop 10, .loop anim_wait 96 anim_ret ; ca417 BattleAnim_Smog: ; ca417 anim_1gfx ANIM_GFX_HAZE - anim_sound $1, SFX_BUBBLEBEAM -BattleAnim_Smog_branch_ca41c: ; ca41c - anim_obj $5d, 132, 16, $0 + anim_sound 0, 1, SFX_BUBBLEBEAM +.loop + anim_obj ANIM_OBJ_5D, -16, 4, 2, 0, $0 anim_wait 8 - anim_loop $a, BattleAnim_Smog_branch_ca41c + anim_loop 10, .loop anim_wait 96 anim_ret ; ca428 BattleAnim_PoisonGas: ; ca428 anim_1gfx ANIM_GFX_HAZE - anim_sound $42, SFX_BUBBLEBEAM -BattleAnim_PoisonGas_branch_ca42d: ; ca42d - anim_obj $5e, 44, 80, $2 + anim_sound 16, 2, SFX_BUBBLEBEAM +.loop + anim_obj ANIM_OBJ_5E, 5, 4, 10, 0, $2 anim_wait 8 - anim_loop $a, BattleAnim_PoisonGas_branch_ca42d + anim_loop 10, .loop anim_wait 128 anim_ret ; ca439 BattleAnim_HornAttack: ; ca439 anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT - anim_obj $5f, 72, 80, $1 + anim_obj ANIM_OBJ_5F, 9, 0, 10, 0, $1 anim_wait 16 - anim_sound $1, SFX_HORN_ATTACK - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; ca44c BattleAnim_FuryAttack: ; ca44c anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT - anim_obj $5f, 72, 72, $2 + anim_obj ANIM_OBJ_5F, 9, 0, 9, 0, $2 anim_wait 8 - anim_sound $1, SFX_HORN_ATTACK - anim_obj $4, 128, 40, $0 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_04, 16, 0, 5, 0, $0 anim_wait 8 - anim_obj $5f, 80, 88, $2 + anim_obj ANIM_OBJ_5F, 10, 0, 11, 0, $2 anim_wait 8 - anim_sound $1, SFX_HORN_ATTACK - anim_obj $4, 136, 56, $0 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_04, -15, 0, 7, 0, $0 anim_wait 8 - anim_obj $5f, 76, 80, $2 + anim_obj ANIM_OBJ_5F, 9, 4, 10, 0, $2 anim_wait 8 - anim_sound $1, SFX_HORN_ATTACK - anim_obj $4, 132, 48, $0 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_04, -16, 4, 6, 0, $0 anim_wait 8 anim_ret ; ca47d @@ -2422,135 +2410,135 @@ BattleAnim_FuryAttack: ; ca44c BattleAnim_HornDrill: ; ca47d anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40 - anim_obj $5f, 72, 80, $3 + anim_obj ANIM_OBJ_5F, 9, 0, 10, 0, $3 anim_wait 8 -BattleAnim_HornDrill_branch_ca48b: ; ca48b - anim_sound $1, SFX_HORN_ATTACK - anim_obj $0, 132, 40, $0 +.loop + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0 anim_wait 8 - anim_sound $1, SFX_HORN_ATTACK - anim_obj $0, 140, 48, $0 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, -15, 4, 6, 0, $0 anim_wait 8 - anim_sound $1, SFX_HORN_ATTACK - anim_obj $0, 132, 56, $0 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, -16, 4, 7, 0, $0 anim_wait 8 - anim_sound $1, SFX_HORN_ATTACK - anim_obj $0, 124, 48, $0 + anim_sound 0, 1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_00, 15, 4, 6, 0, $0 anim_wait 8 - anim_loop $3, BattleAnim_HornDrill_branch_ca48b + anim_loop 3, .loop anim_ret ; ca4b4 BattleAnim_PoisonSting: ; ca4b4 anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT - anim_obj $60, 64, 92, $14 + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $14 anim_wait 16 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 136, 56, $0 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; ca4c7 BattleAnim_Twineedle: ; ca4c7 anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT - anim_sound $1, SFX_POISON_STING - anim_obj $60, 64, 92, $14 - anim_obj $60, 56, 84, $14 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $14 + anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $14 anim_wait 16 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 136, 56, $0 - anim_obj $5, 128, 48, $0 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0 anim_wait 16 anim_ret ; ca4e7 BattleAnim_PinMissile: ; ca4e7 anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT -BattleAnim_PinMissile_branch_ca4ea: ; ca4ea - anim_obj $60, 64, 92, $28 +.loop + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $28 anim_wait 8 - anim_obj $60, 56, 84, $28 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 136, 56, $0 + anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $28 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 anim_wait 8 - anim_obj $60, 52, 88, $28 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 128, 48, $0 + anim_obj ANIM_OBJ_60, 6, 4, 11, 0, $28 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0 anim_wait 8 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 132, 52, $0 - anim_loop $3, BattleAnim_PinMissile_branch_ca4ea + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -16, 4, 6, 4, $0 + anim_loop 3, .loop anim_wait 16 anim_ret ; ca51a BattleAnim_SpikeCannon: ; ca51a anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT -BattleAnim_SpikeCannon_branch_ca51d: ; ca51d - anim_obj $60, 64, 92, $18 +.loop + anim_obj ANIM_OBJ_60, 8, 0, 11, 4, $18 anim_wait 8 - anim_obj $60, 56, 84, $18 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 136, 56, $0 + anim_obj ANIM_OBJ_60, 7, 0, 10, 4, $18 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -15, 0, 7, 0, $0 anim_wait 8 - anim_obj $60, 52, 88, $18 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 128, 48, $0 + anim_obj ANIM_OBJ_60, 6, 4, 11, 0, $18 + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, 16, 0, 6, 0, $0 anim_wait 8 - anim_sound $1, SFX_POISON_STING - anim_obj $5, 132, 52, $0 - anim_loop $3, BattleAnim_SpikeCannon_branch_ca51d + anim_sound 0, 1, SFX_POISON_STING + anim_obj ANIM_OBJ_05, -16, 4, 6, 4, $0 + anim_loop 3, .loop anim_wait 16 anim_ret ; ca54d BattleAnim_Transform: ; ca54d anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Transform_branch_cbcaf + anim_call BattleAnim_FollowPlayerHead_0 anim_transform - anim_sound $0, SFX_PSYBEAM - anim_bgeffect $28, $0, $1, $0 + anim_sound 0, 0, SFX_PSYBEAM + anim_bgeffect ANIM_BG_28, $0, $1, $0 anim_wait 48 anim_updateactorpic - anim_incbgeffect $28 + anim_incbgeffect ANIM_BG_28 anim_wait 48 - anim_call BattleAnim_Transform_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca564 BattleAnim_PetalDance: ; ca564 - anim_sound $0, SFX_MENU + anim_sound 0, 0, SFX_MENU anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_HIT -BattleAnim_PetalDance_branch_ca56a: ; ca56a - anim_obj $61, 48, 56, $0 +.loop + anim_obj ANIM_OBJ_61, 6, 0, 7, 0, $0 anim_wait 11 - anim_loop $8, BattleAnim_PetalDance_branch_ca56a + anim_loop 8, .loop anim_wait 128 anim_wait 64 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $0, 136, 56, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; ca580 BattleAnim_Barrage: ; ca580 anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION - anim_sound $1a, SFX_THROW_BALL - anim_obj $62, 64, 92, $10 + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_62, 8, 0, 11, 4, $10 anim_wait 36 - anim_sound $1, SFX_EGG_BOMB - anim_obj $18, 136, 56, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_18, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; ca596 BattleAnim_PayDay: ; ca596 anim_2gfx ANIM_GFX_HIT, ANIM_GFX_STATUS - anim_sound $1, SFX_POUND - anim_obj $1, 128, 56, $0 + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0 anim_wait 16 - anim_sound $1, SFX_PAY_DAY - anim_obj $63, 120, 76, $1 + anim_sound 0, 1, SFX_PAY_DAY + anim_obj ANIM_OBJ_63, 15, 0, 9, 4, $1 anim_wait 64 anim_ret ; ca5ac @@ -2558,15 +2546,15 @@ BattleAnim_PayDay: ; ca596 BattleAnim_Mimic: ; ca5ac anim_1gfx ANIM_GFX_SPEED anim_obp0 $fc - anim_sound $ff, SFX_LICK - anim_obj $65, 132, 44, $0 - anim_obj $65, 132, 44, $8 - anim_obj $65, 132, 44, $10 - anim_obj $65, 132, 44, $18 - anim_obj $65, 132, 44, $20 - anim_obj $65, 132, 44, $28 - anim_obj $65, 132, 44, $30 - anim_obj $65, 132, 44, $38 + anim_sound 63, 3, SFX_LICK + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $0 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $8 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $10 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $18 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $20 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $28 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $30 + anim_obj ANIM_OBJ_65, -16, 4, 5, 4, $38 anim_wait 128 anim_wait 48 anim_ret @@ -2574,112 +2562,112 @@ BattleAnim_Mimic: ; ca5ac BattleAnim_LovelyKiss: ; ca5de anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS - anim_bgeffect $7, $0, $2, $0 - anim_obj $96, 152, 40, $0 + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_96, -13, 0, 5, 0, $0 anim_wait 32 - anim_sound $1, SFX_LICK - anim_obj ANIM_OBJ_HEART, 128, 40, $0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_HEART, 16, 0, 5, 0, $0 anim_wait 40 anim_ret ; ca5f6 BattleAnim_Bonemerang: ; ca5f6 anim_2gfx ANIM_GFX_MISC, ANIM_GFX_HIT - anim_sound $1a, SFX_HYDRO_PUMP - anim_obj $67, 88, 56, $1c + anim_sound 6, 2, SFX_HYDRO_PUMP + anim_obj ANIM_OBJ_67, 11, 0, 7, 0, $1c anim_wait 24 - anim_sound $1, SFX_MOVE_PUZZLE_PIECE - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 24 anim_ret ; ca60c BattleAnim_Swift: ; ca60c anim_1gfx ANIM_GFX_OBJECTS - anim_sound $1a, SFX_METRONOME - anim_obj $6a, 64, 88, $4 + anim_sound 6, 2, SFX_METRONOME + anim_obj ANIM_OBJ_6A, 8, 0, 11, 0, $4 anim_wait 4 - anim_obj $6a, 64, 72, $4 + anim_obj ANIM_OBJ_6A, 8, 0, 9, 0, $4 anim_wait 4 - anim_obj $6a, 64, 76, $4 + anim_obj ANIM_OBJ_6A, 8, 0, 9, 4, $4 anim_wait 64 anim_ret ; ca624 BattleAnim_Crabhammer: ; ca624 anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $40, $2, $0 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 anim_wait 48 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 -BattleAnim_Crabhammer_branch_ca631: ; ca631 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $0, 136, 56, $0 +.loop + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 12 - anim_loop $3, BattleAnim_Crabhammer_branch_ca631 + anim_loop 3, .loop anim_ret ; ca63f BattleAnim_SkullBash: ; ca63f anim_jumpif $1, BattleAnim_SkullBash_branch_c9fb5 anim_1gfx ANIM_GFX_HIT - anim_bgeffect $1f, $14, $2, $0 + anim_bgeffect ANIM_BG_1F, $14, $2, $0 anim_wait 32 - anim_call BattleAnim_SkullBash_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 4 -BattleAnim_SkullBash_branch_ca659: ; ca659 - anim_sound $1, SFX_HEADBUTT - anim_obj $1, 136, 56, $0 +.loop + anim_sound 0, 1, SFX_HEADBUTT + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 8 - anim_loop $3, BattleAnim_SkullBash_branch_ca659 - anim_call BattleAnim_SkullBash_branch_cbcb7 + anim_loop 3, .loop + anim_call BattleAnim_ShowMon_0 anim_ret ; ca66a BattleAnim_Kinesis: ; ca66a anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE - anim_bgeffect $6, $0, $2, $0 - anim_obj $6b, 80, 76, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_obj ANIM_OBJ_6B, 10, 0, 9, 4, $0 anim_wait 32 -BattleAnim_Kinesis_branch_ca678: ; ca678 - anim_sound $0, SFX_KINESIS - anim_obj $4b, 64, 88, $0 +.loop + anim_sound 0, 0, SFX_KINESIS + anim_obj ANIM_OBJ_4B, 8, 0, 11, 0, $0 anim_wait 32 - anim_loop $3, BattleAnim_Kinesis_branch_ca678 + anim_loop 3, .loop anim_wait 32 - anim_sound $0, SFX_KINESIS_2 + anim_sound 0, 0, SFX_KINESIS_2 anim_wait 32 anim_ret ; ca68b BattleAnim_Peck: ; ca68b anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_PECK - anim_obj $2, 128, 48, $0 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, 16, 0, 6, 0, $0 anim_wait 8 - anim_sound $1, SFX_PECK - anim_obj $2, 136, 56, $0 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; ca6a0 BattleAnim_DrillPeck: ; ca6a0 anim_1gfx ANIM_GFX_HIT -BattleAnim_DrillPeck_branch_ca6a2: ; ca6a2 - anim_sound $1, SFX_PECK - anim_obj $2, 124, 56, $0 +.loop + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, 15, 4, 7, 0, $0 anim_wait 4 - anim_sound $1, SFX_PECK - anim_obj $2, 132, 48, $0 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -16, 4, 6, 0, $0 anim_wait 4 - anim_sound $1, SFX_PECK - anim_obj $2, 140, 56, $0 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -15, 4, 7, 0, $0 anim_wait 4 - anim_sound $1, SFX_PECK - anim_obj $2, 132, 64, $0 + anim_sound 0, 1, SFX_PECK + anim_obj ANIM_OBJ_02, -16, 4, 8, 0, $0 anim_wait 4 - anim_loop $5, BattleAnim_DrillPeck_branch_ca6a2 + anim_loop 5, .loop anim_wait 16 anim_ret ; ca6cc @@ -2687,60 +2675,60 @@ BattleAnim_DrillPeck_branch_ca6a2: ; ca6a2 BattleAnim_Guillotine: ; ca6cc anim_1gfx ANIM_GFX_CUT anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10 - anim_bgeffect $1f, $40, $2, $0 - anim_sound $1, SFX_VICEGRIP - anim_obj $37, 156, 44, $0 - anim_obj $37, 152, 40, $0 - anim_obj $37, 148, 36, $0 - anim_obj $39, 124, 76, $0 - anim_obj $39, 120, 72, $0 - anim_obj $39, 116, 68, $0 - anim_obj $39, 120, 72, $0 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 + anim_sound 0, 1, SFX_VICEGRIP + anim_obj ANIM_OBJ_37, -13, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_37, -14, 4, 4, 4, $0 + anim_obj ANIM_OBJ_39, 15, 4, 9, 4, $0 + anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0 + anim_obj ANIM_OBJ_39, 14, 4, 8, 4, $0 + anim_obj ANIM_OBJ_39, 15, 0, 9, 0, $0 anim_wait 32 anim_ret ; ca700 BattleAnim_Flash: ; ca700 anim_1gfx ANIM_GFX_SPEED - anim_sound $1, SFX_FLASH + anim_sound 0, 1, SFX_FLASH anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20 anim_wait 4 - anim_obj $6c, 136, 56, $0 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $0 anim_wait 4 - anim_obj $6c, 136, 56, $8 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $8 anim_wait 4 - anim_obj $6c, 136, 56, $10 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $10 anim_wait 4 - anim_obj $6c, 136, 56, $18 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $18 anim_wait 4 - anim_obj $6c, 136, 56, $20 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $20 anim_wait 4 - anim_obj $6c, 136, 56, $28 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $28 anim_wait 4 - anim_obj $6c, 136, 56, $30 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $30 anim_wait 4 - anim_obj $6c, 136, 56, $38 + anim_obj ANIM_OBJ_6C, -15, 0, 7, 0, $38 anim_wait 32 anim_ret ; ca73c BattleAnim_Substitute: ; ca73c - anim_sound $0, SFX_SURF + anim_sound 0, 0, SFX_SURF anim_jumpif $3, BattleAnim_Substitute_branch_ca77c anim_jumpif $2, BattleAnim_Substitute_branch_ca76e anim_jumpif $1, BattleAnim_Substitute_branch_ca760 anim_1gfx ANIM_GFX_SMOKE - anim_bgeffect $27, $0, $1, $0 + anim_bgeffect ANIM_BG_27, $0, $1, $0 anim_wait 48 anim_raisesub - anim_obj $1c, 48, 96, $0 + anim_obj ANIM_OBJ_1C, 6, 0, 12, 0, $0 anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 anim_wait 32 anim_ret ; ca760 BattleAnim_Substitute_branch_ca760: ; ca760 - anim_bgeffect $27, $0, $1, $0 + anim_bgeffect ANIM_BG_27, $0, $1, $0 anim_wait 48 anim_dropsub anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 @@ -2749,7 +2737,7 @@ BattleAnim_Substitute_branch_ca760: ; ca760 ; ca76e BattleAnim_Substitute_branch_ca76e: ; ca76e - anim_bgeffect $27, $0, $1, $0 + anim_bgeffect ANIM_BG_27, $0, $1, $0 anim_wait 48 anim_raisesub anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 @@ -2767,33 +2755,33 @@ BattleAnim_Substitute_branch_ca77c: ; ca77c ; ca78a BattleAnim_Minimize: ; ca78a - anim_sound $0, SFX_SURF + anim_sound 0, 0, SFX_SURF anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Minimize_branch_cbcaf + anim_call BattleAnim_FollowPlayerHead_0 anim_minimize - anim_bgeffect $28, $0, $1, $0 + anim_bgeffect ANIM_BG_28, $0, $1, $0 anim_wait 48 anim_updateactorpic - anim_incbgeffect $28 + anim_incbgeffect ANIM_BG_28 anim_wait 48 - anim_call BattleAnim_Minimize_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca7a1 BattleAnim_SkyAttack: ; ca7a1 anim_jumpif $1, BattleAnim_SkyAttack_branch_c9fb5 anim_1gfx ANIM_GFX_SKY_ATTACK - anim_bgeffect $27, $0, $1, $0 + anim_bgeffect ANIM_BG_27, $0, $1, $0 anim_wait 32 - anim_sound $0, SFX_HYPER_BEAM - anim_obj $6e, 48, 88, $40 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_6E, 6, 0, 11, 0, $40 anim_wait 64 - anim_incobj $1 + anim_incobj 1 anim_wait 21 - anim_sound $1, SFX_HYPER_BEAM + anim_sound 0, 1, SFX_HYPER_BEAM anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 anim_wait 64 - anim_incobj $1 + anim_incobj 1 anim_wait 32 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 16 @@ -2805,19 +2793,19 @@ BattleAnim_NightShade: ; ca7cc anim_bgp $1b anim_obp1 $1b anim_wait 32 - anim_call BattleAnim_NightShade_branch_cbcca + anim_call BattleAnim_FollowPlayerHead_1 anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8 - anim_sound $1, SFX_PSYCHIC + anim_sound 0, 1, SFX_PSYCHIC anim_wait 96 anim_incbgeffect ANIM_BG_NIGHT_SHADE - anim_call BattleAnim_NightShade_branch_cbcd2 + anim_call BattleAnim_ShowMon_1 anim_ret ; ca7e5 BattleAnim_Lick: ; ca7e5 anim_1gfx ANIM_GFX_WATER - anim_sound $1, SFX_LICK - anim_obj $6f, 136, 56, $0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_6F, -15, 0, 7, 0, $0 anim_wait 64 anim_ret ; ca7f1 @@ -2829,36 +2817,36 @@ BattleAnim_TriAttack: ; ca7f1 anim_call BattleAnim_TriAttack_branch_cbbdf anim_wait 16 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $4 - anim_sound $1, SFX_THUNDER - anim_obj $2f, 152, 68, $0 + anim_sound 0, 1, SFX_THUNDER + anim_obj ANIM_OBJ_2F, -13, 0, 8, 4, $0 anim_wait 16 anim_ret ; ca80c BattleAnim_Withdraw: ; ca80c anim_1gfx ANIM_GFX_REFLECT - anim_call BattleAnim_Withdraw_branch_cbcaf - anim_bgeffect $21, $0, $1, $50 + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_21, $0, $1, $50 anim_wait 48 - anim_sound $0, SFX_SHINE - anim_obj $70, 48, 88, $0 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_70, 6, 0, 11, 0, $0 anim_wait 64 - anim_incobj $2 + anim_incobj 2 anim_wait 1 - anim_incbgeffect $21 - anim_call BattleAnim_Withdraw_branch_cbcb7 + anim_incbgeffect ANIM_BG_21 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca829 BattleAnim_Psybeam: ; ca829 anim_1gfx ANIM_GFX_PSYCHIC - anim_bgeffect $6, $0, $2, $0 - anim_bgeffect $8, $0, $4, $0 -BattleAnim_Psybeam_branch_ca835: ; ca835 - anim_sound $1a, SFX_PSYBEAM - anim_obj $4c, 64, 88, $4 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_bgeffect ANIM_BG_08, $0, $4, $0 +.loop + anim_sound 6, 2, SFX_PSYBEAM + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $4 anim_wait 4 - anim_loop $a, BattleAnim_Psybeam_branch_ca835 + anim_loop 10, .loop anim_wait 48 anim_ret ; ca844 @@ -2867,7 +2855,7 @@ BattleAnim_DreamEater: ; ca844 anim_1gfx ANIM_GFX_BUBBLE anim_bgp $1b anim_obp0 $27 - anim_sound $1b, SFX_WATER_GUN + anim_sound 6, 3, SFX_WATER_GUN anim_call BattleAnim_DreamEater_branch_cbab3 anim_wait 128 anim_wait 48 @@ -2876,7 +2864,7 @@ BattleAnim_DreamEater: ; ca844 BattleAnim_LeechLife: ; ca853 anim_1gfx ANIM_GFX_BUBBLE - anim_sound $1b, SFX_WATER_GUN + anim_sound 6, 3, SFX_WATER_GUN anim_call BattleAnim_LeechLife_branch_cbab3 anim_wait 128 anim_wait 48 @@ -2886,26 +2874,26 @@ BattleAnim_LeechLife: ; ca853 BattleAnim_Harden: ; ca85e anim_1gfx ANIM_GFX_REFLECT anim_obp0 $0 - anim_call BattleAnim_Harden_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_call BattleAnim_Harden_branch_cbc43 - anim_call BattleAnim_Harden_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca86c BattleAnim_Psywave: ; ca86c anim_1gfx ANIM_GFX_PSYCHIC anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0 -BattleAnim_Psywave_branch_ca873: ; ca873 - anim_sound $1a, SFX_PSYCHIC - anim_obj $4c, 64, 80, $2 +.loop + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 10, 0, $2 anim_wait 8 - anim_sound $1a, SFX_PSYCHIC - anim_obj $4c, 64, 88, $3 + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $3 anim_wait 8 - anim_sound $1a, SFX_PSYCHIC - anim_obj $4c, 64, 96, $4 + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 12, 0, $4 anim_wait 8 - anim_loop $3, BattleAnim_Psywave_branch_ca873 + anim_loop 3, .loop anim_wait 32 anim_incbgeffect ANIM_BG_PSYCHIC anim_wait 4 @@ -2915,7 +2903,7 @@ BattleAnim_Psywave_branch_ca873: ; ca873 BattleAnim_Glare: ; ca897 anim_1gfx ANIM_GFX_BEAM anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $20 - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_call BattleAnim_Glare_branch_cbadc anim_wait 16 anim_ret @@ -2923,17 +2911,17 @@ BattleAnim_Glare: ; ca897 BattleAnim_Thrash: ; ca8a8 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_POUND - anim_obj $8, 120, 72, $0 - anim_obj $0, 120, 72, $0 + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_08, 15, 0, 9, 0, $0 + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 anim_wait 6 - anim_sound $1, SFX_MOVE_PUZZLE_PIECE - anim_obj $6, 136, 56, $0 - anim_obj $0, 136, 56, $0 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 152, 40, $0 - anim_obj $0, 152, 40, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0 anim_wait 16 anim_ret ; ca8d5 @@ -2941,30 +2929,30 @@ BattleAnim_Thrash: ; ca8a8 BattleAnim_Growth: ; ca8d5 anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0 anim_1gfx ANIM_GFX_CHARGE - anim_sound $0, SFX_SWORDS_DANCE - anim_obj $72, 48, 108, $0 - anim_obj $72, 48, 108, $8 - anim_obj $72, 48, 108, $10 - anim_obj $72, 48, 108, $18 - anim_obj $72, 48, 108, $20 - anim_obj $72, 48, 108, $28 - anim_obj $72, 48, 108, $30 - anim_obj $72, 48, 108, $38 + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $0 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $8 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $10 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $18 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $20 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $28 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $30 + anim_obj ANIM_OBJ_72, 6, 0, 13, 4, $38 anim_wait 64 anim_ret ; ca909 BattleAnim_Conversion2: ; ca909 anim_1gfx ANIM_GFX_EXPLOSION - anim_sound $ff, SFX_SHARPEN - anim_obj $73, 132, 44, $0 - anim_obj $73, 132, 44, $8 - anim_obj $73, 132, 44, $10 - anim_obj $73, 132, 44, $18 - anim_obj $73, 132, 44, $20 - anim_obj $73, 132, 44, $28 - anim_obj $73, 132, 44, $30 - anim_obj $73, 132, 44, $38 + anim_sound 63, 3, SFX_SHARPEN + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $0 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $8 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $10 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $18 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $20 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $28 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $30 + anim_obj ANIM_OBJ_73, -16, 4, 5, 4, $38 anim_wait 128 anim_wait 48 anim_ret @@ -2972,61 +2960,61 @@ BattleAnim_Conversion2: ; ca909 BattleAnim_Smokescreen: ; ca939 anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE - anim_sound $1a, SFX_THROW_BALL - anim_obj $75, 64, 92, $6c + anim_sound 6, 2, SFX_THROW_BALL + anim_obj ANIM_OBJ_75, 8, 0, 11, 4, $6c anim_wait 24 - anim_incobj $1 - anim_sound $1, SFX_BALL_POOF - anim_obj $1c, 108, 70, $10 + anim_incobj 1 + anim_sound 0, 1, SFX_BALL_POOF + anim_obj ANIM_OBJ_1C, 13, 4, 8, 6, $10 anim_wait 8 -BattleAnim_Smokescreen_branch_ca951: ; ca951 - anim_sound $1, SFX_MENU - anim_obj $74, 132, 60, $20 +.loop + anim_sound 0, 1, SFX_MENU + anim_obj ANIM_OBJ_74, -16, 4, 7, 4, $20 anim_wait 8 - anim_loop $5, BattleAnim_Smokescreen_branch_ca951 + anim_loop 5, .loop anim_wait 128 anim_ret ; ca960 BattleAnim_Strength: ; ca960 anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT - anim_bgeffect $20, $10, $1, $20 - anim_sound $0, SFX_STRENGTH - anim_obj $1f, 64, 104, $1 + anim_bgeffect ANIM_BG_20, $10, $1, $20 + anim_sound 0, 0, SFX_STRENGTH + anim_obj ANIM_OBJ_1F, 8, 0, 13, 0, $1 anim_wait 128 - anim_incobj $1 + anim_incobj 1 anim_wait 20 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $0, 132, 40, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0 anim_wait 16 anim_ret ; ca97e BattleAnim_SwordsDance: ; ca97e anim_1gfx ANIM_GFX_WHIP - anim_sound $0, SFX_SWORDS_DANCE - anim_obj $76, 48, 108, $0 - anim_obj $76, 48, 108, $d - anim_obj $76, 48, 108, $1a - anim_obj $76, 48, 108, $27 - anim_obj $76, 48, 108, $34 + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $0 + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $d + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $1a + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $27 + anim_obj ANIM_OBJ_76, 6, 0, 13, 4, $34 anim_wait 56 anim_ret ; ca99e BattleAnim_QuickAttack: ; ca99e anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT - anim_sound $0, SFX_MENU + anim_sound 0, 0, SFX_MENU anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 - anim_obj $77, 24, 88, $2 - anim_obj $77, 32, 88, $1 - anim_obj $77, 40, 88, $0 - anim_obj $77, 48, 88, $80 - anim_obj $77, 56, 88, $81 - anim_obj $77, 64, 88, $82 + anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2 + anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1 + anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0 + anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80 + anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81 + anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82 anim_wait 12 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 8 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 16 @@ -3035,74 +3023,74 @@ BattleAnim_QuickAttack: ; ca99e BattleAnim_Meditate: ; ca9d8 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Meditate_branch_cbca7 - anim_sound $0, SFX_PSYBEAM - anim_bgeffect $28, $0, $1, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_PSYBEAM + anim_bgeffect ANIM_BG_28, $0, $1, $0 anim_wait 48 - anim_incbgeffect $28 + anim_incbgeffect ANIM_BG_28 anim_wait 48 - anim_call BattleAnim_Meditate_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; ca9ed BattleAnim_Sharpen: ; ca9ed anim_1gfx ANIM_GFX_SHAPES anim_obp0 $e4 - anim_call BattleAnim_Sharpen_branch_cbca7 - anim_sound $0, SFX_SHARPEN - anim_bgeffect $18, $0, $1, $40 - anim_obj $78, 48, 88, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SHARPEN + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_78, 6, 0, 11, 0, $0 anim_wait 96 - anim_incobj $2 - anim_incbgeffect $18 - anim_call BattleAnim_Sharpen_branch_cbcb7 + anim_incobj 2 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 anim_ret ; caa0a BattleAnim_DefenseCurl: ; caa0a anim_1gfx ANIM_GFX_SHAPES anim_obp0 $e4 - anim_call BattleAnim_DefenseCurl_branch_cbca7 - anim_sound $0, SFX_SHARPEN - anim_bgeffect $18, $0, $1, $40 - anim_obj $79, 48, 88, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SHARPEN + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_79, 6, 0, 11, 0, $0 anim_wait 96 - anim_incobj $2 - anim_incbgeffect $18 - anim_call BattleAnim_DefenseCurl_branch_cbcb7 + anim_incobj 2 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 anim_ret ; caa27 BattleAnim_SeismicToss: ; caa27 anim_2gfx ANIM_GFX_GLOBE, ANIM_GFX_HIT - anim_bgeffect $20, $10, $1, $20 - anim_sound $0, SFX_STRENGTH - anim_obj $20, 64, 104, $1 + anim_bgeffect ANIM_BG_20, $10, $1, $20 + anim_sound 0, 0, SFX_STRENGTH + anim_obj ANIM_OBJ_20, 8, 0, 13, 0, $1 anim_wait 128 - anim_incobj $1 + anim_incobj 1 anim_wait 20 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $0, 132, 40, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -16, 4, 5, 0, $0 anim_wait 16 anim_ret ; caa45 BattleAnim_Rage: ; caa45 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Rage_branch_cbca7 - anim_bgeffect $1a, $0, $1, $20 - anim_sound $0, SFX_RAGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_RAGE anim_wait 72 - anim_incbgeffect $1a - anim_call BattleAnim_Rage_branch_cbcb7 - anim_sound $1, SFX_MOVE_PUZZLE_PIECE - anim_obj $0, 120, 72, $0 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 anim_wait 6 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $0, 136, 56, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $0, 152, 40, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0 anim_wait 16 anim_ret ; caa74 @@ -3110,31 +3098,31 @@ BattleAnim_Rage: ; caa45 BattleAnim_Agility: ; caa74 anim_1gfx ANIM_GFX_WIND anim_obp0 $fc - anim_call BattleAnim_Agility_branch_cbca7 - anim_bgeffect $18, $0, $1, $40 - anim_obj $7d, 8, 24, $10 - anim_obj $7d, 8, 48, $2 - anim_obj $7d, 8, 88, $8 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_obj ANIM_OBJ_7D, 1, 0, 3, 0, $10 + anim_obj ANIM_OBJ_7D, 1, 0, 6, 0, $2 + anim_obj ANIM_OBJ_7D, 1, 0, 11, 0, $8 anim_wait 4 - anim_obj $7d, 8, 32, $6 - anim_obj $7d, 8, 56, $c - anim_obj $7d, 8, 80, $4 - anim_obj $7d, 8, 104, $e -BattleAnim_Agility_branch_caaa4: ; caaa4 - anim_sound $0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_7D, 1, 0, 4, 0, $6 + anim_obj ANIM_OBJ_7D, 1, 0, 7, 0, $c + anim_obj ANIM_OBJ_7D, 1, 0, 10, 0, $4 + anim_obj ANIM_OBJ_7D, 1, 0, 13, 0, $e +.loop + anim_sound 0, 0, SFX_RAZOR_WIND anim_wait 4 - anim_loop $12, BattleAnim_Agility_branch_caaa4 - anim_incbgeffect $18 - anim_call BattleAnim_Agility_branch_cbcb7 + anim_loop 18, .loop + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 anim_ret ; caab2 BattleAnim_BoneClub: ; caab2 anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC - anim_obj $68, 64, 88, $2 + anim_obj ANIM_OBJ_68, 8, 0, 11, 0, $2 anim_wait 32 - anim_sound $1, SFX_BONE_CLUB - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_BONE_CLUB + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; caac5 @@ -3142,37 +3130,37 @@ BattleAnim_BoneClub: ; caab2 BattleAnim_Barrier: ; caac5 anim_1gfx ANIM_GFX_REFLECT anim_enemyfeetobj - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_wait 8 - anim_sound $0, SFX_SHINE - anim_obj $50, 72, 80, $0 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 anim_wait 32 - anim_sound $0, SFX_SHINE - anim_obj $50, 72, 80, $0 + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 anim_wait 32 anim_ret ; caae1 BattleAnim_Waterfall: ; caae1 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Waterfall_branch_cbcaf - anim_bgeffect $25, $0, $1, $0 + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 anim_wait 16 - anim_call BattleAnim_Waterfall_branch_cbcb7 - anim_sound $1, SFX_LICK - anim_obj $1, 136, 56, $0 + anim_call BattleAnim_ShowMon_0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 3 - anim_sound $1, SFX_LICK - anim_obj $1, 136, 48, $0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 anim_wait 3 - anim_sound $1, SFX_LICK - anim_obj $1, 136, 40, $0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 5, 0, $0 anim_wait 3 - anim_sound $1, SFX_LICK - anim_obj $1, 136, 32, $0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 4, 0, $0 anim_wait 3 - anim_sound $1, SFX_LICK - anim_obj $1, 136, 24, $0 + anim_sound 0, 1, SFX_LICK + anim_obj ANIM_OBJ_01, -15, 0, 3, 0, $0 anim_wait 8 anim_ret ; cab1d @@ -3181,11 +3169,11 @@ BattleAnim_PsychicM: ; cab1d anim_1gfx ANIM_GFX_PSYCHIC anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0 -BattleAnim_PsychicM_branch_cab29: ; cab29 - anim_sound $1a, SFX_PSYCHIC - anim_obj $4c, 64, 88, $2 +.loop + anim_sound 6, 2, SFX_PSYCHIC + anim_obj ANIM_OBJ_4C, 8, 0, 11, 0, $2 anim_wait 8 - anim_loop $8, BattleAnim_PsychicM_branch_cab29 + anim_loop 8, .loop anim_wait 96 anim_incbgeffect ANIM_BG_PSYCHIC anim_wait 4 @@ -3211,35 +3199,35 @@ BattleAnim_Toxic: ; cab42 BattleAnim_Metronome: ; cab52 anim_2gfx ANIM_GFX_MISC, ANIM_GFX_SPEED - anim_sound $0, SFX_METRONOME - anim_obj $7a, 72, 88, $0 -BattleAnim_Metronome_branch_cab5d: ; cab5d - anim_obj $7b, 72, 80, $0 + anim_sound 0, 0, SFX_METRONOME + anim_obj ANIM_OBJ_7A, 9, 0, 11, 0, $0 +.loop + anim_obj ANIM_OBJ_7B, 9, 0, 10, 0, $0 anim_wait 8 - anim_loop $5, BattleAnim_Metronome_branch_cab5d + anim_loop 5, .loop anim_wait 48 anim_ret ; cab69 BattleAnim_Counter: ; cab69 anim_1gfx ANIM_GFX_HIT -BattleAnim_Counter_branch_cab6b: ; cab6b +.loop anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2 - anim_sound $1, SFX_POUND - anim_obj $8, 120, 72, $0 - anim_obj $0, 120, 72, $0 + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_08, 15, 0, 9, 0, $0 + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 anim_wait 6 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $6, 136, 40, $0 - anim_obj $0, 136, 40, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_06, -15, 0, 5, 0, $0 + anim_obj ANIM_OBJ_00, -15, 0, 5, 0, $0 anim_wait 6 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2 - anim_sound $1, SFX_MEGA_KICK - anim_obj $7, 152, 56, $0 - anim_obj $0, 152, 56, $0 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_07, -13, 0, 7, 0, $0 + anim_obj ANIM_OBJ_00, -13, 0, 7, 0, $0 anim_wait 6 - anim_loop $3, BattleAnim_Counter_branch_cab6b + anim_loop 3, .loop anim_wait 16 anim_ret ; cabaa @@ -3247,89 +3235,89 @@ BattleAnim_Counter_branch_cab6b: ; cab6b BattleAnim_LowKick: ; cabaa anim_1gfx ANIM_GFX_HIT anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 124, 64, $0 - anim_obj $0, 124, 64, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 15, 4, 8, 0, $0 + anim_obj ANIM_OBJ_00, 15, 4, 8, 0, $0 anim_wait 6 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 132, 64, $0 - anim_obj $0, 132, 64, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -16, 4, 8, 0, $0 + anim_obj ANIM_OBJ_00, -16, 4, 8, 0, $0 anim_wait 6 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 140, 64, $0 - anim_obj $0, 140, 64, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -15, 4, 8, 0, $0 + anim_obj ANIM_OBJ_00, -15, 4, 8, 0, $0 anim_wait 16 anim_ret ; cabe6 BattleAnim_WingAttack: ; cabe6 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_WING_ATTACK - anim_obj $1, 148, 56, $0 - anim_obj $1, 116, 56, $0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 14, 4, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_WING_ATTACK - anim_obj $1, 144, 56, $0 - anim_obj $1, 120, 56, $0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 0, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_WING_ATTACK - anim_obj $1, 140, 56, $0 - anim_obj $1, 124, 56, $0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -15, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 4, 7, 0, $0 anim_wait 16 anim_ret ; cac13 BattleAnim_Slam: ; cac13 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_WING_ATTACK + anim_sound 0, 1, SFX_WING_ATTACK anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2 - anim_obj $1, 124, 40, $0 + anim_obj ANIM_OBJ_01, 15, 4, 5, 0, $0 anim_wait 16 anim_ret ; cac24 BattleAnim_Disable: ; cac24 anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_STATUS - anim_bgeffect $6, $0, $2, $0 - anim_obj $7c, 132, 56, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_obj ANIM_OBJ_7C, -16, 4, 7, 0, $0 anim_wait 16 - anim_sound $1, SFX_BIND - anim_obj ANIM_OBJ_PARALYZED, 104, 56, $42 - anim_obj ANIM_OBJ_PARALYZED, 160, 56, $c2 + anim_sound 0, 1, SFX_BIND + anim_obj ANIM_OBJ_PARALYZED, 13, 0, 7, 0, $42 + anim_obj ANIM_OBJ_PARALYZED, -12, 0, 7, 0, $c2 anim_wait 96 anim_ret ; cac41 BattleAnim_TailWhip: ; cac41 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_TailWhip_branch_cbcaf - anim_sound $0, SFX_TAIL_WHIP - anim_bgeffect $26, $0, $1, $0 + anim_call BattleAnim_FollowPlayerHead_0 + anim_sound 0, 0, SFX_TAIL_WHIP + anim_bgeffect ANIM_BG_26, $0, $1, $0 anim_wait 32 - anim_incbgeffect $26 - anim_call BattleAnim_TailWhip_branch_cbcb7 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_0 anim_ret ; cac55 BattleAnim_Struggle: ; cac55 anim_1gfx ANIM_GFX_HIT - anim_sound $1, SFX_POUND - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_POUND + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; cac61 BattleAnim_Sketch: ; cac61 anim_1gfx ANIM_GFX_OBJECTS - anim_call BattleAnim_Sketch_branch_cbca7 - anim_bgeffect $1a, $0, $1, $20 - anim_sound $0, SFX_SKETCH - anim_obj $98, 72, 80, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_SKETCH + anim_obj ANIM_OBJ_98, 9, 0, 10, 0, $0 anim_wait 80 - anim_incbgeffect $1a - anim_call BattleAnim_Sketch_branch_cbcb7 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 anim_wait 1 anim_ret ; cac7b @@ -3338,73 +3326,73 @@ BattleAnim_TripleKick: ; cac7b anim_1gfx ANIM_GFX_HIT anim_jumpif $1, BattleAnim_TripleKick_branch_cac95 anim_jumpif $2, BattleAnim_TripleKick_branch_caca5 - anim_sound $1, SFX_MEGA_KICK - anim_obj $7, 144, 48, $0 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_07, -14, 0, 6, 0, $0 anim_wait 6 - anim_obj $1, 144, 48, $0 + anim_obj ANIM_OBJ_01, -14, 0, 6, 0, $0 anim_wait 8 anim_ret ; cac95 BattleAnim_TripleKick_branch_cac95: ; cac95 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 120, 64, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, 15, 0, 8, 0, $0 anim_wait 6 - anim_obj $1, 120, 64, $0 + anim_obj ANIM_OBJ_01, 15, 0, 8, 0, $0 anim_wait 8 anim_ret ; caca5 BattleAnim_TripleKick_branch_caca5: ; caca5 - anim_sound $1, SFX_DOUBLE_KICK - anim_obj $7, 132, 32, $0 + anim_sound 0, 1, SFX_DOUBLE_KICK + anim_obj ANIM_OBJ_07, -16, 4, 4, 0, $0 anim_wait 6 - anim_obj $1, 132, 32, $0 + anim_obj ANIM_OBJ_01, -16, 4, 4, 0, $0 anim_wait 8 anim_ret ; cacb5 BattleAnim_Thief: ; cacb5 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Thief_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 16 - anim_sound $1, SFX_THIEF - anim_obj $1, 128, 48, $0 + anim_sound 0, 1, SFX_THIEF + anim_obj ANIM_OBJ_01, 16, 0, 6, 0, $0 anim_wait 16 - anim_call BattleAnim_Thief_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_wait 1 anim_1gfx ANIM_GFX_STATUS - anim_sound $1, SFX_THIEF_2 - anim_obj $8b, 120, 76, $1 + anim_sound 0, 1, SFX_THIEF_2 + anim_obj ANIM_OBJ_8B, 15, 0, 9, 4, $1 anim_wait 64 anim_ret ; cacd9 BattleAnim_SpiderWeb: ; cacd9 anim_1gfx ANIM_GFX_WEB - anim_bgeffect $7, $0, $2, $0 - anim_obj $92, 132, 48, $0 - anim_sound $1a, SFX_SPIDER_WEB - anim_obj $5a, 64, 80, $0 + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_92, -16, 4, 6, 0, $0 + anim_sound 6, 2, SFX_SPIDER_WEB + anim_obj ANIM_OBJ_5A, 8, 0, 10, 0, $0 anim_wait 4 - anim_obj $5a, 64, 88, $0 + anim_obj ANIM_OBJ_5A, 8, 0, 11, 0, $0 anim_wait 4 - anim_obj $5a, 64, 84, $0 + anim_obj ANIM_OBJ_5A, 8, 0, 10, 4, $0 anim_wait 64 anim_ret ; cacfb BattleAnim_MindReader: ; cacfb anim_1gfx ANIM_GFX_MISC - anim_sound $1, SFX_MIND_READER -BattleAnim_MindReader_branch_cad00: ; cad00 - anim_obj $88, 132, 48, $3 - anim_obj $88, 132, 48, $12 - anim_obj $88, 132, 48, $20 - anim_obj $88, 132, 48, $31 - anim_wait 16 - anim_loop $2, BattleAnim_MindReader_branch_cad00 + anim_sound 0, 1, SFX_MIND_READER +.loop + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $3 + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $12 + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $20 + anim_obj ANIM_OBJ_88, -16, 4, 6, 0, $31 + anim_wait 16 + anim_loop 2, .loop anim_wait 32 anim_ret ; cad1b @@ -3413,126 +3401,126 @@ BattleAnim_Nightmare: ; cad1b anim_1gfx ANIM_GFX_ANGELS anim_bgp $1b anim_obp0 $f - anim_obj $94, 132, 40, $0 - anim_obj $94, 132, 40, $a0 - anim_sound $1, SFX_NIGHTMARE + anim_obj ANIM_OBJ_94, -16, 4, 5, 0, $0 + anim_obj ANIM_OBJ_94, -16, 4, 5, 0, $a0 + anim_sound 0, 1, SFX_NIGHTMARE anim_wait 96 anim_ret ; cad30 BattleAnim_FlameWheel: ; cad30 anim_1gfx ANIM_GFX_FIRE -BattleAnim_FlameWheel_branch_cad32: ; cad32 - anim_sound $0, SFX_EMBER - anim_obj $7f, 48, 96, $0 +.loop + anim_sound 0, 0, SFX_EMBER + anim_obj ANIM_OBJ_7F, 6, 0, 12, 0, $0 anim_wait 6 - anim_loop $8, BattleAnim_FlameWheel_branch_cad32 + anim_loop 8, .loop anim_wait 96 - anim_call BattleAnim_FlameWheel_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 4 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 - anim_sound $1, SFX_EMBER - anim_obj $f, 136, 48, $1 - anim_obj $f, 136, 48, $4 - anim_obj $f, 136, 48, $5 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $1 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $4 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $5 anim_wait 8 anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 anim_wait 4 - anim_incobj $9 + anim_incobj 9 anim_wait 8 anim_ret ; cad6b BattleAnim_Snore: ; cad6b anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_NOISE - anim_obj $54, 64, 80, $0 + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 anim_wait 32 - anim_bgeffect $1f, $60, $2, $0 - anim_sound $0, SFX_SNORE -BattleAnim_Snore_branch_cad7c: ; cad7c + anim_bgeffect ANIM_BG_1F, $60, $2, $0 + anim_sound 0, 0, SFX_SNORE +.loop anim_call BattleAnim_Snore_branch_cbbbc anim_wait 16 - anim_loop $2, BattleAnim_Snore_branch_cad7c + anim_loop 2, .loop anim_wait 8 anim_ret ; cad86 BattleAnim_Curse: ; cad86 - anim_jumpif $1, BattleAnim_Curse_branch_cada3 + anim_jumpif $1, .NotGhost anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS - anim_obj $a5, 68, 72, $0 - anim_sound $0, SFX_CURSE + anim_obj ANIM_OBJ_A5, 8, 4, 9, 0, $0 + anim_sound 0, 0, SFX_CURSE anim_wait 32 - anim_incobj $1 + anim_incobj 1 anim_wait 12 - anim_sound $0, SFX_POISON_STING - anim_obj $4, 44, 96, $0 + anim_sound 0, 0, SFX_POISON_STING + anim_obj ANIM_OBJ_04, 5, 4, 12, 0, $0 anim_wait 16 anim_ret ; cada3 -BattleAnim_Curse_branch_cada3: ; cada3 +.NotGhost: ; cada3 anim_1gfx ANIM_GFX_SPEED - anim_call BattleAnim_Curse_branch_cbca7 - anim_bgeffect $19, $0, $1, $40 - anim_sound $0, SFX_SHARPEN + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_19, $0, $1, $40 + anim_sound 0, 0, SFX_SHARPEN anim_wait 64 - anim_incbgeffect $19 + anim_incbgeffect ANIM_BG_19 anim_wait 1 - anim_bgeffect $16, $0, $1, $40 -BattleAnim_Curse_branch_cadb9: ; cadb9 - anim_sound $0, SFX_SWORDS_DANCE - anim_obj $47, 44, 108, $6 + anim_bgeffect ANIM_BG_16, $0, $1, $40 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 36, 108, $6 + anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 52, 108, $8 + anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 28, 108, $8 + anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 60, 108, $6 + anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 20, 108, $8 + anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 68, 108, $8 + anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8 anim_wait 2 - anim_loop $3, BattleAnim_Curse_branch_cadb9 + anim_loop 3, .loop anim_wait 8 - anim_incbgeffect $16 - anim_call BattleAnim_Curse_branch_cbcb7 + anim_incbgeffect ANIM_BG_16 + anim_call BattleAnim_ShowMon_0 anim_ret ; cadf1 BattleAnim_Flail: ; cadf1 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Flail_branch_cbca7 - anim_sound $0, SFX_SUBMISSION - anim_bgeffect $2c, $0, $1, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_sound 0, 0, SFX_SUBMISSION + anim_bgeffect ANIM_BG_2C, $0, $1, $0 anim_wait 8 - anim_obj $1, 120, 48, $0 + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 anim_wait 8 - anim_obj $1, 152, 48, $0 + anim_obj ANIM_OBJ_01, -13, 0, 6, 0, $0 anim_wait 8 - anim_obj $1, 136, 48, $0 + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 anim_wait 8 - anim_incbgeffect $2c - anim_call BattleAnim_Flail_branch_cbcb7 + anim_incbgeffect ANIM_BG_2C + anim_call BattleAnim_ShowMon_0 anim_ret ; cae17 BattleAnim_Conversion: ; cae17 anim_1gfx ANIM_GFX_EXPLOSION anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 - anim_sound $ff, SFX_SHARPEN - anim_obj $91, 48, 88, $0 - anim_obj $91, 48, 88, $8 - anim_obj $91, 48, 88, $10 - anim_obj $91, 48, 88, $18 - anim_obj $91, 48, 88, $20 - anim_obj $91, 48, 88, $28 - anim_obj $91, 48, 88, $30 - anim_obj $91, 48, 88, $38 + anim_sound 63, 3, SFX_SHARPEN + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $0 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $8 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $10 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $18 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $20 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $28 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $30 + anim_obj ANIM_OBJ_91, 6, 0, 11, 0, $38 anim_wait 128 anim_ret ; cae4b @@ -3540,20 +3528,20 @@ BattleAnim_Conversion: ; cae17 BattleAnim_Aeroblast: ; cae4b anim_2gfx ANIM_GFX_BEAM, ANIM_GFX_AEROBLAST anim_bgp $1b - anim_bgeffect $1f, $50, $4, $10 - anim_bgeffect $6, $0, $2, $0 - anim_sound $0, SFX_AEROBLAST - anim_obj $b3, 72, 88, $0 + anim_bgeffect ANIM_BG_1F, $50, $4, $10 + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_sound 0, 0, SFX_AEROBLAST + anim_obj ANIM_OBJ_B3, 9, 0, 11, 0, $0 anim_wait 32 - anim_sound $0, SFX_HYPER_BEAM - anim_obj $27, 80, 84, $0 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 10, 0, 10, 4, $0 anim_wait 2 - anim_sound $1, SFX_HYPER_BEAM - anim_obj $27, 96, 76, $0 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 12, 0, 9, 4, $0 anim_wait 2 - anim_sound $1, SFX_HYPER_BEAM - anim_obj $27, 112, 68, $0 - anim_obj $28, 126, 62, $0 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 14, 0, 8, 4, $0 + anim_obj ANIM_OBJ_28, 15, 6, 7, 6, $0 anim_wait 48 anim_ret ; cae84 @@ -3561,60 +3549,60 @@ BattleAnim_Aeroblast: ; cae4b BattleAnim_CottonSpore: ; cae84 anim_obp0 $54 anim_1gfx ANIM_GFX_MISC - anim_sound $1, SFX_POWDER -BattleAnim_CottonSpore_branch_cae8b: ; cae8b - anim_obj $81, 132, 32, $0 + anim_sound 0, 1, SFX_POWDER +.loop: ; cae8b + anim_obj ANIM_OBJ_81, -16, 4, 4, 0, $0 anim_wait 8 - anim_loop $5, BattleAnim_CottonSpore_branch_cae8b + anim_loop 5, .loop anim_wait 96 anim_ret ; cae97 BattleAnim_Reversal: ; cae97 anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_HIT - anim_bgeffect $7, $0, $0, $0 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $4, 112, 64, $0 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_04, 14, 0, 8, 0, $0 anim_wait 2 - anim_sound $1, SFX_SHINE - anim_obj $a7, 120, 56, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_A7, 15, 0, 7, 0, $0 anim_wait 2 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $4, 128, 56, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_04, 16, 0, 7, 0, $0 anim_wait 2 - anim_sound $1, SFX_SHINE - anim_obj $a7, 136, 48, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_A7, -15, 0, 6, 0, $0 anim_wait 2 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $4, 144, 48, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_04, -14, 0, 6, 0, $0 anim_wait 2 - anim_sound $1, SFX_SHINE - anim_obj $a7, 152, 40, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_A7, -13, 0, 5, 0, $0 anim_wait 24 anim_ret ; caed6 BattleAnim_Spite: ; caed6 anim_1gfx ANIM_GFX_ANGELS - anim_obj $a4, 132, 16, $0 - anim_sound $1, SFX_SPITE + anim_obj ANIM_OBJ_A4, -16, 4, 2, 0, $0 + anim_sound 0, 1, SFX_SPITE anim_wait 96 anim_ret ; caee2 BattleAnim_PowderSnow: ; caee2 anim_1gfx ANIM_GFX_ICE -BattleAnim_PowderSnow_branch_caee4: ; caee4 - anim_sound $1a, SFX_SHINE - anim_obj $8f, 64, 88, $23 +.loop: ; caee4 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_8F, 8, 0, 11, 0, $23 anim_wait 2 - anim_sound $1a, SFX_SHINE - anim_obj $8f, 64, 80, $24 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_8F, 8, 0, 10, 0, $24 anim_wait 2 - anim_sound $1a, SFX_SHINE - anim_obj $8f, 64, 96, $23 + anim_sound 6, 2, SFX_SHINE + anim_obj ANIM_OBJ_8F, 8, 0, 12, 0, $23 anim_wait 2 - anim_loop $2, BattleAnim_PowderSnow_branch_caee4 + anim_loop 2, .loop anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0 anim_wait 40 anim_call BattleAnim_PowderSnow_branch_cbbdf @@ -3624,13 +3612,13 @@ BattleAnim_PowderSnow_branch_caee4: ; caee4 BattleAnim_Protect: ; caf0e anim_1gfx ANIM_GFX_OBJECTS - anim_bgeffect $7, $0, $2, $0 - anim_obj $8a, 80, 80, $0 - anim_obj $8a, 80, 80, $d - anim_obj $8a, 80, 80, $1a - anim_obj $8a, 80, 80, $27 - anim_obj $8a, 80, 80, $34 - anim_sound $0, SFX_PROTECT + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $0 + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $d + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $1a + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $27 + anim_obj ANIM_OBJ_8A, 10, 0, 10, 0, $34 + anim_sound 0, 0, SFX_PROTECT anim_wait 96 anim_ret ; caf33 @@ -3638,18 +3626,18 @@ BattleAnim_Protect: ; caf0e BattleAnim_MachPunch: ; caf33 anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 - anim_sound $0, SFX_MENU - anim_obj $77, 24, 88, $2 - anim_obj $77, 32, 88, $1 - anim_obj $77, 40, 88, $0 - anim_obj $77, 48, 88, $80 - anim_obj $77, 56, 88, $81 - anim_obj $77, 64, 88, $82 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2 + anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1 + anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0 + anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80 + anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81 + anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82 anim_wait 12 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $6, 136, 56, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_06, -15, 0, 7, 0, $0 anim_wait 6 - anim_obj $1, 136, 56, $0 + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 8 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 16 @@ -3659,7 +3647,7 @@ BattleAnim_MachPunch: ; caf33 BattleAnim_ScaryFace: ; caf73 anim_1gfx ANIM_GFX_BEAM anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_call BattleAnim_ScaryFace_branch_cbadc anim_wait 64 anim_ret @@ -3667,74 +3655,74 @@ BattleAnim_ScaryFace: ; caf73 BattleAnim_FaintAttack: ; caf84 anim_1gfx ANIM_GFX_HIT - anim_sound $0, SFX_CURSE - anim_call BattleAnim_FaintAttack_branch_cbca7 - anim_bgeffect $1d, $0, $1, $80 + anim_sound 0, 0, SFX_CURSE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1D, $0, $1, $80 anim_wait 96 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $4, 120, 32, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_04, 15, 0, 4, 0, $0 anim_wait 8 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $4, 152, 40, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_04, -13, 0, 5, 0, $0 anim_wait 8 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $4, 136, 48, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_04, -15, 0, 6, 0, $0 anim_wait 32 - anim_incbgeffect $1d - anim_call BattleAnim_FaintAttack_branch_cbcb7 + anim_incbgeffect ANIM_BG_1D + anim_call BattleAnim_ShowMon_0 anim_wait 4 anim_ret ; cafb4 BattleAnim_SweetKiss: ; cafb4 anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS - anim_bgeffect $7, $0, $2, $0 - anim_obj $97, 96, 40, $0 - anim_sound $1, SFX_SWEET_KISS + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_97, 12, 0, 5, 0, $0 + anim_sound 0, 1, SFX_SWEET_KISS anim_wait 32 - anim_sound $1, SFX_SWEET_KISS_2 - anim_obj ANIM_OBJ_HEART, 120, 40, $0 + anim_sound 0, 1, SFX_SWEET_KISS_2 + anim_obj ANIM_OBJ_HEART, 15, 0, 5, 0, $0 anim_wait 40 anim_ret ; cafcf BattleAnim_BellyDrum: ; cafcf anim_2gfx ANIM_GFX_HIT, ANIM_GFX_NOISE - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 24 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 24 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 12 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 12 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 24 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 12 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 12 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 12 - anim_sound $0, SFX_BELLY_DRUM - anim_obj $aa, 64, 104, $0 - anim_obj $ab, 64, 92, $f8 + anim_sound 0, 0, SFX_BELLY_DRUM + anim_obj ANIM_OBJ_AA, 8, 0, 13, 0, $0 + anim_obj ANIM_OBJ_AB, 8, 0, 11, 4, $f8 anim_wait 12 anim_ret ; cb051 @@ -3742,8 +3730,8 @@ BattleAnim_BellyDrum: ; cafcf BattleAnim_SludgeBomb: ; cb051 anim_2gfx ANIM_GFX_EGG, ANIM_GFX_POISON anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0 - anim_sound $1a, SFX_SLUDGE_BOMB - anim_obj $62, 64, 92, $10 + anim_sound 6, 2, SFX_SLUDGE_BOMB + anim_obj ANIM_OBJ_62, 8, 0, 11, 4, $10 anim_wait 36 anim_call BattleAnim_SludgeBomb_branch_cbc15 anim_wait 64 @@ -3759,31 +3747,31 @@ BattleAnim_MudSlap: ; cb067 BattleAnim_Octazooka: ; cb06f anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE - anim_sound $1a, SFX_SLUDGE_BOMB - anim_obj $8c, 64, 92, $4 + anim_sound 6, 2, SFX_SLUDGE_BOMB + anim_obj ANIM_OBJ_8C, 8, 0, 11, 4, $4 anim_wait 16 - anim_obj $1c, 132, 56, $10 + anim_obj ANIM_OBJ_1C, -16, 4, 7, 0, $10 anim_wait 8 - anim_jumpif $0, BattleAnim_Octazooka_branch_cb091 -BattleAnim_Octazooka_branch_cb086: ; cb086 - anim_obj $74, 132, 60, $20 + anim_jumpif $0, .done +.loop + anim_obj ANIM_OBJ_74, -16, 4, 7, 4, $20 anim_wait 8 - anim_loop $5, BattleAnim_Octazooka_branch_cb086 + anim_loop 5, .loop anim_wait 128 -BattleAnim_Octazooka_branch_cb091: ; cb091 +.done anim_ret ; cb092 BattleAnim_Spikes: ; cb092 anim_1gfx ANIM_GFX_MISC - anim_sound $1a, SFX_MENU - anim_obj $8e, 48, 88, $20 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_8E, 6, 0, 11, 0, $20 anim_wait 8 - anim_sound $1a, SFX_MENU - anim_obj $8e, 48, 88, $30 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_8E, 6, 0, 11, 0, $30 anim_wait 8 - anim_sound $1a, SFX_MENU - anim_obj $8e, 48, 88, $28 + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_8E, 6, 0, 11, 0, $28 anim_wait 64 anim_ret ; cb0b0 @@ -3792,28 +3780,28 @@ BattleAnim_ZapCannon: ; cb0b0 anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION anim_bgp $1b anim_obp0 $30 - anim_sound $1a, SFX_ZAP_CANNON - anim_obj $a3, 64, 92, $2 + anim_sound 6, 2, SFX_ZAP_CANNON + anim_obj ANIM_OBJ_A3, 8, 0, 11, 4, $2 anim_wait 40 - anim_sound $1, SFX_THUNDERSHOCK - anim_obj $32, 136, 56, $2 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_32, -15, 0, 7, 0, $2 anim_wait 16 - anim_obj $31, 136, 56, $0 + anim_obj ANIM_OBJ_31, -15, 0, 7, 0, $0 anim_wait 128 anim_ret ; cb0d0 BattleAnim_Foresight: ; cb0d0 anim_1gfx ANIM_GFX_SHINE - anim_call BattleAnim_Foresight_branch_cbcc2 - anim_bgeffect $7, $0, $0, $0 - anim_sound $1, SFX_FORESIGHT - anim_obj $a7, 132, 40, $0 + anim_call BattleAnim_FollowEnemyFeet_1 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 1, SFX_FORESIGHT + anim_obj ANIM_OBJ_A7, -16, 4, 5, 0, $0 anim_wait 24 - anim_bgeffect $19, $0, $0, $40 + anim_bgeffect ANIM_BG_19, $0, $0, $40 anim_wait 64 - anim_incbgeffect $19 - anim_call BattleAnim_Foresight_branch_cbcd2 + anim_incbgeffect ANIM_BG_19 + anim_call BattleAnim_ShowMon_1 anim_wait 8 anim_ret ; cb0f0 @@ -3823,15 +3811,15 @@ BattleAnim_DestinyBond: ; cb0f0 anim_bgp $1b anim_obp0 $0 anim_jumpif $1, BattleAnim_DestinyBond_branch_cb104 - anim_sound $1a, SFX_WHIRLWIND - anim_obj $9b, 44, 120, $2 + anim_sound 6, 2, SFX_WHIRLWIND + anim_obj ANIM_OBJ_9B, 5, 4, 15, 0, $2 anim_wait 128 anim_ret ; cb104 BattleAnim_DestinyBond_branch_cb104: ; cb104 - anim_obj $9b, 132, 76, $0 - anim_sound $1, SFX_KINESIS + anim_obj ANIM_OBJ_9B, -16, 4, 9, 4, $0 + anim_sound 0, 1, SFX_KINESIS anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0 anim_wait 32 anim_ret @@ -3839,36 +3827,36 @@ BattleAnim_DestinyBond_branch_cb104: ; cb104 BattleAnim_PerishSong: ; cb113 anim_1gfx ANIM_GFX_NOISE - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 - anim_sound $2, SFX_PERISH_SONG - anim_obj $a6, 88, 0, $0 - anim_obj $a6, 88, 0, $8 - anim_obj $a6, 88, 0, $10 - anim_obj $a6, 88, 0, $18 - anim_obj $a6, 88, 0, $20 - anim_obj $a6, 88, 0, $28 - anim_obj $a6, 88, 0, $30 - anim_obj $a6, 88, 0, $38 + anim_sound 0, 2, SFX_PERISH_SONG + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $0 + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $8 + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $10 + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $18 + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $20 + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $28 + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $30 + anim_obj ANIM_OBJ_A6, 11, 0, 0, 0, $38 anim_wait 112 anim_ret ; cb14c BattleAnim_IcyWind: ; cb14c anim_1gfx ANIM_GFX_SPEED - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 anim_playerheadobj - anim_sound $0, SFX_PSYCHIC -BattleAnim_IcyWind_branch_cb15c: ; cb15c + anim_sound 0, 0, SFX_PSYCHIC +.loop anim_wait 8 - anim_obj $ae, 64, 88, $4 + anim_obj ANIM_OBJ_AE, 8, 0, 11, 0, $4 anim_wait 8 - anim_obj $ae, 64, 80, $4 + anim_obj ANIM_OBJ_AE, 8, 0, 10, 0, $4 anim_wait 8 - anim_obj $ae, 64, 96, $4 + anim_obj ANIM_OBJ_AE, 8, 0, 12, 0, $4 anim_wait 8 - anim_loop $2, BattleAnim_IcyWind_branch_cb15c + anim_loop 2, .loop anim_wait 16 anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0 anim_wait 6 @@ -3877,271 +3865,270 @@ BattleAnim_IcyWind_branch_cb15c: ; cb15c anim_incbgeffect ANIM_BG_NIGHT_SHADE anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 4 - anim_incobj $7 + anim_incobj 7 anim_wait 1 anim_ret ; cb18c BattleAnim_Detect: ; cb18c anim_1gfx ANIM_GFX_SHINE - anim_bgeffect $7, $0, $0, $0 - anim_sound $0, SFX_FORESIGHT - anim_obj $a7, 64, 88, $0 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 0, SFX_FORESIGHT + anim_obj ANIM_OBJ_A7, 8, 0, 11, 0, $0 anim_wait 24 anim_ret ; cb19d BattleAnim_BoneRush: ; cb19d anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC - anim_sound $1, SFX_BONE_CLUB - anim_obj $69, 132, 56, $2 + anim_sound 0, 1, SFX_BONE_CLUB + anim_obj ANIM_OBJ_69, -16, 4, 7, 0, $2 anim_wait 16 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $1, 120, 48, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 anim_wait 16 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $1, 144, 64, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $0 anim_wait 16 anim_ret ; cb1bc BattleAnim_LockOn: ; cb1bc anim_1gfx ANIM_GFX_MISC - anim_sound $1, SFX_MIND_READER -BattleAnim_LockOn_branch_cb1c1: ; cb1c1 - anim_obj $87, 132, 48, $3 - anim_obj $87, 132, 48, $12 - anim_obj $87, 132, 48, $20 - anim_obj $87, 132, 48, $31 - anim_wait 16 - anim_loop $2, BattleAnim_LockOn_branch_cb1c1 + anim_sound 0, 1, SFX_MIND_READER +.loop + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $3 + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $12 + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $20 + anim_obj ANIM_OBJ_87, -16, 4, 6, 0, $31 + anim_wait 16 + anim_loop 2, .loop anim_wait 32 anim_ret ; cb1dc BattleAnim_Outrage: ; cb1dc anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Outrage_branch_cbca7 - anim_bgeffect $1a, $0, $1, $20 - anim_sound $0, SFX_OUTRAGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_OUTRAGE anim_wait 72 - anim_incbgeffect $1a - anim_call BattleAnim_Outrage_branch_cbcb7 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 - anim_sound $1, SFX_MOVE_PUZZLE_PIECE - anim_obj $0, 120, 72, $0 + anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE + anim_obj ANIM_OBJ_00, 15, 0, 9, 0, $0 anim_wait 6 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $0, 136, 56, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $0, 152, 40, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, -13, 0, 5, 0, $0 anim_wait 16 anim_ret ; cb210 BattleAnim_Sandstorm: ; cb210 anim_1gfx ANIM_GFX_POWDER - anim_obj $a2, 88, 0, $0 + anim_obj ANIM_OBJ_A2, 11, 0, 0, 0, $0 anim_wait 8 - anim_obj $a2, 72, 0, $1 + anim_obj ANIM_OBJ_A2, 9, 0, 0, 0, $1 anim_wait 8 - anim_obj $a2, 56, 0, $2 -BattleAnim_Sandstorm_branch_cb223: ; cb223 - anim_sound $1, SFX_MENU + anim_obj ANIM_OBJ_A2, 7, 0, 0, 0, $2 +.loop + anim_sound 0, 1, SFX_MENU anim_wait 8 - anim_loop $10, BattleAnim_Sandstorm_branch_cb223 + anim_loop 16, .loop anim_wait 8 anim_ret ; cb22d BattleAnim_GigaDrain: ; cb22d anim_2gfx ANIM_GFX_BUBBLE, ANIM_GFX_CHARGE - anim_call BattleAnim_GigaDrain_branch_cbca7 - anim_bgeffect $1c, $0, $0, $10 - anim_sound $1b, SFX_GIGA_DRAIN + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1C, $0, $0, $10 + anim_sound 6, 3, SFX_GIGA_DRAIN anim_call BattleAnim_GigaDrain_branch_cbab3 anim_wait 48 anim_wait 128 - anim_incbgeffect $1c - anim_call BattleAnim_GigaDrain_branch_cbcb7 + anim_incbgeffect ANIM_BG_1C + anim_call BattleAnim_ShowMon_0 anim_wait 1 anim_1gfx ANIM_GFX_SHINE - anim_bgeffect $7, $0, $0, $0 -BattleAnim_GigaDrain_branch_cb24d: ; cb24d - anim_sound $0, SFX_METRONOME - anim_obj $9d, 24, 64, $0 + anim_bgeffect ANIM_BG_07, $0, $0, $0 +.loop + anim_sound 0, 0, SFX_METRONOME + anim_obj ANIM_OBJ_9D, 3, 0, 8, 0, $0 anim_wait 5 - anim_obj $9d, 56, 104, $0 + anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0 anim_wait 5 - anim_obj $9d, 24, 104, $0 + anim_obj ANIM_OBJ_9D, 3, 0, 13, 0, $0 anim_wait 5 - anim_obj $9d, 56, 64, $0 + anim_obj ANIM_OBJ_9D, 7, 0, 8, 0, $0 anim_wait 5 - anim_obj $9d, 40, 84, $0 + anim_obj ANIM_OBJ_9D, 5, 0, 10, 4, $0 anim_wait 5 - anim_loop $2, BattleAnim_GigaDrain_branch_cb24d + anim_loop 2, .loop anim_wait 32 anim_ret ; cb274 BattleAnim_Endure: ; cb274 anim_1gfx ANIM_GFX_SPEED - anim_call BattleAnim_Endure_branch_cbca7 - anim_bgeffect $1a, $0, $1, $20 - anim_bgeffect $7, $0, $2, $0 -BattleAnim_Endure_branch_cb283: ; cb283 - anim_sound $0, SFX_SWORDS_DANCE - anim_obj $47, 44, 108, $6 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_bgeffect ANIM_BG_07, $0, $2, $0 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_obj ANIM_OBJ_47, 5, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 36, 108, $6 + anim_obj ANIM_OBJ_47, 4, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 52, 108, $8 + anim_obj ANIM_OBJ_47, 6, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 28, 108, $8 + anim_obj ANIM_OBJ_47, 3, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 60, 108, $6 + anim_obj ANIM_OBJ_47, 7, 4, 13, 4, $6 anim_wait 2 - anim_obj $47, 20, 108, $8 + anim_obj ANIM_OBJ_47, 2, 4, 13, 4, $8 anim_wait 2 - anim_obj $47, 68, 108, $8 + anim_obj ANIM_OBJ_47, 8, 4, 13, 4, $8 anim_wait 2 - anim_loop $5, BattleAnim_Endure_branch_cb283 + anim_loop 5, .loop anim_wait 8 - anim_incbgeffect $1a - anim_call BattleAnim_Endure_branch_cbcb7 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 anim_ret ; cb2bb BattleAnim_Charm: ; cb2bb anim_1gfx ANIM_GFX_OBJECTS - anim_call BattleAnim_Charm_branch_cbca7 - anim_bgeffect $26, $0, $1, $0 - anim_sound $0, SFX_ATTRACT - anim_obj ANIM_OBJ_HEART, 64, 80, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_26, $0, $1, $0 + anim_sound 0, 0, SFX_ATTRACT + anim_obj ANIM_OBJ_HEART, 8, 0, 10, 0, $0 anim_wait 32 - anim_incbgeffect $26 - anim_call BattleAnim_Charm_branch_cbcb7 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_0 anim_wait 4 anim_ret ; cb2d5 BattleAnim_Rollout: ; cb2d5 anim_1gfx ANIM_GFX_HIT - anim_sound $0, SFX_SPARK - anim_call BattleAnim_Rollout_branch_cbcaf - anim_bgeffect $2e, $60, $1, $1 - anim_bgeffect $25, $0, $1, $0 + anim_sound 0, 0, SFX_SPARK + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_2E, $60, $1, $1 + anim_bgeffect ANIM_BG_25, $0, $1, $0 anim_wait 4 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $3, 136, 40, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_03, -15, 0, 5, 0, $0 anim_wait 8 - anim_call BattleAnim_Rollout_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; cb2f5 BattleAnim_FalseSwipe: ; cb2f5 anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_CUT - anim_bgeffect $7, $0, $0, $0 - anim_sound $1, SFX_CUT - anim_obj $3a, 152, 40, $0 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 anim_wait 4 - anim_obj $9d, 136, 40, $0 + anim_obj ANIM_OBJ_9D, -15, 0, 5, 0, $0 anim_wait 32 anim_ret ; cb30d BattleAnim_Swagger: ; cb30d anim_2gfx ANIM_GFX_MISC, ANIM_GFX_WIND -BattleAnim_Swagger_branch_cb310: ; cb310 - anim_sound $0, SFX_MENU - anim_obj $a9, 72, 88, $44 +.loop + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_A9, 9, 0, 11, 0, $44 anim_wait 32 - anim_loop $2, BattleAnim_Swagger_branch_cb310 + anim_loop 2, .loop anim_wait 32 - anim_sound $1, SFX_KINESIS_2 - anim_obj $83, 104, 40, $0 + anim_sound 0, 1, SFX_KINESIS_2 + anim_obj ANIM_OBJ_83, 13, 0, 5, 0, $0 anim_wait 40 anim_ret ; cb328 BattleAnim_MilkDrink: ; cb328 anim_2gfx ANIM_GFX_MISC, ANIM_GFX_BUBBLE - anim_call BattleAnim_MilkDrink_branch_cbca7 - anim_obj $82, 74, 104, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_obj ANIM_OBJ_82, 9, 2, 13, 0, $0 anim_wait 16 - anim_bgeffect $18, $0, $1, $40 - anim_sound $0, SFX_MILK_DRINK -BattleAnim_MilkDrink_branch_cb33c: ; cb33c - anim_obj $2c, 44, 88, $20 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_sound 0, 0, SFX_MILK_DRINK +.loop + anim_obj ANIM_OBJ_2C, 5, 4, 11, 0, $20 anim_wait 8 - anim_loop $8, BattleAnim_MilkDrink_branch_cb33c + anim_loop 8, .loop anim_wait 128 - anim_incbgeffect $18 - anim_call BattleAnim_MilkDrink_branch_cbcb7 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 anim_ret ; cb34d BattleAnim_Spark: ; cb34d anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION - anim_sound $0, SFX_ZAP_CANNON + anim_sound 0, 0, SFX_ZAP_CANNON anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3 - anim_obj $30, 48, 92, $0 + anim_obj ANIM_OBJ_30, 6, 0, 11, 4, $0 anim_wait 24 anim_setobj $1, $3 anim_wait 1 - anim_call BattleAnim_Spark_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 - anim_sound $0, SFX_SPARK + anim_sound 0, 0, SFX_SPARK anim_wait 16 anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 anim_wait 4 - anim_incobj $2 + anim_incobj 2 anim_wait 1 - anim_sound $1, SFX_THUNDERSHOCK - anim_obj $32, 136, 56, $2 - anim_obj $33, 136, 56, $0 + anim_sound 0, 1, SFX_THUNDERSHOCK + anim_obj ANIM_OBJ_32, -15, 0, 7, 0, $2 + anim_obj ANIM_OBJ_33, -15, 0, 7, 0, $0 anim_wait 32 anim_ret ; cb386 BattleAnim_FuryCutter: ; cb386 anim_1gfx ANIM_GFX_CUT -BattleAnim_FuryCutter_branch_cb388: ; cb388 - anim_sound $1, SFX_CUT - anim_jumpand $1, BattleAnim_FuryCutter_branch_cb397 - anim_obj $3a, 152, 40, $0 - anim_jump BattleAnim_FuryCutter_branch_cb39c -; cb397 +.loop + anim_sound 0, 1, SFX_CUT + anim_jumpand $1, .obj1 + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 + anim_jump .okay -BattleAnim_FuryCutter_branch_cb397: ; cb397 - anim_obj $3b, 112, 40, $0 -BattleAnim_FuryCutter_branch_cb39c: ; cb39c +.obj1 + anim_obj ANIM_OBJ_3B, 14, 0, 5, 0, $0 +.okay anim_wait 16 - anim_jumpuntil BattleAnim_FuryCutter_branch_cb388 + anim_jumpuntil .loop anim_ret ; cb3a1 BattleAnim_SteelWing: ; cb3a1 anim_1gfx ANIM_GFX_REFLECT anim_obp0 $0 - anim_sound $0, SFX_RAGE - anim_call BattleAnim_SteelWing_branch_cbca7 + anim_sound 0, 0, SFX_RAGE + anim_call BattleAnim_FollowEnemyFeet_0 anim_call BattleAnim_SteelWing_branch_cbc43 - anim_call BattleAnim_SteelWing_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_1gfx ANIM_GFX_HIT anim_resetobp0 - anim_sound $1, SFX_WING_ATTACK - anim_obj $1, 148, 56, $0 - anim_obj $1, 116, 56, $0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 14, 4, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_WING_ATTACK - anim_obj $1, 144, 56, $0 - anim_obj $1, 120, 56, $0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -14, 0, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_WING_ATTACK - anim_obj $1, 140, 56, $0 - anim_obj $1, 124, 56, $0 + anim_sound 0, 1, SFX_WING_ATTACK + anim_obj ANIM_OBJ_01, -15, 4, 7, 0, $0 + anim_obj ANIM_OBJ_01, 15, 4, 7, 0, $0 anim_wait 16 anim_ret ; cb3df @@ -4149,27 +4136,27 @@ BattleAnim_SteelWing: ; cb3a1 BattleAnim_MeanLook: ; cb3df anim_1gfx ANIM_GFX_PSYCHIC anim_obp0 $e0 - anim_sound $1, SFX_MEAN_LOOK - anim_obj $ac, 148, 32, $0 + anim_sound 0, 1, SFX_MEAN_LOOK + anim_obj ANIM_OBJ_AC, -14, 4, 4, 0, $0 anim_wait 5 - anim_obj $ac, 116, 64, $0 + anim_obj ANIM_OBJ_AC, 14, 4, 8, 0, $0 anim_wait 5 - anim_obj $ac, 148, 64, $0 + anim_obj ANIM_OBJ_AC, -14, 4, 8, 0, $0 anim_wait 5 - anim_obj $ac, 116, 32, $0 + anim_obj ANIM_OBJ_AC, 14, 4, 4, 0, $0 anim_wait 5 - anim_obj $ac, 132, 48, $0 + anim_obj ANIM_OBJ_AC, -16, 4, 6, 0, $0 anim_wait 128 anim_ret ; cb405 BattleAnim_Attract: ; cb405 anim_1gfx ANIM_GFX_OBJECTS -BattleAnim_Attract_branch_cb407: ; cb407 - anim_sound $0, SFX_ATTRACT - anim_obj $66, 44, 80, $2 +.loop + anim_sound 0, 0, SFX_ATTRACT + anim_obj ANIM_OBJ_66, 5, 4, 10, 0, $2 anim_wait 8 - anim_loop $5, BattleAnim_Attract_branch_cb407 + anim_loop 5, .loop anim_wait 128 anim_wait 64 anim_ret @@ -4177,187 +4164,186 @@ BattleAnim_Attract_branch_cb407: ; cb407 BattleAnim_SleepTalk: ; cb417 anim_1gfx ANIM_GFX_STATUS -BattleAnim_SleepTalk_branch_cb419: ; cb419 - anim_sound $0, SFX_STRENGTH - anim_obj $54, 64, 80, $0 +.loop + anim_sound 0, 0, SFX_STRENGTH + anim_obj ANIM_OBJ_54, 8, 0, 10, 0, $0 anim_wait 40 - anim_loop $2, BattleAnim_SleepTalk_branch_cb419 + anim_loop 2, .loop anim_wait 32 anim_ret ; cb428 BattleAnim_HealBell: ; cb428 anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE - anim_obj $84, 72, 56, $0 + anim_obj ANIM_OBJ_84, 9, 0, 7, 0, $0 anim_wait 32 -BattleAnim_HealBell_branch_cb431: ; cb431 - anim_sound $0, SFX_HEAL_BELL - anim_obj $85, 72, 52, $0 +.loop + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $0 anim_wait 8 - anim_sound $0, SFX_HEAL_BELL - anim_obj $85, 72, 52, $1 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $1 anim_wait 8 - anim_sound $0, SFX_HEAL_BELL - anim_obj $85, 72, 52, $2 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $2 anim_wait 8 - anim_sound $0, SFX_HEAL_BELL - anim_obj $85, 72, 52, $0 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $0 anim_wait 8 - anim_sound $0, SFX_HEAL_BELL - anim_obj $85, 72, 52, $2 + anim_sound 0, 0, SFX_HEAL_BELL + anim_obj ANIM_OBJ_85, 9, 0, 6, 4, $2 anim_wait 8 - anim_loop $4, BattleAnim_HealBell_branch_cb431 + anim_loop 4, .loop anim_wait 64 anim_ret ; cb464 BattleAnim_Return: ; cb464 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Return_branch_cbcaf - anim_bgeffect $22, $0, $1, $0 - anim_sound $0, SFX_RETURN + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0 + anim_sound 0, 0, SFX_RETURN anim_wait 64 - anim_incbgeffect $22 + anim_incbgeffect ANIM_BG_BOUNCE_DOWN anim_wait 32 - anim_bgeffect $25, $0, $1, $0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 anim_wait 4 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $3, 136, 40, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_03, -15, 0, 5, 0, $0 anim_wait 8 - anim_call BattleAnim_Return_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; cb488 BattleAnim_Present: ; cb488 anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_BUBBLE - anim_sound $1, SFX_PRESENT - anim_obj $8d, 64, 88, $6c + anim_sound 0, 1, SFX_PRESENT + anim_obj ANIM_OBJ_8D, 8, 0, 11, 0, $6c anim_wait 56 - anim_obj $53, 104, 48, $0 + anim_obj ANIM_OBJ_53, 13, 0, 6, 0, $0 anim_wait 48 - anim_incobj $2 - anim_jumpif $3, BattleAnim_Present_branch_cb4b2 - anim_incobj $1 + anim_incobj 2 + anim_jumpif $3, .heal + anim_incobj 1 anim_wait 1 anim_1gfx ANIM_GFX_EXPLOSION anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12 -BattleAnim_Present_branch_cb4aa: ; cb4aa +.loop anim_call BattleAnim_Present_branch_cbb8f anim_wait 16 - anim_jumpuntil BattleAnim_Present_branch_cb4aa + anim_jumpuntil .loop anim_ret -; cb4b2 -BattleAnim_Present_branch_cb4b2: ; cb4b2 - anim_sound $1, SFX_METRONOME -BattleAnim_Present_branch_cb4b5: ; cb4b5 - anim_obj $2c, 132, 48, $24 +.heal + anim_sound 0, 1, SFX_METRONOME +.loop2 + anim_obj ANIM_OBJ_2C, -16, 4, 6, 0, $24 anim_wait 8 - anim_loop $8, BattleAnim_Present_branch_cb4b5 + anim_loop 8, .loop2 anim_wait 128 anim_ret ; cb4c1 BattleAnim_Frustration: ; cb4c1 anim_1gfx ANIM_GFX_MISC - anim_sound $0, SFX_KINESIS_2 - anim_obj $83, 72, 80, $0 + anim_sound 0, 0, SFX_KINESIS_2 + anim_obj ANIM_OBJ_83, 9, 0, 10, 0, $0 anim_wait 40 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_Frustration_branch_cbca7 - anim_bgeffect $26, $0, $1, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_26, $0, $1, $0 anim_wait 8 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $1, 120, 48, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, 15, 0, 6, 0, $0 anim_wait 8 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $1, 152, 48, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -13, 0, 6, 0, $0 anim_wait 8 - anim_sound $1, SFX_COMET_PUNCH - anim_obj $1, 136, 48, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 6, 0, $0 anim_wait 8 - anim_incbgeffect $26 + anim_incbgeffect ANIM_BG_26 anim_wait 1 - anim_call BattleAnim_Frustration_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; cb4f9 BattleAnim_Safeguard: ; cb4f9 anim_1gfx ANIM_GFX_MISC - anim_bgeffect $6, $0, $2, $0 - anim_obj $89, 80, 80, $0 - anim_obj $89, 80, 80, $d - anim_obj $89, 80, 80, $1a - anim_obj $89, 80, 80, $27 - anim_obj $89, 80, 80, $34 - anim_sound $0, SFX_PROTECT + anim_bgeffect ANIM_BG_06, $0, $2, $0 + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $0 + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $d + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $1a + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $27 + anim_obj ANIM_OBJ_89, 10, 0, 10, 0, $34 + anim_sound 0, 0, SFX_PROTECT anim_wait 96 anim_ret ; cb51e BattleAnim_PainSplit: ; cb51e anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS - anim_call BattleAnim_PainSplit_branch_cbcaf - anim_bgeffect $25, $0, $1, $0 + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 anim_wait 4 - anim_sound $1, SFX_TACKLE - anim_obj $4, 112, 48, $0 - anim_obj $4, 76, 96, $0 + anim_sound 0, 1, SFX_TACKLE + anim_obj ANIM_OBJ_04, 14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_04, 9, 4, 12, 0, $0 anim_wait 8 - anim_call BattleAnim_PainSplit_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_wait 1 anim_ret ; cb53d BattleAnim_SacredFire: ; cb53d anim_1gfx ANIM_GFX_FIRE - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 -BattleAnim_SacredFire_branch_cb549: ; cb549 - anim_sound $0, SFX_EMBER - anim_obj $80, 48, 104, $0 +.loop + anim_sound 0, 0, SFX_EMBER + anim_obj ANIM_OBJ_80, 6, 0, 13, 0, $0 anim_wait 8 - anim_loop $8, BattleAnim_SacredFire_branch_cb549 + anim_loop 8, .loop anim_wait 96 - anim_call BattleAnim_SacredFire_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 4 - anim_sound $1, SFX_EMBER - anim_obj $f, 136, 48, $1 - anim_obj $f, 136, 48, $4 - anim_obj $f, 136, 48, $5 + anim_sound 0, 1, SFX_EMBER + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $1 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $4 + anim_obj ANIM_OBJ_0F, -15, 0, 6, 0, $5 anim_wait 8 anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 anim_wait 4 - anim_incobj $9 + anim_incobj 9 anim_wait 8 anim_ret ; cb57d BattleAnim_Magnitude: ; cb57d anim_1gfx ANIM_GFX_ROCKS -BattleAnim_Magnitude_branch_cb57f: ; cb57f - anim_bgeffect $1f, $e, $4, $0 - anim_sound $1, SFX_STRENGTH - anim_obj $1e, 128, 64, $40 +.loop + anim_bgeffect ANIM_BG_1F, $e, $4, $0 + anim_sound 0, 1, SFX_STRENGTH + anim_obj ANIM_OBJ_1E, 16, 0, 8, 0, $40 anim_wait 2 - anim_obj $1e, 120, 68, $30 + anim_obj ANIM_OBJ_1E, 15, 0, 8, 4, $30 anim_wait 2 - anim_obj $1e, 152, 68, $30 + anim_obj ANIM_OBJ_1E, -13, 0, 8, 4, $30 anim_wait 2 - anim_obj $1e, 144, 64, $40 + anim_obj ANIM_OBJ_1E, -14, 0, 8, 0, $40 anim_wait 2 - anim_obj $1e, 136, 68, $30 + anim_obj ANIM_OBJ_1E, -15, 0, 8, 4, $30 anim_wait 2 - anim_jumpuntil BattleAnim_Magnitude_branch_cb57f + anim_jumpuntil .loop anim_wait 96 anim_ret ; cb5aa BattleAnim_Dynamicpunch: ; cb5aa anim_2gfx ANIM_GFX_HIT, ANIM_GFX_EXPLOSION - anim_sound $1, SFX_COMET_PUNCH - anim_obj $a, 136, 56, $43 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_0A, -15, 0, 7, 0, $43 anim_wait 16 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12 anim_call BattleAnim_Dynamicpunch_branch_cbb8f @@ -4367,32 +4353,32 @@ BattleAnim_Dynamicpunch: ; cb5aa BattleAnim_Megahorn: ; cb5c0 anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT - anim_bgeffect $1f, $40, $2, $0 + anim_bgeffect ANIM_BG_1F, $40, $2, $0 anim_wait 48 anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3 - anim_obj $5f, 72, 80, $1 - anim_sound $1, SFX_HORN_ATTACK + anim_obj ANIM_OBJ_5F, 9, 0, 10, 0, $1 + anim_sound 0, 1, SFX_HORN_ATTACK anim_wait 16 - anim_obj $0, 136, 56, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; cb5de BattleAnim_Dragonbreath: ; cb5de anim_1gfx ANIM_GFX_FIRE - anim_sound $1a, SFX_EMBER -BattleAnim_Dragonbreath_branch_cb5e3: ; cb5e3 - anim_obj $90, 64, 92, $4 + anim_sound 6, 2, SFX_EMBER +.loop + anim_obj ANIM_OBJ_90, 8, 0, 11, 4, $4 anim_wait 4 - anim_loop $a, BattleAnim_Dragonbreath_branch_cb5e3 + anim_loop 10, .loop anim_wait 64 anim_ret ; cb5ef BattleAnim_BatonPass: ; cb5ef anim_1gfx ANIM_GFX_MISC - anim_obj $86, 44, 104, $20 - anim_sound $0, SFX_BATON_PASS + anim_obj ANIM_OBJ_86, 5, 4, 13, 0, $20 + anim_sound 0, 0, SFX_BATON_PASS anim_call BattleAnim_BatonPass_branch_c9486 anim_wait 64 anim_ret @@ -4400,13 +4386,13 @@ BattleAnim_BatonPass: ; cb5ef BattleAnim_Encore: ; cb5fe anim_1gfx ANIM_GFX_OBJECTS - anim_obj $99, 64, 80, $90 - anim_obj $99, 64, 80, $10 - anim_sound $0, SFX_ENCORE + anim_obj ANIM_OBJ_99, 8, 0, 10, 0, $90 + anim_obj ANIM_OBJ_99, 8, 0, 10, 0, $10 + anim_sound 0, 0, SFX_ENCORE anim_wait 16 - anim_obj $9a, 64, 72, $2c + anim_obj ANIM_OBJ_9A, 8, 0, 9, 0, $2c anim_wait 32 - anim_obj $9a, 64, 72, $34 + anim_obj ANIM_OBJ_9A, 8, 0, 9, 0, $34 anim_wait 16 anim_ret ; cb61b @@ -4414,8 +4400,8 @@ BattleAnim_Encore: ; cb5fe BattleAnim_Pursuit: ; cb61b anim_1gfx ANIM_GFX_HIT anim_jumpif $1, BattleAnim_Pursuit_branch_cb62b - anim_sound $1, SFX_COMET_PUNCH - anim_obj $1, 136, 56, $0 + anim_sound 0, 1, SFX_COMET_PUNCH + anim_obj ANIM_OBJ_01, -15, 0, 7, 0, $0 anim_wait 16 anim_ret ; cb62b @@ -4423,20 +4409,20 @@ BattleAnim_Pursuit: ; cb61b BattleAnim_Pursuit_branch_cb62b: ; cb62b anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0 anim_wait 4 - anim_call BattleAnim_Pursuit_branch_cbcc2 - anim_obj $ad, 132, 64, $0 + anim_call BattleAnim_FollowEnemyFeet_1 + anim_obj ANIM_OBJ_AD, -16, 4, 8, 0, $0 anim_wait 64 - anim_obj $ad, 132, 64, $1 - anim_sound $1, SFX_BALL_POOF + anim_obj ANIM_OBJ_AD, -16, 4, 8, 0, $1 + anim_sound 0, 1, SFX_BALL_POOF anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0 anim_wait 64 - anim_incobj $3 + anim_incobj 3 anim_wait 16 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $0, 120, 56, $0 - anim_bgeffect $2d, $0, $0, $0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_00, 15, 0, 7, 0, $0 + anim_bgeffect ANIM_BG_2D, $0, $0, $0 anim_wait 16 - anim_call BattleAnim_Pursuit_branch_cbcd2 + anim_call BattleAnim_ShowMon_1 anim_wait 1 anim_ret ; cb65e @@ -4444,38 +4430,38 @@ BattleAnim_Pursuit_branch_cb62b: ; cb62b BattleAnim_RapidSpin: ; cb65e anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT anim_obp0 $e4 -BattleAnim_RapidSpin_branch_cb663: ; cb663 - anim_sound $0, SFX_MENU - anim_obj $a8, 44, 112, $0 +.loop + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_A8, 5, 4, 14, 0, $0 anim_wait 2 - anim_loop $5, BattleAnim_RapidSpin_branch_cb663 + anim_loop 5, .loop anim_wait 24 - anim_call BattleAnim_RapidSpin_branch_cbcaf - anim_bgeffect $25, $0, $1, $0 + anim_call BattleAnim_FollowPlayerHead_0 + anim_bgeffect ANIM_BG_25, $0, $1, $0 anim_wait 4 anim_resetobp0 - anim_sound $1, SFX_MEGA_KICK - anim_obj $4, 136, 40, $0 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_04, -15, 0, 5, 0, $0 anim_wait 8 anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 anim_wait 4 - anim_incobj $6 + anim_incobj 6 anim_wait 1 anim_ret ; cb68e BattleAnim_SweetScent: ; cb68e anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC - anim_sound $0, SFX_SWEET_SCENT - anim_obj ANIM_OBJ_FLOWER, 64, 96, $2 + anim_sound 0, 0, SFX_SWEET_SCENT + anim_obj ANIM_OBJ_FLOWER, 8, 0, 12, 0, $2 anim_wait 2 - anim_obj ANIM_OBJ_FLOWER, 64, 80, $2 + anim_obj ANIM_OBJ_FLOWER, 8, 0, 10, 0, $2 anim_wait 96 anim_obp0 $54 - anim_sound $1, SFX_SWEET_SCENT_2 - anim_obj ANIM_OBJ_COTTON, 136, 40, $15 - anim_obj ANIM_OBJ_COTTON, 136, 40, $2a - anim_obj ANIM_OBJ_COTTON, 136, 40, $3f + anim_sound 0, 1, SFX_SWEET_SCENT_2 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $15 + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $2a + anim_obj ANIM_OBJ_COTTON, -15, 0, 5, 0, $3f anim_wait 128 anim_ret ; cb6b6 @@ -4483,90 +4469,90 @@ BattleAnim_SweetScent: ; cb68e BattleAnim_IronTail: ; cb6b6 anim_1gfx ANIM_GFX_REFLECT anim_obp0 $0 - anim_sound $0, SFX_RAGE - anim_call BattleAnim_IronTail_branch_cbca7 + anim_sound 0, 0, SFX_RAGE + anim_call BattleAnim_FollowEnemyFeet_0 anim_call BattleAnim_IronTail_branch_cbc43 anim_wait 4 anim_1gfx ANIM_GFX_HIT anim_resetobp0 - anim_bgeffect $26, $0, $1, $0 + anim_bgeffect ANIM_BG_26, $0, $1, $0 anim_wait 16 - anim_sound $1, SFX_MEGA_KICK - anim_obj $0, 136, 48, $0 + anim_sound 0, 1, SFX_MEGA_KICK + anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0 anim_wait 16 - anim_incbgeffect $26 - anim_call BattleAnim_IronTail_branch_cbcb7 + anim_incbgeffect ANIM_BG_26 + anim_call BattleAnim_ShowMon_0 anim_ret ; cb6dc BattleAnim_MetalClaw: ; cb6dc anim_1gfx ANIM_GFX_REFLECT anim_obp0 $0 - anim_sound $0, SFX_RAGE - anim_call BattleAnim_MetalClaw_branch_cbca7 + anim_sound 0, 0, SFX_RAGE + anim_call BattleAnim_FollowEnemyFeet_0 anim_call BattleAnim_MetalClaw_branch_cbc43 - anim_call BattleAnim_MetalClaw_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_1gfx ANIM_GFX_CUT anim_resetobp0 - anim_sound $1, SFX_SCRATCH - anim_obj $37, 144, 48, $0 - anim_obj $37, 140, 44, $0 - anim_obj $37, 136, 40, $0 + anim_sound 0, 1, SFX_SCRATCH + anim_obj ANIM_OBJ_37, -14, 0, 6, 0, $0 + anim_obj ANIM_OBJ_37, -15, 4, 5, 4, $0 + anim_obj ANIM_OBJ_37, -15, 0, 5, 0, $0 anim_wait 32 anim_ret ; cb703 BattleAnim_VitalThrow: ; cb703 anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_VitalThrow_branch_cbca7 - anim_bgeffect $2f, $0, $1, $0 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_2F, $0, $1, $0 anim_wait 16 - anim_sound $0, SFX_MENU - anim_obj $4, 64, 96, $0 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_04, 8, 0, 12, 0, $0 anim_wait 8 - anim_sound $0, SFX_MENU - anim_obj $4, 56, 88, $0 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_04, 7, 0, 11, 0, $0 anim_wait 8 - anim_sound $0, SFX_MENU - anim_obj $4, 68, 104, $0 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_04, 8, 4, 13, 0, $0 anim_wait 8 - anim_incbgeffect $2f + anim_incbgeffect ANIM_BG_2F anim_wait 16 - anim_call BattleAnim_VitalThrow_branch_cbcb7 - anim_sound $1, SFX_MEGA_PUNCH - anim_obj $3, 132, 56, $0 + anim_call BattleAnim_ShowMon_0 + anim_sound 0, 1, SFX_MEGA_PUNCH + anim_obj ANIM_OBJ_03, -16, 4, 7, 0, $0 anim_wait 16 anim_ret ; cb739 BattleAnim_MorningSun: ; cb739 anim_1gfx ANIM_GFX_SHINE - anim_bgeffect $7, $0, $0, $0 - anim_sound $0, SFX_MORNING_SUN -BattleAnim_MorningSun_branch_cb743: ; cb743 - anim_obj $9c, 16, 48, $88 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 0, SFX_MORNING_SUN +.loop + anim_obj ANIM_OBJ_9C, 2, 0, 6, 0, $88 anim_wait 6 - anim_loop $5, BattleAnim_MorningSun_branch_cb743 + anim_loop 5, .loop anim_wait 32 - anim_jumpif $0, BattleAnim_MorningSun_branch_cb756 + anim_jumpif $0, .zero anim_call BattleAnim_MorningSun_branch_cbc6a anim_ret ; cb756 -BattleAnim_MorningSun_branch_cb756: ; cb756 +.zero anim_call BattleAnim_MorningSun_branch_cbc80 anim_ret ; cb75a BattleAnim_Synthesis: ; cb75a anim_1gfx ANIM_GFX_SHINE - anim_call BattleAnim_Synthesis_branch_cbca7 - anim_bgeffect $18, $0, $1, $40 - anim_bgeffect $7, $0, $0, $0 - anim_sound $0, SFX_OUTRAGE + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_18, $0, $1, $40 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_sound 0, 0, SFX_OUTRAGE anim_wait 72 - anim_incbgeffect $18 - anim_call BattleAnim_Synthesis_branch_cbcb7 + anim_incbgeffect ANIM_BG_18 + anim_call BattleAnim_ShowMon_0 anim_jumpif $1, BattleAnim_Synthesis_branch_cb77a anim_call BattleAnim_Synthesis_branch_cbc6a anim_ret @@ -4581,15 +4567,15 @@ BattleAnim_Crunch: ; cb77e anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT anim_bgp $1b anim_obp0 $c0 - anim_bgeffect $1f, $20, $2, $0 - anim_obj $36, 136, 56, $a8 - anim_obj $36, 136, 56, $28 + anim_bgeffect ANIM_BG_1F, $20, $2, $0 + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $a8 + anim_obj ANIM_OBJ_36, -15, 0, 7, 0, $28 anim_wait 8 - anim_sound $1, SFX_BITE - anim_obj $0, 144, 48, $18 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_00, -14, 0, 6, 0, $18 anim_wait 16 - anim_sound $1, SFX_BITE - anim_obj $0, 128, 64, $18 + anim_sound 0, 1, SFX_BITE + anim_obj ANIM_OBJ_00, 16, 0, 8, 0, $18 anim_wait 8 anim_ret ; cb7a8 @@ -4597,14 +4583,14 @@ BattleAnim_Crunch: ; cb77e BattleAnim_Moonlight: ; cb7a8 anim_1gfx ANIM_GFX_SHINE anim_bgp $1b - anim_bgeffect $7, $0, $0, $0 - anim_obj $9e, 0, 40, $0 - anim_obj $9e, 16, 56, $0 - anim_obj $9e, 32, 72, $0 - anim_obj $9e, 48, 88, $0 - anim_obj $9e, 64, 104, $0 + anim_bgeffect ANIM_BG_07, $0, $0, $0 + anim_obj ANIM_OBJ_9E, 0, 0, 5, 0, $0 + anim_obj ANIM_OBJ_9E, 2, 0, 7, 0, $0 + anim_obj ANIM_OBJ_9E, 4, 0, 9, 0, $0 + anim_obj ANIM_OBJ_9E, 6, 0, 11, 0, $0 + anim_obj ANIM_OBJ_9E, 8, 0, 13, 0, $0 anim_wait 1 - anim_sound $0, SFX_MOONLIGHT + anim_sound 0, 0, SFX_MOONLIGHT anim_wait 63 anim_jumpif $3, BattleAnim_Moonlight_branch_cb7d7 anim_call BattleAnim_Moonlight_branch_cbc6a @@ -4618,48 +4604,48 @@ BattleAnim_Moonlight_branch_cb7d7: ; cb7d7 BattleAnim_HiddenPower: ; cb7db anim_1gfx ANIM_GFX_CHARGE - anim_call BattleAnim_HiddenPower_branch_cbca7 - anim_bgeffect $1a, $0, $1, $20 - anim_bgeffect $7, $0, $2, $0 - anim_obj $9f, 44, 88, $0 - anim_obj $9f, 44, 88, $8 - anim_obj $9f, 44, 88, $10 - anim_obj $9f, 44, 88, $18 - anim_obj $9f, 44, 88, $20 - anim_obj $9f, 44, 88, $28 - anim_obj $9f, 44, 88, $30 - anim_obj $9f, 44, 88, $38 -BattleAnim_HiddenPower_branch_cb812: ; cb812 - anim_sound $0, SFX_SWORDS_DANCE - anim_wait 8 - anim_loop $c, BattleAnim_HiddenPower_branch_cb812 - anim_incbgeffect $1a - anim_call BattleAnim_HiddenPower_branch_cbcb7 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_bgeffect ANIM_BG_07, $0, $2, $0 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $0 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $8 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $10 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $18 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $20 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $28 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $30 + anim_obj ANIM_OBJ_9F, 5, 4, 11, 0, $38 +.loop + anim_sound 0, 0, SFX_SWORDS_DANCE + anim_wait 8 + anim_loop 12, .loop + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 anim_wait 1 - anim_incobj $2 - anim_incobj $3 - anim_incobj $4 - anim_incobj $5 - anim_incobj $6 - anim_incobj $7 - anim_incobj $8 - anim_incobj $9 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 anim_wait 16 anim_1gfx ANIM_GFX_HIT - anim_obj $0, 136, 56, $0 + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 32 anim_ret ; cb83a BattleAnim_CrossChop: ; cb83a anim_1gfx ANIM_GFX_CUT - anim_sound $1, SFX_CUT - anim_obj $a0, 152, 40, $0 - anim_obj $a1, 120, 72, $0 + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_A0, -13, 0, 5, 0, $0 + anim_obj ANIM_OBJ_A1, 15, 0, 9, 0, $0 anim_wait 8 - anim_bgeffect $1f, $58, $2, $0 + anim_bgeffect ANIM_BG_1F, $58, $2, $0 anim_wait 92 - anim_sound $1, SFX_VICEGRIP + anim_sound 0, 1, SFX_VICEGRIP anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10 anim_wait 16 anim_ret @@ -4667,44 +4653,44 @@ BattleAnim_CrossChop: ; cb83a BattleAnim_Twister: ; cb85a anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT -BattleAnim_Twister_branch_cb85d: ; cb85d - anim_sound $0, SFX_RAZOR_WIND - anim_obj ANIM_OBJ_GUST, 64, 112, $0 +.loop1 + anim_sound 0, 0, SFX_RAZOR_WIND + anim_obj ANIM_OBJ_GUST, 8, 0, 14, 0, $0 anim_wait 6 - anim_loop $9, BattleAnim_Twister_branch_cb85d -BattleAnim_Twister_branch_cb86a: ; cb86a - anim_sound $0, SFX_RAZOR_WIND - anim_wait 8 - anim_loop $8, BattleAnim_Twister_branch_cb86a - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 - anim_incobj $4 - anim_incobj $5 - anim_incobj $6 - anim_incobj $7 - anim_incobj $8 - anim_incobj $9 + anim_loop 9, .loop1 +.loop2 + anim_sound 0, 0, SFX_RAZOR_WIND + anim_wait 8 + anim_loop 8, .loop2 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 anim_wait 64 - anim_obj $1, 144, 64, $18 -BattleAnim_Twister_branch_cb88a: ; cb88a - anim_sound $1, SFX_RAZOR_WIND - anim_wait 8 - anim_loop $4, BattleAnim_Twister_branch_cb88a - anim_obj $1, 128, 32, $18 -BattleAnim_Twister_branch_cb897: ; cb897 - anim_sound $1, SFX_RAZOR_WIND - anim_wait 8 - anim_loop $4, BattleAnim_Twister_branch_cb897 - anim_incobj $1 - anim_incobj $2 - anim_incobj $3 - anim_incobj $4 - anim_incobj $5 - anim_incobj $6 - anim_incobj $7 - anim_incobj $8 - anim_incobj $9 + anim_obj ANIM_OBJ_01, -14, 0, 8, 0, $18 +.loop3 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_wait 8 + anim_loop 4, .loop3 + anim_obj ANIM_OBJ_01, 16, 0, 4, 0, $18 +.loop4 + anim_sound 0, 1, SFX_RAZOR_WIND + anim_wait 8 + anim_loop 4, .loop4 + anim_incobj 1 + anim_incobj 2 + anim_incobj 3 + anim_incobj 4 + anim_incobj 5 + anim_incobj 6 + anim_incobj 7 + anim_incobj 8 + anim_incobj 9 anim_wait 32 anim_ret ; cb8b3 @@ -4713,12 +4699,12 @@ BattleAnim_RainDance: ; cb8b3 anim_1gfx ANIM_GFX_WATER anim_bgp $f8 anim_obp0 $7c - anim_sound $1, SFX_RAIN_DANCE - anim_obj $af, 88, 0, $0 + anim_sound 0, 1, SFX_RAIN_DANCE + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $0 anim_wait 8 - anim_obj $af, 88, 0, $1 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $1 anim_wait 8 - anim_obj $af, 88, 0, $2 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 anim_wait 128 anim_ret ; cb8cf @@ -4726,47 +4712,47 @@ BattleAnim_RainDance: ; cb8b3 BattleAnim_SunnyDay: ; cb8cf anim_1gfx ANIM_GFX_WATER anim_bgp $90 - anim_sound $1, SFX_MORNING_SUN - anim_obj $af, 88, 0, $2 + anim_sound 0, 1, SFX_MORNING_SUN + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 anim_wait 8 - anim_obj $af, 88, 0, $2 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 anim_wait 8 - anim_obj $af, 88, 0, $2 + anim_obj ANIM_OBJ_AF, 11, 0, 0, 0, $2 anim_wait 128 anim_ret ; cb8e9 BattleAnim_MirrorCoat: ; cb8e9 anim_2gfx ANIM_GFX_REFLECT, ANIM_GFX_SPEED - anim_bgeffect $6, $0, $2, $0 -BattleAnim_MirrorCoat_branch_cb8f1: ; cb8f1 - anim_sound $0, SFX_SHINE - anim_obj $50, 72, 80, $0 - anim_obj $ae, 64, 72, $4 + anim_bgeffect ANIM_BG_06, $0, $2, $0 +.loop + anim_sound 0, 0, SFX_SHINE + anim_obj ANIM_OBJ_50, 9, 0, 10, 0, $0 + anim_obj ANIM_OBJ_AE, 8, 0, 9, 0, $4 anim_wait 8 - anim_obj $ae, 64, 88, $4 + anim_obj ANIM_OBJ_AE, 8, 0, 11, 0, $4 anim_wait 8 - anim_obj $ae, 64, 80, $4 + anim_obj ANIM_OBJ_AE, 8, 0, 10, 0, $4 anim_wait 8 - anim_obj $ae, 64, 96, $4 + anim_obj ANIM_OBJ_AE, 8, 0, 12, 0, $4 anim_wait 8 - anim_loop $3, BattleAnim_MirrorCoat_branch_cb8f1 + anim_loop 3, .loop anim_wait 32 anim_ret ; cb917 BattleAnim_PsychUp: ; cb917 anim_1gfx ANIM_GFX_STATUS - anim_call BattleAnim_PsychUp_branch_cbca7 - anim_bgeffect $1a, $0, $1, $20 - anim_sound $0, SFX_PSYBEAM - anim_obj $b1, 44, 88, $0 - anim_obj $b1, 44, 88, $10 - anim_obj $b1, 44, 88, $20 - anim_obj $b1, 44, 88, $30 + anim_call BattleAnim_FollowEnemyFeet_0 + anim_bgeffect ANIM_BG_1A, $0, $1, $20 + anim_sound 0, 0, SFX_PSYBEAM + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $0 + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $10 + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $20 + anim_obj ANIM_OBJ_B1, 5, 4, 11, 0, $30 anim_wait 64 - anim_incbgeffect $1a - anim_call BattleAnim_PsychUp_branch_cbcb7 + anim_incbgeffect ANIM_BG_1A + anim_call BattleAnim_ShowMon_0 anim_wait 16 anim_ret ; cb940 @@ -4774,16 +4760,16 @@ BattleAnim_PsychUp: ; cb917 BattleAnim_Extremespeed: ; cb940 anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_CUT anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0 - anim_sound $0, SFX_MENU - anim_obj $77, 24, 88, $2 - anim_obj $77, 32, 88, $1 - anim_obj $77, 40, 88, $0 - anim_obj $77, 48, 88, $80 - anim_obj $77, 56, 88, $81 - anim_obj $77, 64, 88, $82 + anim_sound 0, 0, SFX_MENU + anim_obj ANIM_OBJ_77, 3, 0, 11, 0, $2 + anim_obj ANIM_OBJ_77, 4, 0, 11, 0, $1 + anim_obj ANIM_OBJ_77, 5, 0, 11, 0, $0 + anim_obj ANIM_OBJ_77, 6, 0, 11, 0, $80 + anim_obj ANIM_OBJ_77, 7, 0, 11, 0, $81 + anim_obj ANIM_OBJ_77, 8, 0, 11, 0, $82 anim_wait 12 - anim_sound $1, SFX_CUT - anim_obj $3a, 152, 40, $0 + anim_sound 0, 1, SFX_CUT + anim_obj ANIM_OBJ_3A, -13, 0, 5, 0, $0 anim_wait 32 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 16 @@ -4792,29 +4778,29 @@ BattleAnim_Extremespeed: ; cb940 BattleAnim_Ancientpower: ; cb97a anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT - anim_sound $0, SFX_SPARK - anim_obj $b2, 64, 108, $20 + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 8, 0, 13, 4, $20 anim_wait 8 - anim_sound $0, SFX_SPARK - anim_obj $b2, 75, 102, $20 + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 9, 3, 12, 6, $20 anim_wait 8 - anim_sound $0, SFX_SPARK - anim_obj $b2, 85, 97, $20 + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 10, 5, 12, 1, $20 anim_wait 8 - anim_sound $0, SFX_SPARK - anim_obj $b2, 96, 92, $20 + anim_sound 0, 0, SFX_SPARK + anim_obj ANIM_OBJ_B2, 12, 0, 11, 4, $20 anim_wait 8 - anim_sound $1, SFX_SPARK - anim_obj $b2, 106, 87, $20 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B2, 13, 2, 10, 7, $20 anim_wait 8 - anim_sound $1, SFX_SPARK - anim_obj $b2, 116, 82, $20 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B2, 14, 4, 10, 2, $20 anim_wait 8 - anim_sound $1, SFX_SPARK - anim_obj $b2, 126, 77, $20 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B2, 15, 6, 9, 5, $20 anim_wait 8 - anim_sound $1, SFX_SPARK - anim_obj $0, 136, 56, $0 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_00, -15, 0, 7, 0, $0 anim_wait 6 anim_ret ; cb9c6 @@ -4822,55 +4808,55 @@ BattleAnim_Ancientpower: ; cb97a BattleAnim_ShadowBall: ; cb9c6 anim_2gfx ANIM_GFX_EGG, ANIM_GFX_SMOKE anim_bgp $1b - anim_sound $1a, SFX_SLUDGE_BOMB - anim_obj $b4, 64, 92, $2 + anim_sound 6, 2, SFX_SLUDGE_BOMB + anim_obj ANIM_OBJ_B4, 8, 0, 11, 4, $2 anim_wait 32 - anim_obj $1c, 132, 56, $10 + anim_obj ANIM_OBJ_1C, -16, 4, 7, 0, $10 anim_wait 24 anim_ret ; cb9db BattleAnim_FutureSight: ; cb9db anim_1gfx ANIM_GFX_WIND - anim_bgeffect $6, $0, $2, $0 + anim_bgeffect ANIM_BG_06, $0, $2, $0 anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0 anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0 - anim_obj $7d, 8, 24, $10 - anim_obj $7d, 8, 48, $2 - anim_obj $7d, 8, 88, $8 + anim_obj ANIM_OBJ_7D, 1, 0, 3, 0, $10 + anim_obj ANIM_OBJ_7D, 1, 0, 6, 0, $2 + anim_obj ANIM_OBJ_7D, 1, 0, 11, 0, $8 anim_wait 4 - anim_obj $7d, 8, 32, $6 - anim_obj $7d, 8, 56, $c - anim_obj $7d, 8, 80, $4 - anim_obj $7d, 8, 104, $e -BattleAnim_FutureSight_branch_cba10: ; cba10 - anim_sound $0, SFX_THROW_BALL - anim_wait 16 - anim_loop $4, BattleAnim_FutureSight_branch_cba10 + anim_obj ANIM_OBJ_7D, 1, 0, 4, 0, $6 + anim_obj ANIM_OBJ_7D, 1, 0, 7, 0, $c + anim_obj ANIM_OBJ_7D, 1, 0, 10, 0, $4 + anim_obj ANIM_OBJ_7D, 1, 0, 13, 0, $e +.loop + anim_sound 0, 0, SFX_THROW_BALL + anim_wait 16 + anim_loop 4, .loop anim_incbgeffect ANIM_BG_PSYCHIC anim_ret ; cba1b BattleAnim_RockSmash: ; cba1b anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT - anim_sound $1, SFX_SPARK - anim_obj $1, 128, 56, $0 - anim_sound $1, SFX_SPARK - anim_obj $b5, 128, 64, $28 - anim_obj $b5, 128, 64, $5c - anim_sound $1, SFX_SPARK - anim_obj $b5, 128, 64, $10 - anim_obj $b5, 128, 64, $e8 - anim_sound $1, SFX_SPARK - anim_obj $b5, 128, 64, $9c - anim_obj $b5, 128, 64, $d0 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_01, 16, 0, 7, 0, $0 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $28 + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $5c + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $10 + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $e8 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $9c + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $d0 anim_wait 6 - anim_sound $1, SFX_SPARK - anim_obj $b5, 128, 64, $1c - anim_obj $b5, 128, 64, $50 - anim_sound $1, SFX_SPARK - anim_obj $b5, 128, 64, $dc - anim_obj $b5, 128, 64, $90 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $1c + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $50 + anim_sound 0, 1, SFX_SPARK + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $dc + anim_obj ANIM_OBJ_B5, 16, 0, 8, 0, $90 anim_wait 32 anim_ret ; cba6a @@ -4878,12 +4864,12 @@ BattleAnim_RockSmash: ; cba1b BattleAnim_Whirlpool: ; cba6a anim_1gfx ANIM_GFX_WIND anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0 - anim_sound $1, SFX_SURF + anim_sound 0, 1, SFX_SURF anim_wait 16 -BattleAnim_Whirlpool_branch_cba75: ; cba75 - anim_obj ANIM_OBJ_GUST, 132, 72, $0 +.loop + anim_obj ANIM_OBJ_GUST, -16, 4, 9, 0, $0 anim_wait 6 - anim_loop $9, BattleAnim_Whirlpool_branch_cba75 + anim_loop 9, .loop anim_wait 64 anim_incbgeffect ANIM_BG_WHIRLPOOL anim_wait 1 @@ -4891,104 +4877,104 @@ BattleAnim_Whirlpool_branch_cba75: ; cba75 ; cba84 BattleAnim_BeatUp: ; cba84 - anim_jumpif $0, BattleAnim_BeatUp_branch_cba9b - anim_sound $0, SFX_BALL_POOF + anim_jumpif $0, .current_mon + anim_sound 0, 0, SFX_BALL_POOF anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0 anim_wait 16 anim_beatup - anim_sound $0, SFX_BALL_POOF + anim_sound 0, 0, SFX_BALL_POOF anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0 anim_wait 16 -BattleAnim_BeatUp_branch_cba9b: ; cba9b +.current_mon anim_1gfx ANIM_GFX_HIT - anim_call BattleAnim_BeatUp_branch_cbca7 + anim_call BattleAnim_FollowEnemyFeet_0 anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0 anim_wait 4 - anim_sound $1, SFX_BEAT_UP - anim_obj $0, 136, 48, $0 + anim_sound 0, 1, SFX_BEAT_UP + anim_obj ANIM_OBJ_00, -15, 0, 6, 0, $0 anim_wait 8 - anim_call BattleAnim_BeatUp_branch_cbcb7 + anim_call BattleAnim_ShowMon_0 anim_ret ; cbab3 BattleAnim_DreamEater_branch_cbab3: ; cbab3 BattleAnim_GigaDrain_branch_cbab3: ; cbab3 BattleAnim_LeechLife_branch_cbab3: ; cbab3 - anim_obj $71, 132, 44, $0 - anim_obj $71, 132, 44, $8 - anim_obj $71, 132, 44, $10 - anim_obj $71, 132, 44, $18 - anim_obj $71, 132, 44, $20 - anim_obj $71, 132, 44, $28 - anim_obj $71, 132, 44, $30 - anim_obj $71, 132, 44, $38 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $0 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $8 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $10 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $18 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $20 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $28 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $30 + anim_obj ANIM_OBJ_71, -16, 4, 5, 4, $38 anim_ret ; cbadc BattleAnim_Glare_branch_cbadc: ; cbadc BattleAnim_Leer_branch_cbadc: ; cbadc BattleAnim_ScaryFace_branch_cbadc: ; cbadc - anim_sound $1a, SFX_LEER - anim_obj $4e, 72, 84, $0 - anim_obj $4e, 64, 80, $0 - anim_obj $4e, 88, 76, $0 - anim_obj $4e, 80, 72, $0 - anim_obj $4e, 104, 68, $0 - anim_obj $4e, 96, 64, $0 - anim_obj $4e, 120, 60, $0 - anim_obj $4e, 112, 56, $0 - anim_obj $4f, 130, 54, $0 - anim_obj $4f, 122, 50, $0 + anim_sound 6, 2, SFX_LEER + anim_obj ANIM_OBJ_4E, 9, 0, 10, 4, $0 + anim_obj ANIM_OBJ_4E, 8, 0, 10, 0, $0 + anim_obj ANIM_OBJ_4E, 11, 0, 9, 4, $0 + anim_obj ANIM_OBJ_4E, 10, 0, 9, 0, $0 + anim_obj ANIM_OBJ_4E, 13, 0, 8, 4, $0 + anim_obj ANIM_OBJ_4E, 12, 0, 8, 0, $0 + anim_obj ANIM_OBJ_4E, 15, 0, 7, 4, $0 + anim_obj ANIM_OBJ_4E, 14, 0, 7, 0, $0 + anim_obj ANIM_OBJ_4F, -16, 2, 6, 6, $0 + anim_obj ANIM_OBJ_4F, 15, 2, 6, 2, $0 anim_ret ; cbb12 BattleAnim_Fly_branch_cbb12: ; cbb12 BattleAnim_Teleport_branch_cbb12: ; cbb12 - anim_sound $0, SFX_WARP_TO - anim_obj $44, 44, 108, $0 - anim_obj $44, 44, 100, $0 - anim_obj $44, 44, 92, $0 - anim_obj $44, 44, 84, $0 - anim_obj $44, 44, 76, $0 - anim_obj $44, 44, 68, $0 - anim_obj $44, 44, 60, $0 + anim_sound 0, 0, SFX_WARP_TO + anim_obj ANIM_OBJ_44, 5, 4, 13, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 12, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 11, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 10, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 9, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 8, 4, $0 + anim_obj ANIM_OBJ_44, 5, 4, 7, 4, $0 anim_ret ; cbb39 BattleAnim_AuroraBeam_branch_cbb39: ; cbb39 BattleAnim_HyperBeam_branch_cbb39: ; cbb39 BattleAnim_Solarbeam_branch_cbb39: ; cbb39 - anim_sound $0, SFX_HYPER_BEAM - anim_obj $27, 64, 92, $0 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 8, 0, 11, 4, $0 anim_wait 4 - anim_sound $0, SFX_HYPER_BEAM - anim_obj $27, 80, 84, $0 + anim_sound 0, 0, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 10, 0, 10, 4, $0 anim_wait 4 - anim_sound $1, SFX_HYPER_BEAM - anim_obj $27, 96, 76, $0 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 12, 0, 9, 4, $0 anim_wait 4 - anim_sound $1, SFX_HYPER_BEAM - anim_obj $27, 112, 68, $0 - anim_obj $28, 126, 62, $0 + anim_sound 0, 1, SFX_HYPER_BEAM + anim_obj ANIM_OBJ_27, 14, 0, 8, 4, $0 + anim_obj ANIM_OBJ_28, 15, 6, 7, 6, $0 anim_ret ; cbb62 BattleAnim_Explosion_branch_cbb62: ; cbb62 BattleAnim_Selfdestruct_branch_cbb62: ; cbb62 - anim_sound $0, SFX_EGG_BOMB - anim_obj $17, 24, 64, $0 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 3, 0, 8, 0, $0 anim_wait 5 - anim_sound $0, SFX_EGG_BOMB - anim_obj $17, 56, 104, $0 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 7, 0, 13, 0, $0 anim_wait 5 - anim_sound $0, SFX_EGG_BOMB - anim_obj $17, 24, 104, $0 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 3, 0, 13, 0, $0 anim_wait 5 - anim_sound $0, SFX_EGG_BOMB - anim_obj $17, 56, 64, $0 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 7, 0, 8, 0, $0 anim_wait 5 - anim_sound $0, SFX_EGG_BOMB - anim_obj $17, 40, 84, $0 + anim_sound 0, 0, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 5, 0, 10, 4, $0 anim_ret ; cbb8f @@ -4996,89 +4982,90 @@ BattleAnim_Dynamicpunch_branch_cbb8f: ; cbb8f BattleAnim_Explosion_branch_cbb8f: ; cbb8f BattleAnim_Present_branch_cbb8f: ; cbb8f BattleAnim_Selfdestruct_branch_cbb8f: ; cbb8f - anim_sound $1, SFX_EGG_BOMB - anim_obj $17, 148, 32, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, -14, 4, 4, 0, $0 anim_wait 5 - anim_sound $1, SFX_EGG_BOMB - anim_obj $17, 116, 72, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 14, 4, 9, 0, $0 anim_wait 5 - anim_sound $1, SFX_EGG_BOMB - anim_obj $17, 148, 72, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, -14, 4, 9, 0, $0 anim_wait 5 - anim_sound $1, SFX_EGG_BOMB - anim_obj $17, 116, 32, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, 14, 4, 4, 0, $0 anim_wait 5 - anim_sound $1, SFX_EGG_BOMB - anim_obj $17, 132, 52, $0 + anim_sound 0, 1, SFX_EGG_BOMB + anim_obj ANIM_OBJ_17, -16, 4, 6, 4, $0 anim_ret ; cbbbc BattleAnim_Growl_branch_cbbbc: ; cbbbc BattleAnim_Roar_branch_cbbbc: ; cbbbc BattleAnim_Snore_branch_cbbbc: ; cbbbc - anim_obj $4b, 64, 76, $0 - anim_obj $4b, 64, 88, $1 - anim_obj $4b, 64, 100, $2 + anim_obj ANIM_OBJ_4B, 8, 0, 9, 4, $0 + anim_obj ANIM_OBJ_4B, 8, 0, 11, 0, $1 + anim_obj ANIM_OBJ_4B, 8, 0, 12, 4, $2 anim_ret ; cbbcc BattleAnim_FirePunch_branch_cbbcc: ; cbbcc BattleAnim_TriAttack_branch_cbbcc: ; cbbcc - anim_sound $1, SFX_EMBER -BattleAnim_FirePunch_branch_cbbcf: ; cbbcf -BattleAnim_TriAttack_branch_cbbcf: ; cbbcf - anim_obj $10, 136, 56, $10 - anim_obj $10, 136, 56, $90 + anim_sound 0, 1, SFX_EMBER +.loop + anim_obj ANIM_OBJ_BURNED, -15, 0, 7, 0, $10 + anim_obj ANIM_OBJ_BURNED, -15, 0, 7, 0, $90 anim_wait 4 - anim_loop $4, BattleAnim_FirePunch_branch_cbbcf + anim_loop 4, .loop anim_ret ; cbbdf BattleAnim_IcePunch_branch_cbbdf: ; cbbdf BattleAnim_PowderSnow_branch_cbbdf: ; cbbdf BattleAnim_TriAttack_branch_cbbdf: ; cbbdf - anim_sound $1, SFX_SHINE - anim_obj $12, 128, 42, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, 16, 0, 5, 2, $0 anim_wait 6 - anim_sound $1, SFX_SHINE - anim_obj $12, 144, 70, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, -14, 0, 8, 6, $0 anim_wait 6 - anim_sound $1, SFX_SHINE - anim_obj $12, 120, 56, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, 15, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_SHINE - anim_obj $12, 152, 56, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, -13, 0, 7, 0, $0 anim_wait 6 - anim_sound $1, SFX_SHINE - anim_obj $12, 144, 42, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, -14, 0, 5, 2, $0 anim_wait 6 - anim_sound $1, SFX_SHINE - anim_obj $12, 128, 70, $0 + anim_sound 0, 1, SFX_SHINE + anim_obj ANIM_OBJ_12, 16, 0, 8, 6, $0 anim_ret ; cbc15 BattleAnim_SludgeBomb_branch_cbc15: ; cbc15 BattleAnim_Sludge_branch_cbc15: ; cbc15 BattleAnim_Toxic_branch_cbc15: ; cbc15 - anim_sound $1, SFX_UNKNOWN_7F - anim_obj $1a, 132, 72, $0 +.loop + anim_sound 0, 1, SFX_UNKNOWN_7F + anim_obj ANIM_OBJ_1A, -16, 4, 9, 0, $0 anim_wait 8 - anim_sound $1, SFX_UNKNOWN_7F - anim_obj $1a, 116, 72, $0 + anim_sound 0, 1, SFX_UNKNOWN_7F + anim_obj ANIM_OBJ_1A, 14, 4, 9, 0, $0 anim_wait 8 - anim_sound $1, SFX_UNKNOWN_7F - anim_obj $1a, 148, 72, $0 + anim_sound 0, 1, SFX_UNKNOWN_7F + anim_obj ANIM_OBJ_1A, -14, 4, 9, 0, $0 anim_wait 8 - anim_loop $5, BattleAnim_SludgeBomb_branch_cbc15 + anim_loop 5, .loop anim_ret ; cbc35 BattleAnim_Acid_branch_cbc35: ; cbc35 BattleAnim_Toxic_branch_cbc35: ; cbc35 - anim_sound $1a, SFX_BUBBLEBEAM - anim_obj $19, 64, 92, $10 +.loop + anim_sound 6, 2, SFX_BUBBLEBEAM + anim_obj ANIM_OBJ_19, 8, 0, 11, 4, $10 anim_wait 5 - anim_loop $8, BattleAnim_Acid_branch_cbc35 + anim_loop 8, .loop anim_ret ; cbc43 @@ -5086,23 +5073,24 @@ BattleAnim_Harden_branch_cbc43: ; cbc43 BattleAnim_IronTail_branch_cbc43: ; cbc43 BattleAnim_MetalClaw_branch_cbc43: ; cbc43 BattleAnim_SteelWing_branch_cbc43: ; cbc43 - anim_sound $0, SFX_SHINE - anim_bgeffect $17, $0, $1, $40 + anim_sound 0, 0, SFX_SHINE + anim_bgeffect ANIM_BG_17, $0, $1, $40 anim_wait 8 - anim_obj $51, 48, 84, $0 + anim_obj ANIM_OBJ_51, 6, 0, 10, 4, $0 anim_wait 32 - anim_obj $51, 48, 84, $0 + anim_obj ANIM_OBJ_51, 6, 0, 10, 4, $0 anim_wait 64 - anim_incbgeffect $17 + anim_incbgeffect ANIM_BG_17 anim_ret ; cbc5b BattleAnim_MudSlap_branch_cbc5b: ; cbc5b BattleAnim_SandAttack_branch_cbc5b: ; cbc5b - anim_sound $1a, SFX_MENU - anim_obj $58, 64, 92, $4 +.loop + anim_sound 6, 2, SFX_MENU + anim_obj ANIM_OBJ_58, 8, 0, 11, 4, $4 anim_wait 4 - anim_loop $8, BattleAnim_MudSlap_branch_cbc5b + anim_loop 8, .loop anim_wait 32 anim_ret ; cbc6a @@ -5110,12 +5098,12 @@ BattleAnim_SandAttack_branch_cbc5b: ; cbc5b BattleAnim_Moonlight_branch_cbc6a: ; cbc6a BattleAnim_MorningSun_branch_cbc6a: ; cbc6a BattleAnim_Synthesis_branch_cbc6a: ; cbc6a - anim_sound $0, SFX_METRONOME - anim_obj $9d, 44, 64, $0 + anim_sound 0, 0, SFX_METRONOME + anim_obj ANIM_OBJ_9D, 5, 4, 8, 0, $0 anim_wait 5 - anim_obj $9d, 24, 96, $0 + anim_obj ANIM_OBJ_9D, 3, 0, 12, 0, $0 anim_wait 5 - anim_obj $9d, 56, 104, $0 + anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0 anim_wait 21 anim_ret ; cbc80 @@ -5123,189 +5111,65 @@ BattleAnim_Synthesis_branch_cbc6a: ; cbc6a BattleAnim_Moonlight_branch_cbc80: ; cbc80 BattleAnim_MorningSun_branch_cbc80: ; cbc80 BattleAnim_Synthesis_branch_cbc80: ; cbc80 - anim_sound $0, SFX_METRONOME -BattleAnim_Moonlight_branch_cbc83: ; cbc83 -BattleAnim_MorningSun_branch_cbc83: ; cbc83 -BattleAnim_Synthesis_branch_cbc83: ; cbc83 - anim_obj $9d, 24, 64, $0 + anim_sound 0, 0, SFX_METRONOME +.loop + anim_obj ANIM_OBJ_9D, 3, 0, 8, 0, $0 anim_wait 5 - anim_obj $9d, 56, 104, $0 + anim_obj ANIM_OBJ_9D, 7, 0, 13, 0, $0 anim_wait 5 - anim_obj $9d, 24, 104, $0 + anim_obj ANIM_OBJ_9D, 3, 0, 13, 0, $0 anim_wait 5 - anim_obj $9d, 56, 64, $0 + anim_obj ANIM_OBJ_9D, 7, 0, 8, 0, $0 anim_wait 5 - anim_obj $9d, 40, 84, $0 + anim_obj ANIM_OBJ_9D, 5, 0, 10, 4, $0 anim_wait 5 - anim_loop $2, BattleAnim_Moonlight_branch_cbc83 + anim_loop 2, .loop anim_wait 16 anim_ret ; cbca7 -BattleAnim_Agility_branch_cbca7: ; cbca7 -BattleAnim_BeatUp_branch_cbca7: ; cbca7 -BattleAnim_Bide_branch_cbca7: ; cbca7 -BattleAnim_Charm_branch_cbca7: ; cbca7 -BattleAnim_Curse_branch_cbca7: ; cbca7 -BattleAnim_DefenseCurl_branch_cbca7: ; cbca7 -BattleAnim_DoubleEdge_branch_cbca7: ; cbca7 -BattleAnim_Endure_branch_cbca7: ; cbca7 -BattleAnim_FaintAttack_branch_cbca7: ; cbca7 -BattleAnim_Flail_branch_cbca7: ; cbca7 -BattleAnim_FlameWheel_branch_cbca7: ; cbca7 -BattleAnim_FocusEnergy_branch_cbca7: ; cbca7 -BattleAnim_Frustration_branch_cbca7: ; cbca7 -BattleAnim_GigaDrain_branch_cbca7: ; cbca7 -BattleAnim_Harden_branch_cbca7: ; cbca7 -BattleAnim_Headbutt_branch_cbca7: ; cbca7 -BattleAnim_HiddenPower_branch_cbca7: ; cbca7 -BattleAnim_IronTail_branch_cbca7: ; cbca7 -BattleAnim_Meditate_branch_cbca7: ; cbca7 -BattleAnim_MegaDrain_branch_cbca7: ; cbca7 -BattleAnim_MetalClaw_branch_cbca7: ; cbca7 -BattleAnim_MilkDrink_branch_cbca7: ; cbca7 -BattleAnim_Outrage_branch_cbca7: ; cbca7 -BattleAnim_PsychUp_branch_cbca7: ; cbca7 -BattleAnim_Rage_branch_cbca7: ; cbca7 -BattleAnim_RazorWind_branch_cbca7: ; cbca7 -BattleAnim_Recover_branch_cbca7: ; cbca7 -BattleAnim_SacredFire_branch_cbca7: ; cbca7 -BattleAnim_SendOutMon_branch_cbca7: ; cbca7 -BattleAnim_Sharpen_branch_cbca7: ; cbca7 -BattleAnim_Sketch_branch_cbca7: ; cbca7 -BattleAnim_SkullBash_branch_cbca7: ; cbca7 -BattleAnim_SkyAttack_branch_cbca7: ; cbca7 -BattleAnim_Softboiled_branch_cbca7: ; cbca7 -BattleAnim_Spark_branch_cbca7: ; cbca7 -BattleAnim_SteelWing_branch_cbca7: ; cbca7 -BattleAnim_Synthesis_branch_cbca7: ; cbca7 -BattleAnim_TakeDown_branch_cbca7: ; cbca7 -BattleAnim_Teleport_branch_cbca7: ; cbca7 -BattleAnim_Thief_branch_cbca7: ; cbca7 -BattleAnim_VitalThrow_branch_cbca7: ; cbca7 +BattleAnim_FollowEnemyFeet_0: ; cbca7 anim_enemyfeetobj anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $0, $0 anim_wait 6 anim_ret ; cbcaf -BattleAnim_AcidArmor_branch_cbcaf: ; cbcaf -BattleAnim_BodySlam_branch_cbcaf: ; cbcaf -BattleAnim_Dig_branch_cbcaf: ; cbcaf -BattleAnim_DoubleTeam_branch_cbcaf: ; cbcaf -BattleAnim_Minimize_branch_cbcaf: ; cbcaf -BattleAnim_PainSplit_branch_cbcaf: ; cbcaf -BattleAnim_RapidSpin_branch_cbcaf: ; cbcaf -BattleAnim_Return_branch_cbcaf: ; cbcaf -BattleAnim_Rollout_branch_cbcaf: ; cbcaf -BattleAnim_Splash_branch_cbcaf: ; cbcaf -BattleAnim_Tackle_branch_cbcaf: ; cbcaf -BattleAnim_TailWhip_branch_cbcaf: ; cbcaf -BattleAnim_Transform_branch_cbcaf: ; cbcaf -BattleAnim_Waterfall_branch_cbcaf: ; cbcaf -BattleAnim_Withdraw_branch_cbcaf: ; cbcaf +BattleAnim_FollowPlayerHead_0: ; cbcaf anim_playerheadobj anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $0, $0 anim_wait 6 anim_ret ; cbcb7 -BattleAnim_AcidArmor_branch_cbcb7: ; cbcb7 -BattleAnim_Agility_branch_cbcb7: ; cbcb7 -BattleAnim_BeatUp_branch_cbcb7: ; cbcb7 -BattleAnim_Bide_branch_cbcb7: ; cbcb7 -BattleAnim_BodySlam_branch_cbcb7: ; cbcb7 -BattleAnim_Charm_branch_cbcb7: ; cbcb7 -BattleAnim_Curse_branch_cbcb7: ; cbcb7 -BattleAnim_DefenseCurl_branch_cbcb7: ; cbcb7 -BattleAnim_Dig_branch_cbcb7: ; cbcb7 -BattleAnim_DoubleEdge_branch_cbcb7: ; cbcb7 -BattleAnim_DoubleTeam_branch_cbcb7: ; cbcb7 -BattleAnim_Endure_branch_cbcb7: ; cbcb7 -BattleAnim_FaintAttack_branch_cbcb7: ; cbcb7 -BattleAnim_Flail_branch_cbcb7: ; cbcb7 -BattleAnim_FocusEnergy_branch_cbcb7: ; cbcb7 -BattleAnim_Frustration_branch_cbcb7: ; cbcb7 -BattleAnim_GigaDrain_branch_cbcb7: ; cbcb7 -BattleAnim_Harden_branch_cbcb7: ; cbcb7 -BattleAnim_Headbutt_branch_cbcb7: ; cbcb7 -BattleAnim_HiddenPower_branch_cbcb7: ; cbcb7 -BattleAnim_IronTail_branch_cbcb7: ; cbcb7 -BattleAnim_Meditate_branch_cbcb7: ; cbcb7 -BattleAnim_MegaDrain_branch_cbcb7: ; cbcb7 -BattleAnim_MetalClaw_branch_cbcb7: ; cbcb7 -BattleAnim_MilkDrink_branch_cbcb7: ; cbcb7 -BattleAnim_Minimize_branch_cbcb7: ; cbcb7 -BattleAnim_Outrage_branch_cbcb7: ; cbcb7 -BattleAnim_PainSplit_branch_cbcb7: ; cbcb7 -BattleAnim_PsychUp_branch_cbcb7: ; cbcb7 -BattleAnim_Rage_branch_cbcb7: ; cbcb7 -BattleAnim_RazorWind_branch_cbcb7: ; cbcb7 -BattleAnim_Recover_branch_cbcb7: ; cbcb7 -BattleAnim_Return_branch_cbcb7: ; cbcb7 -BattleAnim_Rollout_branch_cbcb7: ; cbcb7 -BattleAnim_SendOutMon_branch_cbcb7: ; cbcb7 -BattleAnim_Sharpen_branch_cbcb7: ; cbcb7 -BattleAnim_Sketch_branch_cbcb7: ; cbcb7 -BattleAnim_SkullBash_branch_cbcb7: ; cbcb7 -BattleAnim_SkyAttack_branch_cbcb7: ; cbcb7 -BattleAnim_Softboiled_branch_cbcb7: ; cbcb7 -BattleAnim_Splash_branch_cbcb7: ; cbcb7 -BattleAnim_SteelWing_branch_cbcb7: ; cbcb7 -BattleAnim_Synthesis_branch_cbcb7: ; cbcb7 -BattleAnim_Tackle_branch_cbcb7: ; cbcb7 -BattleAnim_TailWhip_branch_cbcb7: ; cbcb7 -BattleAnim_TakeDown_branch_cbcb7: ; cbcb7 -BattleAnim_Teleport_branch_cbcb7: ; cbcb7 -BattleAnim_Thief_branch_cbcb7: ; cbcb7 -BattleAnim_Transform_branch_cbcb7: ; cbcb7 -BattleAnim_VitalThrow_branch_cbcb7: ; cbcb7 -BattleAnim_Waterfall_branch_cbcb7: ; cbcb7 -BattleAnim_Withdraw_branch_cbcb7: ; cbcb7 +BattleAnim_ShowMon_0: ; cbcb7 anim_wait 1 anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0 anim_wait 5 - anim_incobj $1 + anim_incobj 1 anim_wait 1 anim_ret ; cbcc2 -BattleAnim_EnemyStatDown_branch_cbcc2: ; cbcc2 -BattleAnim_Foresight_branch_cbcc2: ; cbcc2 -BattleAnim_PlayerStatDown_branch_cbcc2: ; cbcc2 -BattleAnim_Pursuit_branch_cbcc2: ; cbcc2 -BattleAnim_Submission_branch_cbcc2: ; cbcc2 +BattleAnim_FollowEnemyFeet_1: ; cbcc2 anim_enemyfeetobj anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0 anim_wait 6 anim_ret ; cbcca -BattleAnim_Bubblebeam_branch_cbcca: ; cbcca -BattleAnim_Confusion_branch_cbcca: ; cbcca -BattleAnim_HydroPump_branch_cbcca: ; cbcca -BattleAnim_NightShade_branch_cbcca: ; cbcca -BattleAnim_WaterGun_branch_cbcca: ; cbcca +BattleAnim_FollowPlayerHead_1: ; cbcca anim_playerheadobj anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0 anim_wait 4 anim_ret ; cbcd2 -BattleAnim_Bubblebeam_branch_cbcd2: ; cbcd2 -BattleAnim_Confusion_branch_cbcd2: ; cbcd2 -BattleAnim_EnemyStatDown_branch_cbcd2: ; cbcd2 -BattleAnim_Foresight_branch_cbcd2: ; cbcd2 -BattleAnim_HydroPump_branch_cbcd2: ; cbcd2 -BattleAnim_NightShade_branch_cbcd2: ; cbcd2 -BattleAnim_PlayerStatDown_branch_cbcd2: ; cbcd2 -BattleAnim_Pursuit_branch_cbcd2: ; cbcd2 -BattleAnim_Submission_branch_cbcd2: ; cbcd2 -BattleAnim_WaterGun_branch_cbcd2: ; cbcd2 +BattleAnim_ShowMon_1: ; cbcd2 anim_wait 1 anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0 anim_wait 4 - anim_incobj $1 + anim_incobj 1 anim_wait 1 anim_ret ; cbcdd diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm index b6b1901da..188a3e43d 100644 --- a/battle/bg_effects.asm +++ b/battle/bg_effects.asm @@ -1,140 +1,148 @@ + const_def + const BGSQUARE_SIX + const BGSQUARE_FOUR + const BGSQUARE_TWO + const BGSQUARE_SEVEN + const BGSQUARE_FIVE + const BGSQUARE_THREE + ; BG effects for use in battle animations. -Functionc8000: ; c8000 (32:4000) +ExecuteBGEffects: ; c8000 (32:4000) ld hl, ActiveBGEffects - ld e, $5 -.asm_c8005 + ld e, 5 +.loop ld a, [hl] and a - jr z, .asm_c8012 + jr z, .next ld c, l ld b, h push hl push de - call Functionc804a + call DoBattleBGEffectFunction pop de pop hl -.asm_c8012 - ld bc, $4 +.next + ld bc, 4 add hl, bc dec e - jr nz, .asm_c8005 + jr nz, .loop ret -Functionc801a: ; c801a (32:401a) +QueueBGEffect: ; c801a (32:401a) ld hl, ActiveBGEffects - ld e, $5 -.asm_c801f + ld e, 5 +.loop ld a, [hl] and a - jr z, .asm_c802c - ld bc, $4 + jr z, .load + ld bc, 4 add hl, bc dec e - jr nz, .asm_c801f + jr nz, .loop scf ret -.asm_c802c + +.load ld c, l ld b, h - ld hl, $0 + ld hl, BG_EFFECT_STRUCT_FUNCTION add hl, bc - ld a, [BattleAnimTemps] + ld a, [wBattleAnimTemp0] ld [hli], a - ld a, [BattleAnimTemps + 1] + ld a, [wBattleAnimTemp1] ld [hli], a - ld a, [BattleAnimTemps + 2] + ld a, [wBattleAnimTemp2] ld [hli], a - ld a, [BattleAnimTemps + 3] + ld a, [wBattleAnimTemp3] ld [hl], a ret EndBattleBGEffect: ; c8043 (32:4043) - ld hl, 0 + ld hl, BG_EFFECT_STRUCT_FUNCTION add hl, bc ld [hl], 0 ret -Functionc804a: ; c804a (32:404a) - ld hl, 0 +DoBattleBGEffectFunction: ; c804a (32:404a) + ld hl, BG_EFFECT_STRUCT_FUNCTION add hl, bc ld e, [hl] ld d, 0 ld hl, BattleBGEffects -rept 2 add hl, de -endr + add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] BattleBGEffects: ; c805a (32:405a) - dw BattleBGEffect_0 - dw Functionc80eb - dw Functionc80f3 - dw Functionc812d - dw Functionc8141 - dw Functionc8155 - dw Functionc8171 - dw Functionc818b - dw Functionc81a5 - dw Functionc81b3 - dw Functionc81ea - dw Functionc837b - dw Functionc83a8 - dw Functionc8545 - dw Functionc8599 - dw Functionc863f - dw Functionc8662 - dw Functionc8214 - dw Functionc8281 - dw Functionc8689 - dw Functionc8709 - dw Functionc8be8 - dw Functionc8bf2 - dw Functionc8bfd - dw Functionc8c08 - dw Functionc8c14 - dw Functionc8c20 - dw Functionc8c30 - dw Functionc8b00 - dw Functionc8c3c - dw Functionc8c55 - dw Functionc8cf9 - dw Functionc8d02 - dw Functionc8761 - dw Functionc89ee - dw Functionc87a7 - dw Functionc8805 - dw Functionc8837 - dw Functionc892a - dw Functionc82f5 - dw Functionc89b5 - dw Functionc8607 - dw Functionc8a3a - dw Functionc8acc - dw Functionc8964 - dw Functionc88e7 - dw Functionc8ce1 - dw Functionc8919 - dw Functionc85c2 - dw Functionc85ce - dw Functionc8603 - dw Functionc8c61 - dw Functionc8ca2 - dw Functionc8d3a - - -BattleBGEffect_0: ; c80c6 (32:40c6) + dw BattleBGEffect_End + dw BattleBGEffect_FlashInverted + dw BattleBGEffect_FlashWhite + dw BattleBGEffect_WhiteHues + dw BattleBGEffect_BlackHues + dw BattleBGEffect_AlternateHues + dw BattleBGEffect_06 + dw BattleBGEffect_07 + dw BattleBGEffect_08 + dw BattleBGEffect_HideMon + dw BattleBGEffect_ShowMon + dw BattleBGEffect_EnterMon + dw BattleBGEffect_ReturnMon + dw BattleBGEffect_Surf + dw BattleBGEffect_Whirlpool + dw BattleBGEffect_Teleport + dw BattleBGEffect_NightShade + dw BattleBGEffect_FeetFollow + dw BattleBGEffect_HeadFollow + dw BattleBGEffect_DoubleTeam + dw BattleBGEffect_AcidArmor + dw BattleBGEffect_RapidFlash + dw BattleBGEffect_16 + dw BattleBGEffect_17 + dw BattleBGEffect_18 + dw BattleBGEffect_19 + dw BattleBGEffect_1a + dw BattleBGEffect_1b + dw BattleBGEffect_1c + dw BattleBGEffect_1d + dw BattleBGEffect_1e + dw BattleBGEffect_1f + dw BattleBGEffect_20 + dw BattleBGEffect_21 + dw BattleBGEffect_BounceDown + dw BattleBGEffect_Dig + dw BattleBGEffect_Tackle + dw BattleBGEffect_25 + dw BattleBGEffect_26 + dw BattleBGEffect_27 + dw BattleBGEffect_28 + dw BattleBGEffect_Psychic + dw BattleBGEffect_2a + dw BattleBGEffect_2b + dw BattleBGEffect_2c + dw BattleBGEffect_2d + dw BattleBGEffect_2e + dw BattleBGEffect_2f + dw BattleBGEffect_30 + dw BattleBGEffect_31 + dw BattleBGEffect_32 + dw BattleBGEffect_VibrateMon + dw BattleBGEffect_WobbleMon + dw BattleBGEffect_35 + + +BattleBGEffect_End: ; c80c6 (32:40c6) call EndBattleBGEffect ret -Functionc80ca: ; c80ca (32:40ca) - ld hl, $1 +BatttleBGEffects_GetNamedJumptablePointer: ; c80ca (32:40ca) + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld l, [hl] - ld h, $0 + ld h, 0 add hl, hl add hl, de ld a, [hli] @@ -142,12 +150,12 @@ Functionc80ca: ; c80ca (32:40ca) ld l, a ret -Functionc80d7: ; c80d7 (32:40d7) +BattleBGEffects_AnonJumptable: ; c80d7 (32:40d7) pop de - ld hl, $1 + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld l, [hl] - ld h, $0 + ld h, 0 add hl, hl add hl, de ld a, [hli] @@ -155,59 +163,58 @@ Functionc80d7: ; c80d7 (32:40d7) ld l, a jp [hl] -Functionc80e5: ; c80e5 (32:40e5) - ld hl, $1 +BattleBGEffects_IncrementJumptable: ; c80e5 (32:40e5) + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc inc [hl] ret -Functionc80eb: ; c80eb (32:40eb) +BattleBGEffect_FlashInverted: ; c80eb (32:40eb) ld de, .inverted - jp Functionc80fb -; c80f1 (32:40f1) + jp BattleBGEffect_FlashContinue .inverted db %11100100 ; 3210 db %00011011 ; 0123 ; c80f3 -Functionc80f3: ; c80f3 (32:40f3) +BattleBGEffect_FlashWhite: ; c80f3 (32:40f3) ld de, .white - jp Functionc80fb -; c80f9 (32:40f9) + jp BattleBGEffect_FlashContinue .white db %11100100 ; 3210 db %00000000 ; 0000 ; c80fb -Functionc80fb: ; c80fb (32:40fb) +BattleBGEffect_FlashContinue: ; c80fb (32:40fb) +; current timer, flash duration, number of flashes ld a, $1 - ld [BattleAnimTemps], a - ld hl, $1 + ld [wBattleAnimTemp0], a + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld a, [hl] and a - jr z, .asm_c810a + jr z, .init dec [hl] ret -.asm_c810a - ld hl, $2 +.init + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] - ld hl, $1 + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld [hl], a - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and a - jr nz, .asm_c8120 + jr nz, .apply_pal call EndBattleBGEffect ret -.asm_c8120 +.apply_pal dec a ld [hl], a and 1 @@ -215,131 +222,153 @@ Functionc80fb: ; c80fb (32:40fb) ld h, 0 add hl, de ld a, [hl] - ld [wcfc7], a + ld [wBGP], a ret -Functionc812d: ; c812d (32:412d) - ld de, Unknown_c813d - call Functionc8d57 - jr c, .asm_c8139 - ld [wcfc7], a +BattleBGEffect_WhiteHues: ; c812d (32:412d) + ld de, .Pals + call BattleBGEffect_GetNthDMGPal + jr c, .quit + ld [wBGP], a ret -.asm_c8139 + +.quit call EndBattleBGEffect ret -; c813d (32:413d) -Unknown_c813d: - db $e4, $e0, $d0, $ff +.Pals + db %11100100 + db %11100000 + db %11010000 + db -1 ; c8141 -Functionc8141: ; c8141 (32:4141) - ld de, Unknown_c8151 - call Functionc8d57 - jr c, .asm_c814d - ld [wcfc7], a +BattleBGEffect_BlackHues: ; c8141 (32:4141) + ld de, .Pals + call BattleBGEffect_GetNthDMGPal + jr c, .quit + ld [wBGP], a ret -.asm_c814d + +.quit call EndBattleBGEffect ret -; c8151 (32:4151) -Unknown_c8151: - db $e4, $f4, $f8, $ff +.Pals + db %11100100 + db %11110100 + db %11111000 + db -1 ; c8155 -Functionc8155: ; c8155 (32:4155) - ld de, Unknown_c8168 - call Functionc8d57 - jr c, .asm_c8164 - ld [wcfc7], a - ld [wcfc9], a +BattleBGEffect_AlternateHues: ; c8155 (32:4155) + ld de, .Pals + call BattleBGEffect_GetNthDMGPal + jr c, .quit + ld [wBGP], a + ld [wOBP1], a ret -.asm_c8164 + +.quit call EndBattleBGEffect ret -; c8168 (32:4168) -Unknown_c8168: - db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe +.Pals + db %11100100 + db %11111000 + db %11111100 + db %11111000 + db %11100100 + db %10010000 + db %01000000 + db %10010000 + db -2 ; c8171 -Functionc8171: ; c8171 (32:4171) - call Functionc9059 - jr nz, .asm_c817b - ld de, Unknown_c8185 - jr .asm_c817e -.asm_c817b - ld de, Unknown_c8188 -.asm_c817e - call Functionc8d57 - ld [wcfc8], a - ret -; c8185 (32:4185) - -Unknown_c8185: - db $e4, $90, $fe -; c8188 - -Unknown_c8188: - db $f0, $c0, $fe +BattleBGEffect_06: ; c8171 (32:4171) + call BattleBGEffects_CheckSGB + jr nz, .sgb + ld de, .PalsCGB + jr .okay + +.sgb + ld de, .PalsSGB +.okay + call BattleBGEffect_GetNthDMGPal + ld [wOBP0], a + ret + +.PalsCGB + db %11100100 + db %10010000 + db -2 + +.PalsSGB + db %11110000 + db %11000000 + db -2 ; c818b -Functionc818b: ; c818b (32:418b) - call Functionc9059 - jr nz, .asm_c8195 - ld de, Unknown_c819f - jr .asm_c8198 -.asm_c8195 - ld de, Unknown_c81a2 -.asm_c8198 - call Functionc8d57 - ld [wcfc8], a - ret -; c819f (32:419f) - -Unknown_c819f: - db $e4, $d8, $fe -; c81a2 - -Unknown_c81a2: - db $f0, $cc, $fe +BattleBGEffect_07: ; c818b (32:418b) + call BattleBGEffects_CheckSGB + jr nz, .sgb + ld de, .PalsCGB + jr .okay + +.sgb + ld de, .PalsSGB +.okay + call BattleBGEffect_GetNthDMGPal + ld [wOBP0], a + ret + +.PalsCGB + db %11100100 + db %11011000 + db -2 + +.PalsSGB + db %11110000 + db %11001100 + db -2 ; c81a5 -Functionc81a5: ; c81a5 (32:41a5) - ld de, Unknown_c81af - call Functionc8d57 - ld [wcfc7], a +BattleBGEffect_08: ; c81a5 (32:41a5) + ld de, .Pals + call BattleBGEffect_GetNthDMGPal + ld [wBGP], a ret -; c81af (32:41af) -Unknown_c81af: - db $1b, $63, $87, $fe +.Pals + db %00011011 + db %01100011 + db %10000111 + db -2 ; c81b3 -Functionc81b3: ; c81b3 (32:41b3) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_HideMon: ; c81b3 (32:41b3) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw .four -Jumptable_c81b6: ; c81b6 (32:41b6) - dw Functionc81c0 - dw Functionc80e5 - dw Functionc80e5 - dw Functionc80e5 - dw Functionc81e3 - -Functionc81c0: ; c81c0 (32:41c0) - call Functionc80e5 +.zero + call BattleBGEffects_IncrementJumptable push bc - call Functionc9038 - jr nz, .asm_c81d1 + call BGEffect_CheckBattleTurn + jr nz, .player_side hlcoord 12, 0 - ld bc, $707 - jr .asm_c81d7 -.asm_c81d1 + lb bc, 7, 7 + jr .got_pointer + +.player_side hlcoord 2, 6 lb bc, 6, 6 -.asm_c81d7 +.got_pointer call ClearBox pop bc xor a @@ -348,402 +377,404 @@ Functionc81c0: ; c81c0 (32:41c0) ld [hBGMapMode], a ret -Functionc81e3: ; c81e3 (32:41e3) +.four xor a ld [hBGMapMode], a call EndBattleBGEffect ret -Functionc81ea: ; c81ea (32:41ea) - call Functionc9042 - jr z, .asm_c81f3 +BattleBGEffect_ShowMon: ; c81ea (32:41ea) + call BGEffect_CheckFlyDigStatus + jr z, .not_flying call EndBattleBGEffect ret -.asm_c81f3 - call Functionc9038 - jr nz, .asm_c81fd - ld de, Unknown_c8210 - jr .asm_c8200 -.asm_c81fd - ld de, Unknown_c820c -.asm_c8200 + +.not_flying + call BGEffect_CheckBattleTurn + jr nz, .player_side + ld de, .EnemyData + jr .got_pointer + +.player_side + ld de, .PlayerData +.got_pointer ld a, e - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a ld a, d - ld [BattleAnimTemps + 2], a - call Functionc83ed + ld [wBattleAnimTemp2], a + call BattleBGEffect_RunPicResizeScript ret -; c820c (32:420c) -Unknown_c820c: - db $00, $31, $00 - db $ff -; c8210 - -Unknown_c8210: - db $03, $00, $03 - db $ff +.PlayerData + db 0, $31, 0 + db -1 +.EnemyData + db 3, $00, 3 + db -1 ; c8214 -Functionc8214: ; c8214 (32:4214) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8217: ; c8217 (32:4217) - dw Functionc8223 - dw Functionc825a - dw Functionc80e5 - dw Functionc80e5 - dw Functionc80e5 - dw Functionc827a - - -Functionc8223: ; c8223 (32:4223) - call Functionc9042 - jr z, .asm_c8230 - ld hl, w5_d40e +BattleBGEffect_FeetFollow: ; c8214 (32:4214) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw .five + + +.zero + call BGEffect_CheckFlyDigStatus + jr z, .not_flying_digging + ld hl, wNumActiveBattleAnims inc [hl] call EndBattleBGEffect ret -.asm_c8230 - call Functionc80e5 + +.not_flying_digging + call BattleBGEffects_IncrementJumptable push bc - call Functionc9038 - jr nz, .asm_c8242 - ld a, $b8 - ld [BattleAnimTemps], a - ld a, $84 - jr .asm_c8249 -.asm_c8242 - ld a, $b9 - ld [BattleAnimTemps], a - ld a, $30 -.asm_c8249 - ld [BattleAnimTemps + 1], a - ld a, $40 - ld [BattleAnimTemps + 2], a + call BGEffect_CheckBattleTurn + jr nz, .player_turn + ld a, ANIM_OBJ_PLAYERFEETFOLLOW + ld [wBattleAnimTemp0], a + ld a, 16 * 8 + 4 + jr .okay + +.player_turn + ld a, ANIM_OBJ_ENEMYFEETFOLLOW + ld [wBattleAnimTemp0], a + ld a, 6 * 8 +.okay + ld [wBattleAnimTemp1], a + ld a, 8 * 8 + ld [wBattleAnimTemp2], a xor a - ld [BattleAnimTemps + 3], a - call Functionc82ee + ld [wBattleAnimTemp3], a + call _QueueBattleAnimation pop bc ret -Functionc825a: ; c825a (32:425a) - call Functionc80e5 +.one + call BattleBGEffects_IncrementJumptable push bc - call Functionc9038 - jr nz, .asm_c826b + call BGEffect_CheckBattleTurn + jr nz, .player_turn_2 hlcoord 12, 6 - ld bc, $107 - jr .asm_c8271 -.asm_c826b + lb bc, 1, 7 + jr .okay2 + +.player_turn_2 hlcoord 2, 6 lb bc, 1, 6 -.asm_c8271 +.okay2 call ClearBox ld a, $1 ld [hBGMapMode], a pop bc ret -Functionc827a: ; c827a (32:427a) +.five xor a ld [hBGMapMode], a call EndBattleBGEffect ret -Functionc8281: ; c8281 (32:4281) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8284: ; c8284 (32:4284) - dw Functionc8290 - dw Functionc82c7 - dw Functionc80e5 - dw Functionc80e5 - dw Functionc80e5 - dw Functionc82e7 +BattleBGEffect_HeadFollow: ; c8281 (32:4281) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw .five -Functionc8290: ; c8290 (32:4290) - call Functionc9042 - jr z, .asm_c829d - ld hl, w5_d40e +.zero + call BGEffect_CheckFlyDigStatus + jr z, .not_flying_digging + ld hl, wNumActiveBattleAnims inc [hl] call EndBattleBGEffect ret -.asm_c829d - call Functionc80e5 + +.not_flying_digging + call BattleBGEffects_IncrementJumptable push bc - call Functionc9038 - jr nz, .asm_c82af - ld a, $ba - ld [BattleAnimTemps], a - ld a, $84 - jr .asm_c82b6 -.asm_c82af - ld a, $bb - ld [BattleAnimTemps], a - ld a, $30 -.asm_c82b6 - ld [BattleAnimTemps + 1], a - ld a, $40 - ld [BattleAnimTemps + 2], a + call BGEffect_CheckBattleTurn + jr nz, .player_turn + ld a, ANIM_OBJ_BA + ld [wBattleAnimTemp0], a + ld a, 16 * 8 + 4 + jr .okay + +.player_turn + ld a, ANIM_OBJ_BB + ld [wBattleAnimTemp0], a + ld a, 6 * 8 +.okay + ld [wBattleAnimTemp1], a + ld a, 8 * 8 + ld [wBattleAnimTemp2], a xor a - ld [BattleAnimTemps + 3], a - call Functionc82ee + ld [wBattleAnimTemp3], a + call _QueueBattleAnimation pop bc ret -Functionc82c7: ; c82c7 (32:42c7) - call Functionc80e5 +.one + call BattleBGEffects_IncrementJumptable push bc - call Functionc9038 - jr nz, .asm_c82d8 + call BGEffect_CheckBattleTurn + jr nz, .player_turn_2 hlcoord 12, 5 - ld bc, $207 - jr .asm_c82de -.asm_c82d8 + lb bc, 2, 7 + jr .okay2 + +.player_turn_2 hlcoord 2, 6 lb bc, 2, 6 -.asm_c82de +.okay2 call ClearBox ld a, $1 ld [hBGMapMode], a pop bc ret -Functionc82e7: ; c82e7 (32:42e7) +.five xor a ld [hBGMapMode], a call EndBattleBGEffect ret -Functionc82ee: ; c82ee (32:42ee) - callab Functioncc9a1 +_QueueBattleAnimation: ; c82ee (32:42ee) + callab QueueBattleAnimation ret -Functionc82f5: ; c82f5 (32:42f5) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c82f8: ; c82f8 (32:42f8) - dw Functionc8302 - dw Functionc831d - dw Functionc80e5 - dw Functionc80e5 - dw Functionc8365 +BattleBGEffect_27: ; c82f5 (32:42f5) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw .four -Functionc8302: ; c8302 (32:4302) - call Functionc80e5 - call Functionc9038 +.zero + call BattleBGEffects_IncrementJumptable + call BGEffect_CheckBattleTurn ld [hl], a - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and a - jr z, .asm_c8315 + jr z, .user ld a, $9 - jr .asm_c8317 -.asm_c8315 + jr .okay + +.user ld a, $8 -.asm_c8317 - ld hl, $3 +.okay + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], a ret -Functionc831d: ; c831d (32:431d) - ld hl, $2 +.one + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and a - jr z, .asm_c833e + jr z, .user_2 hlcoord 0, 6 - ld de, $806 -.asm_c832b + lb de, 8, 6 +.row1 push de push hl -.asm_c832d +.col1 inc hl ld a, [hld] ld [hli], a dec d - jr nz, .asm_c832d + jr nz, .col1 pop hl - ld de, $14 + ld de, SCREEN_WIDTH add hl, de pop de dec e - jr nz, .asm_c832b - jr .asm_c8355 -.asm_c833e + jr nz, .row1 + jr .okay2 + +.user_2 hlcoord 19, 0 - ld de, $807 -.asm_c8344 + lb de, 8, 7 +.row2 push de push hl -.asm_c8346 +.col2 dec hl ld a, [hli] ld [hld], a dec d - jr nz, .asm_c8346 + jr nz, .col2 pop hl - ld de, $14 + ld de, SCREEN_WIDTH add hl, de pop de dec e - jr nz, .asm_c8344 -.asm_c8355 + jr nz, .row2 +.okay2 xor a ld [hBGMapThird], a ld a, $1 ld [hBGMapMode], a - call Functionc80e5 - ld hl, $3 + call BattleBGEffects_IncrementJumptable + ld hl, BG_EFFECT_STRUCT_03 add hl, bc dec [hl] ret -Functionc8365: ; c8365 (32:4365) +.four xor a ld [hBGMapMode], a - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and a - jr z, .asm_c8377 - ld hl, $1 + jr z, .done + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld [hl], $1 ret -.asm_c8377 + +.done call EndBattleBGEffect ret -Functionc837b: ; c837b (32:437b) - call Functionc9038 - jr nz, .asm_c8385 - ld de, Unknown_c839e - jr .asm_c8388 -.asm_c8385 - ld de, Unknown_c8394 -.asm_c8388 +BattleBGEffect_EnterMon: ; c837b (32:437b) + call BGEffect_CheckBattleTurn + jr nz, .player_turn + ld de, .EnemyData + jr .okay + +.player_turn + ld de, .PlayerData +.okay ld a, e - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a ld a, d - ld [BattleAnimTemps + 2], a - call Functionc83ed - ret -; c8394 (32:4394) - -Unknown_c8394: - db $02, $31, $02 - db $01, $31, $01 - db $00, $31, $00 - db $ff -; c839e - -Unknown_c839e: - db $05, $00, $05 - db $04, $00, $04 - db $03, $00, $03 - db $ff + ld [wBattleAnimTemp2], a + call BattleBGEffect_RunPicResizeScript + ret + +.PlayerData + db 2, $31, 2 + db 1, $31, 1 + db 0, $31, 0 + db -1 +.EnemyData + db 5, $00, 5 + db 4, $00, 4 + db 3, $00, 3 + db -1 ; c83a8 -Functionc83a8: ; c83a8 (32:43a8) - call Functionc9038 - jr nz, .asm_c83b2 - ld de, Unknown_c83d7 - jr .asm_c83b5 -.asm_c83b2 - ld de, Unknown_c83c1 -.asm_c83b5 +BattleBGEffect_ReturnMon: ; c83a8 (32:43a8) + call BGEffect_CheckBattleTurn + jr nz, .player_turn + ld de, .EnemyData + jr .okay + +.player_turn + ld de, .PlayerData +.okay ld a, e - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a ld a, d - ld [BattleAnimTemps + 2], a - call Functionc83ed - ret -; c83c1 (32:43c1) - -Unknown_c83c1: - db $00, $31, $00 - db $fe, $66, $00 - db $01, $31, $01 - db $fe, $44, $01 - db $02, $31, $02 - db $fe, $22, $02 - db $fd, $00, $00 - db $ff -; c83d7 - -Unknown_c83d7: - db $03, $00, $03 - db $fe, $77, $03 - db $04, $00, $04 - db $fe, $55, $04 - db $05, $00, $05 - db $fe, $33, $05 - db $fd, $00, $00 - db $ff + ld [wBattleAnimTemp2], a + call BattleBGEffect_RunPicResizeScript + ret + +.PlayerData + db 0, $31, 0 + db -2, $66, 0 + db 1, $31, 1 + db -2, $44, 1 + db 2, $31, 2 + db -2, $22, 2 + db -3, $00, 0 + db -1 +.EnemyData + db 3, $00, 3 + db -2, $77, 3 + db 4, $00, 4 + db -2, $55, 4 + db 5, $00, 5 + db -2, $33, 5 + db -3, $00, 0 + db -1 ; c83ed -Functionc83ed: ; c83ed (32:43ed) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_RunPicResizeScript: ; c83ed (32:43ed) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw BattleBGEffects_IncrementJumptable + dw BattleBGEffects_IncrementJumptable + dw .restart + dw .end -Jumptable_c83f0: ; c83f0 (32:43f0) - dw Functionc83fa - dw Functionc80e5 - dw Functionc80e5 - dw Functionc842a - dw Functionc8434 - -Functionc83fa: ; c83fa (32:43fa) - ld hl, $3 +.zero + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld e, [hl] ld d, $0 inc [hl] - ld a, [BattleAnimTemps + 1] + ld a, [wBattleAnimTemp1] ld l, a - ld a, [BattleAnimTemps + 2] + ld a, [wBattleAnimTemp2] ld h, a rept 3 add hl, de endr ld a, [hl] - cp $ff - jr z, Functionc8434 - cp $fe - jr z, .asm_c8425 - cp $fd - jr z, .asm_c841d - call Functionc8458 -.asm_c841d - call Functionc80e5 + cp -1 + jr z, .end + cp -2 + jr z, .clear + cp -3 + jr z, .skip + call .FillBox +.skip + call BattleBGEffects_IncrementJumptable ld a, $1 ld [hBGMapMode], a ret -.asm_c8425 - call Functionc843b - jr Functionc83fa -Functionc842a: ; c842a (32:442a) +.clear + call .ClearBox + jr .zero + +.restart xor a ld [hBGMapMode], a - ld hl, $1 + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld [hl], $0 ret -Functionc8434: ; c8434 (32:4434) +.end xor a ld [hBGMapMode], a call EndBattleBGEffect ret -Functionc843b: ; c843b (32:443b) +.ClearBox +; get dims push bc inc hl ld a, [hli] @@ -754,12 +785,12 @@ Functionc843b: ; c843b (32:443b) swap a and $f ld b, a +; get coords ld e, [hl] ld d, 0 - ld hl, Unknown_c849c -rept 2 + ld hl, .Coords + add hl, de add hl, de -endr ld a, [hli] ld h, [hl] ld l, a @@ -767,12 +798,13 @@ endr pop bc ret -Functionc8458: ; c8458 (32:4458) +.FillBox +; get dims push bc push hl ld e, [hl] ld d, 0 - ld hl, Unknown_c84a8 + ld hl, .BGSquares rept 3 add hl, de endr @@ -784,86 +816,88 @@ endr swap a and $f ld b, a +; store pointer ld e, [hl] inc hl ld d, [hl] +; get byte pop hl inc hl ld a, [hli] - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a +; get coord push de ld e, [hl] ld d, 0 - ld hl, Unknown_c849c -rept 2 + ld hl, .Coords + add hl, de add hl, de -endr ld a, [hli] ld h, [hl] ld l, a pop de -.asm_c8484 +; fill box +.row push bc push hl - ld a, [BattleAnimTemps] + ld a, [wBattleAnimTemp0] ld b, a -.asm_c848a +.col ld a, [de] add b ld [hli], a inc de dec c - jr nz, .asm_c848a + jr nz, .col pop hl - ld bc, $14 + ld bc, SCREEN_WIDTH add hl, bc pop bc dec b - jr nz, .asm_c8484 + jr nz, .row pop bc ret -; c849c (32:449c) -Unknown_c849c: ; c849c +.Coords dwcoord 2, 6 dwcoord 3, 8 dwcoord 4, 10 dwcoord 12, 0 dwcoord 13, 2 dwcoord 14, 4 -; c84a8 - -Unknown_c84a8: ; c84a8 - dbw $66, Unknown_c84ba - dbw $44, Unknown_c84de - dbw $22, Unknown_c84ee - dbw $77, Unknown_c84f2 - dbw $55, Unknown_c8523 - dbw $33, Unknown_c853c -; c84ba - -Unknown_c84ba: ; c84ba + +.BGSquares +bgsquare: MACRO + dn \1,\2 + dw \3 +endm + + bgsquare 6, 6, .SixBySix + bgsquare 4, 4, .FourByFour + bgsquare 2, 2, .TwoByTwo + bgsquare 7, 7, .SevenBySeven + bgsquare 5, 5, .FiveByFive + bgsquare 3, 3, .ThreeByThree + +.SixBySix db $00, $06, $0c, $12, $18, $1e db $01, $07, $0d, $13, $19, $1f db $02, $08, $0e, $14, $1a, $20 db $03, $09, $0f, $15, $1b, $21 db $04, $0a, $10, $16, $1c, $22 db $05, $0b, $11, $17, $1d, $23 -; c84de -Unknown_c84de: ; c84de +.FourByFour db $00, $0c, $12, $1e db $02, $0e, $14, $20 db $03, $0f, $15, $21 db $05, $11, $17, $23 -; c84ee -Unknown_c84ee: ; c84ee +.TwoByTwo db $00, $1e db $05, $23 -; c84f2 -Unknown_c84f2: ; c84f2 +.SevenBySeven db $00, $07, $0e, $15, $1c, $23, $2a db $01, $08, $0f, $16, $1d, $24, $2b db $02, $09, $10, $17, $1e, $25, $2c @@ -871,78 +905,76 @@ Unknown_c84f2: ; c84f2 db $04, $0b, $12, $19, $20, $27, $2e db $05, $0c, $13, $1a, $21, $28, $2f db $06, $0d, $14, $1b, $22, $29, $30 -; c8523 -Unknown_c8523: ; c8523 +.FiveByFive db $00, $07, $15, $23, $2a db $01, $08, $16, $24, $2b db $03, $0a, $18, $26, $2d db $05, $0c, $1a, $28, $2f db $06, $0d, $1b, $29, $30 -; c853c -Unknown_c853c: ; c853c +.ThreeByThree db $00, $15, $2a db $03, $18, $2d db $06, $1b, $30 ; c8545 -Functionc8545: ; c8545 (32:4545) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_Surf: ; c8545 (32:4545) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Jumptable_c8548: ; c8548 (32:4548) - dw Functionc854e - dw Functionc8557 - dw Functionc8561 +.zero + call BattleBGEffects_IncrementJumptable + lb de, 2, 2 + call InitSurfWaves -Functionc854e: ; c854e (32:454e) - call Functionc80e5 - ld de, $202 - call Functionc8f69 - -Functionc8557: ; c8557 (32:4557) - ld a, [hLCDStatCustom] +.one + ld a, [hFFC6] and a ret z push bc - call Functionc8565 + call .RotatewSurfWaveBGEffect pop bc ret -Functionc8561: ; c8561 (32:4561) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc8565: ; c8565 (32:4565) - ld hl, w5_d422 - ld de, w5_d422 + 1 - ld c, $3f +.RotatewSurfWaveBGEffect + ld hl, wSurfWaveBGEffect + ld de, wSurfWaveBGEffect + 1 + ld c, wSurfWaveBGEffectEnd - wSurfWaveBGEffect - 1 ld a, [hl] push af -.asm_c856f +.loop ld a, [de] inc de ld [hli], a dec c - jr nz, .asm_c856f + jr nz, .loop pop af ld [hl], a ld de, LYOverridesBackup - ld hl, w5_d422 + ld hl, wSurfWaveBGEffect ld bc, $0 -.asm_c8580 - ld a, [hLCDStatCustom + 1] +.loop2 + ld a, [hFFC7] cp e - jr nc, .asm_c858b + jr nc, .load_zero push hl add hl, bc ld a, [hl] pop hl - jr .asm_c858c -.asm_c858b + jr .okay + +.load_zero xor a -.asm_c858c +.okay ld [de], a ld a, c inc a @@ -951,54 +983,53 @@ Functionc8565: ; c8565 (32:4565) inc de ld a, e cp $5f - jr c, .asm_c8580 + jr c, .loop2 ret -Functionc8599: ; c8599 (32:4599) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c859c: ; c859c (32:459c) - dw Functionc85a2 - dw Functionc85ba - dw Functionc85be +BattleBGEffect_Whirlpool: ; c8599 (32:4599) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc85a2: ; c85a2 (32:45a2) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 - ld [hLCDStatCustom], a + ld [hFFC6], a xor a - ld [hLCDStatCustom + 1], a + ld [hFFC7], a ld a, $5e - ld [hLCDStatCustom + 2], a - ld de, $202 + ld [hFFC8], a + lb de, 2, 2 call Functionc8f2e ret -Functionc85ba: ; c85ba (32:45ba) - call Functionc8fef +.one + call BattleBGEffect_WavyScreenFX ret -Functionc85be: ; c85be (32:45be) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc85c2: ; c85c2 (32:45c2) - call Functionc8eca +BattleBGEffect_30: ; c85c2 (32:45c2) + call BattleBGEffects_ClearLYOverrides ld a, $42 - call Functionc8ede + call BattleBGEffect_SetLCDStatCustoms1 call EndBattleBGEffect ret -Functionc85ce: ; c85ce (32:45ce) - ld hl, $3 +BattleBGEffect_31: ; c85ce (32:45ce) + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] ld e, a add $4 ld [hl], a - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and $f0 @@ -1006,269 +1037,265 @@ Functionc85ce: ; c85ce (32:45ce) xor $ff add $4 ld d, a - ld hl, $1 + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld a, [hl] - ld [BattleAnimTemps], a - ld hl, $2 + ld [wBattleAnimTemp0], a + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] cp $20 - jr nc, .asm_c85fc -rept 2 + jr nc, .done + inc [hl] inc [hl] -endr call Functionc8f9a ret -.asm_c85fc - call Functionc8eca + +.done + call BattleBGEffects_ClearLYOverrides call EndBattleBGEffect ret -Functionc8603: ; c8603 (32:4603) - call Functionc8f0a +BattleBGEffect_32: ; c8603 (32:4603) + call BattleAnim_ResetLCDStatCustom ret -Functionc8607: ; c8607 (32:4607) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c860a: ; c860a (32:460a) - dw Functionc8610 - dw Functionc862e - dw Functionc863b +BattleBGEffect_Psychic: ; c8607 (32:4607) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc8610: ; c8610 (32:4610) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - ld [hLCDStatCustom], a + ld [hFFC6], a xor a - ld [hLCDStatCustom + 1], a + ld [hFFC7], a ld a, $5f - ld [hLCDStatCustom + 2], a - ld de, $605 + ld [hFFC8], a + lb de, 6, 5 call Functionc8f2e - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 ret -Functionc862e: ; c862e (32:462e) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] inc [hl] and $3 ret nz - call Functionc8fef + call BattleBGEffect_WavyScreenFX ret -Functionc863b: ; c863b (32:463b) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc863f: ; c863f (32:463f) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_Teleport: ; c863f (32:463f) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Jumptable_c8642: ; c8642 (32:4642) - dw Functionc8648 - dw Functionc865a - dw Functionc865e - -Functionc8648: ; c8648 (32:4648) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld de, $605 + call BattleBGEffect_SetLCDStatCustoms1 + lb de, 6, 5 call Functionc8f2e ret -Functionc865a: ; c865a (32:465a) - call Functionc8fef +.one + call BattleBGEffect_WavyScreenFX ret -Functionc865e: ; c865e (32:465e) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc8662: ; c8662 (32:4662) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8665: ; c8665 (32:4665) - dw Functionc866b - dw Functionc8681 - dw Functionc8685 +BattleBGEffect_NightShade: ; c8662 (32:4662) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc866b: ; c866b (32:466b) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 - call Functionc8ede - ld hl, $3 + call BattleBGEffect_SetLCDStatCustoms1 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld e, [hl] - ld d, $2 + ld d, 2 call Functionc8f2e ret -Functionc8681: ; c8681 (32:4681) - call Functionc8fef +.one + call BattleBGEffect_WavyScreenFX ret -Functionc8685: ; c8685 (32:4685) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc8689: ; c8689 (32:4689) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c868c: ; c868c (32:468c) - dw Functionc8698 - dw Functionc86af - dw Functionc86cf - dw Functionc86bd - dw Functionc86e9 - dw Functionc8705 +BattleBGEffect_DoubleTeam: ; c8689 (32:4689) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three + dw .four + dw .five -Functionc8698: ; c8698 (32:4698) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $2 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], $0 ret -Functionc86af: ; c86af (32:46af) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] cp $10 - jr nc, asm_c86cb + jr nc, .next inc [hl] - call Functionc86ea + call .UpdateLYOverrides ret -Functionc86bd: ; c86bd (32:46bd) - ld hl, $3 +.three + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] cp $ff - jr z, asm_c86cb + jr z, .next dec [hl] - call Functionc86ea + call .UpdateLYOverrides ret -asm_c86cb: ; c86cb (32:46cb) - call Functionc80e5 + +.next + call BattleBGEffects_IncrementJumptable ret -Functionc86cf: ; c86cf (32:46cf) - ld hl, $2 +.two + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] ld d, $2 - call Functionc905d - ld hl, $3 + call BattleBGEffects_Sine + ld hl, BG_EFFECT_STRUCT_03 add hl, bc add [hl] - call Functionc86ea - ld hl, $2 + call .UpdateLYOverrides + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] add $4 ld [hl], a -Functionc86e9: ; c86e9 (32:46e9) +.four ret -Functionc86ea: ; c86ea (32:46ea) +.UpdateLYOverrides ld e, a xor $ff inc a ld d, a - ld h, $d2 - ld a, [hLCDStatCustom + 1] + ld h, LYOverridesBackup / $100 + ld a, [hFFC7] ld l, a - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] sub l srl a push af -.asm_c86fa +.loop ld [hl], e inc hl ld [hl], d inc hl dec a - jr nz, .asm_c86fa + jr nz, .loop pop af ret nc ld [hl], e ret -Functionc8705: ; c8705 (32:4705) - call Functionc8f0a +.five + call BattleAnim_ResetLCDStatCustom ret -Functionc8709: ; c8709 (32:4709) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c870c: ; c870c (32:470c) - dw Functionc8712 - dw Functionc8732 - dw Functionc875d +BattleBGEffect_AcidArmor: ; c8709 (32:4709) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc8712: ; c8712 (32:4712) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 - call Functionc8ede - ld hl, $3 + call BattleBGEffect_SetLCDStatCustoms1 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld e, [hl] - ld d, $2 + ld d, 2 call Functionc8f2e ld h, $d2 - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] ld l, a ld [hl], $0 dec l ld [hl], $0 ret -Functionc8732: ; c8732 (32:4732) - ld a, [hLCDStatCustom + 2] +.one + ld a, [hFFC8] ld l, a ld h, $d2 ld e, l ld d, h dec de -.asm_c873a +.loop ld a, [de] dec de ld [hld], a - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] cp l - jr nz, .asm_c873a + jr nz, .loop ld [hl], $90 - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] ld l, a ld a, [hl] cp $1 - jr c, .asm_c8752 + jr c, .okay cp $90 - jr z, .asm_c8752 + jr z, .okay ld [hl], $0 -.asm_c8752 +.okay dec l ld a, [hl] cp $2 @@ -1278,235 +1305,232 @@ Functionc8732: ; c8732 (32:4732) ld [hl], $0 ret -Functionc875d: ; c875d (32:475d) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc8761: ; c8761 (32:4761) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8764: ; c8764 (32:4764) - dw Functionc876a - dw Functionc8781 - dw Functionc87a3 +BattleBGEffect_21: ; c8761 (32:4761) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc876a: ; c876a (32:476a) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $2 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], $1 ret -Functionc8781: ; c8781 (32:4781) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and $3f ld d, a - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] cp d ret nc call Functionc901b - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] rlca rlca and $3 - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc add [hl] ld [hl], a ret -Functionc87a3: ; c87a3 (32:47a3) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc87a7: ; c87a7 (32:47a7) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_Dig: ; c87a7 (32:47a7) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three -Jumptable_c87aa: ; c87aa (32:47aa) - dw Functionc87b2 - dw Functionc87cf - dw Functionc87de - dw Functionc8801 - -Functionc87b2: ; c87b2 (32:47b2) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $2 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], $2 - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 ret -Functionc87cf: ; c87cf (32:47cf) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and a - jr z, .asm_c87d9 + jr z, .next dec [hl] ret -.asm_c87d9 - ld [hl], $10 - call Functionc80e5 -Functionc87de: ; c87de (32:47de) - ld a, [hLCDStatCustom + 1] +.next + ld [hl], $10 + call BattleBGEffects_IncrementJumptable +.two + ld a, [hFFC7] ld l, a - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] sub l dec a - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc cp [hl] ret c ld a, [hl] push af and $7 - jr nz, .asm_c87f6 - ld hl, $1 + jr nz, .skip + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc dec [hl] -.asm_c87f6 +.skip pop af call Functionc901b - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc -rept 2 inc [hl] -endr + inc [hl] ret -Functionc8801: ; c8801 (32:4801) - call Functionc8f0a +.three + call BattleAnim_ResetLCDStatCustom ret -Functionc8805: ; c8805 (32:4805) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_Tackle: ; c8805 (32:4805) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw Tackle_BGEffect25_2d_one + dw Tackle_BGEffect25_2d_two + dw .three -Jumptable_c8808: ; c8808 (32:4808) - dw Functionc8810 - dw Functionc8869 - dw Functionc8888 - dw Functionc8833 - -Functionc8810: ; c8810 (32:4810) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $3 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 - call Functionc9038 - jr nz, .asm_c882f - ld a, $2 - jr .asm_c8831 -.asm_c882f - ld a, $fe -.asm_c8831 + call BGEffect_CheckBattleTurn + jr nz, .player_side + ld a, 2 + jr .okay + +.player_side + ld a, -2 +.okay ld [hl], a ret -Functionc8833: ; c8833 (32:4833) - call Functionc8f0a +.three + call BattleAnim_ResetLCDStatCustom ret -Functionc8837: ; c8837 (32:4837) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c883a: ; c883a (32:483a) - dw Functionc8842 - dw Functionc8869 - dw Functionc8888 - dw Functionc8865 +BattleBGEffect_25: ; c8837 (32:4837) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw Tackle_BGEffect25_2d_one + dw Tackle_BGEffect25_2d_two + dw .three -Functionc8842: ; c8842 (32:4842) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ef4 - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms2 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $3 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 - call Functionc9038 - jr nz, .asm_c8861 - ld a, $2 - jr .asm_c8863 -.asm_c8861 - ld a, $fe -.asm_c8863 + call BGEffect_CheckBattleTurn + jr nz, .player_side + ld a, 2 + jr .okay + +.player_side + ld a, -2 +.okay ld [hl], a ret -Functionc8865: ; c8865 (32:4865) - call Functionc8f0a +.three + call BattleAnim_ResetLCDStatCustom ret -Functionc8869: ; c8869 (32:4869) - ld hl, $3 +Tackle_BGEffect25_2d_one: + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] - cp $f8 - jr z, .asm_c8876 - cp $8 - jr nz, .asm_c8879 -.asm_c8876 - call Functionc80e5 -.asm_c8879 + cp -8 + jr z, .reached_limit + cp 8 + jr nz, .finish +.reached_limit + call BattleBGEffects_IncrementJumptable +.finish call Functionc88a5 - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc add [hl] ld [hl], a ret -Functionc8888: ; c8888 (32:4888) - ld hl, $3 +Tackle_BGEffect25_2d_two: + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and a jr nz, .asm_c8893 - call Functionc80e5 + call BattleBGEffects_IncrementJumptable .asm_c8893 call Functionc88a5 - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] xor $ff inc a - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc add [hl] ld [hl], a @@ -1516,386 +1540,381 @@ Functionc88a5: ; c88a5 (32:48a5) push af ld a, [FXAnimIDHi] ; FXAnimIDHi or a - jr nz, .asm_c88b3 + jr nz, .not_rollout ld a, [FXAnimIDLo] ; FXAnimID cp ROLLOUT - jr z, .asm_c88b7 -.asm_c88b3 + jr z, .rollout +.not_rollout pop af jp Functionc900b -.asm_c88b7 - ld a, [hLCDStatCustom + 1] + +.rollout + ld a, [hFFC7] ld d, a - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] sub d ld d, a ld h, LYOverridesBackup / $100 ld a, [hSCY] or a - jr nz, .asm_c88d0 - ld a, [hLCDStatCustom + 1] + jr nz, .skip1 + ld a, [hFFC7] or a - jr z, .asm_c88d6 + jr z, .skip2 dec a ld l, a ld [hl], $0 - jr .asm_c88d6 -.asm_c88d0 - ld a, [hLCDStatCustom + 2] + jr .skip2 + +.skip1 + ld a, [hFFC8] dec a ld l, a ld [hl], $0 -.asm_c88d6 +.skip2 ld a, [hSCY] ld l, a - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] sub l - jr nc, .asm_c88e0 + jr nc, .skip3 xor a dec d -.asm_c88e0 +.skip3 ld l, a pop af -.asm_c88e2 +.loop ld [hli], a dec d - jr nz, .asm_c88e2 + jr nz, .loop ret -Functionc88e7: ; c88e7 (32:48e7) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_2d: ; c88e7 (32:48e7) + call BattleBGEffects_AnonJumptable +.anon_dw + dw BGEffect2d_2f_zero + dw Tackle_BGEffect25_2d_one + dw Tackle_BGEffect25_2d_two + dw .three -Jumptable_c88ea: ; c88ea (32:48ea) - dw Functionc88f6 - dw Functionc8869 - dw Functionc8888 - dw Functionc88f2 - -Functionc88f2: ; c88f2 (32:48f2) - call Functionc8f0a +.three + call BattleAnim_ResetLCDStatCustom ret -Functionc88f6: ; c88f6 (32:48f6) - call Functionc80e5 - call Functionc8eca +BGEffect2d_2f_zero: + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $3 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 - call Functionc9038 - jr nz, .asm_c8915 - ld a, $fe - jr .asm_c8917 -.asm_c8915 - ld a, $2 -.asm_c8917 + call BGEffect_CheckBattleTurn + jr nz, .player_turn + ld a, -2 + jr .okay + +.player_turn + ld a, 2 +.okay ld [hl], a ret -Functionc8919: ; c8919 (32:4919) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c891c: ; c891c (32:491c) - dw Functionc88f6 - dw Functionc8869 - dw Functionc8929 - dw Functionc8888 - dw Functionc8926 - - -Functionc8926: ; c8926 (32:4926) - call Functionc8f0a +BattleBGEffect_2f: ; c8919 (32:4919) + call BattleBGEffects_AnonJumptable +.anon_dw + dw BGEffect2d_2f_zero + dw Tackle_BGEffect25_2d_one + dw .two + dw Tackle_BGEffect25_2d_two + dw .four -Functionc8929: ; c8929 (32:4929) +.four + call BattleAnim_ResetLCDStatCustom +.two ret -Functionc892a: ; c892a (32:492a) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_26: ; c892a (32:492a) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Jumptable_c892d: ; c892d (32:492d) - dw Functionc8933 - dw Functionc894a - dw Functionc8960 - -Functionc8933: ; c8933 (32:4933) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $3 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 ret -Functionc894a: ; c894a (32:494a) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] ld d, $8 - call Functionc905d + call BattleBGEffects_Sine call Functionc900b - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] add $4 ld [hl], a ret -Functionc8960: ; c8960 (32:4960) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc8964: ; c8964 (32:4964) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8967: ; c8967 (32:4967) - dw Functionc896d - dw Functionc8985 - dw Functionc89b1 +BattleBGEffect_2c: ; c8964 (32:4964) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc896d: ; c896d (32:496d) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a + ld [hFFC8], a xor a - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hli], a ld [hl], a ret -Functionc8985: ; c8985 (32:4985) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] ld d, $6 - call Functionc905d + call BattleBGEffects_Sine push af - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] ld d, $2 - call Functionc905d + call BattleBGEffects_Sine ld e, a pop af add e call Functionc900b - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] add $8 ld [hl], a - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] add $2 ld [hl], a ret -Functionc89b1: ; c89b1 (32:49b1) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc89b5: ; c89b5 (32:49b5) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_28: ; c89b5 (32:49b5) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Jumptable_c89b8: ; c89b8 (32:49b8) - dw Functionc89be - dw Functionc89ca - dw Functionc89da - -Functionc89be: ; c89be (32:49be) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede + call BattleBGEffect_SetLCDStatCustoms1 ret -Functionc89ca: ; c89ca (32:49ca) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] cp $20 ret nc inc [hl] ld d, a - ld e, $4 + ld e, 4 call Functionc8f2e ret -Functionc89da: ; c89da (32:49da) - ld hl, $3 +.two + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and a - jr z, .asm_c89ea + jr z, .reset dec [hl] ld d, a - ld e, $4 + ld e, 4 call Functionc8f2e ret -.asm_c89ea - call Functionc8f0a - ret -Functionc89ee: ; c89ee (32:49ee) - call Functionc80d7 ; ; ; call does not return +.reset + call BattleAnim_ResetLCDStatCustom + ret -Jumptable_c89f1: ; c89f1 (32:49f1) - dw Functionc89f7 - dw Functionc8a14 - dw Functionc8a36 +BattleBGEffect_BounceDown: ; c89ee (32:49ee) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc89f7: ; c89f7 (32:49f7) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 - call Functionc8ef4 - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms2 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $2 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], $1 - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $20 ret -Functionc8a14: ; c8a14 (32:4a14) - ld hl, $2 +.one + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] cp $38 ret nc push af - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] ld d, $10 - call Functionc9066 + call BattleBGEffects_Cosine add $10 ld d, a pop af add d call Functionc901b - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc -rept 2 inc [hl] -endr + inc [hl] ret -Functionc8a36: ; c8a36 (32:4a36) - call Functionc8f0a +.two + call BattleAnim_ResetLCDStatCustom ret -Functionc8a3a: ; c8a3a (32:4a3a) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8a3d: ; c8a3d (32:4a3d) - dw Functionc8a49 - dw Functionc8a6f - dw Functionc8a70 - dw Functionc8a88 - dw Functionc8a6f - dw Functionc8aac - +BattleBGEffect_2a: ; c8a3a (32:4a3a) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three + dw .four + dw .five -Functionc8a49: ; c8a49 (32:4a49) - call Functionc80e5 +.zero + call BattleBGEffects_IncrementJumptable ld a, $e4 - call Functionc8ecb + call BattleBGEffects_SetLYOverrides ld a, $47 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld a, [hLCDStatCustom + 1] + ld [hFFC8], a + ld a, [hFFC7] ld l, a ld h, $d2 -.asm_c8a60 - ld a, [hLCDStatCustom + 2] +.loop + ld a, [hFFC8] cp l - jr z, .asm_c8a69 + jr z, .done xor a ld [hli], a - jr .asm_c8a60 -.asm_c8a69 - ld hl, $3 + jr .loop + +.done + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 - -Functionc8a6f: ; c8a6f (32:4a6f) +.one +.four ret -Functionc8a70: ; c8a70 (32:4a70) - call Functionc8ab0 - jr nc, .asm_c8a79 - call Functionc8a9a +.two + call .GetLYOverride + jr nc, .next + call .SetLYOverridesBackup ret -.asm_c8a79 - ld hl, $3 + +.next + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] inc a - ld [hLCDStatCustom + 1], a - call Functionc80e5 + ld [hFFC7], a + call BattleBGEffects_IncrementJumptable ret -Functionc8a88: ; c8a88 (32:4a88) - call Functionc8ab0 - jr nc, .asm_c8a96 - call Functionc8a9a - ld a, [hLCDStatCustom + 2] +.three + call .GetLYOverride + jr nc, .finish + call .SetLYOverridesBackup + ld a, [hFFC8] dec a ld l, a ld [hl], e ret -.asm_c8a96 - call Functionc80e5 + +.finish + call BattleBGEffects_IncrementJumptable ret -Functionc8a9a: ; c8a9a (32:4a9a) +.SetLYOverridesBackup ld e, a - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] ld l, a - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] sub l srl a - ld h, $d2 -.asm_c8aa5 + ld h, LYOverridesBackup / $100 +.loop2 ld [hl], e -rept 2 inc hl -endr + inc hl dec a - jr nz, .asm_c8aa5 + jr nz, .loop2 ret -Functionc8aac: ; c8aac (32:4aac) - call Functionc8f19 +.five + call BattleBGEffects_ResetVideoHRAM ret -Functionc8ab0: ; c8ab0 (32:4ab0) - ld hl, $3 +.GetLYOverride + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] inc [hl] @@ -1904,41 +1923,40 @@ Functionc8ab0: ; c8ab0 (32:4ab0) srl a ld e, a ld d, 0 - ld hl, Unknown_c8ac7 + ld hl, .data add hl, de ld a, [hl] cp $ff ret -; c8ac7 (32:4ac7) -Unknown_c8ac7: - db $00, $40, $90, $e4, $ff +.data + db $00, $40, $90, $e4 + db -1 ; c8acc -Functionc8acc: ; c8acc (32:4acc) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8acf: ; c8acf (32:4acf) - dw Functionc8ad3 - dw Functionc8ae5 +BattleBGEffect_2b: ; c8acc (32:4acc) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one -Functionc8ad3: ; c8ad3 (32:4ad3) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld hl, $2 + call BattleBGEffect_SetLCDStatCustoms1 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], $40 ret -Functionc8ae5: ; c8ae5 (32:4ae5) - ld hl, $2 +.one + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and a - jr z, .asm_c8afc + jr z, .done dec [hl] srl a srl a @@ -1948,36 +1966,36 @@ Functionc8ae5: ; c8ae5 (32:4ae5) ld e, a call Functionc8f2e ret -.asm_c8afc - call Functionc8f0a + +.done + call BattleAnim_ResetLCDStatCustom ret -Functionc8b00: ; c8b00 (32:4b00) +BattleBGEffect_1c: ; c8b00 (32:4b00) ld a, [hCGB] and a - jr nz, asm_c8b7a - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8b08: ; c8b08 (32:4b08) - dw Functionc8b0e - dw Functionc8b22 - dw Functionc8b60 + jr nz, .cgb + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc8b0e: ; c8b0e (32:4b0e) - call Functionc80e5 +.zero + call BattleBGEffects_IncrementJumptable ld a, $e4 - call Functionc8ecb + call BattleBGEffects_SetLYOverrides ld a, $47 - ld [hLCDStatCustom], a + ld [hFFC6], a xor a - ld [hLCDStatCustom + 1], a + ld [hFFC7], a ld a, $60 - ld [hLCDStatCustom + 2], a + ld [hFFC8], a ret -Functionc8b22: ; c8b22 (32:4b22) - ld hl, $3 +.one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] inc [hl] @@ -1992,72 +2010,70 @@ Functionc8b22: ; c8b22 (32:4b22) ld e, a ld d, $0 push bc - call Functionc9038 - jr nz, .asm_c8b4d - ld hl, Unknown_c8bd8 + call BGEffect_CheckBattleTurn + jr nz, .player + ld hl, .CGB_DMGEnemyData add hl, de ld a, [hli] - ld [wcfc9], a + ld [wOBP1], a ld d, a ld e, [hl] - ld bc, $2f30 - jr .asm_c8b5b -.asm_c8b4d - ld hl, Unknown_c8be0 + lb bc, $2f, $30 + jr .okay + +.player + ld hl, .DMG_PlayerData add hl, de ld d, [hl] inc hl ld a, [hl] - ld [wcfc9], a + ld [wOBP1], a ld e, a - ld bc, $3728 -.asm_c8b5b - call Functionc8b6c + lb bc, $37, $28 +.okay + call .DMG_LYOverrideLoads pop bc ret -Functionc8b60: ; c8b60 (32:4b60) - call Functionc8f19 +.two + call BattleBGEffects_ResetVideoHRAM ld a, $e4 - ld [wcfc7], a - ld [wcfc9], a + ld [wBGP], a + ld [wOBP1], a ret -Functionc8b6c: ; c8b6c (32:4b6c) +.DMG_LYOverrideLoads ld hl, LYOverridesBackup -.asm_c8b6f +.loop1 ld [hl], d inc hl dec b - jr nz, .asm_c8b6f -.asm_c8b74 + jr nz, .loop1 +.loop2 ld [hl], e inc hl dec c - jr nz, .asm_c8b74 + jr nz, .loop2 ret -asm_c8b7a: ; c8b7a (32:4b7a) - ld de, Jumptable_c8b81 - call Functionc80ca - jp [hl] -; c8b81 (32:4b81) -Jumptable_c8b81: ; c8b81 - dw Functionc8b87 - dw Functionc8b91 - dw Functionc8bca -; c8b87 +.cgb + ld de, .Jumptable + call BatttleBGEffects_GetNamedJumptablePointer + jp [hl] -Functionc8b87: ; c8b87 - call Functionc80e5 - ld hl, $0003 +.Jumptable + dw .cgb_zero + dw .cgb_one + dw .cgb_two +.cgb_zero + call BattleBGEffects_IncrementJumptable + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 ret -; c8b91 -Functionc8b91: ; c8b91 - ld hl, $0003 +.cgb_one + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] inc [hl] @@ -2071,177 +2087,163 @@ Functionc8b91: ; c8b91 sla a ld e, a ld d, 0 - call Functionc9038 - jr nz, .asm_c8bbb - ld hl, Unknown_c8bd8 + call BGEffect_CheckBattleTurn + jr nz, .player_2 + ld hl, .CGB_DMGEnemyData add hl, de ld a, [hli] push hl - call Functionc8e7f + call BGEffects_LoadBGPal1_OBPal0 pop hl ld a, [hl] - call Functionc8e52 + call BGEffects_LoadBGPal0_OBPal1 ret -.asm_c8bbb - ld hl, Unknown_c8bd8 +.player_2 + ld hl, .CGB_DMGEnemyData add hl, de ld a, [hli] push hl - call Functionc8e52 + call BGEffects_LoadBGPal0_OBPal1 pop hl ld a, [hl] - call Functionc8e7f + call BGEffects_LoadBGPal1_OBPal0 ret -; c8bca -Functionc8bca: ; c8bca +.cgb_two ld a, $e4 - call Functionc8e52 + call BGEffects_LoadBGPal0_OBPal1 ld a, $e4 - call Functionc8e7f + call BGEffects_LoadBGPal1_OBPal0 call EndBattleBGEffect ret -; c8bd8 -Unknown_c8bd8: ; c8bd8 +.CGB_DMGEnemyData db $e4, $e4 db $f8, $90 db $fc, $40 db $f8, $90 -; c8be0 - -Unknown_c8be0: ; c8be0 +.DMG_PlayerData db $e4, $e4 db $90, $f8 db $40, $fc db $90, $f8 ; c8be8 -Functionc8be8: ; c8be8 (32:4be8) - ld de, Unknown_c8bef - call Functionc8d77 +BattleBGEffect_RapidFlash: ; c8be8 (32:4be8) + ld de, .FlashPals + call BGEffect_RapidCyclePals ret -; c8bef (32:4bef) -Unknown_c8bef: ; c8bef +.FlashPals db $e4, $6c, $fe ; c8bf2 -Functionc8bf2: ; c8bf2 (32:4bf2) - ld de, Unknown_c8bf9 - call Functionc8d77 +BattleBGEffect_16: ; c8bf2 (32:4bf2) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8bf9 (32:4bf9) -Unknown_c8bf9: ; c8bf9 +.Pals db $e4, $90, $40, $ff ; c8bfd -Functionc8bfd: ; c8bfd (32:4bfd) - ld de, Unknown_c8c04 - call Functionc8d77 +BattleBGEffect_17: ; c8bfd (32:4bfd) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8c04 (32:4c04) -Unknown_c8c04: ; c8c04 +.Pals db $e4, $f8, $fc, $ff ; c8c08 -Functionc8c08: ; c8c08 (32:4c08) - ld de, Unknown_c8c0f - call Functionc8d77 +BattleBGEffect_18: ; c8c08 (32:4c08) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8c0f (32:4c0f) -Unknown_c8c0f: ; c8c0f +.Pals db $e4, $90, $40, $90, $fe ; c8c14 -Functionc8c14: ; c8c14 (32:4c14) - ld de, Unknown_c8c1b - call Functionc8d77 +BattleBGEffect_19: ; c8c14 (32:4c14) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8c1b (32:4c1b) -Unknown_c8c1b: ; c8c1b +.Pals db $e4, $f8, $fc, $f8, $fe ; c8c20 -Functionc8c20: ; c8c20 (32:4c20) - ld de, Unknown_c8c27 - call Functionc8d77 +BattleBGEffect_1a: ; c8c20 (32:4c20) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8c27 (32:4c27) -Unknown_c8c27: ; c8c27 +.Pals db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe ; c8c30 -Functionc8c30: ; c8c30 (32:4c30) - ld de, Unknown_c8c37 - call Functionc8d77 +BattleBGEffect_1b: ; c8c30 (32:4c30) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8c37 (32:4c37) -Unknown_c8c37: +.Pals db $e4, $fc, $e4, $00, $fe ; c8c3c -Functionc8c3c: ; c8c3c (32:4c3c) - ld de, Unknown_c8c43 - call Functionc8d77 +BattleBGEffect_1d: ; c8c3c (32:4c3c) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8c43 (32:4c43) -Unknown_c8c43: +.Pals db $e4, $90, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $90, $e4, $ff ; c8c55 -Functionc8c55: ; c8c55 (32:4c55) - ld de, Unknown_c8c5c - call Functionc8d77 +BattleBGEffect_1e: ; c8c55 (32:4c55) + ld de, .Pals + call BGEffect_RapidCyclePals ret -; c8c5c (32:4c5c) -Unknown_c8c5c: +.Pals db $00, $40, $90, $e4, $ff ; c8c61 -Functionc8c61: ; c8c61 (32:4c61) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8c64: ; c8c64 (32:4c64) - dw Functionc8c68 - dw Functionc8c85 +BattleBGEffect_VibrateMon: ; c8c61 (32:4c61) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one -Functionc8c68: ; c8c68 (32:4c68) - call Functionc80e5 - call Functionc8eca +.zero: ; c8c68 (32:4c68) + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $2 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], $1 - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $20 ret -Functionc8c85: ; c8c85 (32:4c85) - ld hl, $3 +.one: ; c8c85 (32:4c85) + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and a - jr z, .asm_c8c9e + jr z, .finish dec [hl] and $1 ret nz - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] xor $ff @@ -2249,114 +2251,116 @@ Functionc8c85: ; c8c85 (32:4c85) ld [hl], a call Functionc900b ret -.asm_c8c9e - call Functionc8f0a - ret -Functionc8ca2: ; c8ca2 (32:4ca2) - call Functionc80d7 ; ; ; call does not return +.finish + call BattleAnim_ResetLCDStatCustom + ret -Jumptable_c8ca5: ; c8ca5 (32:4ca5) - dw Functionc8cab - dw Functionc8cc3 - dw Functionc8cdd +BattleBGEffect_WobbleMon: ; c8ca2 (32:4ca2) + call BattleBGEffects_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two -Functionc8cab: ; c8cab (32:4cab) - call Functionc80e5 - call Functionc8eca +.zero: ; c8cab (32:4cab) + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 - ld [hLCDStatCustom], a + ld [hFFC6], a xor a - ld [hLCDStatCustom + 1], a + ld [hFFC7], a ld a, $37 - ld [hLCDStatCustom + 2], a - ld hl, $3 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 ret -Functionc8cc3: ; c8cc3 (32:4cc3) - ld hl, $3 +.one: ; c8cc3 (32:4cc3) + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] cp $40 - jr nc, Functionc8cdd + jr nc, .two ld d, $6 - call Functionc905d + call BattleBGEffects_Sine call Functionc900b - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] add $2 ld [hl], a ret -Functionc8cdd: ; c8cdd (32:4cdd) - call Functionc8f0a +.two: ; c8cdd (32:4cdd) + call BattleAnim_ResetLCDStatCustom ret -Functionc8ce1: ; c8ce1 (32:4ce1) +BattleBGEffect_2e: ; c8ce1 (32:4ce1) call Functionc8d0b - jr c, .asm_c8cea + jr c, .xor_a bit 7, a - jr z, .asm_c8ceb -.asm_c8cea + jr z, .okay +.xor_a xor a -.asm_c8ceb +.okay push af call DelayFrame pop af ld [hSCY], a xor $ff inc a - ld [OTPartyMon3SpclAtk], a + ld [AnimObject01_YOffset], a ret -Functionc8cf9: ; c8cf9 (32:4cf9) +BattleBGEffect_1f: ; c8cf9 (32:4cf9) call Functionc8d0b - jr nc, .asm_c8cff + jr nc, .skip xor a -.asm_c8cff +.skip ld [hSCX], a ret -Functionc8d02: ; c8d02 (32:4d02) +BattleBGEffect_20: ; c8d02 (32:4d02) call Functionc8d0b - jr nc, .asm_c8d08 + jr nc, .skip xor a -.asm_c8d08 +.skip ld [hSCY], a ret Functionc8d0b: ; c8d0b (32:4d0b) - ld hl, $1 + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld a, [hl] and a - jr nz, .asm_c8d18 + jr nz, .okay call EndBattleBGEffect scf ret -.asm_c8d18 + +.okay dec [hl] - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] and $f - jr z, .asm_c8d2a + jr z, .every_16_frames dec [hl] - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and a ret -.asm_c8d2a + +.every_16_frames ld a, [hl] swap a or [hl] ld [hl], a - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] xor $ff @@ -2365,203 +2369,210 @@ Functionc8d0b: ; c8d0b (32:4d0b) and a ret -Functionc8d3a: ; c8d3a (32:4d3a) - ld hl, $3 +BattleBGEffect_35: ; c8d3a (32:4d3a) + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] cp $40 - jr nc, .asm_c8d53 + jr nc, .finish ld d, $6 - call Functionc905d + call BattleBGEffects_Sine ld [hSCX], a - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] add $2 ld [hl], a ret -.asm_c8d53 + +.finish xor a ld [hSCX], a ret -Functionc8d57: ; c8d57 (32:4d57) - ld hl, $1 +BattleBGEffect_GetNthDMGPal: ; c8d57 (32:4d57) + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld a, [hl] and a - jr z, .asm_c8d69 - + jr z, .zero dec [hl] - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] - call Functionc8eb2 + call BattleBGEffect_GetNextDMGPal ret -.asm_c8d69 - ld hl, $2 +.zero + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] - ld hl, $1 + ld hl, BG_EFFECT_STRUCT_JT_INDEX add hl, bc ld [hl], a - call Functionc8eac + call BattleBGEffect_GetFirstDMGPal ret -Functionc8d77: ; c8d77 (32:4d77) +BGEffect_RapidCyclePals: ; c8d77 (32:4d77) ld a, [hCGB] and a - jr nz, asm_c8dd4 + jr nz, .cgb push de - ld de, Jumptable_c8d85 - call Functionc80ca + ld de, .Jumptable_DMG + call BatttleBGEffects_GetNamedJumptablePointer pop de jp [hl] -Jumptable_c8d85: ; c8d85 (32:4d85) - dw Functionc8d8b - dw Functionc8daa - dw Functionc8dc9 +.Jumptable_DMG + dw .zero_dmg + dw .one_dmg + dw .two_dmg -Functionc8d8b: ; c8d8b (32:4d8b) - call Functionc80e5 +.zero_dmg: ; c8d8b (32:4d8b) + call BattleBGEffects_IncrementJumptable ld a, $e4 - call Functionc8ecb + call BattleBGEffects_SetLYOverrides ld a, $47 - call Functionc8ede - ld a, [hLCDStatCustom + 2] + call BattleBGEffect_SetLCDStatCustoms1 + ld a, [hFFC8] inc a - ld [hLCDStatCustom + 2], a - ld hl, $3 + ld [hFFC8], a + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] ld [hl], $0 - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], a ret -Functionc8daa: ; c8daa (32:4daa) - ld hl, $2 +.one_dmg: ; c8daa (32:4daa) + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and $f - jr z, .asm_c8db5 + jr z, .okay_1_dmg dec [hl] ret -.asm_c8db5 + +.okay_1_dmg ld a, [hl] swap a or [hl] ld [hl], a - call Functionc8eac - jr c, .asm_c8dc3 + call BattleBGEffect_GetFirstDMGPal + jr c, .okay_2_dmg call Functionc900b ret -.asm_c8dc3 - ld hl, $3 + +.okay_2_dmg + ld hl, BG_EFFECT_STRUCT_03 add hl, bc dec [hl] ret -Functionc8dc9: ; c8dc9 (32:4dc9) - call Functionc8f19 - ld a, $e4 +.two_dmg: ; c8dc9 (32:4dc9) + call BattleBGEffects_ResetVideoHRAM + ld a, %11100100 ld [rBGP], a call EndBattleBGEffect ret -asm_c8dd4: ; c8dd4 (32:4dd4) + +.cgb push de - ld de, Jumptable_c8ddd - call Functionc80ca + ld de, .Jumptable_CGB + call BatttleBGEffects_GetNamedJumptablePointer pop de jp [hl] -Jumptable_c8ddd: ; c8ddd (32:4ddd) - dw Functionc8de7 - dw Functionc8e02 - dw Functionc8e21 - dw Functionc8e2a - dw Functionc8e49 +.Jumptable_CGB: ; c8ddd (32:4ddd) + dw .zero_cgb + dw .one_cgb + dw .two_cgb + dw .three_cgb + dw .four_cgb -Functionc8de7: ; c8de7 (32:4de7) - call Functionc9038 - jr nz, .asm_c8df2 - call Functionc80e5 - call Functionc80e5 -.asm_c8df2 - call Functionc80e5 - ld hl, $3 +.zero_cgb: ; c8de7 (32:4de7) + call BGEffect_CheckBattleTurn + jr nz, .player_turn_cgb + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_IncrementJumptable +.player_turn_cgb + call BattleBGEffects_IncrementJumptable + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] ld [hl], $0 - ld hl, $2 + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld [hl], a ret -Functionc8e02: ; c8e02 (32:4e02) - ld hl, $2 +.one_cgb: ; c8e02 (32:4e02) + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and $f - jr z, .asm_c8e0d + jr z, .okay_1_cgb dec [hl] ret -.asm_c8e0d + +.okay_1_cgb ld a, [hl] swap a or [hl] ld [hl], a - call Functionc8eac - jr c, .asm_c8e1b - call Functionc8e52 + call BattleBGEffect_GetFirstDMGPal + jr c, .okay_2_cgb + call BGEffects_LoadBGPal0_OBPal1 ret -.asm_c8e1b - ld hl, $3 + +.okay_2_cgb + ld hl, BG_EFFECT_STRUCT_03 add hl, bc dec [hl] ret -Functionc8e21: ; c8e21 (32:4e21) +.two_cgb: ; c8e21 (32:4e21) ld a, $e4 - call Functionc8e52 + call BGEffects_LoadBGPal0_OBPal1 call EndBattleBGEffect ret -Functionc8e2a: ; c8e2a (32:4e2a) - ld hl, $2 +.three_cgb: ; c8e2a (32:4e2a) + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hl] and $f - jr z, .asm_c8e35 + jr z, .okay_3_cgb dec [hl] ret -.asm_c8e35 + +.okay_3_cgb ld a, [hl] swap a or [hl] ld [hl], a - call Functionc8eac - jr c, .asm_c8e43 - call Functionc8e7f + call BattleBGEffect_GetFirstDMGPal + jr c, .okay_4_cgb + call BGEffects_LoadBGPal1_OBPal0 ret -.asm_c8e43 - ld hl, $3 + +.okay_4_cgb + ld hl, BG_EFFECT_STRUCT_03 add hl, bc dec [hl] ret -Functionc8e49: ; c8e49 (32:4e49) +.four_cgb: ; c8e49 (32:4e49) ld a, $e4 - call Functionc8e7f + call BGEffects_LoadBGPal1_OBPal0 call EndBattleBGEffect ret -Functionc8e52: ; c8e52 (32:4e52) +BGEffects_LoadBGPal0_OBPal1: ; c8e52 (32:4e52) ld h, a ld a, [rSVBK] push af @@ -2588,7 +2599,7 @@ Functionc8e52: ; c8e52 (32:4e52) ld [hCGBPalUpdate], a ret -Functionc8e7f: ; c8e7f (32:4e7f) +BGEffects_LoadBGPal1_OBPal0: ; c8e7f (32:4e7f) ld h, a ld a, [rSVBK] push af @@ -2615,256 +2626,258 @@ Functionc8e7f: ; c8e7f (32:4e7f) ld [hCGBPalUpdate], a ret -Functionc8eac: ; c8eac (32:4eac) - ld hl, $3 +BattleBGEffect_GetFirstDMGPal: ; c8eac (32:4eac) + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] inc [hl] - -Functionc8eb2: ; c8eb2 (32:4eb2) +BattleBGEffect_GetNextDMGPal: ; c8eb2 (32:4eb2) ld l, a ld h, $0 add hl, de ld a, [hl] - cp $ff - jr z, .asm_c8ec8 - cp $fe - jr nz, .asm_c8ec6 + cp -1 + jr z, .quit + cp -2 + jr nz, .repeat ld a, [de] - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 -.asm_c8ec6 +.repeat and a ret -.asm_c8ec8 + +.quit scf ret -Functionc8eca: ; c8eca (32:4eca) +BattleBGEffects_ClearLYOverrides: ; c8eca (32:4eca) xor a - -Functionc8ecb: ; c8ecb (32:4ecb) +BattleBGEffects_SetLYOverrides: ; c8ecb (32:4ecb) ld hl, LYOverrides ; wd100 ld e, $99 -.asm_c8ed0 +.loop1 ld [hli], a dec e - jr nz, .asm_c8ed0 + jr nz, .loop1 ld hl, LYOverridesBackup ld e, $91 -.asm_c8ed9 +.loop2 ld [hli], a dec e - jr nz, .asm_c8ed9 - ret - -Functionc8ede: ; c8ede (32:4ede) - ld [hLCDStatCustom], a - call Functionc9038 - jr nz, .asm_c8eea - ld de, $36 - jr .asm_c8eed -.asm_c8eea - ld de, $2f5e -.asm_c8eed + jr nz, .loop2 + ret + +BattleBGEffect_SetLCDStatCustoms1: ; c8ede (32:4ede) + ld [hFFC6], a + call BGEffect_CheckBattleTurn + jr nz, .player_turn + lb de, $00, $36 + jr .okay + +.player_turn + lb de, $2f, $5e +.okay ld a, d - ld [hLCDStatCustom + 1], a + ld [hFFC7], a ld a, e - ld [hLCDStatCustom + 2], a - ret - -Functionc8ef4: ; c8ef4 (32:4ef4) - ld [hLCDStatCustom], a - call Functionc9038 - jr nz, .asm_c8f00 - ld de, $36 - jr .asm_c8f03 -.asm_c8f00 - ld de, $2d5e -.asm_c8f03 + ld [hFFC8], a + ret + +BattleBGEffect_SetLCDStatCustoms2: ; c8ef4 (32:4ef4) + ld [hFFC6], a + call BGEffect_CheckBattleTurn + jr nz, .player_turn + lb de, $00, $36 + jr .okay + +.player_turn + lb de, $2d, $5e +.okay ld a, d - ld [hLCDStatCustom + 1], a + ld [hFFC7], a ld a, e - ld [hLCDStatCustom + 2], a + ld [hFFC8], a ret -Functionc8f0a: ; c8f0a (32:4f0a) +BattleAnim_ResetLCDStatCustom: ; c8f0a (32:4f0a) xor a - ld [hLCDStatCustom + 1], a - ld [hLCDStatCustom + 2], a - call Functionc8eca + ld [hFFC7], a + ld [hFFC8], a + call BattleBGEffects_ClearLYOverrides xor a - ld [hLCDStatCustom], a + ld [hFFC6], a call EndBattleBGEffect ret -Functionc8f19: ; c8f19 (32:4f19) +BattleBGEffects_ResetVideoHRAM: ; c8f19 (32:4f19) xor a - ld [hLCDStatCustom], a - ld a, $e4 + ld [hFFC6], a + ld a, %11100100 ld [rBGP], a - ld [wcfc7], a - ld [wcfc9], a - ld [hLCDStatCustom + 1], a - ld [hLCDStatCustom + 2], a - call Functionc8eca + ld [wBGP], a + ld [wOBP1], a + ld [hFFC7], a + ld [hFFC8], a + call BattleBGEffects_ClearLYOverrides ret Functionc8f2e: ; c8f2e (32:4f2e) push bc xor a - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a ld a, e - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a ld a, d - ld [BattleAnimTemps + 2], a + ld [wBattleAnimTemp2], a ld a, $80 - ld [BattleAnimTemps + 3], a + ld [wBattleAnimTemp3], a ld bc, LYOverridesBackup -.asm_c8f43 - ld a, [hLCDStatCustom + 1] +.loop + ld a, [hFFC7] cp c - jr nc, .asm_c8f58 - ld a, [hLCDStatCustom + 2] + jr nc, .next + ld a, [hFFC8] cp c - jr c, .asm_c8f58 - ld a, [BattleAnimTemps + 2] + jr c, .next + ld a, [wBattleAnimTemp2] ld d, a - ld a, [BattleAnimTemps] - call Functionc905d + ld a, [wBattleAnimTemp0] + call BattleBGEffects_Sine ld [bc], a -.asm_c8f58 +.next inc bc - ld a, [BattleAnimTemps + 1] - ld hl, BattleAnimTemps + ld a, [wBattleAnimTemp1] + ld hl, wBattleAnimTemp0 add [hl] ld [hl], a - ld hl, BattleAnimTemps + 3 + ld hl, wBattleAnimTemp3 dec [hl] - jr nz, .asm_c8f43 + jr nz, .loop pop bc ret -Functionc8f69: ; c8f69 (32:4f69) +InitSurfWaves: ; c8f69 (32:4f69) push bc xor a - ld [BattleAnimTemps], a + ld [wBattleAnimTemp0], a ld a, e - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a ld a, d - ld [BattleAnimTemps + 2], a + ld [wBattleAnimTemp2], a ld a, $40 - ld [BattleAnimTemps + 3], a - ld bc, w5_d422 -.asm_c8f7e - ld a, [BattleAnimTemps + 2] + ld [wBattleAnimTemp3], a + ld bc, wSurfWaveBGEffect +.loop + ld a, [wBattleAnimTemp2] ld d, a - ld a, [BattleAnimTemps] - call Functionc905d + ld a, [wBattleAnimTemp0] + call BattleBGEffects_Sine ld [bc], a inc bc - ld a, [BattleAnimTemps + 1] - ld hl, BattleAnimTemps + ld a, [wBattleAnimTemp1] + ld hl, wBattleAnimTemp0 add [hl] ld [hl], a - ld hl, BattleAnimTemps + 3 + ld hl, wBattleAnimTemp3 dec [hl] - jr nz, .asm_c8f7e + jr nz, .loop pop bc ret Functionc8f9a: ; c8f9a (32:4f9a) push bc - ld [BattleAnimTemps + 3], a + ld [wBattleAnimTemp3], a ld a, e - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a ld a, d - ld [BattleAnimTemps + 2], a - call Functionc8fe4 + ld [wBattleAnimTemp2], a + call .GetLYOverrideBackupAddrOffset ld hl, LYOverridesBackup add hl, de ld c, l ld b, h -.asm_c8faf - ld a, [BattleAnimTemps + 3] +.loop + ld a, [wBattleAnimTemp3] and a - jr z, .asm_c8fe1 + jr z, .done dec a - ld [BattleAnimTemps + 3], a + ld [wBattleAnimTemp3], a push af - ld a, [BattleAnimTemps + 2] + ld a, [wBattleAnimTemp2] ld d, a - ld a, [BattleAnimTemps + 1] + ld a, [wBattleAnimTemp1] push hl - call Functionc905d + call BattleBGEffects_Sine ld e, a pop hl - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] cp c - jr c, .asm_c8fcf + jr c, .skip1 ld a, e ld [bc], a inc bc -.asm_c8fcf - ld a, [hLCDStatCustom + 1] +.skip1 + ld a, [hFFC7] cp l - jr nc, .asm_c8fd6 + jr nc, .skip2 ld [hl], e dec hl -.asm_c8fd6 - ld a, [BattleAnimTemps + 1] +.skip2 + ld a, [wBattleAnimTemp1] add $4 - ld [BattleAnimTemps + 1], a + ld [wBattleAnimTemp1], a pop af - jr .asm_c8faf -.asm_c8fe1 + jr .loop + +.done pop bc and a ret -Functionc8fe4: ; c8fe4 (32:4fe4) - ld a, [hLCDStatCustom + 1] +.GetLYOverrideBackupAddrOffset + ld a, [hFFC7] ld e, a - ld a, [BattleAnimTemps] + ld a, [wBattleAnimTemp0] add e ld e, a ld d, $0 ret -Functionc8fef: ; c8fef (32:4fef) +BattleBGEffect_WavyScreenFX: ; c8fef (32:4fef) push bc - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] ld l, a inc a ld e, a ld h, $d2 ld d, h - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] sub l and a - jr z, .asm_c9009 + jr z, .done ld c, a ld a, [hl] push af -.asm_c9001 +.loop ld a, [de] inc de ld [hli], a dec c - jr nz, .asm_c9001 + jr nz, .loop pop af ld [hl], a -.asm_c9009 +.done pop bc ret Functionc900b: ; c900b (32:500b) push af ld h, $d2 - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] ld l, a - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] sub l ld d, a pop af @@ -2877,14 +2890,14 @@ Functionc900b: ; c900b (32:500b) Functionc901b: ; c901b (32:501b) push af ld e, a - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] ld l, a - ld a, [hLCDStatCustom + 2] + ld a, [hFFC8] sub l sub e ld d, a ld h, $d2 - ld a, [hLCDStatCustom + 1] + ld a, [hFFC7] ld l, a ld a, $90 .asm_c902c @@ -2899,43 +2912,45 @@ Functionc901b: ; c901b (32:501b) jr nz, .asm_c9033 ret -Functionc9038: ; c9038 (32:5038) - ld hl, $2 +BGEffect_CheckBattleTurn: ; c9038 (32:5038) + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hBattleTurn] and $1 xor [hl] ret -Functionc9042: ; c9042 (32:5042) - ld hl, $2 +BGEffect_CheckFlyDigStatus: ; c9042 (32:5042) + ld hl, BG_EFFECT_STRUCT_BATTLE_TURN add hl, bc ld a, [hBattleTurn] and $1 xor [hl] - jr nz, .asm_c9053 + jr nz, .player ld a, [EnemySubStatus3] ; EnemySubStatus3 and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND ret -.asm_c9053 + +.player ld a, [PlayerSubStatus3] ; PlayerSubStatus3 and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND ret -Functionc9059: ; c9059 (32:5059) +BattleBGEffects_CheckSGB: ; c9059 (32:5059) ld a, [hSGB] and a ret -Functionc905d: ; c905d (32:505d) +BattleBGEffects_Sine: ; c905d (32:505d) ld e, a - callab Functionce765 + callab BattleAnim_Sine_e ld a, e ret -Functionc9066: ; c9066 (32:5066) +BattleBGEffects_Cosine: ; c9066 (32:5066) ld e, a - callab Functionce76b + callab BattleAnim_Cosine_e ld a, e ret + ; c906f (32:506f) diff --git a/battle/core.asm b/battle/core.asm index bda8e736d..d8c38d2c1 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -1,9 +1,6 @@ -BattleCore: - ; Core components of the battle engine. - - -SendOutFirstMons: ; 3c000 +BattleCore: +DoBattle: ; 3c000 xor a ld [wBattleParticipantsNotFainted], a ld [wc6fc], a @@ -83,8 +80,8 @@ SendOutFirstMons: ; 3c000 ld [CurPartySpecies], a ld [TempBattleMonSpecies], a hlcoord 1, 5 - ld a, $9 - call Function3d490 + ld a, 9 + call SlideBattlePicOut call LoadTileMapToTempTileMap call ResetBattleParticipants call InitBattleMon @@ -113,7 +110,7 @@ SendOutFirstMons: ; 3c000 call SpikesDamage .not_linked_2 - jp Function3c12f + jp BattleTurn .tutorial_debug jp BattleMenu @@ -130,33 +127,33 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5 ld a, [wLinkMode] and a ld hl, BattleText_WildFled - jr z, .asm_3c115 + jr z, .print_text ld a, [wBattleResult] and $c0 ld [wBattleResult], a ld hl, BattleText_EnemyFled call CheckMobileBattleError - jr nc, .asm_3c115 + jr nc, .print_text ld hl, wcd2a bit 4, [hl] - jr nz, .asm_3c118 + jr nz, .skip_text ld hl, BattleText_LinkErrorBattleCanceled -.asm_3c115 +.print_text call StdBattleTextBox -.asm_3c118 +.skip_text call StopDangerSound call CheckMobileBattleError - jr c, .asm_3c126 + jr c, .skip_sfx ld de, SFX_RUN call PlaySFX -.asm_3c126 +.skip_sfx call SetPlayerTurn ld a, 1 ld [BattleEnded], a @@ -164,7 +161,7 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5 ; 3c12f -Function3c12f: ; 3c12f +BattleTurn: ; 3c12f .loop call MobileFn_3c1bf call CheckContestBattleOver @@ -424,7 +421,7 @@ HandleBerserkGene: ; 3c27c bit SUBSTATUS_CONFUSED, a ret nz xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_CONFUSED call Call_PlayBattleAnim_OnlyIfVisible call SwitchTurnCore @@ -1101,7 +1098,7 @@ ResidualDamage: ; 3c716 pop de xor a - ld [wcfca], a + ld [wNumHits], a call Call_PlayBattleAnim_OnlyIfVisible call GetEighthMaxHP ld de, PlayerToxicCount @@ -1141,7 +1138,7 @@ ResidualDamage: ; 3c716 call SwitchTurnCore xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_SAP ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar @@ -1166,7 +1163,7 @@ ResidualDamage: ; 3c716 bit SUBSTATUS_NIGHTMARE, [hl] jr z, .not_nightmare xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_IN_NIGHTMARE call Call_PlayBattleAnim_OnlyIfVisible call GetQuarterMaxHP @@ -1184,7 +1181,7 @@ ResidualDamage: ; 3c716 jr z, .not_cursed xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_IN_NIGHTMARE call Call_PlayBattleAnim_OnlyIfVisible call GetQuarterMaxHP @@ -1328,7 +1325,7 @@ HandleWrap: ; 3c874 call SwitchTurnCore xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a predef PlayBattleAnim call SwitchTurnCore @@ -1433,8 +1430,8 @@ HandleMysteryberry: ; 3c93c ld a, [hBattleTurn] and a jr z, .wild - ld de, wc739 - ld hl, wc735 + ld de, wWildMonPP + ld hl, wWildMonMoves ld a, [wBattleMode] dec a jr z, .wild @@ -1830,7 +1827,7 @@ HandleWeather: ; 3cb9e call SwitchTurnCore xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_IN_SANDSTORM call Call_PlayBattleAnim call SwitchTurnCore @@ -1852,9 +1849,8 @@ HandleWeather: ; 3cb9e dec a ld c, a ld b, 0 -rept 2 add hl, bc -endr + add hl, bc ld a, [hli] ld h, [hl] ld l, a @@ -1892,26 +1888,26 @@ SubtractHP: ; 3cc45 .ok inc hl ld a, [hl] - ld [wd1ec], a + ld [Buffer3], a sub c ld [hld], a - ld [wd1ee], a + ld [Buffer5], a ld a, [hl] - ld [wd1ed], a + ld [Buffer4], a sbc b ld [hl], a - ld [wd1ef], a + ld [Buffer6], a ret nc - ld a, [wd1ec] + ld a, [Buffer3] ld c, a - ld a, [wd1ed] + ld a, [Buffer4] ld b, a xor a ld [hli], a ld [hl], a - ld [wd1ee], a - ld [wd1ef], a + ld [Buffer5], a + ld [Buffer6], a ret ; 3cc76 @@ -2101,7 +2097,7 @@ UpdateHPBar: ; 3cd3c xor a .ok push bc - ld [wd10a], a + ld [wWhichHPBar], a predef AnimateHPBar pop bc ret @@ -2415,7 +2411,7 @@ Function3cf4a: ; 3cf4a ld e, HP_BAR_LENGTH_PX call UpdateHPPal call WaitBGMap - callba Function2c012 + callba EnemySwitch_TrainerHud ld a, [wLinkMode] and a jr z, .not_linked @@ -2489,15 +2485,15 @@ WinTrainerBattle: ; 3cfa4 bit 0, a jr nz, .battle_tower - call Function3ebd8 - ld c, $28 + call BattleWinSlideInEnemyTrainerFrontpic + ld c, 40 call DelayFrames ld a, [BattleType] cp BATTLETYPE_CANLOSE jr nz, .skip_heal predef HealParty .skip_heal - ld a, [wc2cc] + ld a, [wMonStatusFlags] bit 0, a jr nz, .skip_win_loss_text call PrintWinLossText @@ -2506,7 +2502,7 @@ WinTrainerBattle: ; 3cfa4 jp Function3d02b .mobile - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames ld c, $4 @@ -2514,7 +2510,7 @@ WinTrainerBattle: ; 3cfa4 ret .battle_tower - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames call EmptyBattleTextBox @@ -2578,9 +2574,8 @@ Function3d02b: ; 3d02b dec a ld c, a ld b, 0 -rept 2 add hl, bc -endr + add hl, bc ld a, [hli] ld h, [hl] ld l, a @@ -2618,9 +2613,8 @@ endr rl [hl] ret nc ld a, $ff -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a ret ; 3d0ab @@ -2874,13 +2868,13 @@ AskUseNextPokemon: ; 3d1f8 .loop lb bc, 1, 7 call PlaceYesNoBox - ld a, [MenuSelection2] + ld a, [wMenuCursorY] jr c, .pressed_b and a ret .pressed_b - ld a, [MenuSelection2] + ld a, [wMenuCursorY] cp $1 ; YES jr z, .loop ld hl, PartyMon1Speed @@ -2891,7 +2885,7 @@ AskUseNextPokemon: ; 3d1f8 ForcePlayerMonChoice: ; 3d227 call EmptyBattleTextBox call LoadStandardMenuDataHeader - call Function3d2f7 + call SetUpBattlePartyMenu_NoLoop call ForcePickPartyMonInBattle ld a, [wLinkMode] and a @@ -2935,7 +2929,7 @@ ForcePlayerMonChoice: ; 3d227 call ClearPalettes call DelayFrame call _LoadHPBar - call WriteBackup + call CloseWindow call GetMemSGBLayout call SetPalettes call SendOutPkmnText @@ -2995,12 +2989,12 @@ IsMobileBattle: ; 3d2f1 ret ; 3d2f7 -Function3d2f7: ; 3d2f7 +SetUpBattlePartyMenu_NoLoop: ; 3d2f7 call ClearBGPalettes -Function3d2fa: ; switch to fullscreen menu? +SetUpBattlePartyMenu: ; switch to fullscreen menu? callba LoadPartyMenuGFX callba InitPartyMenuWithCancel - callba Function8e85 + callba InitPartyMenuBGPal7 callba InitPartyMenuGFX ret ; 3d313 @@ -3111,12 +3105,12 @@ LostBattle: ; 3d38e hlcoord 0, 0 lb bc, 8, 21 call ClearBox - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames - ld a, [wc2cc] + ld a, [wMonStatusFlags] bit 0, a jr nz, .skip_win_loss_text call PrintWinLossText @@ -3128,7 +3122,7 @@ LostBattle: ; 3d38e hlcoord 0, 0 lb bc, 8, 21 call ClearBox - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames @@ -3147,7 +3141,7 @@ LostBattle: ; 3d38e jr nz, .LostLinkBattle ; Greyscale - ld b, SCGB_00 + ld b, SCGB_BATTLE_GRAYSCALE call GetSGBLayout call SetPalettes jr .end @@ -3180,7 +3174,7 @@ LostBattle: ; 3d38e hlcoord 0, 0 lb bc, 8, 21 call ClearBox - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames @@ -3260,31 +3254,31 @@ MonFaintedAnimation: ; 3d444 ; 3d490 -Function3d490: ; 3d490 +SlideBattlePicOut: ; 3d490 ld [hMapObjectIndexBuffer], a ld c, a -.asm_3d493 +.loop push bc push hl ld b, $7 -.asm_3d497 +.loop2 push hl - call Function3d4ae + call .DoFrame pop hl ld de, SCREEN_WIDTH add hl, de dec b - jr nz, .asm_3d497 + jr nz, .loop2 ld c, 2 call DelayFrames pop hl pop bc dec c - jr nz, .asm_3d493 + jr nz, .loop ret ; 3d4ae -Function3d4ae: ; 3d4ae +.DoFrame: ; 3d4ae ld a, [hMapObjectIndexBuffer] ld c, a cp $8 @@ -3413,8 +3407,8 @@ ResetEnemyBattleVars: ; 3d557 xor a ld [wPlayerWrapCount], a hlcoord 18, 0 - ld a, $8 - call Function3d490 + ld a, 8 + call SlideBattlePicOut call EmptyBattleTextBox jp LoadStandardMenuDataHeader ; 3d57a @@ -3646,13 +3640,13 @@ LoadEnemyPkmnToSwitchTo: ; 3d6ca ld a, [CurPartySpecies] cp UNOWN jr nz, .skip_unown - ld a, [wdef4] + ld a, [wFirstUnownSeen] and a jr nz, .skip_unown ld hl, EnemyMonDVs predef GetUnownLetter ld a, [UnownLetter] - ld [wdef4], a + ld [wFirstUnownSeen], a .skip_unown ld hl, EnemyMonHP @@ -3701,10 +3695,10 @@ OfferSwitch: ; 3d74b call StdBattleTextBox lb bc, 1, 7 call PlaceYesNoBox - ld a, [MenuSelection2] + ld a, [wMenuCursorY] dec a jr nz, .said_no - call Function3d2f7 + call SetUpBattlePartyMenu_NoLoop call PickSwitchMonInBattle jr c, .canceled_switch ld a, [CurBattleMon] @@ -3764,8 +3758,8 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 call GetMonFrontpic xor a - ld [wcfca], a - ld [wKickCounter], a + ld [wNumHits], a + ld [wBattleAnimParam], a call SetEnemyTurn ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim @@ -3773,7 +3767,7 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 call BattleCheckEnemyShininess jr nc, .not_shiny ld a, 1 ; shiny anim - ld [wKickCounter], a + ld [wBattleAnimParam], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim .not_shiny @@ -4270,14 +4264,14 @@ SendOutPlayerMon: ; 3db5f ld [wEnemyWrapCount], a call SetPlayerTurn xor a - ld [wcfca], a - ld [wKickCounter], a + ld [wNumHits], a + ld [wBattleAnimParam], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim call BattleCheckPlayerShininess jr nc, .not_shiny - ld a, $1 - ld [wKickCounter], a + ld a, 1 + ld [wBattleAnimParam], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim @@ -4463,7 +4457,7 @@ Function3dce6: ; 3dce6 push af xor a ld [hBattleTurn], a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_RETURN_MON call Call_PlayBattleAnim pop af @@ -4478,21 +4472,21 @@ HandleHealingItems: ; 3dcf9 call SetPlayerTurn call HandleHPHealingItem call UseHeldStatusHealingItem - call HandleStatusHealingItem + call UseConfusionHealingItem call SetEnemyTurn call HandleHPHealingItem call UseHeldStatusHealingItem - jp HandleStatusHealingItem + jp UseConfusionHealingItem .player_1 call SetEnemyTurn call HandleHPHealingItem call UseHeldStatusHealingItem - call HandleStatusHealingItem + call UseConfusionHealingItem call SetPlayerTurn call HandleHPHealingItem call UseHeldStatusHealingItem - jp HandleStatusHealingItem + jp UseConfusionHealingItem ; 3dd2f HandleHPHealingItem: ; 3dd2f @@ -4511,13 +4505,13 @@ HandleHPHealingItem: ; 3dd2f .go push bc ld a, [de] - ld [wd1ec], a + ld [Buffer3], a add a ld c, a dec de ld a, [de] inc de - ld [wd1ed], a + ld [Buffer4], a adc a ld b, a ld a, b @@ -4542,12 +4536,12 @@ HandleHPHealingItem: ; 3dd2f ld [Buffer1], a ld a, [de] add c - ld [wd1ee], a + ld [Buffer5], a ld c, a dec de ld a, [de] adc $0 - ld [wd1ef], a + ld [Buffer6], a ld b, a ld a, [hld] cp c @@ -4555,25 +4549,25 @@ HandleHPHealingItem: ; 3dd2f sbc b jr nc, .okay ld a, [hli] - ld [wd1ef], a + ld [Buffer6], a ld a, [hl] - ld [wd1ee], a + ld [Buffer5], a .okay - ld a, [wd1ef] + ld a, [Buffer6] ld [de], a inc de - ld a, [wd1ee] + ld a, [Buffer5] ld [de], a ld a, [hBattleTurn] - ld [wd10a], a + ld [wWhichHPBar], a and a hlcoord 2, 2 jr z, .got_hp_bar_coords hlcoord 10, 9 .got_hp_bar_coords - ld [wd10a], a + ld [wWhichHPBar], a predef AnimateHPBar UseOpponentItem: call RefreshBattleHuds @@ -4596,7 +4590,7 @@ ItemRecoveryAnim: ; 3ddc8 ld [FXAnimIDLo], a call SwitchTurnCore xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a predef PlayBattleAnim call SwitchTurnCore @@ -4672,7 +4666,7 @@ UseHeldStatusHealingItem: ; 3dde9 ; 3de51 -HandleStatusHealingItem: ; 3de51 +UseConfusionHealingItem: ; 3de51 ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar bit SUBSTATUS_CONFUSED, a @@ -4692,7 +4686,7 @@ HandleStatusHealingItem: ; 3de51 res SUBSTATUS_CONFUSED, [hl] call GetItemName call ItemRecoveryAnim - ld hl, BattleText_0x80dab + ld hl, BattleText_ItemHealedConfusion call StdBattleTextBox ld a, [hBattleTurn] and a @@ -4750,18 +4744,16 @@ HandleStatBoostingHeldItems: ; 3de97 ld a, [hli] cp $ff jr z, .finish -rept 2 inc hl -endr + inc hl cp b jr nz, .loop pop bc ld a, [bc] ld [wd265], a push bc -rept 2 dec hl -endr + dec hl ld a, [hli] ld h, [hl] ld l, a @@ -4856,7 +4848,7 @@ DrawPlayerHUD: ; 3df58 lb bc, 5, 11 call ClearBox - callba DrawPlayerExpBar + callba DrawPlayerHUDBorder hlcoord 18, 9 ld [hl], $73 ; vertical bar @@ -4998,7 +4990,7 @@ DrawEnemyHUD: ; 3e043 lb bc, 4, 11 call ClearBox - callba Function2c0c5 + callba DrawEnemyHUDBorder ld a, [TempEnemyMonSpecies] ld [CurSpecies], a @@ -5116,7 +5108,7 @@ DrawEnemyHUD: ; 3e043 .draw_bar xor a - ld [wd10a], a + ld [wWhichHPBar], a hlcoord 2, 2 ld b, 0 call DrawBattleHPBar @@ -5228,11 +5220,11 @@ LoadBattleMenu2: ; 3e19b BattleMenu_Pack: ; 3e1c7 ld a, [wLinkMode] and a - jp nz, ItemsCantBeUsed + jp nz, .ItemsCantBeUsed ld a, [InBattleTowerBattle] and a - jp nz, ItemsCantBeUsed + jp nz, .ItemsCantBeUsed call LoadStandardMenuDataHeader @@ -5261,7 +5253,7 @@ BattleMenu_Pack: ; 3e1c7 call DoItemEffect .got_item - call Function3e234 + call .UseItem ret .didnt_use_item @@ -5277,52 +5269,52 @@ BattleMenu_Pack: ; 3e1c7 jp BattleMenu ; 3e22b -ItemsCantBeUsed: ; 3e22b +.ItemsCantBeUsed: ; 3e22b ld hl, BattleText_ItemsCantBeUsedHere call StdBattleTextBox jp BattleMenu ; 3e234 -Function3e234: ; 3e234 - ld a, [wc64e] +.UseItem: ; 3e234 + ld a, [wWildMon] and a - jr nz, .asm_3e279 + jr nz, .run callab CheckItemPocket ld a, [wItemAttributeParamBuffer] - cp $3 - jr z, .asm_3e24a + cp BALL + jr z, .ball call ClearBGPalettes -.asm_3e24a +.ball xor a ld [hBGMapMode], a call _LoadBattleFontsHPBar call ClearSprites ld a, [BattleType] cp BATTLETYPE_TUTORIAL - jr z, .asm_3e25d + jr z, .tutorial2 call GetMonBackpic -.asm_3e25d +.tutorial2 call GetMonFrontpic ld a, $1 - ld [MenuSelection2], a + ld [wMenuCursorY], a call ExitMenu call UpdateBattleHUDs call WaitBGMap call LoadTileMapToTempTileMap - call ResetTextRelatedRAM + call ClearWindowData call FinishBattleAnim and a ret -.asm_3e279 +.run xor a - ld [wc64e], a + ld [wWildMon], a ld a, [wBattleResult] and $c0 ld [wBattleResult], a - call ResetTextRelatedRAM + call ClearWindowData call SetPalettes scf ret @@ -5334,62 +5326,62 @@ Function3e290: call ExitMenu call LoadStandardMenuDataHeader call ClearBGPalettes -Function3e299: - call Function3d2fa +BattleMenuPKMN_Loop: + call SetUpBattlePartyMenu xor a ld [PartyMenuActionText], a call Function3d313 call Function3d329 - jr c, .asm_3e2da -.asm_3e2a8 - callba Function8ea4a - call Function3e2f5 - jr c, .asm_3e2c8 - call Function1bee - ld a, [MenuSelection2] - cp $1 - jp z, Function3e358 - cp $2 - jr z, .asm_3e2cf - cp $3 - jr z, .asm_3e2da - jr .asm_3e2a8 + jr c, .Cancel +.loop + callba FreezeMonIcons + call .GetMenu + jr c, .PressedB + call PlaceHollowCursor + ld a, [wMenuCursorY] + cp $1 ; SWITCH + jp z, TryPlayerSwitch + cp $2 ; STATS + jr z, .Stats + cp $3 ; CANCEL + jr z, .Cancel + jr .loop -.asm_3e2c8 +.PressedB call CheckMobileBattleError - jr c, .asm_3e2da - jr Function3e299 + jr c, .Cancel + jr BattleMenuPKMN_Loop -.asm_3e2cf - call Function3e308 +.Stats + call Battle_StatsScreen call CheckMobileBattleError - jr c, .asm_3e2da + jr c, .Cancel jp Function3e290 -.asm_3e2da +.Cancel call ClearSprites call ClearPalettes call DelayFrame call _LoadHPBar - call WriteBackup + call CloseWindow call LoadTileMapToTempTileMap call GetMemSGBLayout call SetPalettes jp BattleMenu ; 3e2f5 -Function3e2f5: ; 3e2f5 +.GetMenu: ; 3e2f5 call IsMobileBattle - jr z, .asm_3e301 - callba Function24e99 + jr z, .mobile + callba BattleMonMenu ret -.asm_3e301 - callba Function100d22 +.mobile + callba MobileBattleMonMenu ret ; 3e308 -Function3e308: ; 3e308 +Battle_StatsScreen: ; 3e308 call DisableLCD ld hl, VTiles2 tile $31 ld de, VTiles0 @@ -5397,55 +5389,55 @@ Function3e308: ; 3e308 call CopyBytes ld hl, VTiles2 ld de, VTiles0 tile $11 - ld bc, $0310 + ld bc, $31 tiles call CopyBytes call EnableLCD call ClearSprites call LowVolume xor a ; PARTYMON ld [MonType], a - callba Function4dc7b + callba BattleStatsScreenInit call MaxVolume call DisableLCD ld hl, VTiles0 ld de, VTiles2 tile $31 - ld bc, $0110 + ld bc, $11 tiles call CopyBytes ld hl, VTiles0 tile $11 ld de, VTiles2 - ld bc, $0310 + ld bc, $31 tiles call CopyBytes call EnableLCD ret ; 3e358 -Function3e358: ; 3e358 +TryPlayerSwitch: ; 3e358 ld a, [CurBattleMon] ld d, a ld a, [CurPartyMon] cp d - jr nz, .asm_3e36b + jr nz, .check_trapped ld hl, BattleText_PkmnIsAlreadyOut call StdBattleTextBox - jp Function3e299 + jp BattleMenuPKMN_Loop -.asm_3e36b +.check_trapped ld a, [wPlayerWrapCount] and a - jr nz, .asm_3e378 + jr nz, .trapped ld a, [EnemySubStatus5] bit SUBSTATUS_CANT_RUN, a - jr z, .asm_3e381 + jr z, .try_switch -.asm_3e378 +.trapped ld hl, BattleText_PkmnCantBeRecalled call StdBattleTextBox - jp Function3e299 + jp BattleMenuPKMN_Loop -.asm_3e381 +.try_switch call CheckIfPartyHasPkmnToBattleWith - jp z, Function3e299 + jp z, BattleMenuPKMN_Loop ld a, [CurBattleMon] ld [LastPlayerMon], a ld a, $2 @@ -5454,14 +5446,11 @@ Function3e358: ; 3e358 call DelayFrame call ClearSprites call _LoadHPBar - call WriteBackup + call CloseWindow call GetMemSGBLayout call SetPalettes ld a, [CurPartyMon] ld [CurBattleMon], a - ; fallthrough -; 3e3ad - PlayerSwitch: ; 3e3ad ld a, 1 ld [wPlayerIsSwitching], a @@ -5470,7 +5459,7 @@ PlayerSwitch: ; 3e3ad jr z, .not_linked call LoadStandardMenuDataHeader call LinkBattleSendReceiveAction - call WriteBackup + call CloseWindow .not_linked call ParseEnemyAction @@ -5519,7 +5508,7 @@ EnemyMonEntrance: ; 3e3ff ; 3e40b BattleMonEntrance: ; 3e40b - call BattleMonNickComma_TextBox + call WithdrawPkmnText ld c, 50 call DelayFrames @@ -5551,7 +5540,7 @@ BattleMonEntrance: ; 3e40b call SetPlayerTurn call SpikesDamage ld a, $2 - ld [MenuSelection2], a + ld [wMenuCursorY], a ret ; 3e459 @@ -5581,7 +5570,7 @@ PassedBattleMonEntrance: ; 3e459 BattleMenu_Run: ; 3e489 call Call_LoadTempTileMapToTileMap ld a, $3 - ld [MenuSelection2], a + ld [wMenuCursorY], a ld hl, BattleMonSpeed ld de, EnemyMonSpeed call TryToRunAwayFromBattle @@ -5667,9 +5656,9 @@ MoveSelectionScreen: ; 3e4bc ld a, 17 - NUM_MOVES - 4 .got_default_coord - ld [wcfa1], a + ld [w2DMenuCursorInitY], a ld a, b - ld [wcfa2], a + ld [w2DMenuCursorInitX], a ld a, [wMoveSelectionMenuType] cp $1 jr z, .skip_inc @@ -5677,14 +5666,14 @@ MoveSelectionScreen: ; 3e4bc inc a .skip_inc - ld [MenuSelection2], a + ld [wMenuCursorY], a ld a, $1 - ld [wcfaa], a - ld a, [wd0eb] + ld [wMenuCursorX], a + ld a, [wNumMoves] inc a - ld [wcfa3], a + ld [w2DMenuNumRows], a ld a, $1 - ld [wcfa4], a + ld [w2DMenuNumCols], a ld c, $2c ld a, [wMoveSelectionMenuType] dec a @@ -5700,13 +5689,13 @@ MoveSelectionScreen: ; 3e4bc .okay ld a, b - ld [wcfa8], a + ld [wMenuJoypadFilter], a ld a, c - ld [wcfa5], a + ld [w2DMenuFlags1], a xor a - ld [wcfa6], a + ld [w2DMenuFlags2], a ld a, $10 - ld [wcfa7], a + ld [w2DMenuCursorOffsets], a .menu_loop ld a, [wMoveSelectionMenuType] and a @@ -5732,7 +5721,7 @@ MoveSelectionScreen: ; 3e4bc .interpret_joypad ld a, $1 ld [hBGMapMode], a - call Function1bd3 + call ScrollingMenuJoypad bit D_UP_F, a jp nz, .pressed_up bit D_DOWN_F, a @@ -5744,9 +5733,9 @@ MoveSelectionScreen: ; 3e4bc xor a ld [wMoveSwapBuffer], a - ld a, [MenuSelection2] + ld a, [wMenuCursorY] dec a - ld [MenuSelection2], a + ld [wMenuCursorY], a ld b, a ld a, [wMoveSelectionMenuType] dec a @@ -5769,7 +5758,7 @@ MoveSelectionScreen: ; 3e4bc ret nz ld hl, BattleMonPP - ld a, [MenuSelection2] + ld a, [wMenuCursorY] ld c, a ld b, 0 add hl, bc @@ -5785,7 +5774,7 @@ MoveSelectionScreen: ; 3e4bc ld a, [wc6e1] and a jr nz, .skip2 - ld a, [MenuSelection2] + ld a, [wMenuCursorY] ld hl, BattleMonMoves ld c, a ld b, 0 @@ -5815,26 +5804,25 @@ MoveSelectionScreen: ; 3e4bc ; 3e61d .pressed_up - ld a, [MenuSelection2] + ld a, [wMenuCursorY] and a jp nz, .menu_loop - ld a, [wd0eb] + ld a, [wNumMoves] inc a - ld [MenuSelection2], a + ld [wMenuCursorY], a jp .menu_loop ; 3e62e .pressed_down ; 3e62e - ld a, [MenuSelection2] + ld a, [wMenuCursorY] ld b, a - ld a, [wd0eb] -rept 2 + ld a, [wNumMoves] + inc a inc a -endr cp b jp nz, .menu_loop ld a, $1 - ld [MenuSelection2], a + ld [wMenuCursorY], a jp .menu_loop ; 3e643 @@ -5851,7 +5839,7 @@ endr swap a and $f ld b, a - ld a, [MenuSelection2] + ld a, [wMenuCursorY] cp b jr nz, .not_swapping_disabled_move ld a, [hl] @@ -5870,7 +5858,7 @@ endr ld a, [hl] and $f ld b, a - ld a, [MenuSelection2] + ld a, [wMenuCursorY] swap a add b ld [hl], a @@ -5905,7 +5893,7 @@ endr ld d, h ld e, l pop hl - ld a, [MenuSelection2] + ld a, [wMenuCursorY] dec a ld c, a ld b, 0 @@ -5918,7 +5906,7 @@ endr ret .start_swap - ld a, [MenuSelection2] + ld a, [wMenuCursorY] ld [wMoveSwapBuffer], a jp MoveSelectionScreen ; 3e6c8 @@ -5940,7 +5928,7 @@ MoveInfoBox: ; 3e6c8 swap a and $f ld b, a - ld a, [MenuSelection2] + ld a, [wMenuCursorY] cp b jr nz, .not_disabled @@ -5950,11 +5938,11 @@ MoveInfoBox: ; 3e6c8 jr .done .not_disabled - ld hl, MenuSelection2 + ld hl, wMenuCursorY dec [hl] call SetPlayerTurn ld hl, BattleMonMoves - ld a, [MenuSelection2] + ld a, [wMenuCursorY] ld c, a ld b, 0 add hl, bc @@ -5967,7 +5955,7 @@ MoveInfoBox: ; 3e6c8 ld [MonType], a callab GetMaxPPOfMove - ld hl, MenuSelection2 + ld hl, wMenuCursorY ld c, [hl] inc [hl] ld b, 0 @@ -6014,9 +6002,8 @@ MoveInfoBox: ; 3e6c8 lb bc, 1, 2 call PrintNum pop hl -rept 2 inc hl -endr + inc hl ld [hl], "/" inc hl ld de, wNamedObjectIndexBuffer @@ -6537,7 +6524,7 @@ LoadEnemyMon: ; 3e8eb ld [EnemyMonLevel], a ; Fill stats ld de, EnemyMonMaxHP - ld b, $00 + ld b, FALSE ld hl, LinkBattleRNs + 7 ; ? predef CalcPkmnStats @@ -6714,7 +6701,7 @@ endr ld bc, PKMN_NAME_LENGTH call CopyBytes -; Caught this mon +; Saw this mon ld a, [TempEnemyMonSpecies] dec a ld c, a @@ -6824,9 +6811,8 @@ CheckUnownLetter: ; 3eb75 .next ; Make sure we haven't gone past the end of the table -rept 2 inc e -endr + inc e ld a, e cp a, .Set1 - .LetterSets jr c, .loop @@ -6874,7 +6860,7 @@ Function3ebc7: ; 3ebc7 ret ; 3ebd8 -Function3ebd8: ; 3ebd8 +BattleWinSlideInEnemyTrainerFrontpic: ; 3ebd8 xor a ld [TempEnemyMonSpecies], a call FinishBattleAnim @@ -6883,12 +6869,12 @@ Function3ebd8: ; 3ebd8 ld de, VTiles2 callab GetTrainerPic hlcoord 19, 0 - ld c, $0 + ld c, 0 .outer_loop inc c ld a, c - cp $7 + cp 7 ret z xor a ld [hBGMapMode], a @@ -6898,9 +6884,9 @@ Function3ebd8: ; 3ebd8 push hl .inner_loop - call Function3ec1a + call .CopyColumn inc hl - ld a, $7 + ld a, 7 add d ld d, a dec c @@ -6908,7 +6894,7 @@ Function3ebd8: ; 3ebd8 ld a, $1 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames pop hl pop bc @@ -6916,11 +6902,11 @@ Function3ebd8: ; 3ebd8 jr .outer_loop ; 3ec1a -Function3ec1a: ; 3ec1a +.CopyColumn: ; 3ec1a push hl push de push bc - ld e, $7 + ld e, 7 .loop ld [hl], d @@ -6970,7 +6956,7 @@ ApplyPrzEffectOnSpeed: ; 3ec39 ld [hli], a or b jr nz, .player_ok - ld b, $1 + ld b, $1 ; min speed .player_ok ld [hl], b @@ -6991,7 +6977,7 @@ ApplyPrzEffectOnSpeed: ; 3ec39 ld [hli], a or b jr nz, .enemy_ok - ld b, $1 + ld b, $1 ; min speed .enemy_ok ld [hl], b @@ -7014,7 +7000,7 @@ ApplyBrnEffectOnAttack: ; 3ec76 ld [hli], a or b jr nz, .player_ok - ld b, $1 + ld b, $1 ; min attack .player_ok ld [hl], b @@ -7033,7 +7019,7 @@ ApplyBrnEffectOnAttack: ; 3ec76 ld [hli], a or b jr nz, .enemy_ok - ld b, $1 + ld b, $1 ; min attack .enemy_ok ld [hl], b @@ -7182,9 +7168,8 @@ BadgeStatBoosts: ; 3ed45 ; Swap badges 3 (PlainBadge) and 5 (MineralBadge). ld d, a and (1 << PLAINBADGE) -rept 2 add a -endr + add a ld b, a ld a, d and (1 << MINERALBADGE) @@ -7203,9 +7188,8 @@ endr ld a, b srl b call c, BoostStat -rept 2 inc hl -endr + inc hl ; Check every other badge. srl b dec c @@ -7334,9 +7318,8 @@ _BattleRandom:: ; 3edd8 ; a * 5 + 1 ld c, a -rept 2 add a -endr + add a add c inc a @@ -7377,7 +7360,7 @@ FinishBattleAnim: ; 3ee27 push bc push de push hl - ld b, SCGB_01 + ld b, SCGB_BATTLE_COLORS call GetSGBLayout call SetPalettes call DelayFrame @@ -7423,6 +7406,7 @@ GiveExperiencePoints: ; 3ee3b and a pop bc jp z, .skip_stats + ld hl, MON_STAT_EXP + 1 add hl, bc ld d, h @@ -7472,9 +7456,8 @@ GiveExperiencePoints: ; 3ee3b ld [de], a .skip -rept 2 inc de -endr + inc de dec c jr nz, .loop1 xor a @@ -7534,7 +7517,7 @@ endr push bc call LoadTileMapToTempTileMap pop bc - ld hl, MON_EXP + 2 + ld hl, MON_STAT_EXP - 1 add hl, bc ld d, [hl] ld a, [hQuotient + 2] @@ -7549,9 +7532,8 @@ endr inc [hl] jr nz, .skip2 ld a, $ff -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a .skip2 @@ -7567,7 +7549,7 @@ endr ld d, MAX_LEVEL callab CalcExpAtLevel pop bc - ld hl, MON_EXP + 2 + ld hl, MON_STAT_EXP - 1 add hl, bc push bc ld a, [hQuotient] @@ -7582,7 +7564,7 @@ endr sbc c ld a, [hl] sbc b - jr c, .max_exp + jr c, .not_max_exp ld a, b ld [hli], a ld a, c @@ -7590,7 +7572,7 @@ endr ld a, d ld [hld], a -.max_exp +.not_max_exp xor a ; PARTYMON ld [MonType], a predef CopyPkmnToTempMon @@ -7604,7 +7586,7 @@ endr cp d jp z, .skip_stats ; <NICKNAME> grew to level ##! - ld [wc719], a + ld [wTempLevel], a ld a, [CurPartyLevel] push af ld a, d @@ -7626,10 +7608,10 @@ endr add hl, bc ld d, h ld e, l - ld hl, MON_EXP + 2 + ld hl, MON_STAT_EXP - 1 add hl, bc push bc - ld b, $1 + ld b, TRUE predef CalcPkmnStats pop bc pop de @@ -7712,7 +7694,7 @@ endr ld c, $9 call TextBox hlcoord 11, 1 - ld bc, $0004 + ld bc, 4 predef PrintTempMonStats ld c, $1e call DelayFrames @@ -7725,7 +7707,7 @@ endr ld a, [CurPartyLevel] push af ld c, a - ld a, [wc719] + ld a, [wTempLevel] ld b, a .level_loop @@ -7767,35 +7749,37 @@ endr ; 3f0d4 Function3f0d4: ; 3f0d4 +; count number of battle participants ld a, [wBattleParticipantsNotFainted] ld b, a - ld c, $6 - ld d, $0 -.asm_3f0dc + ld c, PARTY_LENGTH + ld d, 0 +.loop xor a srl b adc d ld d, a dec c - jr nz, .asm_3f0dc - cp $2 + jr nz, .loop + cp 2 ret c + ld [wd265], a ld hl, EnemyMonBaseStats - ld c, $7 -.asm_3f0ef + ld c, EnemyMonEnd - EnemyMonBaseStats +.loop2 xor a ld [hDividend + 0], a ld a, [hl] ld [hDividend + 1], a ld a, [wd265] ld [hDivisor], a - ld b, $2 + ld b, 2 call Divide ld a, [hQuotient + 2] ld [hli], a dec c - jr nz, .asm_3f0ef + jr nz, .loop2 ret ; 3f106 @@ -7884,9 +7868,8 @@ Function3f136: ; 3f136 inc [hl] jr nz, .asm_3f186 ld a, $ff -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a .asm_3f186 @@ -7941,12 +7924,12 @@ endr call PrintPlayerHUD ld hl, BattleMonNick ld de, StringBuffer1 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes call Function3dfe ld de, SFX_HIT_END_OF_EXP_BAR call PlaySFX - callba Function8e79d + callba AnimateEndOfExpBar call WaitSFX ld hl, BattleText_StringBuffer1GrewToLevel call StdBattleTextBox @@ -8120,8 +8103,6 @@ JumpText_GoForItPkmn: ; 3f2df JumpText_YourFoesWeakGetmPkmn: ; 3f2e6 text_jump Text_YourFoesWeakGetmPkmn start_asm -; 3f2eb - Function_TextJump_BattleMonNick01: ; 3f2eb ld hl, TextJump_BattleMonNick01 ret @@ -8132,18 +8113,13 @@ TextJump_BattleMonNick01: ; 3f2ef db "@" ; 3f2f4 - -BattleMonNickComma_TextBox: ; 3f2f4 - ld hl, TextJump_BattleMonNickComma +WithdrawPkmnText: ; 3f2f4 + ld hl, .WithdrawPkmnText jp BattleTextBox -; 3f2fa -TextJump_BattleMonNickComma: ; 3f2fa +.WithdrawPkmnText text_jump Text_BattleMonNickComma start_asm -; 3f2ff - -WithdrawPkmnText: ; 3f2ff ; Print text to withdraw Pkmn ; depending on HP the message is different push de @@ -8401,7 +8377,7 @@ GetMonBackpic: ; 3f43d ld hl, BattleAnimCmd_RaiseSub jr nz, GetBackpic_DoAnim ; substitute -Function3f447: ; 3f447 +DropPlayerSub: ; 3f447 ld a, [wPlayerMinimized] and a ld hl, BattleAnimCmd_MinimizeOpp @@ -8437,7 +8413,7 @@ GetMonFrontpic: ; 3f47c ld hl, BattleAnimCmd_RaiseSub jr nz, GetFrontpic_DoAnim -Function3f486: ; 3f486 +DropEnemySub: ; 3f486 ld a, [wEnemyMinimized] and a ld hl, BattleAnimCmd_MinimizeOpp @@ -8481,7 +8457,7 @@ StartBattle: ; 3f4c1 ld a, [TimeOfDayPal] push af call BattleIntro - call SendOutFirstMons + call DoBattle call ExitBattle pop af ld [TimeOfDayPal], a @@ -8490,9 +8466,9 @@ StartBattle: ; 3f4c1 ; 3f4d9 -_SendOutFirstMons: ; 3f4d9 +_DoBattle: ; 3f4d9 ; unreferenced - call SendOutFirstMons + call DoBattle ret ; 3f4dd @@ -8512,7 +8488,7 @@ BattleIntro: ; 3f4dd callba ClearBattleRAM call InitEnemy call BackUpVBGMap2 - ld b, SCGB_00 + ld b, SCGB_BATTLE_GRAYSCALE call GetSGBLayout ld hl, rLCDC res 6, [hl] @@ -8531,7 +8507,7 @@ BattleIntro: ; 3f4dd call ClearBox call ClearSprites ld a, [wBattleMode] - cp $1 + cp WILD_BATTLE call z, UpdateEnemyHUD ld a, $1 ld [hBGMapMode], a @@ -8560,9 +8536,9 @@ InitEnemy: ; 3f55e BackUpVBGMap2: ; 3f568 ld a, [rSVBK] push af - ld a, $6 ; BANK(w6_d000) + ld a, $6 ; BANK(wDecompressScratch) ld [rSVBK], a - ld hl, w6_d000 + ld hl, wDecompressScratch ld bc, $40 tiles ; VBGMap3 - VBGMap2 ld a, $2 call ByteFill @@ -8570,7 +8546,7 @@ BackUpVBGMap2: ; 3f568 push af ld a, $1 ld [rVBK], a - ld de, w6_d000 + ld de, wDecompressScratch hlbgcoord 0, 0 ; VBGMap2 lb bc, BANK(BackUpVBGMap2), $40 call Request2bpp @@ -8586,7 +8562,7 @@ InitEnemyTrainer: ; 3f594 callba MobileFn_10606a xor a ld [TempEnemyMonSpecies], a - callab Function3957b + callab GetTrainerAttributes callab ReadTrainerParty ld a, [TrainerClass] @@ -8637,16 +8613,16 @@ InitEnemyTrainer: ; 3f594 ; 3f607 InitEnemyWildmon: ; 3f607 - ld a, $1 + ld a, WILD_BATTLE ld [wBattleMode], a callba MobileFn_10605d call LoadEnemyMon ld hl, EnemyMonMoves - ld de, wc735 + ld de, wWildMonMoves ld bc, NUM_MOVES call CopyBytes ld hl, EnemyMonPP - ld de, wc739 + ld de, wWildMonPP ld bc, NUM_MOVES call CopyBytes ld hl, EnemyMonDVs @@ -8654,11 +8630,11 @@ InitEnemyWildmon: ; 3f607 ld a, [CurPartySpecies] cp UNOWN jr nz, .skip_unown - ld a, [wdef4] + ld a, [wFirstUnownSeen] and a jr nz, .skip_unown ld a, [UnownLetter] - ld [wdef4], a + ld [wFirstUnownSeen], a .skip_unown ld de, VTiles2 predef FrontpicPredef @@ -8725,19 +8701,19 @@ Function3f662: ; 3f662 ExitBattle: ; 3f69e - call Function3f6a5 + call .HandleEndOfBattle call CleanUpBattleRAM ret ; 3f6a5 -Function3f6a5: ; 3f6a5 +.HandleEndOfBattle: ; 3f6a5 ld a, [wLinkMode] and a jr z, .not_linked call ShowLinkBattleParticipantsAfterEnd ld c, 150 call DelayFrames - call Function3f77c + call DetermineMobileBattleResult ret .not_linked @@ -8746,14 +8722,14 @@ Function3f6a5: ; 3f6a5 ret nz call CheckPayDay xor a - ld [wd1e9], a + ld [wForceEvolution], a predef EvolveAfterBattle - callba Function2ed44 + callba GivePokerusAndConvertBerries ret ; 3f6d0 CleanUpBattleRAM: ; 3f6d0 - call Function3f998 + call BattleEnd_HandleRoamMons xor a ld [Danger], a ld [wBattleMode], a @@ -8764,7 +8740,7 @@ CleanUpBattleRAM: ; 3f6d0 ld [wFailedToFlee], a ld [wNumFleeAttempts], a ld [wForcedSwitch], a - ld [wd0d8], a + ld [wPartyMenuCursor], a ld [wKeyItemsPocketCursor], a ld [wItemsPocketCursor], a ld [wd0d2], a @@ -8803,16 +8779,15 @@ CheckPayDay: ; 3f71d rl [hl] jr nc, .okay ld a, $ff -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a .okay ld hl, wPayDayMoney + 2 ld de, Money + 2 call AddBattleMoneyToAccount - ld hl, BattleText_PlayerPickuedUpPayDayMoney + ld hl, BattleText_PlayerPickedUpPayDayMoney call StdBattleTextBox ld a, [InBattleTowerBattle] bit 0, a @@ -8835,7 +8810,7 @@ ShowLinkBattleParticipantsAfterEnd: ; 3f759 ret ; 3f77c -Function3f77c: ; 3f77c +DetermineMobileBattleResult: ; 3f77c callba CheckMobileBattleError jp c, .Mobile_InvalidBattle call IsMobileBattle2 @@ -8937,7 +8912,7 @@ DisplayLinkRecord: ; 3f836 xor a ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call ByteFill - call Function3200 + call WaitBGMap2 ld b, SCGB_08 call GetSGBLayout call SetPalettes @@ -9083,19 +9058,19 @@ Function3f85f: ; 3f85f ; 3f998 -Function3f998: ; 3f998 +BattleEnd_HandleRoamMons: ; 3f998 ld a, [BattleType] cp BATTLETYPE_ROAMING - jr nz, .asm_3f9c4 + jr nz, .not_roaming ld a, [wBattleResult] and $f - jr z, .asm_3f9af + jr z, .caught_or_defeated_roam_mon call GetRoamMonHP ld a, [EnemyMonHP + 1] ld [hl], a - jr .asm_3f9ca + jr .update_roam_mons -.asm_3f9af +.caught_or_defeated_roam_mon call GetRoamMonHP ld [hl], $0 call GetRoamMonMapGroup @@ -9106,12 +9081,12 @@ Function3f998: ; 3f998 ld [hl], $0 ret -.asm_3f9c4 +.not_roaming call BattleRandom and $f ret nz -.asm_3f9ca +.update_roam_mons callab UpdateRoamMons ret ; 3f9d1 @@ -9205,13 +9180,11 @@ Function3fa42: ; 3fa42 ld d, 5 .loop push hl -rept 2 inc hl -endr + inc hl ld a, [hl] -rept 2 dec hl -endr + dec hl and a jr z, .copy push de @@ -9311,18 +9284,16 @@ Function3fac8: ; 3fac8 ld c, $1 .loop2 ld a, b -rept 2 add b -endr + add b ld e, a ld d, $0 ld hl, wd002 add hl, de push hl ld a, c -rept 2 add c -endr + add c ld e, a ld d, $0 ld hl, wd002 @@ -9427,7 +9398,7 @@ InitBattleDisplay: ; 3fb6c call WaitBGMap xor a ld [hBGMapMode], a - callba SlideBattlePics + callba BattleIntroSlidingPics ld a, $1 ld [hBGMapMode], a ld a, $31 @@ -9440,7 +9411,7 @@ InitBattleDisplay: ; 3fb6c ld [rWY], a call WaitBGMap call HideSprites - ld b, SCGB_01 + ld b, SCGB_BATTLE_COLORS call GetSGBLayout call SetPalettes ld a, $90 @@ -9456,12 +9427,12 @@ InitBattleDisplay: ; 3fb6c ld a, $6 ld [rSVBK], a - ld hl, w6_d000 - ld bc, w6_d400 - w6_d000 + ld hl, wDecompressScratch + ld bc, wBackupAttrMap - wDecompressScratch ld a, " " call ByteFill - ld de, w6_d000 + ld de, wDecompressScratch hlbgcoord 0, 0 lb bc, BANK(.BlankBGMap), $40 call Request2bpp @@ -9479,7 +9450,7 @@ InitBattleDisplay: ; 3fb6c GetTrainerBackpic: ; 3fbff -; Load the player character's backpic (6x6) into VRAM starting from $9310. +; Load the player character's backpic (6x6) into VRAM starting from VTiles2 tile $31. ; Special exception for Dude. ld b, BANK(DudeBackpic) @@ -9594,11 +9565,11 @@ BattleStartMessage: ; 3fc8b jr nc, .not_shiny xor a - ld [wcfca], a + ld [wNumHits], a ld a, 1 ld [hBattleTurn], a ld a, 1 - ld [wKickCounter], a + ld [wBattleAnimParam], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim @@ -9613,7 +9584,7 @@ BattleStartMessage: ; 3fc8b ld d, $0 ld e, ANIM_MON_NORMAL predef AnimateFrontpic - jr .skip_cry + jr .skip_cry ; cry is played during the animation .cry_no_anim ld a, $0f @@ -9626,7 +9597,7 @@ BattleStartMessage: ; 3fc8b cp BATTLETYPE_FISH jr nz, .NotFishing - callba MobileFn_106086 + callba MobileFn_106086 ; update fishing records? ld hl, HookedPokemonAttackedText jr .PlaceBattleStartText @@ -9642,7 +9613,7 @@ BattleStartMessage: ; 3fc8b .PlaceBattleStartText push hl - callba Function2c000 + callba BattleStart_TrainerHuds pop hl call StdBattleTextBox diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 506dc9746..0425cda5d 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -1,11 +1,12 @@ DoPlayerTurn: ; 34000 call SetPlayerTurn - ld a, [wd0ec] + ld a, [wPlayerAction] and a ret nz jr DoTurn + ; 3400a @@ -50,9 +51,8 @@ DoMove: ; 3402c ld c, a ld b, 0 ld hl, MoveEffectsPointers -rept 2 add hl, bc -endr + add hl, bc ld a, BANK(MoveEffectsPointers) call GetFarHalfword @@ -101,9 +101,8 @@ endr ld c, a ld b, 0 ld hl, BattleCommandPointers -rept 2 add hl, bc -endr + add hl, bc pop bc ld a, BANK(BattleCommandPointers) @@ -115,6 +114,7 @@ endr .DoMoveEffectCommand jp [hl] + ; 34084 @@ -172,7 +172,7 @@ CheckPlayerTurn: jr z, .woke_up xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_SLP call FarPlayBattleAnimation jr .fast_asleep @@ -276,7 +276,7 @@ CheckPlayerTurn: ld hl, IsConfusedText call StdBattleTextBox xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_CONFUSED call FarPlayBattleAnimation @@ -305,7 +305,7 @@ CheckPlayerTurn: ld hl, InLoveWithText call StdBattleTextBox xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_IN_LOVE call FarPlayBattleAnimation @@ -352,6 +352,7 @@ CheckPlayerTurn: call StdBattleTextBox call CantMove jp EndTurn + ; 341f0 @@ -380,6 +381,7 @@ CantMove: ; 341f0 res SUBSTATUS_UNDERGROUND, [hl] res SUBSTATUS_FLYING, [hl] jp AppearUserRaiseSub + ; 34216 @@ -388,6 +390,7 @@ OpponentCantMove: ; 34216 call BattleCommand_SwitchTurn call CantMove jp BattleCommand_SwitchTurn + ; 3421f @@ -420,7 +423,7 @@ CheckEnemyTurn: ; 3421f ld hl, FastAsleepText call StdBattleTextBox xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_SLP call FarPlayBattleAnimation jr .fast_asleep @@ -521,7 +524,7 @@ CheckEnemyTurn: ; 3421f call StdBattleTextBox xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_CONFUSED call FarPlayBattleAnimation @@ -542,7 +545,7 @@ CheckEnemyTurn: ; 3421f call BattleCommand_DamageCalc call BattleCommand_LowerSub xor a - ld [wcfca], a + ld [wNumHits], a ; Flicker the monster pic unless flying or underground. ld de, ANIM_HIT_CONFUSION @@ -567,7 +570,7 @@ CheckEnemyTurn: ; 3421f ld hl, InLoveWithText call StdBattleTextBox xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_IN_LOVE call FarPlayBattleAnimation @@ -623,6 +626,7 @@ EndTurn: ; 34385 ld a, $1 ld [wTurnEnded], a jp ResetDamage + ; 3438d @@ -640,6 +644,7 @@ MoveDisabled: ; 3438d ld hl, DisabledMoveText jp StdBattleTextBox + ; 343a5 @@ -656,7 +661,7 @@ HitConfusion: ; 343a5 call BattleCommand_LowerSub xor a - ld [wcfca], a + ld [wNumHits], a ; Flicker the monster pic unless flying or underground. ld de, ANIM_HIT_CONFUSION @@ -672,6 +677,7 @@ HitConfusion: ; 343a5 ld c, $1 call PlayerHurtItself jp BattleCommand_RaiseSub + ; 343db @@ -821,7 +827,7 @@ BattleCommand_CheckObedience: ; 343db ld hl, WontObeyText call StdBattleTextBox call HitConfusion - jp .asm_3450c + jp .EndDisobedience .Nap @@ -857,7 +863,7 @@ BattleCommand_CheckObedience: ; 343db .Print call StdBattleTextBox - jp .asm_3450c + jp .EndDisobedience .UseInstead @@ -912,7 +918,7 @@ BattleCommand_CheckObedience: ; 343db ld a, 1 ld [AlreadyDisobeyed], a - ld a, [wcfa3] + ld a, [w2DMenuNumRows] ld b, a ; Save the move we originally picked for afterward. @@ -962,7 +968,7 @@ BattleCommand_CheckObedience: ; 343db ld [CurMoveNum], a -.asm_3450c +.EndDisobedience xor a ld [LastPlayerMove], a ld [LastEnemyCounterMove], a @@ -974,6 +980,7 @@ BattleCommand_CheckObedience: ; 343db ld [PlayerEncoreCount], a jp EndMoveEffect + ; 3451f @@ -1003,6 +1010,7 @@ IgnoreSleepOnly: ; 3451f scf ret + ; 34541 @@ -1010,6 +1018,7 @@ BattleCommand_UsedMoveText: ; 34541 ; usedmovetext callba DisplayUsedMoveText ret + ; 34548 @@ -1023,6 +1032,7 @@ CheckUserIsCharging: ; 34548 .end and a ret + ; 34555 @@ -1064,9 +1074,8 @@ BattleCommand_DoTurn: ; 34555 jp nz, EndMoveEffect ; SubStatus5 -rept 2 inc de -endr + inc de ld a, [de] bit SUBSTATUS_TRANSFORMED, a @@ -1151,6 +1160,7 @@ endr call StdBattleTextBox ld b, 1 ret + ; 34602 .continuousmoves ; 34602 @@ -1194,6 +1204,7 @@ CheckMimicUsed: ; 3460b .mimic and a ret + ; 34631 @@ -1262,9 +1273,8 @@ BattleCommand_Critical: ; 34631 jr nc, .ScopeLens ; +2 critical level -rept 2 inc c -endr + inc c .ScopeLens push bc @@ -1324,6 +1334,7 @@ BattleCommand_TripleKick: ; 346b2 ld [hld], a ld [hl], a ret + ; 346cd @@ -1333,6 +1344,7 @@ BattleCommand_KickCounter: ; 346cd ld hl, wKickCounter inc [hl] ret + ; 346d2 @@ -1506,9 +1518,8 @@ BattleCommand_Stab: ; 346d2 pop hl .SkipType -rept 2 inc hl -endr + inc hl jr .TypesLoop .end @@ -1520,6 +1531,7 @@ endr or b ld [TypeModifier], a ret + ; 347c8 @@ -1558,6 +1570,7 @@ CheckTypeMatchup: ; 347d3 bit SUBSTATUS_IDENTIFIED, a jr nz, .End jr .TypesLoop + .Next cp d jr nz, .Nope @@ -1567,11 +1580,13 @@ CheckTypeMatchup: ; 347d3 cp c jr z, .Yup jr .Nope2 + .Nope inc hl .Nope2 inc hl jr .TypesLoop + .Yup xor a ld [hDividend + 0], a @@ -1597,6 +1612,7 @@ CheckTypeMatchup: ; 347d3 pop de pop hl ret + ; 34833 @@ -1618,6 +1634,7 @@ BattleCommand_ResetTypeMatchup: ; 34833 .reset ld [wTypeMatchup], a ret + ; 3484e INCLUDE "battle/ai/switch.asm" @@ -1679,6 +1696,7 @@ BattleCommand_DamageVariation: ; 34cfd ld a, [hQuotient + 2] ld [hl], a ret + ; 34d32 @@ -1729,16 +1747,16 @@ BattleCommand_CheckHit: ; 34d32 cp HELD_BRIGHTPOWDER ld a, c ; % miss pop bc - jr nz, .asm_34d81 + jr nz, .skip_brightpowder ld c, a ld a, b sub c ld b, a - jr nc, .asm_34d81 + jr nc, .skip_brightpowder ld b, 0 -.asm_34d81 +.skip_brightpowder ld a, b cp $ff jr z, .Hit @@ -1834,7 +1852,7 @@ BattleCommand_CheckHit: ; 34d32 .DrainSub ; Return z if using an HP drain move on a substitute. call CheckSubstituteOpp - jr z, .asm_34e00 + jr z, .not_draining_sub ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar @@ -1844,7 +1862,7 @@ BattleCommand_CheckHit: ; 34d32 cp EFFECT_DREAM_EATER ret z -.asm_34e00 +.not_draining_sub ld a, 1 and a ret @@ -1916,7 +1934,7 @@ BattleCommand_CheckHit: ; 34d32 ld a, [EnemyEvaLevel] ld c, a - jr z, .asm_34e60 + jr z, .got_acc_eva ld hl, wEnemyMoveStruct + MOVE_ACC ld a, [EnemyAccLevel] @@ -1924,17 +1942,17 @@ BattleCommand_CheckHit: ; 34d32 ld a, [PlayerEvaLevel] ld c, a -.asm_34e60 +.got_acc_eva cp b - jr c, .asm_34e6b + jr c, .eva_less_than_acc ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVar bit SUBSTATUS_IDENTIFIED, a ret nz -.asm_34e6b - ld a, $e +.eva_less_than_acc + ld a, 14 sub c ld c, a xor a @@ -1943,9 +1961,9 @@ BattleCommand_CheckHit: ; 34d32 ld a, [hl] ld [hMultiplicand + 2], a push hl - ld d, $2 + ld d, 2 -.asm_34e7a +.accuracy_loop push bc ld hl, .AccProb dec b @@ -1959,29 +1977,29 @@ BattleCommand_CheckHit: ; 34d32 call Multiply ld a, [hl] ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide ld a, [hQuotient + 2] ld b, a ld a, [hQuotient + 1] or b - jr nz, .asm_34ea2 + jr nz, .min_accuracy ld [hQuotient + 1], a ld a, $1 ld [hQuotient + 2], a -.asm_34ea2 +.min_accuracy ld b, c dec d - jr nz, .asm_34e7a + jr nz, .accuracy_loop ld a, [hQuotient + 1] and a ld a, [hQuotient + 2] - jr z, .asm_34eaf + jr z, .finish_accuracy ld a, $ff -.asm_34eaf +.finish_accuracy pop hl ld [hl], a ret @@ -2016,9 +2034,9 @@ BattleCommand_EffectChance: ; 34ecc ld hl, wPlayerMoveStruct + MOVE_CHANCE ld a, [hBattleTurn] and a - jr z, .asm_34ee1 + jr z, .got_move_chance ld hl, wEnemyMoveStruct + MOVE_CHANCE -.asm_34ee1 +.got_move_chance call BattleRandom cp [hl] @@ -2030,6 +2048,7 @@ BattleCommand_EffectChance: ; 34ecc ld [EffectFailed], a and a ret + ; 34eee @@ -2071,7 +2090,7 @@ BattleCommand_LowerSub: ; 34eee jr c, .mimic_anims xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a inc a ld [wKickCounter], a @@ -2100,6 +2119,7 @@ BattleCommand_LowerSub: ; 34eee ld a, 0 ld [wc73e], a ret + ; 34f57 @@ -2108,6 +2128,7 @@ BattleCommand_HitTarget: ; 34f57 call BattleCommand_LowerSub call BattleCommand_HitTargetNoSub jp BattleCommand_RaiseSub + ; 34f60 @@ -2125,7 +2146,7 @@ BattleCommand_HitTargetNoSub: ; 34f60 ld a, BATTLEANIM_PLAYER_DAMAGE .got_rollout_count - ld [wcfca], a + ld [wNumHits], a ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_MULTI_HIT @@ -2159,6 +2180,7 @@ BattleCommand_HitTargetNoSub: ; 34f60 .fly_dig ; clear sprite jp AppearUserLowerSub + .multihit .conversion .doublehit @@ -2177,8 +2199,9 @@ BattleCommand_HitTargetNoSub: ; 34f60 pop af jp z, PlayFXAnimID xor a - ld [wcfca], a + ld [wNumHits], a jp PlayFXAnimID + ; 34fd1 @@ -2189,6 +2212,7 @@ BattleCommand_StatUpAnim: ; 34fd1 xor a jr BattleCommand_StatUpDownAnim + ; 34fdb @@ -2208,7 +2232,7 @@ BattleCommand_StatDownAnim: ; 34fdb BattleCommand_StatUpDownAnim: ; 34feb - ld [wcfca], a + ld [wNumHits], a xor a ld [wKickCounter], a ld a, BATTLE_VARS_MOVE_ANIM @@ -2216,6 +2240,7 @@ BattleCommand_StatUpDownAnim: ; 34feb ld e, a ld d, 0 jp PlayFXAnimID + ; 34ffd @@ -2226,6 +2251,7 @@ BattleCommand_SwitchTurn: ; 34ffd xor 1 ld [hBattleTurn], a ret + ; 35004 @@ -2241,12 +2267,13 @@ BattleCommand_RaiseSub: ; 35004 jp c, BattleCommand_RaiseSubNoAnim xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, $2 ld [wKickCounter], a ld a, SUBSTITUTE jp LoadAnim + ; 35023 @@ -2291,6 +2318,7 @@ BattleCommand_FailureText: ; 35023 res SUBSTATUS_FLYING, [hl] call AppearUserRaiseSub jp EndMoveEffect + ; 3505e @@ -2382,6 +2410,7 @@ BattleCommand_CheckFaint: ; 3505e inc de ld [de], a ret + ; 350e4 @@ -2452,6 +2481,7 @@ FailText_CheckOpponentProtect: ; 35157 ld l, e .not_protected jp StdBattleTextBox + ; 35165 @@ -2464,6 +2494,7 @@ BattleCommanda5: ; 35165 and $7f jp z, PrintDoesntAffect jp PrintButItFailed + ; 35175 @@ -2512,6 +2543,7 @@ BattleCommand_StartLoop: ; 35197 xor a ld [hl], a ret + ; 351a5 @@ -2539,6 +2571,7 @@ BattleCommand_SuperEffectiveText: ; 351ad ld hl, NotVeryEffectiveText .print jp StdBattleTextBox + ; 351c0 @@ -2550,10 +2583,10 @@ BattleCommand_CheckDestinyBond: ; 351c0 ld hl, EnemyMonHP ld a, [hBattleTurn] and a - jr z, .asm_351cb + jr z, .got_hp ld hl, BattleMonHP -.asm_351cb +.got_hp ld a, [hli] or [hl] ret nz @@ -2561,7 +2594,7 @@ BattleCommand_CheckDestinyBond: ; 351c0 ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVar bit SUBSTATUS_DESTINY_BOND, a - jr z, .asm_35231 + jr z, .no_dbond ld hl, TookDownWithItText call StdBattleTextBox @@ -2571,13 +2604,13 @@ BattleCommand_CheckDestinyBond: ; 351c0 ld hl, EnemyMonMaxHP + 1 bccoord 2, 2 ; hp bar ld a, 0 - jr nz, .asm_351f2 + jr nz, .got_max_hp ld hl, BattleMonMaxHP + 1 bccoord 10, 9 ; hp bar ld a, 1 -.asm_351f2 - ld [wd10a], a +.got_max_hp + ld [wWhichHPBar], a ld a, [hld] ld [Buffer1], a ld a, [hld] @@ -2599,7 +2632,7 @@ BattleCommand_CheckDestinyBond: ; 351c0 call BattleCommand_SwitchTurn xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a inc a ld [wKickCounter], a @@ -2607,27 +2640,28 @@ BattleCommand_CheckDestinyBond: ; 351c0 call LoadAnim call BattleCommand_SwitchTurn - jr .asm_3524d ; 3522f $1c + jr .finish -.asm_35231 +.no_dbond ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_MULTI_HIT - jr z, .asm_3524a + jr z, .multiple_hit_raise_sub cp EFFECT_DOUBLE_HIT - jr z, .asm_3524a + jr z, .multiple_hit_raise_sub cp EFFECT_TWINEEDLE - jr z, .asm_3524a + jr z, .multiple_hit_raise_sub cp EFFECT_TRIPLE_KICK - jr z, .asm_3524a + jr z, .multiple_hit_raise_sub cp EFFECT_BEAT_UP - jr nz, .asm_3524d + jr nz, .finish -.asm_3524a +.multiple_hit_raise_sub call BattleCommand_RaiseSub -.asm_3524d +.finish jp EndMoveEffect + ; 35250 @@ -2635,6 +2669,7 @@ BattleCommand_BuildOpponentRage: ; 35250 ; buildopponentrage jp .start + .start ld a, [AttackMissed] and a @@ -2660,6 +2695,7 @@ BattleCommand_BuildOpponentRage: ; 35250 ld hl, RageBuildingText call StdBattleTextBox jp BattleCommand_SwitchTurn + ; 3527b @@ -2675,21 +2711,22 @@ BattleCommand_RageDamage: ; 3527b ld a, [hBattleTurn] and a ld a, [wPlayerRageCounter] - jr z, .asm_35290 + jr z, .rage_loop ld a, [wEnemyRageCounter] -.asm_35290 +.rage_loop and a - jr z, .asm_3529a + jr z, .done dec a add hl, bc - jr nc, .asm_35290 + jr nc, .rage_loop ld hl, -1 -.asm_3529a +.done ld a, h ld [CurDamage], a ld a, l ld [CurDamage + 1], a ret + ; 352a3 @@ -2699,11 +2736,11 @@ EndMoveEffect: ; 352a3 ld a, [BattleScriptBufferLoc + 1] ld h, a ld a, $ff -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a ret + ; 352b1 @@ -2736,12 +2773,13 @@ DittoMetalPowder: ; 352b1 srl b ld a, b and a - jr nz, .asm_352d8 + jr nz, .done inc b -.asm_352d8 +.done scf rr c ret + ; 352dc @@ -2837,6 +2875,7 @@ PlayerAttackDamage: ; 352e2 ld a, 1 and a ret + ; 3534d @@ -2882,6 +2921,7 @@ TruncateHL_BC: ; 3534d .done ld b, l ret + ; 35378 @@ -2936,6 +2976,7 @@ GetDamageStats: ; 3537e pop bc pop hl ret + ; 353b5 @@ -2953,6 +2994,7 @@ ThickClubBoost: ; 353b5 pop de pop bc ret + ; 353c3 @@ -2970,6 +3012,7 @@ LightBallBoost: ; 353c3 pop de pop bc ret + ; 353d1 @@ -3012,6 +3055,7 @@ SpeciesItemBoost: ; 353d1 sla l rl h ret + ; 353f6 @@ -3092,6 +3136,7 @@ EnemyAttackDamage: ; 353f6 ld a, 1 and a ret + ; 35461 @@ -3275,12 +3320,14 @@ BattleCommand_BeatUp: ; 35461 ld a, [wEnemyMoveStruct + MOVE_POWER] ld d, a ret + ; 355b0 .beatup_fail: ; 355b0 ld b, buildopponentrage_command jp SkipToBattleCommand + ; 355b5 @@ -3290,6 +3337,7 @@ BattleCommanda8: ; 355b5 ret nz jp PrintButItFailed + ; 355bd @@ -3300,10 +3348,10 @@ GetBeatupMonLocation: ; 355bd ld a, [hBattleTurn] and a ld hl, PartyMon1Species - jr z, .asm_355cc + jr z, .got_species ld hl, OTPartyMon1Species -.asm_355cc +.got_species ld a, [wd002] add hl, bc call GetPartyLocation @@ -3318,6 +3366,7 @@ BattleCommand_ClearMissDamage: ; 355d5 ret z jp ResetDamage + ; 355dd @@ -3356,6 +3405,7 @@ endr pop af ld e, a ret + ; 35612 @@ -3401,9 +3451,8 @@ BattleCommand_DamageCalc: ; 35612 xor a ld hl, hDividend -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a ; Level * 2 @@ -3424,9 +3473,8 @@ endr pop bc ; + 2 -rept 2 inc [hl] -endr + inc [hl] ; * bp inc hl @@ -3592,6 +3640,7 @@ endr ld [hProduct + 3], a ret + ; 35703 @@ -3659,18 +3708,18 @@ BattleCommand_ConstantDamage: ; 35726 .psywave_loop call BattleRandom and a - jr z, .psywave_loop ; 35761 $fa + jr z, .psywave_loop cp b - jr nc, .psywave_loop ; 35764 $f7 + jr nc, .psywave_loop ld b, a ld a, $0 - jr .got_power ; 35769 $21 + jr .got_power .super_fang ld hl, EnemyMonHP ld a, [hBattleTurn] and a - jr z, .got_hp ; 35771 $3 + jr z, .got_hp ld hl, BattleMonHP .got_hp ld a, [hli] @@ -3682,12 +3731,12 @@ BattleCommand_ConstantDamage: ; 35726 ld a, b pop bc and a - jr nz, .got_power ; 35781 $9 + jr nz, .got_power or b ld a, $0 - jr nz, .got_power ; 35786 $4 + jr nz, .got_power ld b, $1 - jr .got_power ; 3578a $0 + jr .got_power .got_power ld hl, CurDamage @@ -3699,7 +3748,7 @@ BattleCommand_ConstantDamage: ; 35726 ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .reversal_got_hp ; 35798 $3 + jr z, .reversal_got_hp ld hl, EnemyMonHP .reversal_got_hp xor a @@ -3844,6 +3893,7 @@ BattleCommand_Counter: ; 35813 xor a ld [AttackMissed], a ret + ; 35864 @@ -3870,12 +3920,12 @@ BattleCommand_Encore: ; 35864 jp z, .failed ld b, a -.asm_3588e +.got_move ld a, [hli] cp b - jr nz, .asm_3588e + jr nz, .got_move - ld bc, $0005 + ld bc, BattleMonPP - BattleMonMoves - 1 add hl, bc ld a, [hl] and $3f @@ -3895,33 +3945,32 @@ rept 3 endr ld [de], a call CheckOpponentWentFirst - jr nz, .asm_3591a + jr nz, .finish_move ld a, [hBattleTurn] and a - jr z, .asm_358ef + jr z, .force_last_enemy_move push hl ld a, [LastPlayerMove] ld b, a ld c, 0 ld hl, BattleMonMoves -.asm_358cc +.find_player_move ld a, [hli] cp b - jr z, .asm_358dd + jr z, .got_player_move inc c ld a, c cp NUM_MOVES - jr c, .asm_358cc + jr c, .find_player_move pop hl res SUBSTATUS_ENCORED, [hl] xor a ld [de], a jr .failed -.asm_358dd +.got_player_move pop hl - ld a, c ld [CurMoveNum], a ld a, b @@ -3929,30 +3978,30 @@ endr dec a ld de, wPlayerMoveStruct call GetMoveData - jr .asm_3591a + jr .finish_move -.asm_358ef +.force_last_enemy_move push hl ld a, [LastEnemyMove] ld b, a ld c, 0 ld hl, EnemyMonMoves -.asm_358f9 +.find_enemy_move ld a, [hli] cp b - jr z, .asm_3590a + jr z, .got_enemy_move inc c ld a, c cp NUM_MOVES - jr c, .asm_358f9 + jr c, .find_enemy_move pop hl res SUBSTATUS_ENCORED, [hl] xor a ld [de], a jr .failed -.asm_3590a - pop hl +.got_enemy_move + pop hl ld a, c ld [CurEnemyMoveNum], a ld a, b @@ -3961,13 +4010,14 @@ endr ld de, wEnemyMoveStruct call GetMoveData -.asm_3591a +.finish_move call AnimateCurrentMove ld hl, GotAnEncoreText jp StdBattleTextBox .failed jp PrintDidntAffect2 + ; 35926 @@ -3976,15 +4026,15 @@ BattleCommand_PainSplit: ; 35926 ld a, [AttackMissed] and a - jp nz, PainSplit_PrintButItFailed + jp nz, .ButItFailed call CheckSubstituteOpp - jp nz, PainSplit_PrintButItFailed + jp nz, .ButItFailed call AnimateCurrentMove ld hl, BattleMonMaxHP + 1 ld de, EnemyMonMaxHP + 1 call .PlayerShareHP ld a, $1 - ld [wd10a], a + ld [wWhichHPBar], a hlcoord 10, 9 predef AnimateHPBar ld hl, EnemyMonHP @@ -3998,7 +4048,7 @@ BattleCommand_PainSplit: ; 35926 ld [Buffer1], a call .EnemyShareHP xor a - ld [wd10a], a + ld [wWhichHPBar], a call ResetDamage hlcoord 2, 2 predef AnimateHPBar @@ -4017,9 +4067,8 @@ BattleCommand_PainSplit: ; 35926 ld [Buffer3], a ld a, [hl] ld [Buffer4], a -rept 2 dec de -endr + dec de ld a, [de] dec de add b @@ -4062,10 +4111,12 @@ endr ld [hli], a ld [Buffer6], a ret + ; 359cd -PainSplit_PrintButItFailed: ; 359cd +.ButItFailed jp PrintDidntAffect2 + ; 359d0 @@ -4080,6 +4131,7 @@ BattleCommand_Snore: ; 359d0 ld [AttackMissed], a call FailSnore jp EndMoveEffect + ; 359e6 @@ -4088,17 +4140,17 @@ BattleCommand_Conversion2: ; 359e6 ld a, [AttackMissed] and a - jr nz, .asm_35a50 + jr nz, .failed ld hl, BattleMonType1 ld a, [hBattleTurn] and a - jr z, .asm_359f7 + jr z, .got_type ld hl, EnemyMonType1 -.asm_359f7 +.got_type ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_35a50 + jr z, .failed push hl dec a ld hl, Moves + MOVE_TYPE @@ -4106,20 +4158,20 @@ BattleCommand_Conversion2: ; 359e6 ld d, a pop hl cp CURSE_T - jr z, .asm_35a50 + jr z, .failed call AnimateCurrentMove call BattleCommand_SwitchTurn -.asm_35a13 +.loop call BattleRandom and $1f cp UNUSED_TYPES - jr c, .asm_35a24 + jr c, .okay cp UNUSED_TYPES_END - jr c, .asm_35a13 + jr c, .loop cp TYPES_END - jr nc, .asm_35a13 -.asm_35a24 + jr nc, .loop +.okay ld [hli], a ld [hld], a push hl @@ -4136,7 +4188,7 @@ BattleCommand_Conversion2: ; 359e6 pop hl ld a, [wTypeMatchup] cp 10 - jr nc, .asm_35a13 + jr nc, .loop call BattleCommand_SwitchTurn ld a, [hl] @@ -4145,8 +4197,9 @@ BattleCommand_Conversion2: ; 359e6 ld hl, TransformedTypeText jp StdBattleTextBox -.asm_35a50 +.failed jp FailConversion2 + ; 35a53 @@ -4171,6 +4224,7 @@ BattleCommand_LockOn: ; 35a53 .fail call AnimateFailedMove jp PrintDidntAffect + ; 35a74 @@ -4291,6 +4345,7 @@ BattleCommand_Sketch: ; 35a74 .fail call AnimateFailedMove jp PrintDidntAffect + ; 35b16 @@ -4319,6 +4374,7 @@ BattleCommand_DefrostOpponent: ; 35b16 pop hl ld [hl], a ret + ; 35b33 @@ -4334,11 +4390,11 @@ BattleCommand_SleepTalk: ; 35b33 ld hl, BattleMonMoves + 1 ld a, [DisabledMove] ld d, a - jr z, .asm_35b4f + jr z, .got_moves ld hl, EnemyMonMoves + 1 ld a, [EnemyDisabledMove] ld d, a -.asm_35b4f +.got_moves ld a, BATTLE_VARS_STATUS call GetBattleVar and SLP @@ -4346,10 +4402,10 @@ BattleCommand_SleepTalk: ; 35b33 ld a, [hl] and a jr z, .fail - call .asm_35ba9 + call .safely_check_has_usable_move jr c, .fail dec hl -.asm_35b62 +.sample_move push hl call BattleRandom and 3 ; TODO factor in NUM_MOVES @@ -4359,17 +4415,17 @@ BattleCommand_SleepTalk: ; 35b33 ld a, [hl] pop hl and a - jr z, .asm_35b62 + jr z, .sample_move ld e, a ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp e - jr z, .asm_35b62 + jr z, .sample_move ld a, e cp d - jr z, .asm_35b62 - call .asm_35bdf - jr z, .asm_35b62 + jr z, .sample_move + call .check_two_turn_move + jr z, .sample_move ld a, BATTLE_VARS_MOVE call GetBattleVarAddr ld a, e @@ -4390,57 +4446,57 @@ BattleCommand_SleepTalk: ; 35b33 call AnimateFailedMove jp TryPrintButItFailed -.asm_35ba9 +.safely_check_has_usable_move push hl push de push bc - call .asm_35bb3 + call .check_has_usable_move pop bc pop de pop hl ret -.asm_35bb3 +.check_has_usable_move ld a, [hBattleTurn] and a ld a, [DisabledMove] - jr z, .asm_35bbe + jr z, .got_move_2 ld a, [EnemyDisabledMove] -.asm_35bbe +.got_move_2 ld b, a ld a, BATTLE_VARS_MOVE call GetBattleVar ld c, a dec hl ld d, NUM_MOVES -.asm_35bc8 +.loop2 ld a, [hl] and a - jr z, .asm_35bdb + jr z, .carry cp c - jr z, .asm_35bd7 + jr z, .nope cp b - jr z, .asm_35bd7 + jr z, .nope - call .asm_35bdf - jr nz, .asm_35bdd + call .check_two_turn_move + jr nz, .no_carry -.asm_35bd7 +.nope inc hl dec d - jr nz, .asm_35bc8 + jr nz, .loop2 -.asm_35bdb +.carry scf ret -.asm_35bdd +.no_carry and a ret -.asm_35bdf +.check_two_turn_move push hl push de push bc @@ -4465,6 +4521,7 @@ BattleCommand_SleepTalk: ; 35b33 ret z cp EFFECT_BIDE ret + ; 35bff @@ -4477,6 +4534,7 @@ BattleCommand_DestinyBond: ; 35bff call AnimateCurrentMove ld hl, DestinyBondEffectText jp StdBattleTextBox + ; 35c0f @@ -4485,27 +4543,27 @@ BattleCommand_Spite: ; 35c0f ld a, [AttackMissed] and a - jp nz, .asm_35c91 + jp nz, .failed ld bc, PARTYMON_STRUCT_LENGTH ; ???? ld hl, EnemyMonMoves ld a, [hBattleTurn] and a - jr z, .asm_35c24 + jr z, .got_moves ld hl, BattleMonMoves -.asm_35c24 +.got_moves ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_35c91 + jr z, .failed cp STRUGGLE - jr z, .asm_35c91 + jr z, .failed ld b, a ld c, -1 -.asm_35c33 +.loop inc c ld a, [hli] cp b - jr nz, .asm_35c33 + jr nz, .loop ld [wTypeMatchup], a dec hl ld b, 0 @@ -4515,21 +4573,20 @@ BattleCommand_Spite: ; 35c0f pop bc ld a, [hl] and $3f - jr z, .asm_35c91 + jr z, .failed push bc call GetMoveName call BattleRandom and 3 -rept 2 inc a -endr + inc a ld b, a ld a, [hl] and $3f cp b - jr nc, .asm_35c5b + jr nc, .deplete_pp ld b, a -.asm_35c5b +.deplete_pp ld a, [hl] sub b ld [hl], a @@ -4544,18 +4601,18 @@ endr ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVar bit SUBSTATUS_TRANSFORMED, a - jr nz, .asm_35c82 + jr nz, .transformed ld a, [hBattleTurn] and a - jr nz, .asm_35c81 + jr nz, .not_wildmon ld a, [wBattleMode] dec a - jr nz, .asm_35c81 - ld hl, wc739 + jr nz, .not_wildmon + ld hl, wWildMonPP add hl, bc -.asm_35c81 +.not_wildmon ld [hl], e -.asm_35c82 +.transformed push de call AnimateCurrentMove pop de @@ -4563,8 +4620,10 @@ endr ld [wTypeMatchup], a ld hl, SpiteEffectText jp StdBattleTextBox -.asm_35c91 + +.failed jp PrintDidntAffect2 + ; 35c94 @@ -4574,17 +4633,17 @@ BattleCommand_FalseSwipe: ; 35c94 ld hl, EnemyMonHP ld a, [hBattleTurn] and a - jr z, .asm_35c9f + jr z, .got_hp ld hl, BattleMonHP -.asm_35c9f +.got_hp ld de, CurDamage - ld c, $2 + ld c, 2 push hl push de call StringCmp pop de pop hl - jr c, .asm_35cc7 + jr c, .done ld a, [hli] ld [de], a inc de @@ -4592,23 +4651,25 @@ BattleCommand_FalseSwipe: ; 35c94 dec a ld [de], a inc a - jr nz, .asm_35cba + jr nz, .okay dec de ld a, [de] dec a ld [de], a -.asm_35cba +.okay ld a, [CriticalHit] cp $2 - jr nz, .asm_35cc5 + jr nz, .carry xor a ld [CriticalHit], a -.asm_35cc5 +.carry scf ret -.asm_35cc7 + +.done and a ret + ; 35cc9 @@ -4621,9 +4682,9 @@ BattleCommand_HealBell: ; 35cc9 ld de, PartyMon1Status ld a, [hBattleTurn] and a - jr z, .asm_35cdb + jr z, .got_status ld de, OTPartyMon1Status -.asm_35cdb +.got_status ld a, BATTLE_VARS_STATUS call GetBattleVarAddr xor a @@ -4631,12 +4692,12 @@ BattleCommand_HealBell: ; 35cc9 ld h, d ld l, e ld bc, PARTYMON_STRUCT_LENGTH - ld d, PartyEnd - PartySpecies -.asm_35ce9 + ld d, PARTY_LENGTH +.loop ld [hl], a add hl, bc dec d - jr nz, .asm_35ce9 + jr nz, .loop call AnimateCurrentMove ld hl, BellChimedText @@ -4646,6 +4707,7 @@ BattleCommand_HealBell: ; 35cc9 and a jp z, CalcPlayerStats jp CalcEnemyStats + ; 35d00 @@ -4672,6 +4734,7 @@ PlayFXAnimID: ; 35d08 callab PlayBattleAnim ret + ; 35d1c @@ -4729,10 +4792,11 @@ EnemyHurtItself: ; 35d1c ld [Buffer5], a hlcoord 2, 2 xor a - ld [wd10a], a + ld [wWhichHPBar], a predef AnimateHPBar .did_no_damage jp RefreshBattleHuds + ; 35d7e @@ -4788,10 +4852,11 @@ PlayerHurtItself: ; 35d7e ld [Buffer1], a hlcoord 10, 9 ld a, $1 - ld [wd10a], a + ld [wWhichHPBar], a predef AnimateHPBar .did_no_damage jp RefreshBattleHuds + ; 35de0 @@ -4852,6 +4917,7 @@ SelfInflictDamageToSubstitute: ; 35de0 call RefreshBattleHuds .done jp ResetDamage + ; 35e40 @@ -4871,6 +4937,7 @@ UpdateMoveData: ; 35e40 call GetMoveData call GetMoveName jp CopyName1 + ; 35e5c @@ -4944,6 +5011,7 @@ BattleCommand_SleepTarget: ; 35e5c call AnimateFailedMove pop hl jp StdBattleTextBox + ; 35ece @@ -4974,6 +5042,7 @@ BattleCommand_SleepTarget: ; 35e5c .dont_fail xor a ret + ; 35eee @@ -5011,6 +5080,7 @@ BattleCommand_PoisonTarget: ; 35eee callba UseHeldStatusHealingItem ret + ; 35f2c @@ -5101,6 +5171,7 @@ BattleCommand_Poison: ; 35f2c call AnimateFailedMove pop hl jp StdBattleTextBox + ; 35fc0 @@ -5108,6 +5179,7 @@ BattleCommand_Poison: ; 35f2c call AnimateCurrentMove call PoisonOpponent jp RefreshBattleHuds + ; 35fc9 @@ -5124,6 +5196,7 @@ BattleCommand_Poison: ; 35f2c call GetBattleVar cp EFFECT_TOXIC ret + ; 35fe1 @@ -5141,6 +5214,7 @@ CheckIfTargetIsPoisonType: ; 35fe1 ld a, [de] cp POISON ret + ; 35ff5 @@ -5149,6 +5223,7 @@ PoisonOpponent: ; 35ff5 call GetBattleVarAddr set PSN, [hl] jp UpdateOpponentInParty + ; 35fff @@ -5157,6 +5232,7 @@ BattleCommand_DrainTarget: ; 35fff call SapHealth ld hl, SuckedHealthText jp StdBattleTextBox + ; 36008 @@ -5165,6 +5241,7 @@ BattleCommand_EatDream: ; 36008 call SapHealth ld hl, DreamEatenText jp StdBattleTextBox + ; 36011 @@ -5178,7 +5255,7 @@ SapHealth: ; 36011 rr a ld [hDividend + 1], a or b - jr nz, .ok1 ; 0x36020 $4 + jr nz, .ok1 ld a, $1 ld [hDividend + 1], a .ok1 @@ -5186,7 +5263,7 @@ SapHealth: ; 36011 ld de, BattleMonMaxHP ld a, [hBattleTurn] and a - jr z, .battlemonhp ; 0x3602f $6 + jr z, .battlemonhp ld hl, EnemyMonHP ld de, EnemyMonMaxHP .battlemonhp @@ -5213,7 +5290,7 @@ SapHealth: ; 36011 adc b ld [hli], a ld [Buffer6], a - jr c, .okay2 ; 0x36056 $c + jr c, .okay2 ld a, [hld] ld b, a ld a, [de] @@ -5224,7 +5301,7 @@ SapHealth: ; 36011 ld a, [de] inc de sbc b - jr nc, .okay3 ; 0x36062 $c + jr nc, .okay3 .okay2 ld a, [de] ld [hld], a @@ -5239,14 +5316,15 @@ SapHealth: ; 36011 and a hlcoord 10, 9 ld a, $1 - jr z, .hp_bar ; 0x36078 $4 + jr z, .hp_bar hlcoord 2, 2 xor a .hp_bar - ld [wd10a], a + ld [wWhichHPBar], a predef AnimateHPBar call RefreshBattleHuds jp UpdateBattleMonInParty + ; 3608c @@ -5254,7 +5332,7 @@ BattleCommand_BurnTarget: ; 3608c ; burntarget xor a - ld [wcfca], a + ld [wNumHits], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -5290,6 +5368,7 @@ BattleCommand_BurnTarget: ; 3608c callba UseHeldStatusHealingItem ret + ; 360dd @@ -5317,6 +5396,7 @@ Defrost: ; 360dd ld hl, DefrostedOpponentText jp StdBattleTextBox + ; 36102 @@ -5324,7 +5404,7 @@ BattleCommand_FreezeTarget: ; 36102 ; freezetarget xor a - ld [wcfca], a + ld [wNumHits], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -5372,6 +5452,7 @@ BattleCommand_FreezeTarget: ; 36102 .finish ld [hl], $1 ret + ; 36165 @@ -5379,7 +5460,7 @@ BattleCommand_ParalyzeTarget: ; 36165 ; paralyzetarget xor a - ld [wcfca], a + ld [wNumHits], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -5410,6 +5491,7 @@ BattleCommand_ParalyzeTarget: ; 36165 call PrintParalyze ld hl, UseHeldStatusHealingItem jp CallBattleCore + ; 361ac @@ -5417,58 +5499,72 @@ BattleCommand_AttackUp: ; 361ac ; attackup ld b, ATTACK jr BattleCommand_StatUp + BattleCommand_DefenseUp: ; 361b0 ; defenseup ld b, DEFENSE jr BattleCommand_StatUp + BattleCommand_SpeedUp: ; 361b4 ; speedup ld b, SPEED jr BattleCommand_StatUp + BattleCommand_SpecialAttackUp: ; 361b8 ; specialattackup ld b, SP_ATTACK jr BattleCommand_StatUp + BattleCommand_SpecialDefenseUp: ; 361bc ; specialdefenseup ld b, SP_DEFENSE jr BattleCommand_StatUp + BattleCommand_AccuracyUp: ; 361c0 ; accuracyup ld b, ACCURACY jr BattleCommand_StatUp + BattleCommand_EvasionUp: ; 361c4 ; evasionup ld b, EVASION jr BattleCommand_StatUp + BattleCommand_AttackUp2: ; 361c8 ; attackup2 ld b, $10 | ATTACK jr BattleCommand_StatUp + BattleCommand_DefenseUp2: ; 361cc ; defenseup2 ld b, $10 | DEFENSE jr BattleCommand_StatUp + BattleCommand_SpeedUp2: ; 361d0 ; speedup2 ld b, $10 | SPEED jr BattleCommand_StatUp + BattleCommand_SpecialAttackUp2: ; 361d4 ; specialattackup2 ld b, $10 | SP_ATTACK jr BattleCommand_StatUp + BattleCommand_SpecialDefenseUp2: ; 361d8 ; specialdefenseup2 ld b, $10 | SP_DEFENSE jr BattleCommand_StatUp + BattleCommand_AccuracyUp2: ; 361dc ; accuracyup2 ld b, $10 | ACCURACY jr BattleCommand_StatUp + BattleCommand_EvasionUp2: ; 361e0 ; evasionup2 ld b, $10 | EVASION jr BattleCommand_StatUp + BattleCommand_StatUp: ; 361e4 ; statup call CheckIfStatCanBeRaised @@ -5476,6 +5572,7 @@ BattleCommand_StatUp: ; 361e4 and a ret nz jp StatUpAnimation + ; 361ef @@ -5485,7 +5582,7 @@ CheckIfStatCanBeRaised: ; 361ef ld hl, PlayerStatLevels ld a, [hBattleTurn] and a - jr z, .got_stat_levels ; 0x361f9 $3 + jr z, .got_stat_levels ld hl, EnemyStatLevels .got_stat_levels ld a, [AttackMissed] @@ -5506,23 +5603,23 @@ CheckIfStatCanBeRaised: ; 361ef jp c, .cant_raise_stat ld a, [LoweredStat] and $f0 - jr z, .got_num_stages ; 0x36222 $7 + jr z, .got_num_stages inc b ld a, $d cp b - jr nc, .got_num_stages ; 0x36228 $1 + jr nc, .got_num_stages ld b, a .got_num_stages ld [hl], b push hl ld a, c cp $5 - jr nc, .done_calcing_stats ; 0x36230 $36 + jr nc, .done_calcing_stats ld hl, BattleMonStats + 1 ld de, PlayerStats ld a, [hBattleTurn] and a - jr z, .got_stats_pointer ; 0x3623b $6 + jr z, .got_stats_pointer ld hl, EnemyMonStats + 1 ld de, EnemyStats .got_stats_pointer @@ -5533,22 +5630,23 @@ CheckIfStatCanBeRaised: ; 361ef ld a, c add e ld e, a - jr nc, .no_carry ; 0x3624c $1 + jr nc, .no_carry inc d .no_carry pop bc ld a, [hld] sub 999 % $100 - jr nz, .not_already_max ; 0x36253 $6 + jr nz, .not_already_max ld a, [hl] sbc 999 / $100 jp z, .stats_already_max .not_already_max ld a, [hBattleTurn] and a - jr z, .calc_player_stats ; 0x3625e $5 + jr z, .calc_player_stats call CalcEnemyStats - jr .done_calcing_stats ; 0x36263 $3 + jr .done_calcing_stats + .calc_player_stats call CalcPlayerStats .done_calcing_stats @@ -5556,6 +5654,7 @@ CheckIfStatCanBeRaised: ; 361ef xor a ld [FailedMessage], a ret + ; 3626e @@ -5572,6 +5671,7 @@ CheckIfStatCanBeRaised: ; 361ef ld a, $1 ld [AttackMissed], a ret + ; 3627b @@ -5579,17 +5679,18 @@ CheckIfStatCanBeRaised: ; 361ef ld a, $1 ld [FailedMessage], a ret + ; 36281 StatUpAnimation: ; 36281 ld bc, wPlayerMinimized - ld hl, Function3f447 + ld hl, DropPlayerSub ld a, [hBattleTurn] and a - jr z, .do_player ; 0x3628a $6 + jr z, .do_player ld bc, wEnemyMinimized - ld hl, Function3f486 + ld hl, DropEnemySub .do_player ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar @@ -5606,6 +5707,7 @@ StatUpAnimation: ; 36281 call CallBattleCore call WaitBGMap jp BattleCommand_MoveDelay + ; 362ad @@ -5613,54 +5715,67 @@ BattleCommand_AttackDown: ; 362ad ; attackdown ld a, ATTACK jr BattleCommand_StatDown + BattleCommand_DefenseDown: ; 362b1 ; defensedown ld a, DEFENSE jr BattleCommand_StatDown + BattleCommand_SpeedDown: ; 362b5 ; speeddown ld a, SPEED jr BattleCommand_StatDown + BattleCommand_SpecialAttackDown: ; 362b9 ; specialattackdown ld a, SP_ATTACK jr BattleCommand_StatDown + BattleCommand_SpecialDefenseDown: ; 362bd ; specialdefensedown ld a, SP_DEFENSE jr BattleCommand_StatDown + BattleCommand_AccuracyDown: ; 362c1 ; accuracydown ld a, ACCURACY jr BattleCommand_StatDown + BattleCommand_EvasionDown: ; 362c5 ; evasiondown ld a, EVASION jr BattleCommand_StatDown + BattleCommand_AttackDown2: ; 362c9 ; attackdown2 ld a, $10 | ATTACK jr BattleCommand_StatDown + BattleCommand_DefenseDown2: ; 362cd ; defensedown2 ld a, $10 | DEFENSE jr BattleCommand_StatDown + BattleCommand_SpeedDown2: ; 362d1 ; speeddown2 ld a, $10 | SPEED jr BattleCommand_StatDown + BattleCommand_SpecialAttackDown2: ; 362d5 ; specialattackdown2 ld a, $10 | SP_ATTACK jr BattleCommand_StatDown + BattleCommand_SpecialDefenseDown2: ; 362d9 ; specialdefensedown2 ld a, $10 | SP_DEFENSE jr BattleCommand_StatDown + BattleCommand_AccuracyDown2: ; 362dd ; accuracydown2 ld a, $10 | ACCURACY jr BattleCommand_StatDown + BattleCommand_EvasionDown2: ; 362e1 ; evasiondown2 ld a, $10 | EVASION @@ -5787,6 +5902,7 @@ BattleCommand_StatDown: ; 362e3 ld a, 1 ld [AttackMissed], a ret + ; 36391 @@ -5814,6 +5930,7 @@ CheckMist: ; 36391 call GetBattleVar bit SUBSTATUS_MIST, a ret + ; 363b8 @@ -5832,7 +5949,6 @@ BattleCommand_StatUpMessage: ; 363b8 .stat text_jump UnknownText_0x1c0cc6 start_asm - ld hl, .up ld a, [LoweredStat] and $f0 @@ -5866,7 +5982,6 @@ BattleCommand_StatDownMessage: ; 363e9 .stat text_jump UnknownText_0x1c0ceb start_asm - ld hl, .fell ld a, [LoweredStat] and $f0 @@ -5926,6 +6041,7 @@ TryLowerStat: ; 3641a ld a, 1 and a ret + ; 3644c @@ -5946,6 +6062,7 @@ BattleCommand_StatUpFailText: ; 3644c call GetStatName ld hl, WontRiseAnymoreText jp StdBattleTextBox + ; 3646a @@ -5969,6 +6086,7 @@ BattleCommand_StatDownFailText: ; 3646a call GetStatName ld hl, WontDropAnymoreText jp StdBattleTextBox + ; 3648f @@ -5983,6 +6101,7 @@ GetStatName: ; 3648f cp c jr z, .CheckName jr .GetName + .Copy ld de, StringBuffer2 ld bc, StringBuffer3 - StringBuffer2 @@ -6051,6 +6170,7 @@ ResetMiss: ; 3652d xor a ld [AttackMissed], a ret + ; 36532 @@ -6124,6 +6244,7 @@ LowerStat: ; 36532 ld a, 2 ld [FailedMessage], a ret + ; 3658f @@ -6143,6 +6264,7 @@ BattleCommand_TriStatusChance: ; 3658f ld hl, .ptrs rst JumpTable ret + .ptrs dw BattleCommand_ParalyzeTarget ; paralyze dw BattleCommand_FreezeTarget ; freeze @@ -6156,6 +6278,7 @@ BattleCommand_Curl: ; 365a7 call GetBattleVarAddr set SUBSTATUS_CURLED, [hl] ret + ; 365af @@ -6163,27 +6286,29 @@ BattleCommand_RaiseSubNoAnim: ; 365af ld hl, GetMonBackpic ld a, [hBattleTurn] and a - jr z, .PlayerTurn ; 365b5 $3 + jr z, .PlayerTurn ld hl, GetMonFrontpic .PlayerTurn xor a ld [hBGMapMode], a call CallBattleCore jp WaitBGMap + ; 365c3 BattleCommand_LowerSubNoAnim: ; 365c3 - ld hl, Function3f447 + ld hl, DropPlayerSub ld a, [hBattleTurn] and a - jr z, .PlayerTurn ; 365c9 $3 - ld hl, Function3f486 + jr z, .PlayerTurn + ld hl, DropEnemySub .PlayerTurn xor a ld [hBGMapMode], a call CallBattleCore jp WaitBGMap + ; 365d7 @@ -6207,6 +6332,7 @@ CalcPlayerStats: ; 365d7 call CallBattleCore jp BattleCommand_SwitchTurn + ; 365fd @@ -6227,6 +6353,7 @@ CalcEnemyStats: ; 365fd call CallBattleCore jp BattleCommand_SwitchTurn + ; 3661d @@ -6241,9 +6368,8 @@ CalcStats: ; 3661d dec c ld b, 0 ld hl, StatLevelMultipliers -rept 2 add hl, bc -endr + add hl, bc xor a ld [hMultiplicand + 0], a @@ -6299,6 +6425,7 @@ endr jr nz, .loop ret + ; 36671 @@ -6372,6 +6499,7 @@ BattleCommand_StoreEnergy: ; 36671 ld hl, StoringEnergyText call StdBattleTextBox jp EndMoveEffect + ; 366e5 @@ -6382,10 +6510,10 @@ BattleCommand_UnleashEnergy: ; 366e5 ld bc, PlayerRolloutCount ld a, [hBattleTurn] and a - jr z, .asm_366f6 + jr z, .got_damage ld de, EnemyDamageTaken ld bc, EnemyRolloutCount -.asm_366f6 +.got_damage ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr set SUBSTATUS_BIDE, [hl] @@ -6397,14 +6525,14 @@ BattleCommand_UnleashEnergy: ; 366e5 ld [wEnemyMoveStruct + MOVE_EFFECT], a call BattleRandom and 1 -rept 2 inc a -endr + inc a ld [bc], a ld a, 1 ld [wKickCounter], a call AnimateCurrentMove jp EndMoveEffect + ; 3671a @@ -6414,7 +6542,7 @@ BattleCommand_CheckRampage: ; 3671a ld de, PlayerRolloutCount ld a, [hBattleTurn] and a - jr z, .player ; 36720 $3 + jr z, .player ld de, EnemyRolloutCount .player ld a, BATTLE_VARS_SUBSTATUS3 @@ -6424,7 +6552,7 @@ BattleCommand_CheckRampage: ; 3671a ld a, [de] dec a ld [de], a - jr nz, .continue_rampage ; 36730 $1a + jr nz, .continue_rampage res SUBSTATUS_RAMPAGE, [hl] call BattleCommand_SwitchTurn @@ -6432,19 +6560,19 @@ BattleCommand_CheckRampage: ; 3671a push af call BattleCommand_SwitchTurn pop af - jr nz, .continue_rampage ; 3673f $b + jr nz, .continue_rampage set SUBSTATUS_CONFUSED, [hl] call BattleRandom and %00000001 -rept 2 inc a -endr + inc a inc de ; ConfuseCount ld [de], a .continue_rampage ld b, rampage_command jp SkipToBattleCommand + ; 36751 @@ -6474,6 +6602,7 @@ BattleCommand_Rampage: ; 36751 ld a, 1 ld [wc73e], a ret + ; 36778 @@ -6515,12 +6644,12 @@ BattleCommand_Teleport: ; 36778 .loop_player call BattleRandom cp c - jr nc, .loop_player ; 367b0 $fa + jr nc, .loop_player ; If that number is greater than 4 times your level, run away. srl b srl b cp b - jr nc, .run_away ; 367b7 $26 + jr nc, .run_away .failed call AnimateFailedMove @@ -6534,22 +6663,22 @@ BattleCommand_Teleport: ; 36778 ld b, a ld a, [CurPartyLevel] cp b - jr nc, .run_away ; 367cd $10 + jr nc, .run_away add b ld c, a inc c .loop_enemy call BattleRandom cp c - jr nc, .loop_enemy ; 367d6 $fa + jr nc, .loop_enemy srl b srl b cp b - jr nc, .run_away ; 367dd $0 + jr nc, .run_away .run_away call UpdateBattleMonInParty xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wForcedSwitch], a ld [wKickCounter], a @@ -6562,6 +6691,7 @@ BattleCommand_Teleport: ; 36778 ld hl, FledFromBattleText jp StdBattleTextBox + ; 36804 @@ -6571,6 +6701,7 @@ SetBattleDraw: ; 36804 or $2 ld [wBattleResult], a ret + ; 3680f @@ -6591,33 +6722,33 @@ BattleCommand_ForceSwitch: ; 3680f jp nz, .force_player_switch ld a, [AttackMissed] and a - jr nz, .missed ; 36830 $20 + jr nz, .missed ld a, [wBattleMode] dec a - jr nz, .trainer ; 36836 $31 + jr nz, .trainer ld a, [CurPartyLevel] ld b, a ld a, [BattleMonLevel] cp b - jr nc, .wild_force_flee ; 36840 $13 + jr nc, .wild_force_flee add b ld c, a inc c .random_loop_wild call BattleRandom cp c - jr nc, .random_loop_wild ; 36849 $fa + jr nc, .random_loop_wild srl b srl b cp b - jr nc, .wild_force_flee ; 36850 $3 + jr nc, .wild_force_flee .missed jp .fail .wild_force_flee call UpdateBattleMonInParty xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wForcedSwitch], a call SetBattleDraw @@ -6626,10 +6757,10 @@ BattleCommand_ForceSwitch: ; 3680f .trainer call FindAliveEnemyMons - jr c, .switch_fail ; 3686c $5c + jr c, .switch_fail ld a, [wEnemyGoesFirst] and a - jr z, .switch_fail ; 36872 $56 + jr z, .switch_fail call UpdateEnemyMonInParty ld a, $1 ld [wKickCounter], a @@ -6650,9 +6781,9 @@ BattleCommand_ForceSwitch: ; 3680f call BattleRandom and $7 cp b - jr nc, .random_loop_trainer ; 368a0 $f8 + jr nc, .random_loop_trainer cp c - jr z, .random_loop_trainer ; 368a3 $f5 + jr z, .random_loop_trainer push af push bc ld hl, OTPartyMon1HP @@ -6661,7 +6792,7 @@ BattleCommand_ForceSwitch: ; 3680f or [hl] pop bc pop de - jr z, .random_loop_trainer ; 368b1 $e7 + jr z, .random_loop_trainer ld a, d inc a ld [wEnemySwitchMonIndex], a @@ -6710,7 +6841,7 @@ BattleCommand_ForceSwitch: ; 3680f .wild_succeed_playeristarget call UpdateBattleMonInParty xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wForcedSwitch], a call SetBattleDraw @@ -6792,6 +6923,7 @@ BattleCommand_ForceSwitch: ; 3680f ld hl, BlownAwayText .do_text jp StdBattleTextBox + ; 36994 @@ -6823,6 +6955,7 @@ CheckPlayerHasMonToSwitchTo: ; 36994 .not_fainted and a ret + ; 369b6 @@ -6835,87 +6968,91 @@ BattleCommand_EndLoop: ; 369b6 ld bc, PlayerDamageTaken ld a, [hBattleTurn] and a - jr z, .asm_369c7 + jr z, .got_addrs ld de, EnemyRolloutCount ld bc, EnemyDamageTaken -.asm_369c7 +.got_addrs ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr bit SUBSTATUS_IN_LOOP, [hl] - jp nz, .asm_36a43 + jp nz, .in_loop set SUBSTATUS_IN_LOOP, [hl] ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVarAddr ld a, [hl] cp EFFECT_TWINEEDLE - jr z, .asm_36a3f + jr z, .twineedle cp EFFECT_DOUBLE_HIT - ld a, $1 - jr z, .asm_36a3a + ld a, 1 + jr z, .double_hit ld a, [hl] cp EFFECT_BEAT_UP - jr z, .asm_369fb + jr z, .beat_up cp EFFECT_TRIPLE_KICK - jr nz, .asm_36a2b -.asm_369ec + jr nz, .not_triple_kick +.reject_triple_kick_sample call BattleRandom and $3 - jr z, .asm_369ec + jr z, .reject_triple_kick_sample dec a - jr nz, .asm_36a3a - ld a, $1 + jr nz, .double_hit + ld a, 1 ld [bc], a - jr .asm_36a48 -.asm_369fb + jr .done_loop + +.beat_up ld a, [hBattleTurn] and a - jr nz, .asm_36a0b + jr nz, .check_ot_beat_up ld a, [PartyCount] - cp $1 - jp z, .asm_36a1e + cp 1 + jp z, .only_one_beatup dec a - jr .asm_36a3a -.asm_36a0b + jr .double_hit + +.check_ot_beat_up ld a, [wBattleMode] - cp $1 - jp z, .asm_36a1e + cp WILD_BATTLE + jp z, .only_one_beatup ld a, [OTPartyCount] - cp $1 - jp z, .asm_36a1e + cp 1 + jp z, .only_one_beatup dec a - jr .asm_36a3a + jr .double_hit -.asm_36a1e +.only_one_beatup ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr res SUBSTATUS_IN_LOOP, [hl] call BattleCommanda8 jp EndMoveEffect -.asm_36a2b + +.not_triple_kick call BattleRandom and $3 - cp $2 - jr c, .asm_36a39 + cp 2 + jr c, .got_number_hits call BattleRandom and $3 -.asm_36a39 +.got_number_hits inc a -.asm_36a3a +.double_hit ld [de], a inc a ld [bc], a - jr .asm_36a6b -.asm_36a3f - ld a, $1 - jr .asm_36a3a + jr .loop_back_to_critical + +.twineedle + ld a, 1 + jr .double_hit -.asm_36a43 +.in_loop ld a, [de] dec a ld [de], a - jr nz, .asm_36a6b -.asm_36a48 + jr nz, .loop_back_to_critical +.done_loop ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr res SUBSTATUS_IN_LOOP, [hl] @@ -6923,17 +7060,17 @@ BattleCommand_EndLoop: ; 369b6 ld hl, PlayerHitTimesText ld a, [hBattleTurn] and a - jr z, .asm_36a5a + jr z, .got_hit_n_times_text ld hl, EnemyHitTimesText -.asm_36a5a +.got_hit_n_times_text push bc ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_BEAT_UP - jr z, .asm_36a67 + jr z, .beat_up_2 call StdBattleTextBox -.asm_36a67 +.beat_up_2 pop bc xor a @@ -6941,21 +7078,22 @@ BattleCommand_EndLoop: ; 369b6 ret ; Loop back to the command before 'critical'. -.asm_36a6b +.loop_back_to_critical ld a, [BattleScriptBufferLoc + 1] ld h, a ld a, [BattleScriptBufferLoc] ld l, a -.asm_36a73 +.not_critical ld a, [hld] - cp $5 ; critical - jr nz, .asm_36a73 + cp critical_command + jr nz, .not_critical inc hl ld a, h ld [BattleScriptBufferLoc + 1], a ld a, l ld [BattleScriptBufferLoc], a ret + ; 36a82 @@ -6979,6 +7117,7 @@ BattleCommand_FakeOut: ; 36a82 ld a, 1 ld [AttackMissed], a ret + ; 36aa0 @@ -7007,6 +7146,7 @@ FlinchTarget: ; 36ab5 call GetBattleVarAddr set SUBSTATUS_FLINCHED, [hl] jp EndRechargeOpp + ; 36abf @@ -7020,6 +7160,7 @@ CheckOpponentWentFirst: ; 36abf xor b ; 1 if opponent went first pop bc ret + ; 36ac9 @@ -7050,6 +7191,7 @@ BattleCommand_KingsRock: ; 36ac9 call GetBattleVarAddr set SUBSTATUS_FLINCHED, [hl] ret + ; 36af3 @@ -7059,29 +7201,29 @@ BattleCommand_OHKO: ; 36af3 call ResetDamage ld a, [TypeModifier] and $7f - jr z, .asm_36b2f + jr z, .no_effect ld hl, EnemyMonLevel ld de, BattleMonLevel ld bc, wPlayerMoveStruct + MOVE_ACC ld a, [hBattleTurn] and a - jr z, .asm_36b12 + jr z, .got_move_accuracy push hl ld h, d ld l, e pop de ld bc, wEnemyMoveStruct + MOVE_ACC -.asm_36b12 +.got_move_accuracy ld a, [de] sub [hl] - jr c, .asm_36b2f + jr c, .no_effect add a ld e, a ld a, [bc] add e - jr nc, .asm_36b1e + jr nc, .finish_ohko ld a, $ff -.asm_36b1e +.finish_ohko ld [bc], a call BattleCommand_CheckHit ld hl, CurDamage @@ -7091,12 +7233,14 @@ BattleCommand_OHKO: ; 36af3 ld a, $2 ld [CriticalHit], a ret -.asm_36b2f + +.no_effect ld a, $ff ld [CriticalHit], a ld a, $1 ld [AttackMissed], a ret + ; 36b3a @@ -7112,6 +7256,7 @@ BattleCommand_CheckCharge: ; 36b3a res SUBSTATUS_FLYING, [hl] ld b, charge_command jp SkipToBattleCommand + ; 36b4d @@ -7141,7 +7286,7 @@ BattleCommand_Charge: ; 36b4d call BattleCommand_LowerSub xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wKickCounter], a call LoadMoveAnim @@ -7153,6 +7298,7 @@ BattleCommand_Charge: ; 36b4d jr z, .flying call BattleCommand_RaiseSub jr .not_flying + .flying call DisappearUser .not_flying @@ -7197,7 +7343,6 @@ BattleCommand_Charge: ; 36b4d .UsedText text_jump UnknownText_0x1c0d0e ; "[USER]" start_asm - ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp RAZOR_WIND @@ -7261,6 +7406,7 @@ BattleCommand_Charge: ; 36b4d BattleCommand3c: ; 36c2c ; unused ret + ; 36c2d @@ -7274,11 +7420,11 @@ BattleCommand_TrapTarget: ; 36c2d ld de, wEnemyTrappingMove ld a, [hBattleTurn] and a - jr z, .asm_36c43 + jr z, .got_trap ld hl, wPlayerWrapCount ld de, wPlayerTrappingMove -.asm_36c43 +.got_trap ld a, [hl] and a ret nz @@ -7298,16 +7444,15 @@ endr ld b, a ld hl, .Traps -.asm_36c61 +.find_trap_text ld a, [hli] cp b - jr z, .asm_36c69 -rept 2 + jr z, .found_trap_text inc hl -endr - jr .asm_36c61 + inc hl + jr .find_trap_text -.asm_36c69 +.found_trap_text ld a, [hli] ld h, [hl] ld l, a @@ -7328,14 +7473,16 @@ BattleCommand_Mist: ; 36c7e ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr bit SUBSTATUS_MIST, [hl] - jr nz, .asm_36c92 + jr nz, .already_mist set SUBSTATUS_MIST, [hl] call AnimateCurrentMove ld hl, MistText jp StdBattleTextBox -.asm_36c92 + +.already_mist call AnimateFailedMove jp PrintButItFailed + ; 36c98 @@ -7345,14 +7492,16 @@ BattleCommand_FocusEnergy: ; 36c98 ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr bit SUBSTATUS_FOCUS_ENERGY, [hl] - jr nz, .asm_36cac + jr nz, .already_pumped set SUBSTATUS_FOCUS_ENERGY, [hl] call AnimateCurrentMove ld hl, GettingPumpedText jp StdBattleTextBox -.asm_36cac + +.already_pumped call AnimateFailedMove jp PrintButItFailed + ; 36cb2 @@ -7362,12 +7511,13 @@ BattleCommand_Recoil: ; 36cb2 ld hl, BattleMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_36cbd + jr z, .got_hp ld hl, EnemyMonMaxHP -.asm_36cbd +.got_hp ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld d, a +; get 1/4 damage or 1 HP, whichever is higher ld a, [CurDamage] ld b, a ld a, [CurDamage + 1] @@ -7378,16 +7528,15 @@ BattleCommand_Recoil: ; 36cb2 rr c ld a, b or c - jr nz, .asm_36cd8 + jr nz, .min_damage inc c -.asm_36cd8 +.min_damage ld a, [hli] ld [Buffer2], a ld a, [hl] ld [Buffer1], a -rept 2 dec hl -endr + dec hl ld a, [hl] ld [Buffer3], a sub c @@ -7398,27 +7547,28 @@ endr sbc b ld [hl], a ld [Buffer6], a - jr nc, .asm_36cfe + jr nc, .dont_ko xor a ld [hli], a ld [hl], a ld hl, Buffer5 ld [hli], a ld [hl], a -.asm_36cfe +.dont_ko hlcoord 10, 9 ld a, [hBattleTurn] and a - ld a, $1 - jr z, .asm_36d0c + ld a, 1 + jr z, .animate_hp_bar hlcoord 2, 2 xor a -.asm_36d0c - ld [wd10a], a +.animate_hp_bar + ld [wWhichHPBar], a predef AnimateHPBar call RefreshBattleHuds ld hl, RecoilText jp StdBattleTextBox + ; 36d1d @@ -7440,7 +7590,7 @@ BattleCommand_ConfuseTarget: ; 36d1d call GetBattleVarAddr bit SUBSTATUS_CONFUSED, [hl] ret nz - jr Function36d70 + jr BattleCommand_FinishConfusingTarget BattleCommand_Confuse: ; 36d3b @@ -7449,7 +7599,7 @@ BattleCommand_Confuse: ; 36d3b call GetOpponentItem ld a, b cp HELD_PREVENT_CONFUSE - jr nz, .asm_36d53 + jr nz, .no_item_protection ld a, [hl] ld [wNamedObjectIndexBuffer], a call GetItemName @@ -7457,53 +7607,47 @@ BattleCommand_Confuse: ; 36d3b ld hl, ProtectedByText jp StdBattleTextBox -.asm_36d53 +.no_item_protection ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVarAddr bit SUBSTATUS_CONFUSED, [hl] - jr z, .asm_36d65 + jr z, .not_already_confused call AnimateFailedMove ld hl, AlreadyConfusedText jp StdBattleTextBox -.asm_36d65 +.not_already_confused call CheckSubstituteOpp - jr nz, Function36db6 + jr nz, BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit ld a, [AttackMissed] and a - jr nz, Function36db6 - - ; fallthrough -; 36d70 - - -Function36d70: ; 36d70 + jr nz, BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit +BattleCommand_FinishConfusingTarget: ; 36d70 ld bc, EnemyConfuseCount ld a, [hBattleTurn] and a - jr z, .asm_36d7b + jr z, .got_confuse_count ld bc, PlayerConfuseCount -.asm_36d7b +.got_confuse_count set SUBSTATUS_CONFUSED, [hl] call BattleRandom and 3 -rept 2 inc a -endr + inc a ld [bc], a ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_CONFUSE_HIT - jr z, .asm_36d99 + jr z, .got_effect cp EFFECT_SNORE - jr z, .asm_36d99 + jr z, .got_effect cp EFFECT_SWAGGER - jr z, .asm_36d99 + jr z, .got_effect call AnimateCurrentMove -.asm_36d99 +.got_effect ld de, ANIM_CONFUSED call PlayOpponentBattleAnim @@ -7513,15 +7657,16 @@ endr call GetOpponentItem ld a, b cp HELD_HEAL_STATUS - jr z, .asm_36db0 + jr z, .heal_confusion cp HELD_HEAL_CONFUSION ret nz -.asm_36db0 - ld hl, HandleStatusHealingItem +.heal_confusion + ld hl, UseConfusionHealingItem jp CallBattleCore + ; 36db6 -Function36db6: ; 36db6 +BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit: ; 36db6 ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_CONFUSE_HIT @@ -7531,6 +7676,7 @@ Function36db6: ; 36db6 cp EFFECT_SWAGGER ret z jp PrintDidntAffect2 + ; 36dc7 @@ -7540,14 +7686,14 @@ BattleCommand_Paralyze: ; 36dc7 ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar bit PAR, a - jr nz, .asm_36e49 + jr nz, .paralyzed ld a, [TypeModifier] and $7f - jr z, .asm_36e55 + jr z, .didnt_affect call GetOpponentItem ld a, b cp HELD_PREVENT_PARALYZE - jr nz, .asm_36def + jr nz, .no_item_protection ld a, [hl] ld [wNamedObjectIndexBuffer], a call GetItemName @@ -7555,37 +7701,37 @@ BattleCommand_Paralyze: ; 36dc7 ld hl, ProtectedByText jp StdBattleTextBox -.asm_36def +.no_item_protection ld a, [hBattleTurn] and a - jr z, .asm_36e0e + jr z, .dont_sample_failure ld a, [wLinkMode] and a - jr nz, .asm_36e0e + jr nz, .dont_sample_failure ld a, [InBattleTowerBattle] and a - jr nz, .asm_36e0e + jr nz, .dont_sample_failure ld a, [PlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a - jr nz, .asm_36e0e + jr nz, .dont_sample_failure call BattleRandom - cp $40 - jr c, .asm_36e52 + cp 1 + 25 percent + jr c, .failed -.asm_36e0e +.dont_sample_failure ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr and a - jr nz, .asm_36e52 + jr nz, .failed ld a, [AttackMissed] and a - jr nz, .asm_36e52 + jr nz, .failed call CheckSubstituteOpp - jr nz, .asm_36e52 + jr nz, .failed ld c, 30 call DelayFrames call AnimateCurrentMove @@ -7601,15 +7747,19 @@ BattleCommand_Paralyze: ; 36dc7 call PrintParalyze ld hl, UseHeldStatusHealingItem jp CallBattleCore -.asm_36e49 + +.paralyzed call AnimateFailedMove ld hl, AlreadyParalyzedText jp StdBattleTextBox -.asm_36e52 + +.failed jp PrintDidntAffect2 -.asm_36e55 + +.didnt_affect call AnimateFailedMove jp PrintDoesntAffect + ; 36e5b @@ -7647,6 +7797,7 @@ CheckMoveTypeMatchesTarget: ; 36e5b and a pop hl ret + ; 36e7c @@ -7674,9 +7825,8 @@ BattleCommand_Substitute: ; 36e7c rr b srl a rr b -rept 2 dec hl -endr + dec hl ld a, b ld [de], a ld a, [hld] @@ -7713,7 +7863,7 @@ endr jr c, .mobile xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld [wKickCounter], a ld a, SUBSTITUTE @@ -7739,6 +7889,7 @@ endr ld hl, TooWeakSubText .jp_stdbattletextbox jp StdBattleTextBox + ; 36f0b BattleCommand_RechargeNextTurn: ; 36f0b @@ -7747,6 +7898,7 @@ BattleCommand_RechargeNextTurn: ; 36f0b call GetBattleVarAddr set SUBSTATUS_RECHARGE, [hl] ret + ; 36f13 @@ -7757,6 +7909,7 @@ EndRechargeOpp: ; 36f13 res SUBSTATUS_RECHARGE, [hl] pop hl ret + ; 36f1d @@ -7766,6 +7919,7 @@ BattleCommand_Rage: ; 36f1d call GetBattleVarAddr set SUBSTATUS_RAGE, [hl] ret + ; 36f25 @@ -7776,6 +7930,7 @@ BattleCommand_DoubleFlyingDamage: ; 36f25 bit SUBSTATUS_FLYING, a ret z jr DoubleDamage + ; 36f2f @@ -7802,6 +7957,7 @@ DoubleDamage: ; 36f37 ld [hl], a .quit ret + ; 36f46 @@ -7855,6 +8011,7 @@ BattleCommand_Mimic: ; 36f46 .fail jp FailMimic + ; 36f9d @@ -7898,6 +8055,7 @@ BattleCommand_LeechSeed: ; 36f9d call AnimateFailedMove ld hl, EvadedText jp StdBattleTextBox + ; 36fe1 @@ -7905,6 +8063,7 @@ BattleCommand_Splash: ; 36fe1 call AnimateCurrentMove callba MobileFn_1060e5 jp PrintNothingHappened + ; 36fed @@ -7913,51 +8072,51 @@ BattleCommand_Disable: ; 36fed ld a, [AttackMissed] and a - jr nz, .asm_37059 + jr nz, .failed ld de, EnemyDisableCount ld hl, EnemyMonMoves ld a, [hBattleTurn] and a - jr z, .asm_37004 + jr z, .got_moves ld de, PlayerDisableCount ld hl, BattleMonMoves -.asm_37004 +.got_moves ld a, [de] and a - jr nz, .asm_37059 + jr nz, .failed ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_37059 + jr z, .failed cp STRUGGLE - jr z, .asm_37059 + jr z, .failed ld b, a ld c, $ff -.asm_37017 +.loop inc c ld a, [hli] cp b - jr nz, .asm_37017 + jr nz, .loop ld a, [hBattleTurn] and a ld hl, EnemyMonPP - jr z, .asm_37027 + jr z, .got_pp ld hl, BattleMonPP -.asm_37027 +.got_pp ld b, 0 add hl, bc ld a, [hl] and a - jr z, .asm_37059 -.asm_3702e + jr z, .failed +.loop2 call BattleRandom and 7 - jr z, .asm_3702e + jr z, .loop2 inc a inc c swap c @@ -7967,9 +8126,9 @@ BattleCommand_Disable: ; 36fed ld hl, DisabledMove ld a, [hBattleTurn] and a - jr nz, .asm_37047 + jr nz, .got_disabled_move_pointer inc hl -.asm_37047 +.got_disabled_move_pointer ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar ld [hl], a @@ -7977,8 +8136,10 @@ BattleCommand_Disable: ; 36fed call GetMoveName ld hl, WasDisabledText jp StdBattleTextBox -.asm_37059 + +.failed jp FailDisable + ; 3705c @@ -8008,6 +8169,7 @@ BattleCommand_PayDay: ; 3705c .done ld hl, CoinsScatteredText jp StdBattleTextBox + ; 3707f @@ -8018,21 +8180,21 @@ BattleCommand_Conversion: ; 3707f ld de, BattleMonType1 ld a, [hBattleTurn] and a - jr z, .asm_37090 + jr z, .got_moves ld hl, EnemyMonMoves ld de, EnemyMonType1 -.asm_37090 +.got_moves push de ld c, 0 ld de, StringBuffer1 -.asm_37096 +.loop push hl ld b, 0 add hl, bc ld a, [hl] pop hl and a - jr z, .asm_370b2 + jr z, .okay push hl push bc dec a @@ -8045,8 +8207,8 @@ BattleCommand_Conversion: ; 3707f inc c ld a, c cp NUM_MOVES - jr c, .asm_37096 -.asm_370b2 + jr c, .loop +.okay ld a, $ff ld [de], a inc de @@ -8055,28 +8217,30 @@ BattleCommand_Conversion: ; 3707f ld [de], a pop de ld hl, StringBuffer1 -.asm_370bd +.loop2 ld a, [hl] - cp $ff - jr z, .asm_370d3 + cp -1 + jr z, .fail cp CURSE_T - jr z, .asm_370d0 + jr z, .next ld a, [de] cp [hl] - jr z, .asm_370d0 + jr z, .next inc de ld a, [de] dec de cp [hl] - jr nz, .asm_370d9_a -.asm_370d0 + jr nz, .done +.next inc hl - jr .asm_370bd -.asm_370d3 + jr .loop2 + +.fail call AnimateFailedMove jp PrintButItFailed -.asm_370d9_a -.asm_370d9_b + +.done +.loop3 call BattleRandom and 3 ; TODO factor in NUM_MOVES ld c, a @@ -8084,18 +8248,18 @@ BattleCommand_Conversion: ; 3707f ld hl, StringBuffer1 add hl, bc ld a, [hl] - cp $ff - jr z, .asm_370d9_b + cp -1 + jr z, .loop3 cp CURSE_T - jr z, .asm_370d9_b + jr z, .loop3 ld a, [de] cp [hl] - jr z, .asm_370d9_b + jr z, .loop3 inc de ld a, [de] dec de cp [hl] - jr z, .asm_370d9_b + jr z, .loop3 ld a, [hl] ld [de], a inc de @@ -8105,6 +8269,7 @@ BattleCommand_Conversion: ; 3707f call AnimateCurrentMove ld hl, TransformedTypeText jp StdBattleTextBox + ; 3710e @@ -8140,6 +8305,7 @@ BattleCommand_ResetStats: ; 3710e dec b jr nz, .next ret + ; 3713e @@ -8150,10 +8316,10 @@ BattleCommand_Heal: ; 3713e ld hl, BattleMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_3714f + jr z, .got_hp ld de, EnemyMonHP ld hl, EnemyMonMaxHP -.asm_3714f +.got_hp ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld b, a @@ -8165,10 +8331,11 @@ BattleCommand_Heal: ; 3713e pop bc pop de pop hl - jp z, .asm_371c4 + jp z, .hp_full ld a, b cp REST - jr nz, .asm_37199 + jr nz, .not_rest + push hl push de push af @@ -8182,30 +8349,33 @@ BattleCommand_Heal: ; 3713e and a ld [hl], REST_TURNS + 1 ld hl, WentToSleepText - jr z, .asm_37186 + jr z, .no_status_to_heal ld hl, RestedText -.asm_37186 +.no_status_to_heal call StdBattleTextBox ld a, [hBattleTurn] and a - jr nz, .asm_37193 + jr nz, .calc_enemy_stats call CalcPlayerStats - jr .asm_37196 -.asm_37193 + jr .got_stats + +.calc_enemy_stats call CalcEnemyStats -.asm_37196 +.got_stats pop af pop de pop hl -.asm_37199 - jr z, .asm_371a3 + +.not_rest + jr z, .restore_full_hp ld hl, GetHalfMaxHP call CallBattleCore - jr .asm_371a9 -.asm_371a3 + jr .finish + +.restore_full_hp ld hl, GetMaxHP call CallBattleCore -.asm_371a9 +.finish call AnimateCurrentMove call BattleCommand_SwitchTurn ld hl, RestoreHP @@ -8216,10 +8386,11 @@ BattleCommand_Heal: ; 3713e ld hl, RegainedHealthText jp StdBattleTextBox -.asm_371c4 +.hp_full call AnimateFailedMove ld hl, HPIsFullText jp StdBattleTextBox + ; 371cd @@ -8230,11 +8401,11 @@ BattleCommand_Transform: ; 371cd ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVarAddr bit SUBSTATUS_TRANSFORMED, [hl] - jp nz, Function372d2 + jp nz, BattleEffect_ButItFailed call CheckHiddenOpponent - jp nz, Function372d2 + jp nz, BattleEffect_ButItFailed xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, $1 ld [wKickCounter], a @@ -8266,9 +8437,8 @@ BattleCommand_Transform: ; 371cd ld a, [hli] ld [de], a inc hl -rept 2 inc de -endr + inc de ld bc, NUM_MOVES call CopyBytes ld a, [hBattleTurn] @@ -8347,12 +8517,13 @@ endr jr nz, .mimic_anims call LoadMoveAnim jr .after_anim + .mimic_anims call BattleCommand_MoveDelay call BattleCommand_RaiseSubNoAnim .after_anim xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, $2 ld [wKickCounter], a @@ -8361,6 +8532,7 @@ endr call nz, LoadAnim ld hl, TransformedText jp StdBattleTextBox + ; 372c6 @@ -8378,12 +8550,14 @@ BattleSideCopy: ; 372c6 pop de .copy jp CopyBytes + ; 372d2 -Function372d2: ; 372d2 +BattleEffect_ButItFailed: ; 372d2 call AnimateFailedMove jp PrintButItFailed + ; 372d8 @@ -8398,6 +8572,7 @@ ClearLastMove: ; 372d8 xor a ld [hl], a ret + ; 372e7 @@ -8416,6 +8591,7 @@ ResetActorDisable: ; 372e7 ld [PlayerDisableCount], a ld [DisabledMove], a ret + ; 372fc @@ -8426,11 +8602,11 @@ BattleCommand_Screen: ; 372fc ld bc, PlayerLightScreenCount ld a, [hBattleTurn] and a - jr z, .asm_3730d + jr z, .got_screens_pointer ld hl, EnemyScreens ld bc, EnemyLightScreenCount -.asm_3730d +.got_screens_pointer ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_LIGHT_SCREEN @@ -8442,7 +8618,7 @@ BattleCommand_Screen: ; 372fc ld a, 5 ld [bc], a ld hl, LightScreenEffectText - jr .asm_37331 + jr .good .Reflect bit SCREENS_REFLECT, [hl] @@ -8456,13 +8632,14 @@ BattleCommand_Screen: ; 372fc ld [bc], a ld hl, ReflectEffectText -.asm_37331 +.good call AnimateCurrentMove jp StdBattleTextBox .failed call AnimateFailedMove jp PrintButItFailed + ; 3733d @@ -8470,6 +8647,7 @@ PrintDoesntAffect: ; 3733d ; 'it doesn't affect' ld hl, DoesntAffectText jp StdBattleTextBox + ; 37343 @@ -8477,6 +8655,7 @@ PrintNothingHappened: ; 37343 ; 'but nothing happened!' ld hl, NothingHappenedText jp StdBattleTextBox + ; 37349 @@ -8493,6 +8672,7 @@ PrintButItFailed: ; 3734e ; 'but it failed!' ld hl, ButItFailedText jp StdBattleTextBox + ; 37354 @@ -8510,6 +8690,7 @@ FailMimic: ; 37357 ld hl, ButItFailedText ; 'but it failed!' ld de, ItFailedText ; 'it failed!' jp FailText_CheckOpponentProtect + ; 37360 @@ -8517,6 +8698,7 @@ PrintDidntAffect: ; 37360 ; 'it didn't affect' ld hl, DidntAffect1Text jp StdBattleTextBox + ; 37366 @@ -8525,6 +8707,7 @@ PrintDidntAffect2: ; 37366 ld hl, DidntAffect1Text ; 'it didn't affect' ld de, DidntAffect2Text ; 'it didn't affect' jp FailText_CheckOpponentProtect + ; 37372 @@ -8532,6 +8715,7 @@ PrintParalyze: ; 37372 ; 'paralyzed! maybe it can't attack!' ld hl, ParalyzedText jp StdBattleTextBox + ; 37378 @@ -8540,13 +8724,14 @@ CheckSubstituteOpp: ; 37378 call GetBattleVar bit SUBSTATUS_SUBSTITUTE, a ret + ; 37380 BattleCommand_SelfDestruct: ; 37380 callba MobileFn_10610d ld a, BATTLEANIM_PLAYER_DAMAGE - ld [wcfca], a + ld [wNumHits], a ld c, 3 call DelayFrames ld a, BATTLE_VARS_STATUS @@ -8572,6 +8757,7 @@ BattleCommand_SelfDestruct: ; 37380 callba DrawEnemyHUD call WaitBGMap jp RefreshBattleHuds + ; 373c9 @@ -8603,6 +8789,7 @@ CheckUserMove: ; 37462 ld a, 1 and a ret + ; 3747b @@ -8619,6 +8806,7 @@ ResetTurn: ; 3747b ld [AlreadyDisobeyed], a call DoMove jp EndMoveEffect + ; 37492 @@ -8650,6 +8838,7 @@ BattleCommand_ArenaTrap: ; 37517 .failed call AnimateFailedMove jp PrintButItFailed + ; 37536 @@ -8686,6 +8875,7 @@ BattleCommand_Defrost: ; 37563 call RefreshBattleHuds ld hl, WasDefrostedText jp StdBattleTextBox + ; 37588 @@ -8709,6 +8899,7 @@ INCLUDE "battle/effects/rollout.asm" BattleCommand5d: ; 37791 ; unused ret + ; 37792 @@ -8751,6 +8942,7 @@ BattleCommand_FuryCutter: ; 37792 ld [hli], a ld [hl], a ret + ; 377be @@ -8770,6 +8962,7 @@ ResetFuryCutterCount: ; 377be pop hl ret + ; 377ce @@ -8800,6 +8993,7 @@ BattleCommand_HappinessPower: ; 3784b ld d, a pop bc ret + ; 37874 @@ -8812,9 +9006,9 @@ BattleCommand_FrustrationPower: ; 3790e ld hl, BattleMonHappiness ld a, [hBattleTurn] and a - jr z, .asm_3791a ; 37915 $3 + jr z, .got_happiness ld hl, EnemyMonHappiness -.asm_3791a +.got_happiness ld a, $ff sub [hl] ld [hMultiplicand + 2], a @@ -8832,6 +9026,7 @@ BattleCommand_FrustrationPower: ; 3790e ld d, a pop bc ret + ; 37939 @@ -8854,9 +9049,11 @@ BattleCommand_Safeguard: ; 37939 call AnimateCurrentMove ld hl, CoveredByVeilText jp StdBattleTextBox + .failed call AnimateFailedMove jp PrintButItFailed + ; 37962 @@ -8872,6 +9069,7 @@ SafeCheckSafeguard: ; 37962 bit SCREENS_SAFEGUARD, [hl] pop hl ret + ; 37972 @@ -8880,7 +9078,7 @@ BattleCommand_CheckSafeguard: ; 37972 ld hl, EnemyScreens ld a, [hBattleTurn] and a - jr z, .got_turn ; 37978 $3 + jr z, .got_turn ld hl, PlayerScreens .got_turn bit SCREENS_SAFEGUARD, [hl] @@ -8891,6 +9089,7 @@ BattleCommand_CheckSafeguard: ; 37972 ld hl, SafeguardProtectText call StdBattleTextBox jp EndMoveEffect + ; 37991 @@ -8905,10 +9104,10 @@ BattleCommand_GetMagnitude: ; 37991 ld a, [hli] cp b jr nc, .ok -rept 2 inc hl -endr + inc hl jr .loop + .ok ld d, [hl] push de @@ -8954,19 +9153,19 @@ BattleCommand_BatonPass: ; 379c9 ; Transition into switchmon menu call LoadStandardMenuDataHeader - callba Function3d2f7 + callba SetUpBattlePartyMenu_NoLoop callba ForcePickSwitchMonInBattle ; Return to battle scene call ClearPalettes callba _LoadBattleFontsHPBar - call WriteBackup + call CloseWindow call ClearSprites hlcoord 1, 0 lb bc, 4, 10 call ClearBox - ld b, SCGB_01 + ld b, SCGB_BATTLE_COLORS call GetSGBLayout call SetPalettes call BatonPass_LinkPlayerSwitch @@ -9016,6 +9215,7 @@ BattleCommand_BatonPass: ; 379c9 call CallBattleCore jr ResetBatonPassStatus + ; 37a67 @@ -9025,16 +9225,17 @@ BatonPass_LinkPlayerSwitch: ; 37a67 ret z ld a, 1 - ld [wd0ec], a + ld [wPlayerAction], a call LoadStandardMenuDataHeader ld hl, LinkBattleSendReceiveAction call CallBattleCore - call WriteBackup + call CloseWindow xor a - ld [wd0ec], a + ld [wPlayerAction], a ret + ; 37a82 @@ -9061,13 +9262,15 @@ BatonPass_LinkEnemySwitch: ; 37a82 add BATTLEACTION_SWITCH1 ld [wBattleAction], a .switch - jp WriteBackup + jp CloseWindow + ; 37aab FailedBatonPass: ; 37aab call AnimateFailedMove jp PrintButItFailed + ; 37ab1 @@ -9109,6 +9312,7 @@ ResetBatonPassStatus: ; 37ab1 ld [wPlayerWrapCount], a ld [wEnemyWrapCount], a ret + ; 37ae9 @@ -9119,6 +9323,7 @@ CheckAnyOtherAlivePartyMons: ; 37ae9 ld a, [CurBattleMon] ld e, a jr CheckAnyOtherAliveMons + ; 37af6 @@ -9167,6 +9372,7 @@ CheckAnyOtherAliveMons: ; 37b01 ld a, b and a ret + ; 37b1d @@ -9194,6 +9400,7 @@ BattleCommand_Pursuit: ; 37b1d ld [hli], a ld [hl], a ret + ; 37b39 @@ -9203,28 +9410,28 @@ BattleCommand_ClearHazards: ; 37b39 ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr bit SUBSTATUS_LEECH_SEED, [hl] - jr z, .asm_37b4a ; 37b40 $8 + jr z, .not_leeched res SUBSTATUS_LEECH_SEED, [hl] ld hl, ShedLeechSeedText call StdBattleTextBox -.asm_37b4a +.not_leeched ld hl, PlayerScreens ld de, wPlayerWrapCount ld a, [hBattleTurn] and a - jr z, .asm_37b5b ; 37b53 $6 + jr z, .got_screens_wrap ld hl, EnemyScreens ld de, wEnemyWrapCount -.asm_37b5b +.got_screens_wrap bit SCREENS_SPIKES, [hl] - jr z, .asm_37b69 ; 37b5d $a + jr z, .no_spikes res SCREENS_SPIKES, [hl] ld hl, BlewSpikesText push de call StdBattleTextBox pop de -.asm_37b69 +.no_spikes ld a, [de] and a @@ -9233,19 +9440,22 @@ BattleCommand_ClearHazards: ; 37b39 ld [de], a ld hl, ReleasedByText jp StdBattleTextBox + ; 37b74 BattleCommand_HealMorn: ; 37b74 ; healmorn ld b, MORN - jr BattleCommand_HealMorn6c + jr BattleCommand_TimeBasedHealContinue + ; 37b78 BattleCommand_HealDay: ; 37b78 ; healday ld b, DAY - jr BattleCommand_HealMorn6c + jr BattleCommand_TimeBasedHealContinue + ; 37b7c BattleCommand_HealNite: ; 37b7c @@ -9254,7 +9464,7 @@ BattleCommand_HealNite: ; 37b7c ; fallthrough ; 37b7e -BattleCommand_HealMorn6c: ; 37b7e +BattleCommand_TimeBasedHealContinue: ; 37b7e ; Time- and weather-sensitive heal. ld hl, BattleMonMaxHP @@ -9284,7 +9494,7 @@ BattleCommand_HealMorn6c: ; 37b7e ld a, [TimeOfDay] cp b jr z, .Weather - dec c + dec c ; double .Weather ld a, [Weather] @@ -9296,16 +9506,14 @@ BattleCommand_HealMorn6c: ; 37b7e inc c cp WEATHER_SUN jr z, .Heal -rept 2 dec c -endr + dec c .Heal ld b, 0 ld hl, .Multipliers -rept 2 add hl, bc -endr + add hl, bc ld a, [hli] ld h, [hl] @@ -9348,6 +9556,7 @@ BattleCommand_HiddenPower: ; 37be8 ret nz callba HiddenPowerDamage ret + ; 37bf4 @@ -9360,6 +9569,7 @@ BattleCommand_StartRain: ; 37bf4 call AnimateCurrentMove ld hl, DownpourText jp StdBattleTextBox + ; 37c07 @@ -9372,6 +9582,7 @@ BattleCommand_StartSun: ; 37c07 call AnimateCurrentMove ld hl, SunGotBrightText jp StdBattleTextBox + ; 37c1a @@ -9409,6 +9620,7 @@ BattleCommand_BellyDrum: ; 37c1a .failed call AnimateFailedMove jp PrintButItFailed + ; 37c55 @@ -9419,7 +9631,7 @@ BattleCommand_PsychUp: ; 37c55 ld de, PlayerStatLevels ld a, [hBattleTurn] and a - jr z, .pointers_correct ; 37c5e $4 + jr z, .pointers_correct ; It's the enemy's turn, so swap the pointers. push hl ld h, d @@ -9433,9 +9645,9 @@ BattleCommand_PsychUp: ; 37c55 .loop ld a, [hli] cp BASE_STAT_LEVEL - jr nz, .break ; 37c6a $a + jr nz, .break dec b - jr nz, .loop ; 37c6d $f8 + jr nz, .loop pop hl call AnimateFailedMove jp PrintButItFailed @@ -9448,12 +9660,12 @@ BattleCommand_PsychUp: ; 37c55 ld [de], a inc de dec b - jr nz, .loop2 ; 37c7d $fa + jr nz, .loop2 ld a, [hBattleTurn] and a - jr nz, .calc_enemy_stats ; 37c82 $5 + jr nz, .calc_enemy_stats call CalcPlayerStats - jr .merge ; 37c87 $3 + jr .merge .calc_enemy_stats call CalcEnemyStats @@ -9461,6 +9673,7 @@ BattleCommand_PsychUp: ; 37c55 call AnimateCurrentMove ld hl, CopiedStatsText jp StdBattleTextBox + ; 37c95 @@ -9523,6 +9736,7 @@ BattleCommand_MirrorCoat: ; 37c95 xor a ld [AttackMissed], a ret + ; 37ce6 @@ -9547,6 +9761,7 @@ BattleCommand_DoubleMinimizeDamage: ; 37ce6 ld [hli], a ld [hl], a ret + ; 37d02 @@ -9557,6 +9772,7 @@ BattleCommand_SkipSunCharge: ; 37d02 ret nz ld b, charge_command jp SkipToBattleCommand + ; 37d0d @@ -9564,12 +9780,12 @@ BattleCommand_CheckFutureSight: ; 37d0d ; checkfuturesight ld hl, wPlayerFutureSightCount - ld de, wc727 + ld de, wPlayerFutureSightDamage ld a, [hBattleTurn] and a jr z, .ok ld hl, wEnemyFutureSightCount - ld de, wc729 + ld de, wEnemyFutureSightDamage .ok ld a, [hl] @@ -9586,13 +9802,14 @@ BattleCommand_CheckFutureSight: ; 37d0d ld [CurDamage + 1], a ld b, futuresight_command jp SkipToBattleCommand + ; 37d34 BattleCommand_FutureSight: ; 37d34 ; futuresight call CheckUserIsCharging - jr nz, .asm_37d4b ; 37d37 $12 + jr nz, .AlreadyChargingFutureSight ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld b, a @@ -9602,29 +9819,29 @@ BattleCommand_FutureSight: ; 37d34 ld a, BATTLE_VARS_LAST_MOVE call GetBattleVarAddr ld [hl], b -.asm_37d4b +.AlreadyChargingFutureSight ld hl, wPlayerFutureSightCount ld a, [hBattleTurn] and a - jr z, .asm_37d56 ; 37d51 $3 + jr z, .GotFutureSightCount ld hl, wEnemyFutureSightCount -.asm_37d56 +.GotFutureSightCount ld a, [hl] and a - jr nz, .asm_37d87 ; 37d58 $2d - ld a, $4 + jr nz, .failed + ld a, 4 ld [hl], a call BattleCommand_LowerSub call BattleCommand_MoveDelay ld hl, ForesawAttackText call StdBattleTextBox call BattleCommand_RaiseSub - ld de, wc727 + ld de, wPlayerFutureSightDamage ld a, [hBattleTurn] and a - jr z, .asm_37d77 ; 37d72 $3 - ld de, wc729 -.asm_37d77 + jr z, .StoreDamage + ld de, wEnemyFutureSightDamage +.StoreDamage ld hl, CurDamage ld a, [hl] ld [de], a @@ -9635,12 +9852,14 @@ BattleCommand_FutureSight: ; 37d34 ld [de], a ld [hl], 0 jp EndMoveEffect -.asm_37d87 + +.failed pop bc call ResetDamage call AnimateFailedMove call PrintButItFailed jp EndMoveEffect + ; 37d94 @@ -9657,9 +9876,11 @@ BattleCommand_ThunderAccuracy: ; 37d94 ret nz ld [hl], 50 percent + 1 ret + .rain ld [hl], 100 percent ret + ; 37daa @@ -9668,6 +9889,7 @@ CheckHiddenOpponent: ; 37daa call GetBattleVar and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND ret + ; 37db2 @@ -9681,6 +9903,7 @@ GetUserItem: ; 37db2 .go ld b, [hl] jp GetItemHeldEffect + ; 37dc1 @@ -9694,6 +9917,7 @@ GetOpponentItem: ; 37dc1 .go ld b, [hl] jp GetItemHeldEffect + ; 37dd0 @@ -9716,6 +9940,7 @@ GetItemHeldEffect: ; 37dd0 ld c, h pop hl ret + ; 37de9 @@ -9734,6 +9959,7 @@ AnimateCurrentMoveEitherSide: ; 37de9 pop de pop hl ret + ; 37e01 @@ -9752,6 +9978,7 @@ AnimateCurrentMove: ; 37e01 pop de pop hl ret + ; 37e19 @@ -9773,15 +10000,16 @@ PlayDamageAnim: ; 37e19 ld a, BATTLEANIM_PLAYER_DAMAGE .player - ld [wcfca], a + ld [wNumHits], a jp PlayUserBattleAnim + ; 37e36 LoadMoveAnim: ; 37e36 xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, BATTLE_VARS_MOVE_ANIM @@ -9810,6 +10038,7 @@ PlayUserBattleAnim: ; 37e47 pop de pop hl ret + ; 37e54 @@ -9819,7 +10048,7 @@ PlayOpponentBattleAnim: ; 37e54 ld a, d ld [FXAnimIDHi], a xor a - ld [wcfca], a + ld [wNumHits], a push hl push de @@ -9833,6 +10062,7 @@ PlayOpponentBattleAnim: ; 37e54 pop de pop hl ret + ; 37e73 @@ -9840,6 +10070,7 @@ CallBattleCore: ; 37e73 ld a, BANK(BattleCore) rst FarCall ret + ; 37e77 @@ -9847,6 +10078,7 @@ AnimateFailedMove: ; 37e77 call BattleCommand_LowerSub call BattleCommand_MoveDelay jp BattleCommand_RaiseSub + ; 37e80 @@ -9855,6 +10087,7 @@ BattleCommand_MoveDelay: ; 37e80 ; Wait 40 frames. ld c, 40 jp DelayFrames + ; 37e85 @@ -9864,6 +10097,7 @@ BattleCommand_ClearText: ; 37e85 ; Used in multi-hit moves. ld hl, .text jp BattleTextBox + .text db "@" ; 37e8c @@ -9885,6 +10119,7 @@ SkipToBattleCommand: ; 37e8c ld a, l ld [BattleScriptBufferLoc], a ret + ; 37ea1 @@ -9896,6 +10131,7 @@ GetMoveAttr: ; 37ea1 call GetMoveByte pop bc ret + ; 37ead @@ -9906,30 +10142,35 @@ GetMoveData: ; 37ead call AddNTimes ld a, Bank(Moves) jp FarCopyBytes + ; 37ebb GetMoveByte: ; 37ebb ld a, BANK(Moves) jp GetFarByte + ; 37ec0 DisappearUser: ; 37ec0 callba _DisappearUser ret + ; 37ec7 AppearUserLowerSub: ; 37ec7 callba _AppearUserLowerSub ret + ; 37ece AppearUserRaiseSub: ; 37ece callba _AppearUserRaiseSub ret + ; 37ed5 @@ -9943,4 +10184,5 @@ _CheckBattleScene: ; 37ed5 pop de pop hl ret + ; 37ee2 diff --git a/battle/menu.asm b/battle/menu.asm new file mode 100755 index 000000000..3efcc0079 --- /dev/null +++ b/battle/menu.asm @@ -0,0 +1,118 @@ +LoadBattleMenu: ; 24ef2 + ld hl, BattleMenuDataHeader + call LoadMenuDataHeader + ld a, [wd0d2] + ld [wMenuCursorBuffer], a + call InterpretBattleMenu + ld a, [wMenuCursorBuffer] + ld [wd0d2], a + call ExitMenu + ret +; 24f0b + +SafariBattleMenu: ; 24f0b +; untranslated + ld hl, MenuDataHeader_0x24f4e + call LoadMenuDataHeader + jr Function24f19 +; 24f13 + +ContestBattleMenu: ; 24f13 + ld hl, MenuDataHeader_0x24f89 + call LoadMenuDataHeader +; 24f19 + +Function24f19: ; 24f19 + ld a, [wd0d2] + ld [wMenuCursorBuffer], a + call _2DMenu + ld a, [wMenuCursorBuffer] + ld [wd0d2], a + call ExitMenu + ret +; 24f2c + +BattleMenuDataHeader: ; 24f2c + db $40 ; flags + db 12, 08 ; start coords + db 17, 19 ; end coords + dw MenuData_0x24f34 + db 1 ; default option +; 24f34 + +MenuData_0x24f34: ; 0x24f34 + db $81 ; flags + dn 2, 2 ; rows, columns + db 6 ; spacing + dba Strings24f3d + dbw BANK(MenuData_0x24f34), 0 +; 0x24f3d + +Strings24f3d: ; 0x24f3d + db "FIGHT@" + db "<PKMN>@" + db "PACK@" + db "RUN@" +; 24f4e + +MenuDataHeader_0x24f4e: ; 24f4e + db $40 ; flags + db 12, 00 ; start coords + db 17, 19 ; end coords + dw MenuData_0x24f56 + db 1 ; default option +; 24f56 + +MenuData_0x24f56: ; 24f56 + db $81 ; flags + dn 2, 2 ; rows, columns + db 11 ; spacing + dba Strings24f5f + dba Function24f7c +; 24f5f + +Strings24f5f: ; 24f5f + db "サファりボール× @" ; "SAFARI BALL× @" + db "エサをなげる@" ; "THROW BAIT" + db "いしをなげる@" ; "THROW ROCK" + db "にげる@" ; "RUN" +; 24f7c + +Function24f7c: ; 24f7c + hlcoord 17, 13 + ld de, wSafariBallsRemaining + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ret +; 24f89 + +MenuDataHeader_0x24f89: ; 24f89 + db $40 ; flags + db 12, 02 ; start coords + db 17, 19 ; end coords + dw MenuData_0x24f91 + db 1 ; default option +; 24f91 + +MenuData_0x24f91: ; 24f91 + db $81 ; flags + dn 2, 2 ; rows, columns + db 12 ; spacing + dba Strings24f9a + dba Function24fb2 +; 24f9a + +Strings24f9a: ; 24f9a + db "FIGHT@" + db "<PKMN>", "@" + db "PARKBALL× @" + db "RUN@" +; 24fb2 + +Function24fb2: ; 24fb2 + hlcoord 13, 16 + ld de, wParkBallsRemaining + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ret +; 24fbf diff --git a/battle/objects/data.asm b/battle/objects/data.asm new file mode 100755 index 000000000..7ae0dc371 --- /dev/null +++ b/battle/objects/data.asm @@ -0,0 +1,573 @@ +BattleAnimObjects: ; ccb56 +battleanimobj: MACRO + +; ??, ??, frameset, function, ??, tile offset + db \1, \2, \3, \4, \5, \6 +endm + + +; ANIM_OBJ_00 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_01 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_02 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_03 + battleanimobj $01, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_04 + battleanimobj $01, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_05 + battleanimobj $01, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_06 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_07 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, $02, $01 + +; ANIM_OBJ_08 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_09 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_0A + battleanimobj $01, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, $02, $01 + +; ANIM_OBJ_0B + battleanimobj $01, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, $04, $03 + +; ANIM_OBJ_0C + battleanimobj $01, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, $04, $03 + +; ANIM_OBJ_0D + battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, $04, $03 + +; ANIM_OBJ_0E + battleanimobj $01, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, $04, $03 + +; ANIM_OBJ_0F + battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, $04, $03 + +; ANIM_OBJ_BURNED + battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, $04, $03 + +; ANIM_OBJ_11 + battleanimobj $01, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, $06, $0a + +; ANIM_OBJ_12 + battleanimobj $01, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, $06, $0a + +; ANIM_OBJ_13 + battleanimobj $01, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, $06, $0a + +; ANIM_OBJ_14 + battleanimobj $21, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_0B, $05, $06 + +; ANIM_OBJ_POKE_BALL + battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, $04, $0b + +; ANIM_OBJ_16 + battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, $04, $0b + +; ANIM_OBJ_17 + battleanimobj $01, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08 + +; ANIM_OBJ_18 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08 + +; ANIM_OBJ_19 + battleanimobj $01, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, $02, $0c + +; ANIM_OBJ_1A + battleanimobj $01, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, $02, $0c + +; ANIM_OBJ_1B + battleanimobj $01, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07 + +; ANIM_OBJ_1C + battleanimobj $01, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07 + +; ANIM_OBJ_1D + battleanimobj $01, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, $07, $09 + +; ANIM_OBJ_1E + battleanimobj $01, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, $07, $09 + +; ANIM_OBJ_1F + battleanimobj $01, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, $07, $09 + +; ANIM_OBJ_20 + battleanimobj $01, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, $06, $21 + +; ANIM_OBJ_21 + battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, $06, $0d + +; ANIM_OBJ_22 + battleanimobj $00, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, $06, $0d + +; ANIM_OBJ_23 + battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, $02, $0e + +; ANIM_OBJ_24 + battleanimobj $61, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, $06, $04 + +; ANIM_OBJ_25 + battleanimobj $01, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, $06, $04 + +; ANIM_OBJ_26 + battleanimobj $01, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, $05, $0f + +; ANIM_OBJ_27 + battleanimobj $61, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, $03, $10 + +; ANIM_OBJ_28 + battleanimobj $61, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10 + +; ANIM_OBJ_29 + battleanimobj $01, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, $06, $0a + +; ANIM_OBJ_FROZEN + battleanimobj $01, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, $06, $0a + +; ANIM_OBJ_2B + battleanimobj $01, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, $07, $11 + +; ANIM_OBJ_2C + battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, $03, $0d + +; ANIM_OBJ_2D + battleanimobj $21, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, $03, $05 + +; ANIM_OBJ_2E + battleanimobj $21, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, $03, $05 + +; ANIM_OBJ_2F + battleanimobj $21, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, $03, $05 + +; ANIM_OBJ_30 + battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, $03, $05 + +; ANIM_OBJ_31 + battleanimobj $21, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, $03, $05 + +; ANIM_OBJ_32 + battleanimobj $21, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, $02, $08 + +; ANIM_OBJ_33 + battleanimobj $21, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, $03, $05 + +; ANIM_OBJ_34 + battleanimobj $21, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, $02, $08 + +; ANIM_OBJ_35 + battleanimobj $21, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, $02, $02 + +; ANIM_OBJ_36 + battleanimobj $01, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, $02, $02 + +; ANIM_OBJ_37 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, $02, $02 + +; ANIM_OBJ_38 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, $02, $02 + +; ANIM_OBJ_39 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, $02, $02 + +; ANIM_OBJ_3A + battleanimobj $21, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, $02, $02 + +; ANIM_OBJ_3B + battleanimobj $21, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, $02, $02 + +; ANIM_OBJ_3C + battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, $05, $12 + +; ANIM_OBJ_3D + battleanimobj $01, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, $05, $12 + +; ANIM_OBJ_GUST + battleanimobj $21, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, $02, $13 + +; ANIM_OBJ_3F + battleanimobj $21, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, $02, $14 + +; ANIM_OBJ_40 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, $02, $14 + +; ANIM_OBJ_41 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, $02, $14 + +; ANIM_OBJ_42 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, $02, $14 + +; ANIM_OBJ_43 + battleanimobj $21, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, $02, $14 + +; ANIM_OBJ_44 + battleanimobj $21, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, $03, $11 + +; ANIM_OBJ_45 + battleanimobj $01, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, $05, $12 + +; ANIM_OBJ_46 + battleanimobj $21, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, $02, $15 + +; ANIM_OBJ_47 + battleanimobj $01, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, $03, $11 + +; ANIM_OBJ_48 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, $05, $16 + +; ANIM_OBJ_49 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, $05, $16 + +; ANIM_OBJ_4A + battleanimobj $21, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_20, $05, $06 + +; ANIM_OBJ_4B + battleanimobj $21, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, $02, $0e + +; ANIM_OBJ_4C + battleanimobj $21, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, $02, $17 + +; ANIM_OBJ_4D + battleanimobj $01, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, $03, $11 + +; ANIM_OBJ_4E + battleanimobj $61, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, $03, $10 + +; ANIM_OBJ_4F + battleanimobj $61, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10 + +; ANIM_OBJ_50 + battleanimobj $21, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $03, $18 + +; ANIM_OBJ_51 + battleanimobj $21, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $02, $18 + +; ANIM_OBJ_CHICK + battleanimobj $21, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, $03, $19 + +; ANIM_OBJ_53 + battleanimobj $01, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, $02, $19 + +; ANIM_OBJ_54 + battleanimobj $01, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, $02, $19 + +; ANIM_OBJ_SKULL + battleanimobj $01, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, $02, $0c + +; ANIM_OBJ_56 + battleanimobj $21, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, $07, $1a + +; ANIM_OBJ_57 + battleanimobj $21, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, $07, $1a + +; ANIM_OBJ_58 + battleanimobj $21, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, $02, $1a + +; ANIM_OBJ_PARALYZED + battleanimobj $21, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, $03, $19 + +; ANIM_OBJ_5A + battleanimobj $21, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, $02, $1b + +; ANIM_OBJ_5B + battleanimobj $00, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_29, $02, $1c + +; ANIM_OBJ_5C + battleanimobj $21, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_29, $02, $1c + +; ANIM_OBJ_5D + battleanimobj $21, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_29, $02, $1c + +; ANIM_OBJ_5E + battleanimobj $21, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_2A, $02, $1c + +; ANIM_OBJ_5F + battleanimobj $61, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_2B, $02, $1d + +; ANIM_OBJ_60 + battleanimobj $61, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, $02, $1d + +; ANIM_OBJ_61 + battleanimobj $01, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, $04, $1e + +; ANIM_OBJ_62 + battleanimobj $01, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, $02, $15 + +; ANIM_OBJ_63 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, $07, $19 + +; ANIM_OBJ_64 + battleanimobj $21, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, $02, $14 + +; ANIM_OBJ_65 + battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, $02, $11 + +; ANIM_OBJ_66 + battleanimobj $01, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_2A, $04, $23 + +; ANIM_OBJ_67 + battleanimobj $01, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, $02, $1f + +; ANIM_OBJ_68 + battleanimobj $01, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, $02, $1f + +; ANIM_OBJ_69 + battleanimobj $01, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, $02, $1f + +; ANIM_OBJ_6A + battleanimobj $01, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, $03, $23 + +; ANIM_OBJ_6B + battleanimobj $21, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, $02, $1f + +; ANIM_OBJ_6C + battleanimobj $01, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11 + +; ANIM_OBJ_6D + battleanimobj $01, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11 + +; ANIM_OBJ_6E + battleanimobj $21, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, $02, $20 + +; ANIM_OBJ_6F + battleanimobj $21, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, $02, $04 + +; ANIM_OBJ_70 + battleanimobj $21, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, $02, $18 + +; ANIM_OBJ_71 + battleanimobj $01, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, $06, $0d + +; ANIM_OBJ_72 + battleanimobj $01, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, $03, $12 + +; ANIM_OBJ_73 + battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, $02, $08 + +; ANIM_OBJ_74 + battleanimobj $21, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, $02, $1c + +; ANIM_OBJ_75 + battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, $02, $15 + +; ANIM_OBJ_76 + battleanimobj $21, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, $02, $14 + +; ANIM_OBJ_77 + battleanimobj $01, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, $02, $11 + +; ANIM_OBJ_78 + battleanimobj $01, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, $02, $22 + +; ANIM_OBJ_79 + battleanimobj $01, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, $02, $22 + +; ANIM_OBJ_7A + battleanimobj $01, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, $02, $1f + +; ANIM_OBJ_7B + battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, $03, $11 + +; ANIM_OBJ_7C + battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, $03, $05 + +; ANIM_OBJ_7D + battleanimobj $a1, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, $06, $13 + +; ANIM_OBJ_HEART + battleanimobj $01, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, $04, $23 + +; ANIM_OBJ_7F + battleanimobj $01, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, $04, $03 + +; ANIM_OBJ_80 + battleanimobj $01, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, $04, $03 + +; ANIM_OBJ_81 + battleanimobj $21, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_29, $02, $1f + +; ANIM_OBJ_82 + battleanimobj $21, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, $02, $1f + +; ANIM_OBJ_83 + battleanimobj $21, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, $02, $1f + +; ANIM_OBJ_84 + battleanimobj $21, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, $03, $1f + +; ANIM_OBJ_85 + battleanimobj $01, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, $02, $0e + +; ANIM_OBJ_86 + battleanimobj $21, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, $04, $1f + +; ANIM_OBJ_87 + battleanimobj $21, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, $02, $1f + +; ANIM_OBJ_88 + battleanimobj $21, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, $02, $1f + +; ANIM_OBJ_89 + battleanimobj $21, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, $02, $1f + +; ANIM_OBJ_8A + battleanimobj $21, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, $03, $23 + +; ANIM_OBJ_8B + battleanimobj $01, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, $02, $19 + +; ANIM_OBJ_8C + battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, $02, $15 + +; ANIM_OBJ_8D + battleanimobj $21, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, $04, $19 + +; ANIM_OBJ_8E + battleanimobj $21, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, $02, $1f + +; ANIM_OBJ_8F + battleanimobj $01, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, $02, $0a + +; ANIM_OBJ_90 + battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, $04, $03 + +; ANIM_OBJ_91 + battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, $02, $08 + +; ANIM_OBJ_92 + battleanimobj $01, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, $02, $1b + +; ANIM_OBJ_93 + battleanimobj $21, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, $04, $23 + +; ANIM_OBJ_94 + battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, $02, $25 + +; ANIM_OBJ_95 + battleanimobj $21, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, $02, $25 + +; ANIM_OBJ_96 + battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, $02, $25 + +; ANIM_OBJ_97 + battleanimobj $21, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, $06, $25 + +; ANIM_OBJ_98 + battleanimobj $61, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, $05, $23 + +; ANIM_OBJ_99 + battleanimobj $21, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, $02, $23 + +; ANIM_OBJ_9A + battleanimobj $21, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, $03, $23 + +; ANIM_OBJ_9B + battleanimobj $21, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, $02, $25 + +; ANIM_OBJ_9C + battleanimobj $21, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, $03, $24 + +; ANIM_OBJ_9D + battleanimobj $01, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, $02, $24 + +; ANIM_OBJ_9E + battleanimobj $01, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, $03, $24 + +; ANIM_OBJ_9F + battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, $04, $12 + +; ANIM_OBJ_A0 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, $02, $02 + +; ANIM_OBJ_A1 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, $02, $02 + +; ANIM_OBJ_A2 + battleanimobj $21, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, $07, $0f + +; ANIM_OBJ_A3 + battleanimobj $21, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, $03, $05 + +; ANIM_OBJ_A4 + battleanimobj $21, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, $02, $25 + +; ANIM_OBJ_A5 + battleanimobj $61, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, $02, $23 + +; ANIM_OBJ_A6 + battleanimobj $00, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, $02, $0e + +; ANIM_OBJ_A7 + battleanimobj $01, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, $02, $24 + +; ANIM_OBJ_A8 + battleanimobj $21, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, $02, $13 + +; ANIM_OBJ_A9 + battleanimobj $21, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, $02, $13 + +; ANIM_OBJ_AA + battleanimobj $01, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01 + +; ANIM_OBJ_AB + battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, $02, $0e + +; ANIM_OBJ_AC + battleanimobj $01, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, $06, $17 + +; ANIM_OBJ_AD + battleanimobj $01, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, $02, $01 + +; ANIM_OBJ_AE + battleanimobj $21, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, $03, $11 + +; ANIM_OBJ_AF + battleanimobj $21, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, $02, $04 + +; ANIM_OBJ_B0 + battleanimobj $00, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, $04, $1c + +; ANIM_OBJ_B1 + battleanimobj $01, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, $02, $19 + +; ANIM_OBJ_B2 + battleanimobj $01, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, $07, $09 + +; ANIM_OBJ_B3 + battleanimobj $61, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, $03, $27 + +; ANIM_OBJ_B4 + battleanimobj $61, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, $06, $15 + +; ANIM_OBJ_B5 + battleanimobj $21, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, $07, $09 + +; ANIM_OBJ_FLOWER + battleanimobj $01, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, $04, $1e + +; ANIM_OBJ_COTTON + battleanimobj $01, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, $04, $1f + +; ANIM_OBJ_PLAYERFEETFOLLOW + battleanimobj $00, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, $00, $28 + +; ANIM_OBJ_ENEMYFEETFOLLOW + battleanimobj $00, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, $01, $29 + +; ANIM_OBJ_BA + battleanimobj $00, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, $00, $28 + +; ANIM_OBJ_BB + battleanimobj $00, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, $01, $29 + +; ccfbe diff --git a/battle/objects/engine.asm b/battle/objects/engine.asm new file mode 100755 index 000000000..eca0af8a1 --- /dev/null +++ b/battle/objects/engine.asm @@ -0,0 +1,314 @@ +QueueBattleAnimation: ; cc9a1 (33:49a1) + ld hl, ActiveAnimObjects + ld e, 10 +.loop + ld a, [hl] + and a + jr z, .done + ld bc, BATTLEANIMSTRUCT_LENGTH + add hl, bc + dec e + jr nz, .loop + scf + ret + +.done + ld c, l + ld b, h + ld hl, wNumActiveBattleAnims + inc [hl] + call InitBattleAnimation + ret + +DeinitBattleAnimation: ; cc9bd + ld hl, BATTLEANIMSTRUCT_INDEX + add hl, bc + ld [hl], $0 + ret + +; cc9c4 + +InitBattleAnimation: ; cc9c4 (33:49c4) + ld a, [wBattleAnimTemp0] + ld e, a + ld d, 0 + ld hl, BattleAnimObjects +rept 6 + add hl, de +endr + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_INDEX + add hl, bc + ld a, [wNumActiveBattleAnims] + ld [hli], a ; Index + ld a, [de] + inc de + ld [hli], a ; 01 + ld a, [de] + inc de + ld [hli], a ; 02 + ld a, [de] + inc de + ld [hli], a ; Frameset ID + ld a, [de] + inc de + ld [hli], a ; Function + ld a, [de] + inc de + ld [hli], a ; 05 + ld a, [de] + call GetBattleAnimTileOffset + ld [hli], a ; Tile ID + ld a, [wBattleAnimTemp1] + ld [hli], a ; X Coord + ld a, [wBattleAnimTemp2] + ld [hli], a ; Y Coord + xor a + ld [hli], a ; X Offset + ld [hli], a ; Y Offset + ld a, [wBattleAnimTemp3] + ld [hli], a ; 0b + xor a + ld [hli], a ; 0c + dec a + ld [hli], a ; 0d + xor a + ld [hli], a ; 0e + ld [hli], a ; 0f + ld [hl], a ; 10 + ret + +BattleAnimOAMUpdate: ; cca09 + call InitBattleAnimBuffer + call GetBattleAnimFrame + cp -3 + jp z, .done + cp -4 + jp z, .delete + push af + ld hl, wBattleAnimTempOAMFlags + ld a, [wBattleAnimTemp7] + xor [hl] + and $e0 + ld [hl], a + pop af + push bc + call GetBattleAnimOAMPointer + ld a, [wBattleAnimTempTileID] + add [hl] + ld [wBattleAnimTempTileID], a + inc hl + ld a, [hli] + ld c, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wBattleAnimOAMPointerLo] + ld e, a + ld d, Sprites / $100 +.loop + ld a, [wBattleAnimTempYCoord] + ld b, a + ld a, [wBattleAnimTempYOffset] + add b + ld b, a + push hl + ld a, [hl] + ld hl, wBattleAnimTempOAMFlags + bit 6, [hl] + jr z, .no_yflip + add $8 + xor $ff + inc a + +.no_yflip + pop hl + add b + ld [de], a + inc hl + inc de + ld a, [wBattleAnimTempXCoord] + ld b, a + ld a, [wBattleAnimTempXOffset] + add b + ld b, a + push hl + ld a, [hl] + ld hl, wBattleAnimTempOAMFlags + bit 5, [hl] + jr z, .no_xflip + add $8 + xor $ff + inc a + +.no_xflip + pop hl + add b + ld [de], a + inc hl + inc de + ld a, [wBattleAnimTempTileID] + add $31 + add [hl] + ld [de], a + inc hl + inc de + ld a, [wBattleAnimTempOAMFlags] + ld b, a + ld a, [hl] + xor b + and $e0 + ld b, a + ld a, [hl] + and $10 + or b + ld b, a + ld a, [wBattleAnimTempPalette] + and $f + or b + ld [de], a + inc hl + inc de + ld a, e + ld [wBattleAnimOAMPointerLo], a + cp $a0 + jr nc, .exit_set_carry + dec c + jr nz, .loop + pop bc + jr .done + +.delete + call DeinitBattleAnimation + +.done + and a + ret + +.exit_set_carry + pop bc + scf + ret + +; ccaaa + +InitBattleAnimBuffer: ; ccaaa + ld hl, BATTLEANIMSTRUCT_01 + add hl, bc + ld a, [hl] + and %10000000 + ld [wBattleAnimTempOAMFlags], a + xor a + ld [wBattleAnimTemp7], a + ld hl, BATTLEANIMSTRUCT_PALETTE + add hl, bc + ld a, [hl] + ld [wBattleAnimTempPalette], a + ld hl, BATTLEANIMSTRUCT_02 + add hl, bc + ld a, [hl] + ld [wBattleAnimTemp1], a + ld hl, BATTLEANIMSTRUCT_TILEID + add hl, bc + ld a, [hli] + ld [wBattleAnimTempTileID], a + ld a, [hli] + ld [wBattleAnimTempXCoord], a + ld a, [hli] + ld [wBattleAnimTempYCoord], a + ld a, [hli] + ld [wBattleAnimTempXOffset], a + ld a, [hli] + ld [wBattleAnimTempYOffset], a + ld a, [hBattleTurn] + and a + ret z + ld hl, BATTLEANIMSTRUCT_01 + add hl, bc + ld a, [hl] + ld [wBattleAnimTempOAMFlags], a + bit 0, [hl] + ret z + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hli] + ld d, a + ld a, (-10 * 8) + 4 + sub d + ld [wBattleAnimTempXCoord], a + ld a, [hli] + ld d, a + ld a, [wBattleAnimTemp1] + cp $ff + jr nz, .check_kinesis_softboiled_milkdrink + ld a, 5 * 8 + add d + jr .done + +.check_kinesis_softboiled_milkdrink + sub d + push af + ld a, [FXAnimIDHi] + or a + jr nz, .no_sub + ld a, [FXAnimIDLo] + cp KINESIS + jr z, .kinesis + cp SOFTBOILED + jr z, .softboiled + cp MILK_DRINK + jr nz, .no_sub +.kinesis +.softboiled +.milk_drink + pop af + sub 1 * 8 + jr .done + +.no_sub + pop af +.done + ld [wBattleAnimTempYCoord], a + ld a, [hli] + xor $ff + inc a + ld [wBattleAnimTempXOffset], a + ret + +; ccb31 + +GetBattleAnimTileOffset: ; ccb31 (33:4b31) + push hl + push bc + ld hl, wBattleAnimTileDict + ld b, a + ld c, 10 / 2 +.loop + ld a, [hli] + cp b + jr z, .load + inc hl + dec c + jr nz, .loop + xor a + jr .done + +.load + ld a, [hl] +.done + pop bc + pop hl + ret + +_ExecuteBGEffects: ; ccb48 + callab ExecuteBGEffects + ret + +; ccb4f + +_QueueBGEffect: ; ccb4f (33:4b4f) + callab QueueBGEffect + ret + +; ccb56 (33:4b56) diff --git a/battle/objects/framesets.asm b/battle/objects/framesets.asm new file mode 100755 index 000000000..587bb01da --- /dev/null +++ b/battle/objects/framesets.asm @@ -0,0 +1,1270 @@ +BattleAnimFrameData: ; ce85e
+ dw .Frameset_00 ; 00
+ dw .Frameset_01 ; 01
+ dw .Frameset_02 ; 02
+ dw .Frameset_03 ; 03
+ dw .Frameset_04 ; 04
+ dw .Frameset_05 ; 05
+ dw .Frameset_06 ; 06
+ dw .Frameset_07 ; 07
+ dw .Frameset_08 ; 08
+ dw .Frameset_09 ; 09
+ dw .Frameset_0a ; 0a
+ dw .Frameset_0b ; 0b
+ dw .Frameset_0c ; 0c
+ dw .Frameset_0d ; 0d
+ dw .Frameset_0e ; 0e
+ dw .Frameset_0f ; 0f
+ dw .Frameset_10 ; 10
+ dw .Frameset_11 ; 11
+ dw .Frameset_12 ; 12
+ dw .Frameset_13 ; 13
+ dw .Frameset_14 ; 14
+ dw .Frameset_15 ; 15
+ dw .Frameset_16 ; 16
+ dw .Frameset_17 ; 17
+ dw .Frameset_18 ; 18
+ dw .Frameset_19 ; 19
+ dw .Frameset_1a ; 1a
+ dw .Frameset_1b ; 1b
+ dw .Frameset_1c ; 1c
+ dw .Frameset_1d ; 1d
+ dw .Frameset_1e ; 1e
+ dw .Frameset_1f ; 1f
+ dw .Frameset_20 ; 20
+ dw .Frameset_21 ; 21
+ dw .Frameset_22 ; 22
+ dw .Frameset_23 ; 23
+ dw .Frameset_24 ; 24
+ dw .Frameset_25 ; 25
+ dw .Frameset_26 ; 26
+ dw .Frameset_27 ; 27
+ dw .Frameset_28 ; 28
+ dw .Frameset_29 ; 29
+ dw .Frameset_2a ; 2a
+ dw .Frameset_2b ; 2b
+ dw .Frameset_2c ; 2c
+ dw .Frameset_2d ; 2d
+ dw .Frameset_2e ; 2e
+ dw .Frameset_2f ; 2f
+ dw .Frameset_30 ; 30
+ dw .Frameset_31 ; 31
+ dw .Frameset_32 ; 32
+ dw .Frameset_33 ; 33
+ dw .Frameset_34 ; 34
+ dw .Frameset_35 ; 35
+ dw .Frameset_36 ; 36
+ dw .Frameset_37 ; 37
+ dw .Frameset_38 ; 38
+ dw .Frameset_39 ; 39
+ dw .Frameset_3a ; 3a
+ dw .Frameset_3b ; 3b
+ dw .Frameset_3c ; 3c
+ dw .Frameset_3d ; 3d
+ dw .Frameset_3e ; 3e
+ dw .Frameset_3f ; 3f
+ dw .Frameset_40 ; 40
+ dw .Frameset_41 ; 41
+ dw .Frameset_42 ; 42
+ dw .Frameset_43 ; 43
+ dw .Frameset_44 ; 44
+ dw .Frameset_45 ; 45
+ dw .Frameset_46 ; 46
+ dw .Frameset_47 ; 47
+ dw .Frameset_48 ; 48
+ dw .Frameset_49 ; 49
+ dw .Frameset_4a ; 4a
+ dw .Frameset_4b ; 4b
+ dw .Frameset_4c ; 4c
+ dw .Frameset_4d ; 4d
+ dw .Frameset_4e ; 4e
+ dw .Frameset_4f ; 4f
+ dw .Frameset_50 ; 50
+ dw .Frameset_51 ; 51
+ dw .Frameset_52 ; 52
+ dw .Frameset_53 ; 53
+ dw .Frameset_54 ; 54
+ dw .Frameset_55 ; 55
+ dw .Frameset_56 ; 56
+ dw .Frameset_57 ; 57
+ dw .Frameset_58 ; 58
+ dw .Frameset_59 ; 59
+ dw .Frameset_5a ; 5a
+ dw .Frameset_5b ; 5b
+ dw .Frameset_5c ; 5c
+ dw .Frameset_5d ; 5d
+ dw .Frameset_5e ; 5e
+ dw .Frameset_5f ; 5f
+ dw .Frameset_60 ; 60
+ dw .Frameset_61 ; 61
+ dw .Frameset_62 ; 62
+ dw .Frameset_63 ; 63
+ dw .Frameset_64 ; 64
+ dw .Frameset_65 ; 65
+ dw .Frameset_66 ; 66
+ dw .Frameset_67 ; 67
+ dw .Frameset_68 ; 68
+ dw .Frameset_69 ; 69
+ dw .Frameset_6a ; 6a
+ dw .Frameset_6b ; 6b
+ dw .Frameset_6c ; 6c
+ dw .Frameset_6d ; 6d
+ dw .Frameset_6e ; 6e
+ dw .Frameset_6f ; 6f
+ dw .Frameset_70 ; 70
+ dw .Frameset_71 ; 71
+ dw .Frameset_72 ; 72
+ dw .Frameset_73 ; 73
+ dw .Frameset_74 ; 74
+ dw .Frameset_75 ; 75
+ dw .Frameset_76 ; 76
+ dw .Frameset_77 ; 77
+ dw .Frameset_78 ; 78
+ dw .Frameset_79 ; 79
+ dw .Frameset_7a ; 7a
+ dw .Frameset_7b ; 7b
+ dw .Frameset_7c ; 7c
+ dw .Frameset_7d ; 7d
+ dw .Frameset_7e ; 7e
+ dw .Frameset_7f ; 7f
+ dw .Frameset_80 ; 80
+ dw .Frameset_81 ; 81
+ dw .Frameset_82 ; 82
+ dw .Frameset_83 ; 83
+ dw .Frameset_84 ; 84
+ dw .Frameset_85 ; 85
+ dw .Frameset_86 ; 86
+ dw .Frameset_87 ; 87
+ dw .Frameset_88 ; 88
+ dw .Frameset_89 ; 89
+ dw .Frameset_8a ; 8a
+ dw .Frameset_8b ; 8b
+ dw .Frameset_8c ; 8c
+ dw .Frameset_8d ; 8d
+ dw .Frameset_8e ; 8e
+ dw .Frameset_8f ; 8f
+ dw .Frameset_90 ; 90
+ dw .Frameset_91 ; 91
+ dw .Frameset_92 ; 92
+ dw .Frameset_93 ; 93
+ dw .Frameset_94 ; 94
+ dw .Frameset_95 ; 95
+ dw .Frameset_96 ; 96
+ dw .Frameset_97 ; 97
+ dw .Frameset_98 ; 98
+ dw .Frameset_99 ; 99
+ dw .Frameset_9a ; 9a
+ dw .Frameset_9b ; 9b
+ dw .Frameset_9c ; 9c
+ dw .Frameset_9d ; 9d
+ dw .Frameset_9e ; 9e
+ dw .Frameset_9f ; 9f
+ dw .Frameset_a0 ; a0
+ dw .Frameset_a1 ; a1
+ dw .Frameset_a2 ; a2
+ dw .Frameset_a3 ; a3
+ dw .Frameset_a4 ; a4
+ dw .Frameset_a5 ; a5
+ dw .Frameset_a6 ; a6
+ dw .Frameset_a7 ; a7
+ dw .Frameset_a8 ; a8
+ dw .Frameset_a9 ; a9
+ dw .Frameset_aa ; aa
+ dw .Frameset_ab ; ab
+ dw .Frameset_ac ; ac
+ dw .Frameset_ad ; ad
+ dw .Frameset_ae ; ae
+ dw .Frameset_af ; af
+ dw .Frameset_b0 ; b0
+ dw .Frameset_b1 ; b1
+ dw .Frameset_b2 ; b2
+ dw .Frameset_b3 ; b3
+ dw .Frameset_b4 ; b4
+ dw .Frameset_b5 ; b5
+ dw .Frameset_b6 ; b6
+ dw .Frameset_b7 ; b7
+ dw .Frameset_b8 ; b8
+
+ ; OAM index (see battle/objects/oam.asm), flip flags / duration
+.Frameset_00 + db BATTLEANIMOAMSET_00, $06
+ db -4 +
+.Frameset_01 + db BATTLEANIMOAMSET_01, $06
+ db -4 +
+.Frameset_02 + db BATTLEANIMOAMSET_02, $06
+ db -4 +
+.Frameset_03 + db BATTLEANIMOAMSET_03, $06
+ db -4 +
+.Frameset_04 + db BATTLEANIMOAMSET_04, $06
+ db -4 +
+.Frameset_05 + db BATTLEANIMOAMSET_05, $06
+ db -4 +
+.Frameset_06 + db BATTLEANIMOAMSET_06, $06
+ db -4 +
+.Frameset_07 + db BATTLEANIMOAMSET_03, $04 + db BATTLEANIMOAMSET_01, $01 + db BATTLEANIMOAMSET_03, $04 + db BATTLEANIMOAMSET_01, $01 + db BATTLEANIMOAMSET_03, $04 + db BATTLEANIMOAMSET_01, $01 + db BATTLEANIMOAMSET_03, $04 + db BATTLEANIMOAMSET_01, $01
+ db -4 +
+.Frameset_3e + db BATTLEANIMOAMSET_4B, $02 + db BATTLEANIMOAMSET_4C, $02 + db BATTLEANIMOAMSET_4D, $04 + db BATTLEANIMOAMSET_4E, $02 + db -3, $02 + db BATTLEANIMOAMSET_4E, $02 + db -3, $02 + db BATTLEANIMOAMSET_4E, $02 + db -3, $02 + db BATTLEANIMOAMSET_4E, $02
+ db -4 +
+.Frameset_3f + db BATTLEANIMOAMSET_4B, $42 + db BATTLEANIMOAMSET_4C, $42 + db BATTLEANIMOAMSET_4D, $44 + db BATTLEANIMOAMSET_4E, $42 + db -3, $02 + db BATTLEANIMOAMSET_4E, $42 + db -3, $02 + db BATTLEANIMOAMSET_4E, $42 + db -3, $02 + db BATTLEANIMOAMSET_4E, $42
+ db -4 +
+.Frameset_40 + db BATTLEANIMOAMSET_4B, $c2 + db BATTLEANIMOAMSET_4C, $c2 + db BATTLEANIMOAMSET_4D, $c4 + db BATTLEANIMOAMSET_4E, $c2 + db -3, $02 + db BATTLEANIMOAMSET_4E, $c2 + db -3, $02 + db BATTLEANIMOAMSET_4E, $c2 + db -3, $02 + db BATTLEANIMOAMSET_4E, $c2
+ db -4 +
+.Frameset_41 + db BATTLEANIMOAMSET_4B, $01 + db BATTLEANIMOAMSET_4C, $01 + db BATTLEANIMOAMSET_4D, $01 + db BATTLEANIMOAMSET_4F, $01 + db BATTLEANIMOAMSET_50, $01 + db BATTLEANIMOAMSET_51, $01 + db BATTLEANIMOAMSET_52, $02 + db -3, $02 + db BATTLEANIMOAMSET_52, $02 + db -3, $02 + db BATTLEANIMOAMSET_52, $02 + db -3, $02 + db BATTLEANIMOAMSET_52, $02
+ db -4 +
+.Frameset_42 + db BATTLEANIMOAMSET_4B, $41 + db BATTLEANIMOAMSET_4C, $41 + db BATTLEANIMOAMSET_4D, $41 + db BATTLEANIMOAMSET_4F, $41 + db BATTLEANIMOAMSET_50, $41 + db BATTLEANIMOAMSET_51, $41 + db BATTLEANIMOAMSET_52, $42 + db -3, $02 + db BATTLEANIMOAMSET_52, $42 + db -3, $02 + db BATTLEANIMOAMSET_52, $42 + db -3, $02 + db BATTLEANIMOAMSET_52, $42
+ db -4 +
+.Frameset_08 + db BATTLEANIMOAMSET_00, $03 + db BATTLEANIMOAMSET_07, $03 + db BATTLEANIMOAMSET_08, $03 + db BATTLEANIMOAMSET_09, $03
+ db -4 +
+.Frameset_09 + db BATTLEANIMOAMSET_0A, $07 + db BATTLEANIMOAMSET_0B, $07 + db BATTLEANIMOAMSET_0A, $07 + db BATTLEANIMOAMSET_0B, $47
+ db -2 +
+.Frameset_0a + db BATTLEANIMOAMSET_0C, $08
+ db -1 +
+.Frameset_0b + db BATTLEANIMOAMSET_0D, $08
+ db -1 +
+.Frameset_0c + db BATTLEANIMOAMSET_0A, $08
+ db -1 +
+.Frameset_0d + db BATTLEANIMOAMSET_0A, $07 + db BATTLEANIMOAMSET_0B, $07 + db BATTLEANIMOAMSET_0A, $07 + db BATTLEANIMOAMSET_0B, $47 + db BATTLEANIMOAMSET_0A, $07
+ db -1 +
+.Frameset_0e + db BATTLEANIMOAMSET_0A, $08
+ db -1 +
+.Frameset_0f + db BATTLEANIMOAMSET_0A, $04 + db BATTLEANIMOAMSET_0E, $04
+ db -2 +
+.Frameset_10 + db BATTLEANIMOAMSET_0F, $04 + db BATTLEANIMOAMSET_10, $04
+ db -2 +
+.Frameset_11 + db BATTLEANIMOAMSET_10, $04 + db BATTLEANIMOAMSET_0F, $04 + db BATTLEANIMOAMSET_0E, $04 + db BATTLEANIMOAMSET_0A, $04 + db BATTLEANIMOAMSET_0E, $04 + db BATTLEANIMOAMSET_0A, $04 + db BATTLEANIMOAMSET_0E, $04 + db BATTLEANIMOAMSET_0A, $04
+ db -4 +
+.Frameset_12 + db BATTLEANIMOAMSET_10, $01 + db BATTLEANIMOAMSET_0F, $01 + db BATTLEANIMOAMSET_12, $01 + db BATTLEANIMOAMSET_11, $01 + db BATTLEANIMOAMSET_12, $01 + db BATTLEANIMOAMSET_0F, $01
+ db -2 +
+.Frameset_13 + db BATTLEANIMOAMSET_10, $03 + db BATTLEANIMOAMSET_0F, $03 + db BATTLEANIMOAMSET_12, $01 + db -3, $01 + db BATTLEANIMOAMSET_12, $01 + db -3, $01 + db BATTLEANIMOAMSET_12, $01 + db -3, $01 + db BATTLEANIMOAMSET_12, $01 + db -3, $01 + db BATTLEANIMOAMSET_12, $03
+ db -4 +
+.Frameset_14 + db BATTLEANIMOAMSET_13, $14
+ db -4 +
+.Frameset_15 + db BATTLEANIMOAMSET_10, $01 + db BATTLEANIMOAMSET_0F, $01
+ db -2 +
+.Frameset_16 + db BATTLEANIMOAMSET_14, $08
+ db -1 +
+.Frameset_17 + db BATTLEANIMOAMSET_17, $04 + db BATTLEANIMOAMSET_16, $08 + db BATTLEANIMOAMSET_15, $08 + db BATTLEANIMOAMSET_16, $08 + db BATTLEANIMOAMSET_17, $04 + db BATTLEANIMOAMSET_17, $04 + db BATTLEANIMOAMSET_16, $48 + db BATTLEANIMOAMSET_15, $48 + db BATTLEANIMOAMSET_16, $48 + db BATTLEANIMOAMSET_17, $04
+ db -2 +
+.Frameset_56 + db BATTLEANIMOAMSET_69, $08
+ db -1 +
+.Frameset_57 + db BATTLEANIMOAMSET_69, $20 + db BATTLEANIMOAMSET_6A, $04 + db BATTLEANIMOAMSET_6B, $04 + db BATTLEANIMOAMSET_6D, $04 + db BATTLEANIMOAMSET_6C, $04
+ db -1 +
+.Frameset_58 + db BATTLEANIMOAMSET_6C, $08 + db BATTLEANIMOAMSET_6D, $08
+ db -2 +
+.Frameset_18 + db BATTLEANIMOAMSET_18, $04 + db BATTLEANIMOAMSET_19, $04 + db BATTLEANIMOAMSET_1A, $04
+ db -4 +
+.Frameset_19 + db BATTLEANIMOAMSET_1B, $08
+ db -1 +
+.Frameset_1a + db BATTLEANIMOAMSET_0F, $08
+ db -1 +
+.Frameset_1b + db BATTLEANIMOAMSET_1C, $08
+ db -1 +
+.Frameset_1c + db BATTLEANIMOAMSET_0A, $08
+ db -4 +
+.Frameset_1d + db BATTLEANIMOAMSET_1D, $08
+ db -1 +
+.Frameset_1e + db BATTLEANIMOAMSET_17, $08
+ db -1 +
+.Frameset_1f + db BATTLEANIMOAMSET_0F, $03 + db BATTLEANIMOAMSET_10, $03 + db BATTLEANIMOAMSET_1E, $03
+ db -1 +
+.Frameset_20 + db BATTLEANIMOAMSET_1F, $10 + db BATTLEANIMOAMSET_20, $03
+ db -4 +
+.Frameset_21 + db BATTLEANIMOAMSET_20, $08
+ db -1 +
+.Frameset_22 + db BATTLEANIMOAMSET_20, $08 + db BATTLEANIMOAMSET_21, $08 + db BATTLEANIMOAMSET_1B, $08 + db BATTLEANIMOAMSET_21, $08
+ db -2 +
+.Frameset_23 + db BATTLEANIMOAMSET_22, $08
+ db -1 +
+.Frameset_24 + db BATTLEANIMOAMSET_1B, $08
+ db -1 +
+.Frameset_25 + db BATTLEANIMOAMSET_23, $08
+ db -1 +
+.Frameset_26 + db BATTLEANIMOAMSET_24, $08
+ db -1 +
+.Frameset_27 + db BATTLEANIMOAMSET_25, $08
+ db -1 +
+.Frameset_28 + db BATTLEANIMOAMSET_26, $08 + db BATTLEANIMOAMSET_27, $08
+ db -1 +
+.Frameset_29 + db BATTLEANIMOAMSET_28, $08 + db BATTLEANIMOAMSET_29, $08
+ db -4 +
+.Frameset_2a + db BATTLEANIMOAMSET_2A, $01 + db BATTLEANIMOAMSET_2B, $01 + db BATTLEANIMOAMSET_2C, $01 + db BATTLEANIMOAMSET_2D, $01 + db BATTLEANIMOAMSET_2E, $01 + db BATTLEANIMOAMSET_2D, $01 + db BATTLEANIMOAMSET_2C, $01 + db BATTLEANIMOAMSET_2B, $01 + db BATTLEANIMOAMSET_2A, $01
+ db -4 +
+.Frameset_2b + db BATTLEANIMOAMSET_14, $01 + db BATTLEANIMOAMSET_15, $01
+ db -2 +
+.Frameset_2c + db BATTLEANIMOAMSET_2F, $04 + db BATTLEANIMOAMSET_30, $28
+ db -4 +
+.Frameset_2d + db BATTLEANIMOAMSET_31, $08
+ db -1 +
+.Frameset_2e + db BATTLEANIMOAMSET_32, $20 + db BATTLEANIMOAMSET_33, $20 + db BATTLEANIMOAMSET_34, $20 + db BATTLEANIMOAMSET_35, $20 ; fallthrough
+.Frameset_2f + db -3, $02 + db BATTLEANIMOAMSET_35, $04 + db -3, $02 + db BATTLEANIMOAMSET_35, $04 + db -3, $02 + db BATTLEANIMOAMSET_35, $04 + db -3, $02 + db BATTLEANIMOAMSET_35, $04
+ db -4 +
+.Frameset_30 + db BATTLEANIMOAMSET_14, $04 + db BATTLEANIMOAMSET_15, $04
+ db -2 +
+.Frameset_31 + db BATTLEANIMOAMSET_36, $02 + db BATTLEANIMOAMSET_37, $02 + db BATTLEANIMOAMSET_38, $02 + db BATTLEANIMOAMSET_39, $20
+ db -4 +
+.Frameset_32 + db BATTLEANIMOAMSET_3A, $02 + db BATTLEANIMOAMSET_3B, $02 + db BATTLEANIMOAMSET_3C, $02 + db BATTLEANIMOAMSET_3D, $20
+ db -4 +
+.Frameset_33 + db BATTLEANIMOAMSET_3A, $42 + db BATTLEANIMOAMSET_3B, $42 + db BATTLEANIMOAMSET_3C, $42 + db BATTLEANIMOAMSET_3D, $60
+ db -4 +
+.Frameset_34 + db BATTLEANIMOAMSET_3E, $08 + db BATTLEANIMOAMSET_3F, $08 + db BATTLEANIMOAMSET_40, $08
+ db -1 +
+.Frameset_35 + db BATTLEANIMOAMSET_40, $02 + db -3, $02 + db BATTLEANIMOAMSET_40, $02 + db -3, $02 + db BATTLEANIMOAMSET_41, $02 + db -3, $02 + db BATTLEANIMOAMSET_41, $02 + db -3, $02
+ db -2 +
+.Frameset_36 + db BATTLEANIMOAMSET_42, $02 + db BATTLEANIMOAMSET_43, $02 + db BATTLEANIMOAMSET_44, $02 + db BATTLEANIMOAMSET_45, $02
+ db -2 +
+.Frameset_37 + db BATTLEANIMOAMSET_19, $02 + db -3, $02
+ db -2 +
+.Frameset_38 + db BATTLEANIMOAMSET_46, $04 + db BATTLEANIMOAMSET_47, $04
+ db -2 +
+.Frameset_39 + db BATTLEANIMOAMSET_18, $02 + db -3, $02
+ db -2 +
+.Frameset_3a + db BATTLEANIMOAMSET_48, $08
+ db -1 +
+.Frameset_3b + db BATTLEANIMOAMSET_48, $48
+ db -1 +
+.Frameset_3c + db BATTLEANIMOAMSET_49, $08
+ db -1 +
+.Frameset_3d + db BATTLEANIMOAMSET_4A, $08
+ db -1 +
+.Frameset_43 + db BATTLEANIMOAMSET_20, $10 + db BATTLEANIMOAMSET_1F, $10 + db BATTLEANIMOAMSET_1E, $10
+ db -1 +
+.Frameset_4c + db BATTLEANIMOAMSET_20, $08 + db BATTLEANIMOAMSET_1F, $08 + db BATTLEANIMOAMSET_1E, $08
+ db -1 +
+.Frameset_44 + db -3, $14 + db BATTLEANIMOAMSET_55, $28 + db BATTLEANIMOAMSET_54, $28 + db BATTLEANIMOAMSET_53, $14 + db -3, $04 + db BATTLEANIMOAMSET_53, $04 + db -3, $04 + db BATTLEANIMOAMSET_53, $04 + db -3, $04 + db BATTLEANIMOAMSET_53, $04
+ db -4 +
+.Frameset_7e + db BATTLEANIMOAMSET_1E, $08 + db BATTLEANIMOAMSET_1F, $08 + db BATTLEANIMOAMSET_20, $08
+ db -4 +
+.Frameset_45 + db -3, $00 + db BATTLEANIMOAMSET_14, $00 + db BATTLEANIMOAMSET_15, $00 + db BATTLEANIMOAMSET_14, $40 + db -3, $00 + db BATTLEANIMOAMSET_16, $40 + db BATTLEANIMOAMSET_15, $00 + db BATTLEANIMOAMSET_16, $00
+ db -2 +
+.Frameset_46 + db BATTLEANIMOAMSET_56, $02 + db BATTLEANIMOAMSET_57, $04
+ db -4 +
+.Frameset_47 + db BATTLEANIMOAMSET_56, $c2 + db BATTLEANIMOAMSET_57, $c4
+ db -4 +
+.Frameset_48 + db BATTLEANIMOAMSET_56, $01 + db BATTLEANIMOAMSET_57, $01 + db BATTLEANIMOAMSET_58, $01 + db BATTLEANIMOAMSET_57, $c1 + db BATTLEANIMOAMSET_58, $c1 + db BATTLEANIMOAMSET_57, $02
+ db -4 +
+.Frameset_49 + db BATTLEANIMOAMSET_56, $c1 + db BATTLEANIMOAMSET_57, $c1 + db BATTLEANIMOAMSET_58, $c1 + db BATTLEANIMOAMSET_57, $01 + db BATTLEANIMOAMSET_58, $01 + db BATTLEANIMOAMSET_57, $c2
+ db -4 +
+.Frameset_4a + db BATTLEANIMOAMSET_57, $c1 + db BATTLEANIMOAMSET_58, $c1 + db BATTLEANIMOAMSET_57, $01 + db BATTLEANIMOAMSET_58, $01
+ db -2 +
+.Frameset_4b + db BATTLEANIMOAMSET_59, $01 + db BATTLEANIMOAMSET_5A, $01 + db BATTLEANIMOAMSET_5B, $01 + db BATTLEANIMOAMSET_5C, $02
+ db -4 +
+.Frameset_4d + db BATTLEANIMOAMSET_0A, $0a + db BATTLEANIMOAMSET_0B, $43 + db BATTLEANIMOAMSET_5D, $43 + db BATTLEANIMOAMSET_0B, $c3 + db BATTLEANIMOAMSET_0A, $82 + db BATTLEANIMOAMSET_0B, $81 + db BATTLEANIMOAMSET_5D, $01 + db BATTLEANIMOAMSET_0B, $01
+ db -2 +
+.Frameset_4e + db BATTLEANIMOAMSET_0A, $03 + db BATTLEANIMOAMSET_0B, $47 + db BATTLEANIMOAMSET_0A, $07 + db BATTLEANIMOAMSET_0B, $07 + db BATTLEANIMOAMSET_0A, $03
+ db -2 +
+.Frameset_4f + db BATTLEANIMOAMSET_5E, $20 + db BATTLEANIMOAMSET_5E, $20
+ db -4 +
+.Frameset_50 + db BATTLEANIMOAMSET_5F, $20 + db BATTLEANIMOAMSET_5F, $20
+ db -4 +
+.Frameset_51 + db BATTLEANIMOAMSET_60, $08
+ db -1 +
+.Frameset_52 + db BATTLEANIMOAMSET_61, $01 + db BATTLEANIMOAMSET_62, $01 + db BATTLEANIMOAMSET_63, $01
+ db -1 +
+.Frameset_53 + db BATTLEANIMOAMSET_63, $07 + db BATTLEANIMOAMSET_64, $07
+ db -2 +
+.Frameset_54 + db BATTLEANIMOAMSET_65, $01 + db BATTLEANIMOAMSET_66, $01 + db BATTLEANIMOAMSET_67, $01
+ db -1 +
+.Frameset_55 + db BATTLEANIMOAMSET_67, $07 + db BATTLEANIMOAMSET_68, $07
+ db -2 +
+.Frameset_59 + db BATTLEANIMOAMSET_6E, $08
+ db -1 +
+.Frameset_5a + db BATTLEANIMOAMSET_6F, $08
+ db -1 +
+.Frameset_5b + db BATTLEANIMOAMSET_6E, $88
+ db -1 +
+.Frameset_5c + db BATTLEANIMOAMSET_18, $04 + db BATTLEANIMOAMSET_70, $04 + db BATTLEANIMOAMSET_71, $04 + db BATTLEANIMOAMSET_72, $04 + db BATTLEANIMOAMSET_73, $04
+ db -4 +
+.Frameset_5d + db BATTLEANIMOAMSET_74, $04 + db BATTLEANIMOAMSET_75, $04
+ db -2 +
+.Frameset_5e + db BATTLEANIMOAMSET_14, $08
+ db -1 +
+.Frameset_7a + db BATTLEANIMOAMSET_74, $03 + db BATTLEANIMOAMSET_14, $03 + db BATTLEANIMOAMSET_15, $03 + db BATTLEANIMOAMSET_14, $03 + db BATTLEANIMOAMSET_15, $03
+ db -4 +
+.Frameset_af + db BATTLEANIMOAMSET_14, $00 + db BATTLEANIMOAMSET_15, $00 + db BATTLEANIMOAMSET_14, $00 + db BATTLEANIMOAMSET_15, $00 + db BATTLEANIMOAMSET_74, $0c
+ db -4 +
+.Frameset_5f + db BATTLEANIMOAMSET_76, $08
+ db -1 +
+.Frameset_60 + db BATTLEANIMOAMSET_77, $01 + db BATTLEANIMOAMSET_78, $01 + db BATTLEANIMOAMSET_79, $01 + db BATTLEANIMOAMSET_7A, $01 + db BATTLEANIMOAMSET_7B, $01 + db BATTLEANIMOAMSET_7C, $01 + db BATTLEANIMOAMSET_7D, $01 + db BATTLEANIMOAMSET_7C, $c1 + db BATTLEANIMOAMSET_7B, $c1 + db BATTLEANIMOAMSET_7A, $c1 + db BATTLEANIMOAMSET_79, $c1 + db BATTLEANIMOAMSET_78, $c1 + db BATTLEANIMOAMSET_77, $c1
+ db -4 +
+.Frameset_61 + db BATTLEANIMOAMSET_1B, $04 + db BATTLEANIMOAMSET_7E, $04
+ db -2 +
+.Frameset_62 + db BATTLEANIMOAMSET_1B, $44 + db BATTLEANIMOAMSET_7E, $44
+ db -2 +
+.Frameset_63 + db BATTLEANIMOAMSET_7F, $08
+ db -1 +
+.Frameset_64 + db BATTLEANIMOAMSET_25, $08
+ db -1 +
+.Frameset_65 + db BATTLEANIMOAMSET_80, $08
+ db -1 +
+.Frameset_66 + db BATTLEANIMOAMSET_83, $07 + db BATTLEANIMOAMSET_82, $07 + db BATTLEANIMOAMSET_81, $07 + db BATTLEANIMOAMSET_82, $07 + db BATTLEANIMOAMSET_83, $07 + db BATTLEANIMOAMSET_82, $07 + db BATTLEANIMOAMSET_81, $07
+ db -4 +
+.Frameset_67 + db BATTLEANIMOAMSET_1B, $10
+ db -4 +
+.Frameset_68 + db -3, $0f + db BATTLEANIMOAMSET_84, $0f + db BATTLEANIMOAMSET_85, $0f + db BATTLEANIMOAMSET_29, $0f + db BATTLEANIMOAMSET_28, $0f + db BATTLEANIMOAMSET_86, $20
+ db -4 +
+.Frameset_69 + db BATTLEANIMOAMSET_1B, $03 + db BATTLEANIMOAMSET_87, $03 + db BATTLEANIMOAMSET_88, $03 + db BATTLEANIMOAMSET_89, $03
+ db -4 +
+.Frameset_6a + db BATTLEANIMOAMSET_8A, $02 + db BATTLEANIMOAMSET_8B, $02 + db BATTLEANIMOAMSET_8C, $02 + db BATTLEANIMOAMSET_8D, $02
+ db -4 +
+.Frameset_6b + db BATTLEANIMOAMSET_61, $02 + db BATTLEANIMOAMSET_62, $02 + db BATTLEANIMOAMSET_63, $02
+ db -1 +
+.Frameset_6c + db BATTLEANIMOAMSET_65, $02 + db BATTLEANIMOAMSET_66, $02 + db BATTLEANIMOAMSET_67, $02
+ db -1 +
+.Frameset_6d + db BATTLEANIMOAMSET_8E, $08
+ db -1 +
+.Frameset_6e + db BATTLEANIMOAMSET_8E, $48
+ db -1 +
+.Frameset_6f + db BATTLEANIMOAMSET_8F, $10 + db BATTLEANIMOAMSET_90, $10
+ db -2 +
+.Frameset_70 + db BATTLEANIMOAMSET_91, $10 + db BATTLEANIMOAMSET_92, $10
+ db -2 +
+.Frameset_71 + db BATTLEANIMOAMSET_93, $08
+ db -1 +
+.Frameset_72 + db BATTLEANIMOAMSET_1E, $08
+ db -1 +
+.Frameset_73 + db BATTLEANIMOAMSET_1B, $07 + db BATTLEANIMOAMSET_94, $07
+ db -2 +
+.Frameset_74 + db BATTLEANIMOAMSET_95, $08
+ db -1 +
+.Frameset_75 + db BATTLEANIMOAMSET_96, $08
+ db -1 +
+.Frameset_76 + db BATTLEANIMOAMSET_95, $08
+ db -1 +
+.Frameset_77 + db BATTLEANIMOAMSET_97, $01 + db BATTLEANIMOAMSET_97, $41
+ db -2 +
+.Frameset_78 + db BATTLEANIMOAMSET_98, $08
+ db -1 +
+.Frameset_79 + db BATTLEANIMOAMSET_99, $20 + db BATTLEANIMOAMSET_99, $20 + db BATTLEANIMOAMSET_99, $20 + db BATTLEANIMOAMSET_99, $20 + db BATTLEANIMOAMSET_99, $20 + db BATTLEANIMOAMSET_9A, $08
+ db -1 +
+.Frameset_7b + db BATTLEANIMOAMSET_9B, $08
+ db -1 +
+.Frameset_7c + db BATTLEANIMOAMSET_9C, $02 + db BATTLEANIMOAMSET_9D, $02 + db BATTLEANIMOAMSET_9E, $08 + db -3, $02 + db BATTLEANIMOAMSET_9E, $02 + db -3, $02 + db BATTLEANIMOAMSET_9E, $02 + db -3, $02 + db BATTLEANIMOAMSET_9E, $02
+ db -4 +
+.Frameset_7d + db BATTLEANIMOAMSET_9F, $08
+ db -1 +
+.Frameset_7f + db BATTLEANIMOAMSET_0F, $08
+ db -1 +
+.Frameset_80 + db BATTLEANIMOAMSET_6B, $18
+ db -4 +
+.Frameset_81 + db BATTLEANIMOAMSET_A0, $01 ; fallthrough
+.Frameset_82 + db BATTLEANIMOAMSET_A1, $01 ; fallthrough
+.Frameset_83 + db BATTLEANIMOAMSET_A2, $01
+ db -4 +
+.Frameset_84 + db BATTLEANIMOAMSET_A3, $08
+ db -1 +
+.Frameset_85 + db BATTLEANIMOAMSET_A4, $04 + db BATTLEANIMOAMSET_A5, $04 + db BATTLEANIMOAMSET_A6, $04 + db BATTLEANIMOAMSET_A7, $04 + db BATTLEANIMOAMSET_A6, $44 + db BATTLEANIMOAMSET_A5, $44
+ db -2 +
+.Frameset_86 + db BATTLEANIMOAMSET_A8, $04 + db BATTLEANIMOAMSET_A9, $04 + db BATTLEANIMOAMSET_AA, $04 + db BATTLEANIMOAMSET_AB, $04 + db BATTLEANIMOAMSET_AA, $44 + db BATTLEANIMOAMSET_A9, $44
+ db -2 +
+.Frameset_87 + db BATTLEANIMOAMSET_1B, $08
+ db -1 +
+.Frameset_88 + db BATTLEANIMOAMSET_AC, $08
+ db -1 +
+.Frameset_89 + db BATTLEANIMOAMSET_AD, $08
+ db -1 +
+.Frameset_8a + db BATTLEANIMOAMSET_AE, $08
+ db -1 +
+.Frameset_8b + db BATTLEANIMOAMSET_AF, $08
+ db -1 +
+.Frameset_8c + db BATTLEANIMOAMSET_B0, $20
+ db -4 +
+.Frameset_8d + db BATTLEANIMOAMSET_B1, $07 + db BATTLEANIMOAMSET_B1, $47
+ db -2 +
+.Frameset_8e + db BATTLEANIMOAMSET_B2, $08
+ db -1 +
+.Frameset_8f + db BATTLEANIMOAMSET_B3, $08
+ db -1 +
+.Frameset_90 + db BATTLEANIMOAMSET_B3, $48
+ db -1 +
+.Frameset_91 + db BATTLEANIMOAMSET_B3, $88
+ db -1 +
+.Frameset_92 + db BATTLEANIMOAMSET_B3, $c8
+ db -1 +
+.Frameset_93 + db BATTLEANIMOAMSET_B5, $08
+ db -1 +
+.Frameset_94 + db BATTLEANIMOAMSET_B5, $48
+ db -1 +
+.Frameset_95 + db BATTLEANIMOAMSET_B5, $88
+ db -1 +
+.Frameset_96 + db BATTLEANIMOAMSET_B5, $c8
+ db -1 +
+.Frameset_97 + db BATTLEANIMOAMSET_B4, $08
+ db -1 +
+.Frameset_98 + db BATTLEANIMOAMSET_6B, $08
+ db -1 +
+.Frameset_99 + db BATTLEANIMOAMSET_B6, $08
+ db -1 +
+.Frameset_9a + db BATTLEANIMOAMSET_B7, $20
+ db -1 +
+.Frameset_9b + db BATTLEANIMOAMSET_1B, $20
+ db -1 +
+.Frameset_9c + db BATTLEANIMOAMSET_B8, $20
+ db -1 +
+.Frameset_9d + db BATTLEANIMOAMSET_B8, $60
+ db -1 +
+.Frameset_9e + db BATTLEANIMOAMSET_B9, $20
+ db -1 +
+.Frameset_9f + db BATTLEANIMOAMSET_BA, $20
+ db -1 +
+.Frameset_a0 + db BATTLEANIMOAMSET_BB, $60
+ db -1 +
+.Frameset_a1 + db BATTLEANIMOAMSET_BB, $20
+ db -1 +
+.Frameset_a2 + db BATTLEANIMOAMSET_BC, $20
+ db -1 +
+.Frameset_a3 + db BATTLEANIMOAMSET_BD, $0b + db BATTLEANIMOAMSET_BE, $0b + db BATTLEANIMOAMSET_1B, $0b
+ db -4 +
+.Frameset_a4 + db BATTLEANIMOAMSET_BF, $04 + db BATTLEANIMOAMSET_C0, $04 + db BATTLEANIMOAMSET_C1, $04
+ db -4 +
+.Frameset_a5 + db BATTLEANIMOAMSET_C2, $20 + db BATTLEANIMOAMSET_C2, $20
+ db -4 +
+.Frameset_a6 + db BATTLEANIMOAMSET_4B, $02 + db BATTLEANIMOAMSET_4C, $02 + db BATTLEANIMOAMSET_4D, $20 + db BATTLEANIMOAMSET_4D, $20 + db BATTLEANIMOAMSET_4D, $20 + db BATTLEANIMOAMSET_4F, $01 + db BATTLEANIMOAMSET_50, $01 + db BATTLEANIMOAMSET_51, $01 + db BATTLEANIMOAMSET_52, $02 + db -3, $02 + db BATTLEANIMOAMSET_52, $02 + db -3, $02 + db BATTLEANIMOAMSET_52, $02 + db -3, $02 + db BATTLEANIMOAMSET_52, $02
+ db -4 +
+.Frameset_a7 + db BATTLEANIMOAMSET_4B, $c2 + db BATTLEANIMOAMSET_4C, $c2 + db BATTLEANIMOAMSET_4D, $e0 + db BATTLEANIMOAMSET_4D, $e0 + db BATTLEANIMOAMSET_4D, $e0 + db BATTLEANIMOAMSET_4F, $c1 + db BATTLEANIMOAMSET_50, $c1 + db BATTLEANIMOAMSET_51, $c1 + db BATTLEANIMOAMSET_52, $c2 + db -3, $02 + db BATTLEANIMOAMSET_52, $c2 + db -3, $02 + db BATTLEANIMOAMSET_52, $c2 + db -3, $02 + db BATTLEANIMOAMSET_52, $c2
+ db -4 +
+.Frameset_a8 + db BATTLEANIMOAMSET_C3, $01 + db BATTLEANIMOAMSET_C3, $c1
+ db -2 +
+.Frameset_a9 + db BATTLEANIMOAMSET_C4, $20
+ db -1 +
+.Frameset_aa + db BATTLEANIMOAMSET_C5, $04 + db BATTLEANIMOAMSET_C6, $04 + db BATTLEANIMOAMSET_C7, $04
+ db -4 +
+.Frameset_ab + db BATTLEANIMOAMSET_C8, $01 + db BATTLEANIMOAMSET_C8, $41
+ db -2 +
+.Frameset_ac + db BATTLEANIMOAMSET_C9, $03 + db BATTLEANIMOAMSET_05, $03
+ db -4 +
+.Frameset_ad + db BATTLEANIMOAMSET_CA, $20 + db BATTLEANIMOAMSET_CB, $03 + db BATTLEANIMOAMSET_CA, $03 + db BATTLEANIMOAMSET_CB, $03
+ db -2 +
+.Frameset_ae + db BATTLEANIMOAMSET_03, $a0
+ db -1 +
+.Frameset_b0 + db BATTLEANIMOAMSET_CC, $20
+ db -1 +
+.Frameset_b1 + db BATTLEANIMOAMSET_7F, $02 + db BATTLEANIMOAMSET_25, $02 + db BATTLEANIMOAMSET_80, $02 + db BATTLEANIMOAMSET_25, $02
+ db -2 +
+.Frameset_b2 + db BATTLEANIMOAMSET_CD, $04 + db BATTLEANIMOAMSET_CE, $04 + db BATTLEANIMOAMSET_CD, $c4 + db BATTLEANIMOAMSET_CE, $c4
+ db -2 +
+.Frameset_b3 + db BATTLEANIMOAMSET_CF, $04 + db BATTLEANIMOAMSET_D0, $04 + db BATTLEANIMOAMSET_D1, $04 + db BATTLEANIMOAMSET_D2, $04
+ db -4 +
+.Frameset_b4 + db BATTLEANIMOAMSET_D3, $20
+ db -1 +
+.Frameset_b5 + db BATTLEANIMOAMSET_D4, $08
+ db -1 +
+.Frameset_b6 + db BATTLEANIMOAMSET_D5, $08
+ db -1 +
+.Frameset_b7 + db BATTLEANIMOAMSET_D6, $08
+ db -1 +
+.Frameset_b8 + db BATTLEANIMOAMSET_D7, $08
+ db -1 +
+; ceeae
diff --git a/battle/objects/functions.asm b/battle/objects/functions.asm new file mode 100755 index 000000000..7c1aa3764 --- /dev/null +++ b/battle/objects/functions.asm @@ -0,0 +1,4156 @@ +DoBattleAnimFrame: ; ccfbe + ld hl, BATTLEANIMSTRUCT_FUNCTION + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; ccfce + +.Jumptable + dw BattleAnimFunction_00 ; 00 + dw BattleAnimFunction_01 ; 01 + dw BattleAnimFunction_02 ; 02 + dw BattleAnimFunction_03 ; 03 + dw BattleAnimFunction_04 ; 04 + dw BattleAnimFunction_05 ; 05 + dw BattleAnimFunction_06 ; 06 + dw BattleAnimFunction_07 ; 07 + dw BattleAnimFunction_08 ; 08 + dw BattleAnimFunction_09 ; 09 + dw BattleAnimFunction_0A ; 0a + dw BattleAnimFunction_0B ; 0b + dw BattleAnimFunction_0C ; 0c + dw BattleAnimFunction_0D ; 0d + dw BattleAnimFunction_0E ; 0e + dw BattleAnimFunction_0F ; 0f + dw BattleAnimFunction_10 ; 10 + dw BattleAnimFunction_11 ; 11 + dw BattleAnimFunction_12 ; 12 + dw BattleAnimFunction_13 ; 13 + dw BattleAnimFunction_14 ; 14 + dw BattleAnimFunction_15 ; 15 + dw BattleAnimFunction_16 ; 16 + dw BattleAnimFunction_17 ; 17 + dw BattleAnimFunction_18 ; 18 + dw BattleAnimFunction_19 ; 19 + dw BattleAnimFunction_1A ; 1a + dw BattleAnimFunction_1B ; 1b + dw BattleAnimFunction_1C ; 1c + dw BattleAnimFunction_1D ; 1d + dw BattleAnimFunction_1E ; 1e + dw BattleAnimFunction_1F ; 1f + dw BattleAnimFunction_20 ; 20 + dw BattleAnimFunction_21 ; 21 + dw BattleAnimFunction_22 ; 22 + dw BattleAnimFunction_23 ; 23 + dw BattleAnimFunction_24 ; 24 + dw BattleAnimFunction_25 ; 25 + dw BattleAnimFunction_26 ; 26 + dw BattleAnimFunction_27 ; 27 + dw BattleAnimFunction_28 ; 28 + dw BattleAnimFunction_29 ; 29 + dw BattleAnimFunction_2A ; 2a + dw BattleAnimFunction_2B ; 2b + dw BattleAnimFunction_2C ; 2c + dw BattleAnimFunction_2D ; 2d + dw BattleAnimFunction_2E ; 2e + dw BattleAnimFunction_2F ; 2f + dw BattleAnimFunction_30 ; 30 + dw BattleAnimFunction_31 ; 31 + dw BattleAnimFunction_32 ; 32 + dw BattleAnimFunction_33 ; 33 + dw BattleAnimFunction_34 ; 34 + dw BattleAnimFunction_35 ; 35 + dw BattleAnimFunction_36 ; 36 + dw BattleAnimFunction_37 ; 37 + dw BattleAnimFunction_38 ; 38 + dw BattleAnimFunction_39 ; 39 + dw BattleAnimFunction_3A ; 3a + dw BattleAnimFunction_3B ; 3b + dw BattleAnimFunction_3C ; 3c + dw BattleAnimFunction_3D ; 3d + dw BattleAnimFunction_3E ; 3e + dw BattleAnimFunction_3F ; 3f + dw BattleAnimFunction_40 ; 40 + dw BattleAnimFunction_41 ; 41 + dw BattleAnimFunction_42 ; 42 + dw BattleAnimFunction_43 ; 43 + dw BattleAnimFunction_44 ; 44 + dw BattleAnimFunction_45 ; 45 + dw BattleAnimFunction_46 ; 46 + dw BattleAnimFunction_47 ; 47 + dw BattleAnimFunction_48 ; 48 + dw BattleAnimFunction_49 ; 49 + dw BattleAnimFunction_4A ; 4a + dw BattleAnimFunction_4B ; 4b + dw BattleAnimFunction_4C ; 4c + dw BattleAnimFunction_4D ; 4d + dw BattleAnimFunction_4E ; 4e + dw BattleAnimFunction_4F ; 4f + +BattleAnimFunction_00: ; cd06e (33:506e) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one +.one + call DeinitBattleAnimation +.zero + ret + +BattleAnimFunction_06: ; cd079 (33:5079) + call BattleAnimFunction_05 + ret c + call DeinitBattleAnimation + ret + +BattleAnimFunction_05: ; cd081 (33:5081) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $88 + ret nc + add $2 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + scf + ret + +BattleAnimFunction_04: ; cd0a6 (33:50a6) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $88 + jr c, .asm_cd0b3 + call DeinitBattleAnimation + ret + +.asm_cd0b3 + add $2 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] +rept 4 + inc [hl] +endr + ld d, $10 + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + sra a + sra a + sra a + sra a + ld [hl], a + ret + +BattleAnimFunction_03: ; cd0e3 (33:50e3) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one +.zero + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + bit 7, [hl] + ld a, $0 + jr z, .asm_cd0f9 + ld a, $20 +.asm_cd0f9 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $7f + ld [hl], a +.one + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld d, [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ret + +BattleAnimFunction_01: ; cd12a (33:512a) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one +.one + call DeinitBattleAnimation + ret + +.zero + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $84 + ret nc + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + call Functionce70a + ret + +BattleAnimFunction_02: ; cd146 (33:5146) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $84 + jr nc, .asm_cd158 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + call Functionce70a + ret + +.asm_cd158 + call DeinitBattleAnimation + ret + +BattleAnimFunction_12: ; cd15c (33:515c) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three + dw .four + dw .five + dw .six + dw .seven + dw .eight + dw .nine + dw .ten + dw .eleven +.zero + call GetBallAnimFunction + call BattleAnim_IncAnonJumptableIndex + ret + +.one + call BattleAnimFunction_05 + ret c + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + add [hl] + ld [hl], a + ld a, $b + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ret + +.three + call BattleAnim_IncAnonJumptableIndex + ld a, $9 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 + inc hl + ld [hl], $10 +.four + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hli] + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec a + ld [hl], a + and $1f + ret nz + ld [hl], a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + sub $4 + ld [hl], a + ret nz + ld a, $c + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ret + +.six + ld a, $d + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + dec [hl] +.two +.five +.nine + ret + +.seven + call GetBallAnimFunction + ld a, $a + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], $20 +.eight +.ten + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hli] + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec a + ld [hl], a + and $1f + jr z, .eleven + and $f + ret nz + call BattleAnim_IncAnonJumptableIndex + ret + +.eleven + call DeinitBattleAnimation + ret + +BattleAnimFunction_13: ; cd212 (33:5212) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two +.zero + call GetBallAnimFunction + call BattleAnim_IncAnonJumptableIndex + ret + +.one + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $70 + jr nc, .next + call BattleAnimFunction_05 + ret + +.next + call BattleAnim_IncAnonJumptableIndex +.two + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp $80 + jr nc, .done + add $4 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + dec [hl] + dec [hl] + ret + +.done + call DeinitBattleAnimation + ret + +GetBallAnimFunction: ; cd249 (33:5249) + ld hl, .balls + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [CurItem] ; CurItem + ld e, a + pop af + ld [rSVBK], a +.IsInArray + ld a, [hli] + cp -1 + jr z, .load + cp e + jr z, .load + inc hl + jr .IsInArray + +.load + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_PALETTE + add hl, bc + ld [hl], a + ret + +; cd26c (33:526c) +.balls + db MASTER_BALL, 5 + db ULTRA_BALL, 3 + db GREAT_BALL, 6 + db POKE_BALL, 4 + db HEAVY_BALL, 2 + db LEVEL_BALL, 7 + db LURE_BALL, 6 + db FAST_BALL, 6 + db FRIEND_BALL, 3 + db MOON_BALL, 2 + db LOVE_BALL, 4 + db -1, 2 +; cd284 +BattleAnimFunction_10: ; cd284 (33:5284) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three + dw .four +.zero + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + swap a + and $f + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], a + ret + +.one + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $88 + ret nc + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + call Functionce70a + ret + +.two + call DeinitBattleAnimation + ret + +.three + call BattleAnim_IncAnonJumptableIndex + ld a, $f + call ReinitBattleAnimFrameset +.four + ret + +BattleAnimFunction_07: ; cd2be (33:52be) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one +.zero + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $30 + inc hl + ld [hl], $48 +.one + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hli] + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $20 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + sub [hl] + jr z, .done + jr c, .done + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], a + ret + +.done + call DeinitBattleAnimation + ret + +BattleAnimFunction_08: ; cd306 (33:5306) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three +.zero + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $80 + jr nc, .next + call .SetCoords + ret + +.next + call BattleAnim_IncAnonJumptableIndex +.one + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 +.two + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $40 + jr nc, .loop_back + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $18 + call BattleAnim_Cosine + sub $18 + sra a + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $18 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + add [hl] + ld [hl], a + ret + +.loop_back + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f0 + jr z, .finish + sub $10 + ld d, a + ld a, [hl] + and $f + or d + ld [hl], a + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + dec [hl] + ret + +.finish + call BattleAnim_IncAnonJumptableIndex +.three + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $b0 + jr c, .retain + call DeinitBattleAnimation + ret + +.retain + call .SetCoords + ret + +.SetCoords + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + add [hl] + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + ld e, a + srl e + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc +.loop + dec [hl] + dec e + jr nz, .loop + ret + +BattleAnimFunction_09: ; cd3ae (33:53ae) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two +.zero + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a +.one + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .done_one + dec [hl] + ret + +.done_one + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + swap a + and $f + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ret + +.two + call DeinitBattleAnimation + ret + +BattleAnimFunction_0A: ; cd3f2 (33:53f2) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three + dw .four + dw .five + dw .six + dw .seven + dw .eight + dw .nine +.zero + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], a + cp $7 + jr z, .seven + ld a, $11 + call ReinitBattleAnimFrameset + ret + +.seven + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $88 + jr nc, .set_up_eight + add $2 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] + ret + +.set_up_eight + call BattleAnim_IncAnonJumptableIndex + ld a, $10 + call ReinitBattleAnimFrameset +.eight + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $10 + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ret + +.nine + call DeinitBattleAnimation + ret + +.one + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + dec [hl] + ret + +.four + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + inc [hl] +.two + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + dec [hl] + ret + +.five + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + inc [hl] +.three + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + inc [hl] +.six + ret + +BattleAnimFunction_0B: ; cd478 (33:5478) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three + dw .four + dw .five + dw .six + dw .seven + dw .eight +.zero + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $40 +.one + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $30 + jr nc, .sine_cosine + call BattleAnim_IncAnonJumptableIndex + xor a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hli], a + ld [hl], a + ld a, $17 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + bit 6, [hl] + ret z + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + ld [hl], $5 + ret + +.sine_cosine + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $3f + ld d, a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + call Functioncd557 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], e + ret + +.two + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $20 + jr nz, .sine_cosine_2 + call DeinitBattleAnimation + ret + +.sine_cosine_2 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $10 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + bit 6, [hl] + jr nz, .decrease + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + jr .finish + +.decrease + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + dec [hl] +.finish + ld de, $80 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], e + ret + +.three + ld a, $16 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_01 + add hl, bc + res 5, [hl] +.four +.five +.six +.seven + call BattleAnim_IncAnonJumptableIndex + ret + +.eight + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $c0 + ret nc + ld a, $8 + call Functionce70a + ret + +Functioncd557: ; cd557 (33:5557) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + bit 7, a + jr nz, .negative + cp $20 + jr nc, .plus_256 + cp $18 + jr nc, .plus_384 + ld de, $200 + ret + +.plus_384 + ld de, $180 + ret + +.plus_256 + ld de, $100 + ret + +.negative + and $3f + cp $20 + jr nc, .minus_256 + cp $18 + jr nc, .minus_384 + ld de, -$200 + ret + +.minus_384 + ld de, -$180 + ret + +.minus_256 + ld de, -$100 + ret + +BattleAnimFunction_4E: ; cd58a (33:558a) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one +.zero + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $40 + rlca + rlca + add $19 + ld hl, BATTLEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld [hl], a + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $40 +.one + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $30 + jr nc, .sine_cosine + call DeinitBattleAnimation + ret + +.sine_cosine + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $3f + ld d, a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + call Functioncd557 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], e + ret + +BattleAnimFunction_0C: ; cd5e9 (33:55e9) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two +.zero + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $c +.one + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .next + dec [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + call Functionce70a + ret + +.next + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 + ld a, $22 + call ReinitBattleAnimFrameset +.two + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $98 + jr nc, .okay + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld h, [hl] + ld l, a + ld de, $60 + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], e + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld [hl], d +.okay + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp $20 + ret c + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f0 + ld e, a + ld d, $ff + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], e + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld [hl], d + ret + +BattleAnimFunction_0D: ; cd66a (33:566a) + call BattleAnim_AnonJumptable +.anon_dw + dw .zero + dw .one + dw .two + dw .three + dw .four +.zero + call BattleAnim_IncAnonJumptableIndex + ld a, $42 + ld [hFFC6], a + ld a, $58 + ld [hFFC7], a + ld a, $5e + ld [hFFC8], a + ret + +.one + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld e, [hl] + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp e + jr nc, .asm_cd69b + call BattleAnim_IncAnonJumptableIndex + xor a + ld [hFFC7], a + ret + +.asm_cd69b + dec a + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $10 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + add [hl] + sub $10 + ret c + ld [hFFC7], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld a, [hl] + inc a + and $7 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + inc [hl] +.two + ret + +.three + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp $70 + jr c, asm_cd6da + xor a + ld [hFFC6], a + ld [hFFC7], a + ld [hFFC8], a +.four + call DeinitBattleAnimation + ret + +asm_cd6da: ; cd6da (33:56da) + inc a + inc a + ld [hl], a + sub $10 + ret c + ld [hFFC7], a + ret + +BattleAnimFunction_0E: ; cd6e3 (33:56e3) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd6ea + dw Functioncd6f7 +Functioncd6ea: ; cd6ea (33:56ea) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, $24 + add [hl] + call ReinitBattleAnimFrameset +Functioncd6f7: ; cd6f7 (33:56f7) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $b8 + jr c, .asm_cd704 + call DeinitBattleAnimation + ret + +.asm_cd704 + ld a, $2 + call Functionce70a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec [hl] + ld d, $8 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_0F: ; cd71a (33:571a) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd725 + dw Functioncd728 + dw Functioncd763 + dw Functioncd776 +Functioncd725: ; cd725 (33:5725) + call BattleAnim_IncAnonJumptableIndex +Functioncd728: ; cd728 (33:5728) + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_cd747 + ld a, $2 + call Functionce70a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec [hl] + ld d, $8 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ret + +.asm_cd747 + call BattleAnim_IncAnonJumptableIndex + ld a, $28 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], $0 + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld [hl], $30 + ld hl, BATTLEANIMSTRUCT_01 + add hl, bc + ld a, [hl] + and $1 + ld [hl], a +Functioncd763: ; cd763 (33:5763) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $18 + jr nc, .asm_cd76e + inc [hl] + ret + +.asm_cd76e + call BattleAnim_IncAnonJumptableIndex + ld a, $29 + call ReinitBattleAnimFrameset +Functioncd776: ; cd776 (33:5776) + ret + +BattleAnimFunction_11: ; cd777 (33:5777) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $38 + jr c, .asm_cd784 + call DeinitBattleAnimation + ret + +.asm_cd784 + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld l, [hl] + ld h, a + ld de, $80 + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], e + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld a, [hl] + xor $10 + ld [hl], a + ret + +BattleAnimFunction_14: ; cd7a4 (33:57a4) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd7ab + dw Functioncd7d2 +Functioncd7ab: ; cd7ab (33:57ab) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f0 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + sla a + sla a + sla a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld [hl], $1 +Functioncd7d2: ; cd7d2 (33:57d2) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_cd7de + call DeinitBattleAnimation + ret + +.asm_cd7de + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld d, [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + xor $1 + ld [hl], a + ret z + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + dec [hl] + ret + +BattleAnimFunction_15: ; cd80c (33:580c) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd81f + dw Functioncd817 + dw Functioncd81f + dw Functioncd820 +Functioncd817: ; cd817 (33:5817) + call BattleAnim_IncAnonJumptableIndex + ld a, $35 + call ReinitBattleAnimFrameset +Functioncd81f: ; cd81f (33:581f) + ret + +Functioncd820: ; cd820 (33:5820) + call DeinitBattleAnimation + ret + +BattleAnimFunction_16: ; cd824 (33:5824) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd835 + dw Functioncd860 + dw Functioncd88f + dw Functioncd88f + dw Functioncd88f + dw Functioncd88f + dw Functioncd893 +Functioncd835: ; cd835 (33:5835) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + bit 7, [hl] + jr nz, .asm_cd852 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $10 + jr .asm_cd858 + +.asm_cd852 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $30 +.asm_cd858 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $7f + ld [hl], a +Functioncd860: ; cd860 (33:5860) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + bit 7, a + jr nz, .asm_cd87e + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + inc a + jr .asm_cd883 + +.asm_cd87e + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] +.asm_cd883 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ld a, [hl] + and $1f + ret nz +Functioncd88f: ; cd88f (33:588f) + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncd893: ; cd893 (33:5893) + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], $1 + ret + +BattleAnimFunction_17: ; cd89a (33:589a) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd8ab + dw Functioncd8cc + dw Functioncd8f5 + dw Functioncd8f5 + dw Functioncd8f5 + dw Functioncd8f5 + dw Functioncd8f9 +Functioncd8ab: ; cd8ab (33:58ab) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + bit 7, [hl] + jr nz, .asm_cd8be + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $10 + jr .asm_cd8c4 + +.asm_cd8be + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $30 +.asm_cd8c4 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $7f + ld [hl], a +Functioncd8cc: ; cd8cc (33:58cc) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + bit 7, a + jr nz, .asm_cd8e6 + ld a, $3d + jr .asm_cd8e8 + +.asm_cd8e6 + ld a, $3c +.asm_cd8e8 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + and $1f + ret nz +Functioncd8f5: ; cd8f5 (33:58f5) + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncd8f9: ; cd8f9 (33:58f9) + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], $1 + ret + +BattleAnimFunction_18: ; cd900 (33:5900) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd907 + dw Functioncd913 +Functioncd907: ; cd907 (33:5907) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $28 + inc hl + ld [hl], $0 +Functioncd913: ; cd913 (33:5913) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld d, [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd950 + ld d, a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld e, [hl] + ld hl, hPushOAM ; $ff80 + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], e + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], d + ret + +.asm_cd950 + call DeinitBattleAnimation + ret + +BattleAnimFunction_19: ; cd954 (33:5954) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncd961 + dw Functioncd96a + dw Functioncd96e + dw Functioncd96a + dw Functioncd97b +Functioncd961: ; cd961 (33:5961) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld [hl], $0 +Functioncd96a: ; cd96a (33:596a) + call Functioncd99a + ret + +Functioncd96e: ; cd96e (33:596e) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $88 + jr c, asm_cd988 + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncd97b: ; cd97b (33:597b) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $b8 + jr c, asm_cd988 + call DeinitBattleAnimation + ret + +asm_cd988: ; cd988 (33:5988) + call Functioncd99a + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + inc [hl] + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] + ret + +Functioncd99a: ; cd99a (33:599a) + call Functioncd9f4 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + push af + push de + call BattleAnim_Sine + sra a + sra a + sra a + sra a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + sub $8 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd9d7 + cp $c2 + jr c, .asm_cd9e2 +.asm_cd9d7 + dec a + ld [hl], a + and $7 + ret nz + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + inc [hl] + ret + +.asm_cd9e2 + xor a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hli], a + ld [hl], a + ret + +Functioncd9f4: ; cd9f4 (33:59f4) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Unknown_cda01 + add hl, de + ld d, [hl] + ret + +; cda01 (33:5a01) +Unknown_cda01: ; cda01 + db 8, 6, 5, 4, 5, 6, 8, 12, 16 +; cda0a +BattleAnimFunction_1C: ; cda0a (33:5a0a) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $30 + jr nc, .asm_cda17 + call DeinitBattleAnimation + ret + +.asm_cda17 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + ld e, a + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + sub e + ld [hl], a + srl e + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc +.asm_cda2c + inc [hl] + dec e + jr nz, .asm_cda2c + ret + +BattleAnimFunction_1F: ; cda31 (33:5a31) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncda4c + dw Functioncda3a + dw Functioncda4c +Functioncda3a: ; cda3a (33:5a3a) + ld hl, BATTLEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld a, [hl] + inc a + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $8 +Functioncda4c: ; cda4c (33:5a4c) + ret + +BattleAnimFunction_20: ; cda4d (33:5a4d) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncda58 + dw Functioncda62 + dw Functioncda7a + dw Functioncda8c +Functioncda58: ; cda58 (33:5a58) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], $40 + ret + +Functioncda62: ; cda62 (33:5a62) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_cda6f + call Functioncda8d + ret + +.asm_cda6f + ld [hl], $40 + ld a, $57 + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncda7a: ; cda7a (33:5a7a) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + and a + jr z, .asm_cda84 + dec [hl] + ret + +.asm_cda84 + call BattleAnim_IncAnonJumptableIndex + ld a, $58 + call ReinitBattleAnimFrameset +Functioncda8c: ; cda8c (33:5a8c) + ret + +Functioncda8d: ; cda8d (33:5a8d) + dec [hl] + ld d, $20 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_02 + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld e, [hl] + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld d, [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld h, [hl] + ld a, h + and $f + swap a + ld l, a + ld a, h + and $f0 + swap a + ld h, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], e + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] + ret + +BattleAnimFunction_3F: ; cdad6 (33:5ad6) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncdadf + dw Functioncdae9 + dw Functioncdaf9 +Functioncdadf: ; cdadf (33:5adf) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], $40 + ret + +Functioncdae9: ; cdae9 (33:5ae9) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_cdaf6 + call Functioncda8d + ret + +.asm_cdaf6 + call BattleAnim_IncAnonJumptableIndex +Functioncdaf9: ; cdaf9 (33:5af9) + ret + +BattleAnimFunction_1A: ; cdafa (33:5afa) + call BattleAnimFunction_03 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + add $f + ld [hl], a + ret + +BattleAnimFunction_1B: ; cdb06 (33:5b06) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncdb13 + dw Functioncdb14 + dw Functioncdb28 + dw Functioncdb50 + dw Functioncdb65 +Functioncdb13: ; cdb13 (33:5b13) + ret + +Functioncdb14: ; cdb14 (33:5b14) + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_cdb24 + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], $0 + ret + +.asm_cdb24 + add $4 + ld [hl], a + ret + +Functioncdb28: ; cdb28 (33:5b28) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $98 + ret nc + inc [hl] + inc [hl] + ld hl, BATTLEANIMSTRUCT_01 + add hl, bc + set 0, [hl] + ld hl, BATTLEANIMSTRUCT_02 + add hl, bc + ld [hl], $90 + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + ld [hl], $0 + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld [hl], $2 + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] + ret + +Functioncdb50: ; cdb50 (33:5b50) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $2c + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + ld [hl], $0 + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld [hl], $80 +Functioncdb65: ; cdb65 (33:5b65) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $98 + ret nc + inc [hl] + inc [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + ld d, $8 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_1D: ; cdb80 (33:5b80) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncdb9f + dw Functioncdbb3 + dw Functioncdbcf + dw Functioncdbeb + dw Functioncdc74 + dw Functioncdc1a + dw Functioncdbc1 + dw Functioncdc1e + dw Functioncdc27 + dw Functioncdc39 + dw Functioncdc74 + dw Functioncdc48 + dw Functioncdc57 + dw Functioncdc74 +Functioncdb9f: ; cdb9f (33:5b9f) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $28 + inc hl + ld [hl], $10 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], a + ret + +Functioncdbb3: ; cdbb3 (33:5bb3) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $40 + jr nc, .asm_cdbbd + inc [hl] +.asm_cdbbd + call Functioncdc75 + ret + +Functioncdbc1: ; cdbc1 (33:5bc1) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $4b + jr nc, .asm_cdbcb + inc [hl] +.asm_cdbcb + call Functioncdc75 + ret + +Functioncdbcf: ; cdbcf (33:5bcf) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $88 + jr nc, .asm_cdbe6 + and $f + jr nz, asm_cdbfa + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], $10 + call BattleAnim_IncAnonJumptableIndex + ret + +.asm_cdbe6 + call BattleAnim_IncAnonJumptableIndex + inc [hl] + ret + +Functioncdbeb: ; cdbeb (33:5beb) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdbf5 + dec [hl] + ret + +.asm_cdbf5 + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + dec [hl] +asm_cdbfa: ; cdbfa (33:5bfa) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + inc [hl] + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld d, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld e, [hl] + ld hl, hPushOAM ; $ff80 + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], e + ret + +Functioncdc1a: ; cdc1a (33:5c1a) + call DeinitBattleAnimation + ret + +Functioncdc1e: ; cdc1e (33:5c1e) + ld a, $4e + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncdc27: ; cdc27 (33:5c27) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + ld d, $2 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +Functioncdc39: ; cdc39 (33:5c39) + ld a, $50 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], $4 + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncdc48: ; cdc48 (33:5c48) + ld a, $4f + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $40 + ret + +Functioncdc57: ; cdc57 (33:5c57) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $20 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_cdc71 + dec [hl] + ret + +.asm_cdc71 + call BattleAnim_IncAnonJumptableIndex +Functioncdc74: ; cdc74 (33:5c74) + ret + +Functioncdc75: ; cdc75 (33:5c75) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hli] + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $20 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + sub $8 + ld [hl], a + ret nz + xor a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hli], a + ld [hl], a + call BattleAnim_IncAnonJumptableIndex + ret + +BattleAnimFunction_1E: ; cdca6 (33:5ca6) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdcb6 + cp $d8 + jr nc, .asm_cdcb6 + call DeinitBattleAnimation + ret + +.asm_cdcb6 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld d, [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + sub d + ld [hl], a + ret + +BattleAnimFunction_21: ; cdcc3 (33:5cc3) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncdcca + dw Functioncdced +Functioncdcca: ; cdcca (33:5cca) + ld a, [hBattleTurn] + and a + jr z, .asm_cdcd9 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + xor $ff + add $3 + ld [hl], a +.asm_cdcd9 + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $8 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, $59 + add [hl] + call ReinitBattleAnimFrameset + ret + +Functioncdced: ; cdced (33:5ced) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdcfa + dec [hl] + call Functioncdcfe + ret + +.asm_cdcfa + call DeinitBattleAnimation + ret + +Functioncdcfe: ; cdcfe (33:5cfe) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + ld d, $10 + call BattleAnim_Sine + ld d, a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdd20 + dec a + ret z + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], d + ret + +.asm_cdd20 + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, d + xor $ff + inc a + ld [hl], a + ret + +BattleAnimFunction_22: ; cdd2a (33:5d2a) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncdd31 + dw Functioncdd4f +Functioncdd31: ; cdd31 (33:5d31) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $3f + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $80 + rlca + ld [hl], a + add $5d + call ReinitBattleAnimFrameset + ret + +Functioncdd4f: ; cdd4f (33:5d4f) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + swap a + ld d, a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + inc [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $80 + ret nc + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + and $3 + jr nz, .asm_cdd87 + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] +.asm_cdd87 + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + inc [hl] + ret + +BattleAnimFunction_23: ; cdd90 (33:5d90) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncdd97 + dw Functioncddbc +Functioncdd97: ; cdd97 (33:5d97) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $80 + rlca + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + add [hl] + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $7f + ld [hl], a +Functioncddbc: ; cddbc (33:5dbc) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $10 + push af + push de + call BattleAnim_Sine + sra a + sra a + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + inc [hl] + and $3f + jr z, .asm_cddf0 + and $1f + ret nz + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc a + jr .asm_cddf5 + +.asm_cddf0 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] +.asm_cddf5 + call ReinitBattleAnimFrameset + ret + +BattleAnimFunction_24: ; cddf9 (33:5df9) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncde02 + dw Functioncde20 + dw Functioncde21 +Functioncde02: ; cde02 (33:5e02) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + add $63 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Unknown_cde25 + add hl, de + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a +Functioncde20: ; cde20 (33:5e20) + ret + +Functioncde21: ; cde21 (33:5e21) + call DeinitBattleAnimation + ret + +; cde25 (33:5e25) +Unknown_cde25: ; cde25 + db $ec, $f8, $00 +; cde28 +BattleAnimFunction_25: ; cde28 (33:5e28) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + ld d, $4 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld d, [hl] + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld e, [hl] + ld hl, $ffa0 + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], e + ret + +BattleAnimFunction_26: ; cde54 (33:5e54) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec [hl] + dec [hl] + ld d, $10 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + inc [hl] + ret + +BattleAnimFunction_27: ; cde6b (33:5e6b) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncde72 + dw Functioncde88 +Functioncde72: ; cde72 (33:5e72) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and a + jr nz, .asm_cde83 + ld hl, BATTLEANIMSTRUCT_01 + add hl, bc + set 6, [hl] +.asm_cde83 + add $6a + call ReinitBattleAnimFrameset +Functioncde88: ; cde88 (33:5e88) + ret + +BattleAnimFunction_28: ; cde89 (33:5e89) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncde90 + dw Functioncdebf +Functioncde90: ; cde90 (33:5e90) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld e, [hl] + ld a, e + and $70 + swap a + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld a, e + and $80 + jr nz, .asm_cdeb2 + ld a, e + and $f + ld [hl], a + ret + +.asm_cdeb2 + ld a, e + and $f + xor $ff + inc a + ld [hl], a + ld a, $6e + call ReinitBattleAnimFrameset + ret + +Functioncdebf: ; cdebf (33:5ebf) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdec9 + dec [hl] + ret + +.asm_cdec9 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ret + +BattleAnimFunction_29: ; cdedd (33:5edd) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call BattleAnim_Sine + sra a + sra a + sra a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ld a, [hl] + and $7 + ret nz + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + cp $28 + jr nc, .asm_cdf17 + inc [hl] + ret + +.asm_cdf17 + call DeinitBattleAnimation + ret + +BattleAnimFunction_2D: ; cdf1b (33:5f1b) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call BattleAnim_Sine + sra a + sra a + sra a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ld a, [hl] + and $3 + ret nz + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + cp $28 + jr nc, .asm_cdf55 + inc [hl] + ret + +.asm_cdf55 + call DeinitBattleAnimation + ret + +BattleAnimFunction_2A: ; cdf59 (33:5f59) + call BattleAnim_AnonJumptable +.anon_dw + dw Functioncdf60 + dw BattleAnimFunction_29 +Functioncdf60: ; cdf60 (33:5f60) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $84 + jr nc, .asm_cdf88 + inc [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + ld d, $18 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + dec [hl] + ret + +.asm_cdf88 + call BattleAnim_IncAnonJumptableIndex + ret + +BattleAnimFunction_34: ; cdf8c (33:5f8c) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call BattleAnim_Sine + sra a + sra a + sra a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + and $7 + ret nz + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + cp $e8 + jr z, .asm_cdfc7 + dec [hl] + ret + +.asm_cdfc7 + call DeinitBattleAnimation + ret + +BattleAnimFunction_3C: ; cdfcb (33:5fcb) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call BattleAnim_Sine + sra a + sra a + sra a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + and $3 + ret nz + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + cp $d0 + jr z, .asm_ce007 + dec [hl] + dec [hl] + ret + +.asm_ce007 + call DeinitBattleAnimation + ret + +BattleAnimFunction_35: ; ce00b (33:600b) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce014 + dw Functionce023 + dw Functionce05f +Functionce014: ; ce014 (33:6014) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $34 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], $10 +Functionce023: ; ce023 (33:6023) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $6c + jr c, .asm_ce02d + ret + +.asm_ce02d + ld a, $2 + call Functionce70a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld d, [hl] + call BattleAnim_Sine + bit 7, a + jr nz, .asm_ce046 + xor $ff + inc a +.asm_ce046 + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + sub $4 + ld [hl], a + and $1f + cp $20 + ret nz + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + srl [hl] + ret + +Functionce05f: ; ce05f (33:605f) + call DeinitBattleAnimation + ret + +BattleAnimFunction_2B: ; ce063 (33:6063) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce06e + dw Functionce083 + dw Functionce091 + dw Functionce09e +Functionce06e: ; ce06e (33:606e) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ret + +Functionce083: ; ce083 (33:6083) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $58 + ret nc + ld a, $2 + call Functionce70a + ret + +Functionce091: ; ce091 (33:6091) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + cp $20 + jr c, Functionce09e + call DeinitBattleAnimation + ret + +Functionce09e: ; ce09e (33:609e) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + ld d, $8 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + sra a + xor $ff + inc a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + add $8 + ld [hl], a + ret + +BattleAnimFunction_2C: ; ce0c5 (33:60c5) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce0ce + dw Functionce0f8 + dw Functionce0dd +Functionce0ce: ; ce0ce (33:60ce) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f0 + swap a + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], a + ret + +Functionce0dd: ; ce0dd (33:60dd) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $10 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + bit 7, a + jr z, .asm_ce0f0 + ld [hl], a +.asm_ce0f0 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + sub $4 + ld [hl], a +Functionce0f8: ; ce0f8 (33:60f8) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $84 + jr c, .asm_ce105 + call DeinitBattleAnimation + ret + +.asm_ce105 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + call Functionce70a + ret + +BattleAnimFunction_2E: ; ce10e (33:610e) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce115 + dw Functionce12a +Functionce115: ; ce115 (33:6115) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $28 + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + sub $28 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], a +Functionce12a: ; ce12a (33:612a) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hli] + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + and [hl] + jr nz, .asm_ce149 + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + dec [hl] +.asm_ce149 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $20 + inc hl + srl [hl] + ret + +BattleAnimFunction_2F: ; ce15c (33:615c) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld d, [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + inc [hl] + ld a, [hl] + and $1 + jr nz, .asm_ce189 + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + dec [hl] +.asm_ce189 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $3 + jr nz, .asm_ce197 + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + inc [hl] +.asm_ce197 + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + cp $5a + jr nc, .asm_ce1aa + ld a, [hl] + and a + jr z, .asm_ce1ac + dec [hl] + ret + +.asm_ce1aa + inc [hl] + ret + +.asm_ce1ac + call DeinitBattleAnimation + ret + +BattleAnimFunction_42: ; ce1b0 (33:61b0) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + inc [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld d, [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + inc [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + cp $40 + jr nc, .asm_ce1df + inc [hl] + ret + +.asm_ce1df + ld a, [hl] + dec [hl] + and a + ret nz + call DeinitBattleAnimation + ret + +BattleAnimFunction_30: ; ce1e7 (33:61e7) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce1ee + dw Functionce1fb +Functionce1ee: ; ce1ee (33:61ee) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], a +Functionce1fb: ; ce1fb (33:61fb) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $30 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + add $8 + ld d, $30 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + inc [hl] + ret + +BattleAnimFunction_31: ; ce226 (33:6226) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce22d + dw Functionce254 +Functionce22d: ; ce22d (33:622d) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $10 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $10 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld [hl], $f +Functionce254: ; ce254 (33:6254) + ret + +BattleAnimFunction_32: ; ce255 (33:6255) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce260 + dw Functionce274 + dw Functionce278 + dw Functionce289 +Functionce260: ; ce260 (33:6260) + call BattleAnim_IncAnonJumptableIndex + ld a, [hBattleTurn] + and a + jr nz, .asm_ce26c + ld a, $f0 + jr .asm_ce26e + +.asm_ce26c + ld a, $cc +.asm_ce26e + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ret + +Functionce274: ; ce274 (33:6274) + call Functionce29f + ret + +Functionce278: ; ce278 (33:6278) + call Functionce29f + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $84 + ret nc + ld a, $4 + call Functionce70a + ret + +Functionce289: ; ce289 (33:6289) + call Functionce29f + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $d0 + jr nc, .asm_ce29b + ld a, $4 + call Functionce70a + ret + +.asm_ce29b + call DeinitBattleAnimation + ret + +Functionce29f: ; ce29f (33:629f) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + and $7 + inc [hl] + srl a + ld e, a + ld d, $0 + ld a, [hSGB] + and a + jr nz, .asm_ce2b6 + ld hl, Unknown_ce2c4 + jr .asm_ce2b9 + +.asm_ce2b6 + ld hl, Unknown_ce2c8 +.asm_ce2b9 + add hl, de + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + and [hl] + ld [wOBP0], a + ret + +; ce2c4 (33:62c4) +Unknown_ce2c4: ; ce2c4 + db $ff, $aa, $55, $aa +Unknown_ce2c8: ; ce2c8 + db $ff, $ff, $00, $00 +; ce2cc +BattleAnimFunction_33: ; ce2cc (33:62cc) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $18 + call BattleAnim_Sine + sra a + sra a + sra a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + inc [hl] + ld d, $18 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + dec [hl] + dec [hl] + ret + +BattleAnimFunction_36: ; ce2fd (33:62fd) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce306 + dw Functionce330 + dw Functionce34c +Functionce306: ; ce306 (33:6306) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $e0 + jr nz, .asm_ce319 + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $2 + ret + +.asm_ce319 + ld d, a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld e, [hl] + ld hl, hPushOAM ; $ff80 + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], e + ret + +Functionce330: ; ce330 (33:6330) + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce33a + dec [hl] + ret + +.asm_ce33a + ld [hl], $4 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + add [hl] + ld [hl], a + ret + +Functionce34c: ; ce34c (33:634c) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $84 + jr nc, .asm_ce35b + ld a, $4 + call Functionce70a + ret + +.asm_ce35b + call DeinitBattleAnimation + ret + +BattleAnimFunction_37: ; ce35f (33:635f) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce366 + dw Functionce375 +Functionce366: ; ce366 (33:6366) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $7f + add $81 + call ReinitBattleAnimFrameset +Functionce375: ; ce375 (33:6375) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + bit 7, [hl] + jr nz, .asm_ce383 + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + inc [hl] + ret + +.asm_ce383 + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + dec [hl] + ret + +BattleAnimFunction_38: ; ce389 (33:6389) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce392 + dw Functionce39c + dw Functionce3ae +Functionce392: ; ce392 (33:6392) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $c + ret + +Functionce39c: ; ce39c (33:639c) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce3a6 + dec [hl] + ret + +.asm_ce3a6 + call BattleAnim_IncAnonJumptableIndex + ld a, $20 + call ReinitBattleAnimFrameset +Functionce3ae: ; ce3ae (33:63ae) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + dec [hl] + ret + +BattleAnimFunction_39: ; ce3b4 (33:63b4) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + push af + ld d, $2 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop af + ld d, $8 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_3A: ; ce3d2 (33:63d2) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_ce3df + call DeinitBattleAnimation + ret + +.asm_ce3df + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $8 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + and $7 + ret nz + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + inc [hl] + ret + +BattleAnimFunction_3B: ; ce3ff (33:63ff) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce406 + dw Functionce412 +Functionce406: ; ce406 (33:6406) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + add [hl] + ld [hl], a + ret + +Functionce412: ; ce412 (33:6412) + call DeinitBattleAnimation + ret + +BattleAnimFunction_3D: ; ce416 (33:6416) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + sra a + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + inc [hl] + ret + +BattleAnimFunction_3E: ; ce43a (33:643a) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce443 + dw Functionce465 + dw Functionce490 +Functionce443: ; ce443 (33:6443) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $28 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + ld hl, BATTLEANIMSTRUCT_FRAMESET_ID + add hl, bc + add [hl] + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f0 + or $8 + ld [hl], a +Functionce465: ; ce465 (33:6465) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce48b + dec [hl] + add $8 + ld d, a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +.asm_ce48b + ld [hl], $10 + call BattleAnim_IncAnonJumptableIndex +Functionce490: ; ce490 (33:6490) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + dec [hl] + and a + ret nz + call DeinitBattleAnimation + ret + +BattleAnimFunction_40: ; ce49c (33:649c) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce4a3 + dw Functionce4b0 +Functionce4a3: ; ce4a3 (33:64a3) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, $24 + add [hl] + call ReinitBattleAnimFrameset +Functionce4b0: ; ce4b0 (33:64b0) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $38 + jr nc, .asm_ce4d8 + inc [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + ld d, $18 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + dec [hl] + ret + +.asm_ce4d8 + call DeinitBattleAnimation + ret + +BattleAnimFunction_41: ; ce4dc (33:64dc) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and a + ret z + ld d, a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + inc [hl] + call BattleAnim_Sine + bit 7, a + jr nz, .asm_ce4f4 + xor $ff + inc a +.asm_ce4f4 + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and $1f + ret nz + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + srl [hl] + ret + +BattleAnimFunction_43: ; ce508 (33:6508) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $10 + jr nc, .asm_ce52e + inc [hl] + inc [hl] + ld d, a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +.asm_ce52e + call DeinitBattleAnimation + ret + +BattleAnimFunction_44: ; ce532 (33:6532) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld e, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld d, [hl] + ld a, e + and $c0 + rlca + rlca + add [hl] + ld [hl], a + ld a, e + and $3f + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_45: ; ce55b (33:655b) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce564 + dw Functionce56e + dw Functionce577 +Functionce564: ; ce564 (33:6564) + ld d, $18 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + inc [hl] + jr asm_ce58f + +Functionce56e: ; ce56e (33:656e) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $18 +Functionce577: ; ce577 (33:6577) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $80 + jr nc, .asm_ce58b + ld d, a + add $8 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + jr asm_ce58f + +.asm_ce58b + call DeinitBattleAnimation + ret + +asm_ce58f: ; ce58f (33:658f) + call Functionce6f1 + ret + +BattleAnimFunction_46: ; ce593 (33:6593) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce5b3 + dw Functionce59a +Functionce59a: ; ce59a (33:659a) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_ce5b0 + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + dec [hl] + dec [hl] + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc + inc [hl] + inc [hl] + ret + +.asm_ce5b0 + call DeinitBattleAnimation +Functionce5b3: ; ce5b3 (33:65b3) + ret + +BattleAnimFunction_47: ; ce5b4 (33:65b4) + ld d, $50 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + push af + push de + call BattleAnim_Sine + sra a + sra a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + add [hl] + inc [hl] + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_48: ; ce5dc (33:65dc) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $d0 + jr z, .asm_ce5ea +rept 4 + dec [hl] +endr + ret + +.asm_ce5ea + call DeinitBattleAnimation + ret + +BattleAnimFunction_49: ; ce5ee (33:65ee) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce5f9 + dw Functionce60a + dw Functionce622 + dw Functionce618 +Functionce5f9: ; ce5f9 (33:65f9) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and a + jr nz, asm_ce61c + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], $ec +Functionce60a: ; ce60a (33:660a) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $4 + jr z, Functionce618 +rept 4 + inc [hl] +endr + ret + +Functionce618: ; ce618 (33:6618) + call DeinitBattleAnimation + ret + +asm_ce61c: ; ce61c (33:661c) + call BattleAnim_IncAnonJumptableIndex + call BattleAnim_IncAnonJumptableIndex +Functionce622: ; ce622 (33:6622) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + cp $d8 + ret z +rept 4 + dec [hl] +endr + ret + +BattleAnimFunction_4A: ; ce62f (33:662f) + call BattleAnim_AnonJumptable +.anon_dw + dw Functionce63a + dw Functionce648 + dw Functionce65c + dw Functionce672 +Functionce63a: ; ce63a (33:663a) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld [hl], a + call BattleAnim_IncAnonJumptableIndex + ret + +Functionce648: ; ce648 (33:6648) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce654 + xor a +.asm_ce654 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + inc [hl] + inc [hl] + ret + +Functionce65c: ; ce65c (33:665c) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce668 + xor a +.asm_ce668 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld a, [hl] + add $8 + ld [hl], a + ret + +Functionce672: ; ce672 (33:6672) + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce67e + xor a +.asm_ce67e + ld [hl], a + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld a, [hl] + add $4 + ld [hl], a + ret + +BattleAnimFunction_4B: ; ce688 (33:6688) + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld d, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld e, [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld l, a + and $f0 + ld h, a + swap a + or h + ld h, a + ld a, l + and $f + swap a + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], e + ret + +BattleAnimFunction_4C: ; ce6b3 (33:66b3) + ld d, $18 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + inc [hl] + call Functionce6f1 + ret + +BattleAnimFunction_4F: ; ce6bf (33:66bf) + ld d, $18 + ld hl, BATTLEANIMSTRUCT_10 + add hl, bc + ld a, [hl] + inc [hl] + srl a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + add [hl] + call Functionce6f1 + ret + +BattleAnimFunction_4D: ; ce6d2 (33:66d2) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $20 + jr nc, .asm_ce6ed + inc [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld d, [hl] + call BattleAnim_Sine + xor $ff + inc a + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ret + +.asm_ce6ed + call DeinitBattleAnimation + ret + +Functionce6f1: ; ce6f1 (33:66f1) + push af + push de + call BattleAnim_Sine + sra a + sra a + ld hl, BATTLEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_XOFFSET + add hl, bc + ld [hl], a + ret + +Functionce70a: ; ce70a (33:670a) + and $f + ld e, a + ld hl, BATTLEANIMSTRUCT_XCOORD + add hl, bc + add [hl] + ld [hl], a + srl e + ld hl, BATTLEANIMSTRUCT_YCOORD + add hl, bc +.asm_ce719 + dec [hl] + dec e + jr nz, .asm_ce719 + ret + +BattleAnim_AnonJumptable: ; ce71e (33:671e) + pop de + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +BattleAnim_IncAnonJumptableIndex: ; ce72c (33:672c) + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + inc [hl] + ret + +BattleAnim_Cosine: ; ce732 (33:6732) + add $10 +BattleAnim_Sine: ; ce734 (33:6734) + and $3f + cp $20 + jr nc, .negative + call .ApplySineWave + ld a, h + ret + +.negative + and $1f + call .ApplySineWave + ld a, h + xor $ff + inc a + ret + +.ApplySineWave + ld e, a + ld a, d + ld d, 0 + ld hl, BattleAnimSineWave + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0 +.multiply + srl a + jr nc, .even + add hl, de +.even + sla e + rl d + and a + jr nz, .multiply + ret + +BattleAnim_Sine_e: ; ce765 (33:6765) + ld a, e + call BattleAnim_Sine + ld e, a + ret + +BattleAnim_Cosine_e: ; ce76b (33:676b) + ld a, e + call BattleAnim_Cosine + ld e, a + ret + +; ce771 (33:6771) +BattleAnim_AbsSinePrecise: ; ce771 + ld a, e + call BattleAnim_Sine + ld e, l + ld d, h + ret + +; ce778 +BattleAnim_AbsCosinePrecise: ; ce778 + ld a, e + call BattleAnim_Cosine + ld e, l + ld d, h + ret + +; ce77f +BattleAnimSineWave: ; ce77f + sine_wave $100 +; ce7bf diff --git a/battle/objects/gfx_headers.asm b/battle/objects/gfx_headers.asm new file mode 100755 index 000000000..bec34ce74 --- /dev/null +++ b/battle/objects/gfx_headers.asm @@ -0,0 +1,52 @@ + +AnimObjGFX: ; cfcf6 + +object_gfx: MACRO +; label, # tiles + db \1 + dba \2 +ENDM + + object_gfx 0, AnimObj00GFX + object_gfx 21, AnimObj01GFX + object_gfx 6, AnimObj02GFX + object_gfx 6, AnimObj03GFX + object_gfx 20, AnimObj04GFX + object_gfx 26, AnimObj05GFX + object_gfx 18, AnimObj06GFX + object_gfx 12, AnimObj07GFX + object_gfx 9, AnimObj08GFX + object_gfx 17, AnimObj09GFX + object_gfx 6, AnimObj10GFX + object_gfx 10, AnimObj11GFX + object_gfx 9, AnimObj12GFX + object_gfx 13, AnimObj13GFX + object_gfx 16, AnimObj14GFX + object_gfx 2, AnimObj15GFX + object_gfx 11, AnimObj16GFX + object_gfx 9, AnimObj17GFX + object_gfx 9, AnimObj18GFX + object_gfx 19, AnimObj19GFX + object_gfx 10, AnimObj20GFX + object_gfx 12, AnimObj21GFX + object_gfx 18, AnimObj22GFX + object_gfx 13, AnimObj23GFX + object_gfx 10, AnimObj24GFX + object_gfx 27, AnimObj25GFX + object_gfx 12, AnimObj26GFX + object_gfx 14, AnimObj27GFX + object_gfx 16, AnimObj28GFX + object_gfx 7, AnimObj29GFX + object_gfx 8, AnimObj30GFX + object_gfx 40, AnimObj31GFX + object_gfx 36, AnimObj32GFX + object_gfx 16, AnimObj33GFX + object_gfx 48, AnimObj34GFX + object_gfx 18, AnimObj35GFX + object_gfx 38, AnimObj36GFX + object_gfx 35, AnimObj37GFX + object_gfx 18, AnimObj38GFX + object_gfx 24, AnimObj39GFX + object_gfx 1, NULL + object_gfx 1, NULL +; cfd9e diff --git a/battle/objects/helpers.asm b/battle/objects/helpers.asm new file mode 100755 index 000000000..a692211d3 --- /dev/null +++ b/battle/objects/helpers.asm @@ -0,0 +1,130 @@ +ReinitBattleAnimFrameset: ; ce7bf (33:67bf) + ld hl, BATTLEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld [hl], 0 + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + ld [hl], -1 + ret + +GetBattleAnimFrame: ; ce7d1 +.loop + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld a, [hl] + and a + jr z, .next_frame + dec [hl] + call .GetPointer + ld a, [hli] + push af + jr .okay + +.next_frame + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + inc [hl] + call .GetPointer + ld a, [hli] + cp -2 + jr z, .restart + cp -1 + jr z, .repeat_last + push af + ld a, [hl] + push hl + and $3f + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld [hl], a + pop hl + +.okay + ld a, [hl] + and $c0 + srl a + ld [wBattleAnimTemp7], a + pop af + ret + +.repeat_last + xor a + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + dec [hl] + dec [hl] + jr .loop + +.restart + xor a + ld hl, BATTLEANIMSTRUCT_DURATION + add hl, bc + ld [hl], a + dec a + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + ld [hl], a + jr .loop + +; ce823 + +.GetPointer: ; ce823 + ld hl, BATTLEANIMSTRUCT_FRAMESET_ID + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, BattleAnimFrameData + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, BATTLEANIMSTRUCT_FRAME + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ret + +; ce83c + +GetBattleAnimOAMPointer: ; ce83c + ld l, a + ld h, 0 + ld de, BattleAnimOAMData + add hl, hl + add hl, hl + add hl, de + ret + +; ce846 + +LoadBattleAnimObj: ; ce846 (33:6846) + push hl + ld l, a + ld h, 0 + add hl, hl + add hl, hl + ld de, AnimObjGFX + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + pop de + push bc + call DecompressRequest2bpp + pop bc + ret + +; ce85e (33:685e) diff --git a/battle/objects/oam.asm b/battle/objects/oam.asm new file mode 100755 index 000000000..d7186b106 --- /dev/null +++ b/battle/objects/oam.asm @@ -0,0 +1,1086 @@ +
+BattleAnimOAMData: ; ceeae
+; vtile offset (?), length, address
+ dbbw $00, 16, .OAMData_00 ; 00
+ dbbw $04, 9, .OAMData_01 ; 01
+ dbbw $08, 4, .OAMData_02 ; 02
+ dbbw $09, 4, .OAMData_03 ; 03
+ dbbw $0d, 4, .OAMData_04 ; 04
+ dbbw $0f, 4, .OAMData_03 ; 05
+ dbbw $13, 4, .OAMData_04 ; 06
+ dbbw $04, 16, .OAMData_00 ; 07
+ dbbw $08, 16, .OAMData_00 ; 08
+ dbbw $08, 16, .OAMData_09 ; 09
+ dbbw $00, 4, .OAMData_04 ; 0a
+ dbbw $02, 4, .OAMData_03 ; 0b
+ dbbw $06, 2, .OAMData_0c ; 0c
+ dbbw $07, 2, .OAMData_0c ; 0d
+ dbbw $02, 4, .OAMData_04 ; 0e
+ dbbw $04, 1, .OAMData_0f ; 0f
+ dbbw $05, 1, .OAMData_0f ; 10
+ dbbw $00, 2, .OAMData_11 ; 11
+ dbbw $02, 2, .OAMData_11 ; 12
+ dbbw $00, 4, .OAMData_13 ; 13
+ dbbw $00, 1, .OAMData_0f ; 14
+ dbbw $01, 1, .OAMData_0f ; 15
+ dbbw $02, 1, .OAMData_0f ; 16
+ dbbw $03, 1, .OAMData_0f ; 17
+ dbbw $00, 4, .OAMData_02 ; 18
+ dbbw $01, 16, .OAMData_00 ; 19
+ dbbw $05, 16, .OAMData_00 ; 1a
+ dbbw $00, 4, .OAMData_03 ; 1b
+ dbbw $05, 12, .OAMData_1c ; 1c
+ dbbw $02, 4, .OAMData_02 ; 1d
+ dbbw $06, 1, .OAMData_0f ; 1e
+ dbbw $07, 1, .OAMData_0f ; 1f
+ dbbw $08, 1, .OAMData_0f ; 20
+ dbbw $04, 4, .OAMData_03 ; 21
+ dbbw $09, 22, .OAMData_22 ; 22
+ dbbw $04, 2, .OAMData_11 ; 23
+ dbbw $06, 2, .OAMData_11 ; 24
+ dbbw $0c, 1, .OAMData_0f ; 25
+ dbbw $0a, 1, .OAMData_0f ; 26
+ dbbw $0b, 4, .OAMData_02 ; 27
+ dbbw $08, 4, .OAMData_04 ; 28
+ dbbw $06, 4, .OAMData_04 ; 29
+ dbbw $00, 5, .OAMData_2a ; 2a
+ dbbw $03, 6, .OAMData_2b ; 2b
+ dbbw $00, 7, .OAMData_2c ; 2c
+ dbbw $03, 8, .OAMData_2d ; 2d
+ dbbw $00, 9, .OAMData_2e ; 2e
+ dbbw $00, 4, .OAMData_2f ; 2f
+ dbbw $02, 4, .OAMData_30 ; 30
+ dbbw $04, 6, .OAMData_31 ; 31
+ dbbw $00, 2, .OAMData_32 ; 32
+ dbbw $00, 7, .OAMData_33 ; 33
+ dbbw $00, 14, .OAMData_32 ; 34
+ dbbw $00, 21, .OAMData_33 ; 35
+ dbbw $00, 2, .OAMData_36 ; 36
+ dbbw $00, 6, .OAMData_36 ; 37
+ dbbw $00, 10, .OAMData_36 ; 38
+ dbbw $00, 14, .OAMData_36 ; 39
+ dbbw $00, 2, .OAMData_3a ; 3a
+ dbbw $00, 6, .OAMData_3a ; 3b
+ dbbw $00, 10, .OAMData_3a ; 3c
+ dbbw $00, 14, .OAMData_3a ; 3d
+ dbbw $00, 4, .OAMData_3e ; 3e
+ dbbw $00, 16, .OAMData_3e ; 3f
+ dbbw $00, 26, .OAMData_3e ; 40
+ dbbw $00, 26, .OAMData_41 ; 41
+ dbbw $0e, 4, .OAMData_42 ; 42
+ dbbw $0e, 8, .OAMData_42 ; 43
+ dbbw $0e, 4, .OAMData_44 ; 44
+ dbbw $0e, 8, .OAMData_44 ; 45
+ dbbw $0e, 4, .OAMData_46 ; 46
+ dbbw $0e, 4, .OAMData_47 ; 47
+ dbbw $00, 6, .OAMData_48 ; 48
+ dbbw $03, 4, .OAMData_49 ; 49
+ dbbw $03, 2, .OAMData_4a ; 4a
+ dbbw $01, 5, .OAMData_0f ; 4b
+ dbbw $01, 6, .OAMData_4c ; 4c
+ dbbw $01, 7, .OAMData_4d ; 4d
+ dbbw $01, 3, .OAMData_4d ; 4e
+ dbbw $01, 8, .OAMData_4f ; 4f
+ dbbw $01, 9, .OAMData_50 ; 50
+ dbbw $01, 10, .OAMData_51 ; 51
+ dbbw $01, 6, .OAMData_51 ; 52
+ dbbw $00, 9, .OAMData_01 ; 53
+ dbbw $04, 4, .OAMData_02 ; 54
+ dbbw $05, 4, .OAMData_02 ; 55
+ dbbw $00, 2, .OAMData_56 ; 56
+ dbbw $02, 2, .OAMData_56 ; 57
+ dbbw $04, 2, .OAMData_56 ; 58
+ dbbw $02, 4, .OAMData_59 ; 59
+ dbbw $02, 4, .OAMData_5a ; 5a
+ dbbw $02, 2, .OAMData_0c ; 5b
+ dbbw $04, 2, .OAMData_0c ; 5c
+ dbbw $06, 4, .OAMData_5d ; 5d
+ dbbw $08, 2, .OAMData_0c ; 5e
+ dbbw $09, 2, .OAMData_0c ; 5f
+ dbbw $05, 2, .OAMData_60 ; 60
+ dbbw $00, 2, .OAMData_61 ; 61
+ dbbw $00, 5, .OAMData_61 ; 62
+ dbbw $00, 9, .OAMData_61 ; 63
+ dbbw $09, 9, .OAMData_61 ; 64
+ dbbw $00, 4, .OAMData_65 ; 65
+ dbbw $00, 7, .OAMData_65 ; 66
+ dbbw $00, 9, .OAMData_65 ; 67
+ dbbw $09, 9, .OAMData_65 ; 68
+ dbbw $04, 1, .OAMData_69 ; 69
+ dbbw $05, 2, .OAMData_6a ; 6a
+ dbbw $06, 4, .OAMData_03 ; 6b
+ dbbw $0a, 4, .OAMData_03 ; 6c
+ dbbw $0e, 4, .OAMData_03 ; 6d
+ dbbw $08, 5, .OAMData_6e ; 6e
+ dbbw $0d, 3, .OAMData_6f ; 6f
+ dbbw $01, 8, .OAMData_70 ; 70
+ dbbw $03, 8, .OAMData_70 ; 71
+ dbbw $05, 8, .OAMData_70 ; 72
+ dbbw $07, 8, .OAMData_70 ; 73
+ dbbw $06, 4, .OAMData_02 ; 74
+ dbbw $07, 4, .OAMData_02 ; 75
+ dbbw $0a, 2, .OAMData_76 ; 76
+ dbbw $00, 1, .OAMData_77 ; 77
+ dbbw $00, 3, .OAMData_78 ; 78
+ dbbw $00, 6, .OAMData_79 ; 79
+ dbbw $00, 9, .OAMData_7a ; 7a
+ dbbw $00, 12, .OAMData_7b ; 7b
+ dbbw $00, 14, .OAMData_7c ; 7c
+ dbbw $00, 15, .OAMData_7d ; 7d
+ dbbw $04, 4, .OAMData_03 ; 7e
+ dbbw $08, 4, .OAMData_03 ; 7f
+ dbbw $0d, 1, .OAMData_0f ; 80
+ dbbw $0e, 4, .OAMData_81 ; 81
+ dbbw $10, 1, .OAMData_0f ; 82
+ dbbw $11, 1, .OAMData_0f ; 83
+ dbbw $04, 2, .OAMData_6a ; 84
+ dbbw $05, 2, .OAMData_6a ; 85
+ dbbw $0a, 4, .OAMData_04 ; 86
+ dbbw $00, 8, .OAMData_87 ; 87
+ dbbw $00, 12, .OAMData_88 ; 88
+ dbbw $00, 16, .OAMData_87 ; 89
+ dbbw $09, 2, .OAMData_8a ; 8a
+ dbbw $09, 4, .OAMData_8a ; 8b
+ dbbw $09, 6, .OAMData_8a ; 8c
+ dbbw $09, 8, .OAMData_8a ; 8d
+ dbbw $12, 5, .OAMData_8e ; 8e
+ dbbw $00, 4, .OAMData_8f ; 8f
+ dbbw $04, 4, .OAMData_8f ; 90
+ dbbw $08, 4, .OAMData_8f ; 91
+ dbbw $0c, 4, .OAMData_8f ; 92
+ dbbw $00, 6, .OAMData_93 ; 93
+ dbbw $04, 4, .OAMData_03 ; 94
+ dbbw $0a, 4, .OAMData_04 ; 95
+ dbbw $15, 4, .OAMData_30 ; 96
+ dbbw $04, 4, .OAMData_30 ; 97
+ dbbw $0c, 4, .OAMData_04 ; 98
+ dbbw $0a, 4, .OAMData_99 ; 99
+ dbbw $0c, 4, .OAMData_03 ; 9a
+ dbbw $00, 36, .OAMData_9b ; 9b
+ dbbw $0d, 2, .OAMData_9c ; 9c
+ dbbw $0d, 4, .OAMData_9c ; 9d
+ dbbw $0d, 6, .OAMData_9c ; 9e
+ dbbw $02, 8, .OAMData_9f ; 9f
+ dbbw $08, 7, .OAMData_a0 ; a0
+ dbbw $08, 5, .OAMData_a0 ; a1
+ dbbw $08, 3, .OAMData_a0 ; a2
+ dbbw $00, 16, .OAMData_1c ; a3
+ dbbw $00, 9, .OAMData_a4 ; a4
+ dbbw $06, 9, .OAMData_a4 ; a5
+ dbbw $0c, 9, .OAMData_a4 ; a6
+ dbbw $12, 9, .OAMData_a4 ; a7
+ dbbw $18, 9, .OAMData_a4 ; a8
+ dbbw $1e, 9, .OAMData_a4 ; a9
+ dbbw $24, 9, .OAMData_a4 ; aa
+ dbbw $2a, 9, .OAMData_a4 ; ab
+ dbbw $03, 4, .OAMData_ac ; ac
+ dbbw $12, 4, .OAMData_03 ; ad
+ dbbw $10, 4, .OAMData_04 ; ae
+ dbbw $16, 1, .OAMData_0f ; af
+ dbbw $17, 4, .OAMData_02 ; b0
+ dbbw $18, 4, .OAMData_03 ; b1
+ dbbw $1c, 4, .OAMData_03 ; b2
+ dbbw $20, 3, .OAMData_03 ; b3
+ dbbw $23, 4, .OAMData_04 ; b4
+ dbbw $25, 3, .OAMData_03 ; b5
+ dbbw $17, 4, .OAMData_03 ; b6
+ dbbw $0a, 16, .OAMData_00 ; b7
+ dbbw $10, 16, .OAMData_1c ; b8
+ dbbw $00, 16, .OAMData_1c ; b9
+ dbbw $04, 4, .OAMData_03 ; ba
+ dbbw $08, 2, .OAMData_11 ; bb
+ dbbw $20, 6, .OAMData_bc ; bc
+ dbbw $08, 1, .OAMData_0f ; bd
+ dbbw $04, 4, .OAMData_03 ; be
+ dbbw $1a, 4, .OAMData_30 ; bf
+ dbbw $16, 9, .OAMData_01 ; c0
+ dbbw $10, 16, .OAMData_c1 ; c1
+ dbbw $09, 6, .OAMData_c2 ; c2
+ dbbw $11, 9, .OAMData_c3 ; c3
+ dbbw $0e, 4, .OAMData_03 ; c4
+ dbbw $0b, 4, .OAMData_30 ; c5
+ dbbw $1c, 6, .OAMData_02 ; c6
+ dbbw $20, 16, .OAMData_c1 ; c7
+ dbbw $05, 6, .OAMData_c8 ; c8
+ dbbw $0b, 4, .OAMData_03 ; c9
+ dbbw $09, 4, .OAMData_ca ; ca
+ dbbw $0b, 4, .OAMData_04 ; cb
+ dbbw $11, 13, .OAMData_cc ; cc
+ dbbw $00, 9, .OAMData_c3 ; cd
+ dbbw $09, 9, .OAMData_c3 ; ce
+ dbbw $00, 12, .OAMData_cf ; cf
+ dbbw $06, 12, .OAMData_cf ; d0
+ dbbw $0c, 12, .OAMData_cf ; d1
+ dbbw $12, 12, .OAMData_cf ; d2
+ dbbw $00, 13, .OAMData_cc ; d3
+ dbbw $00, 7, .OAMData_d4 ; d4
+ dbbw $00, 6, .OAMData_d5 ; d5
+ dbbw $00, 14, .OAMData_d6 ; d6
+ dbbw $00, 12, .OAMData_d7 ; d7
+
+.OAMData_11
+ dsprite -1, 0, -1, 4, $00, $00
+ dsprite 0, 0, -1, 4, $01, $00
+
+.OAMData_56
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $01, $00
+
+.OAMData_03
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $02, $00
+ dsprite 0, 0, 0, 0, $03, $00
+
+.OAMData_02
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_c3
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 4, $04, $00
+ dsprite -1, 4, 0, 4, $05, $00
+ dsprite 0, 4, -2, 4, $06, $00
+ dsprite 0, 4, -1, 4, $07, $00
+ dsprite 0, 4, 0, 4, $08, $00
+
+.OAMData_01
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $00, $20
+ dsprite -1, 4, -2, 4, $02, $00
+ dsprite -1, 4, -1, 4, $03, $00
+ dsprite -1, 4, 0, 4, $02, $60
+ dsprite 0, 4, -2, 4, $00, $40
+ dsprite 0, 4, -1, 4, $01, $60
+ dsprite 0, 4, 0, 4, $00, $60
+
+.OAMData_cf
+ dsprite -2, 0, -2, 4, $00, $00
+ dsprite -2, 0, -1, 4, $01, $00
+ dsprite -2, 0, 0, 4, $02, $00
+ dsprite -1, 0, -2, 4, $03, $00
+ dsprite -1, 0, -1, 4, $04, $00
+ dsprite -1, 0, 0, 4, $05, $00
+ dsprite 0, 0, -2, 4, $05, $60
+ dsprite 0, 0, -1, 4, $04, $60
+ dsprite 0, 0, 0, 4, $03, $60
+ dsprite 1, 0, -2, 4, $02, $60
+ dsprite 1, 0, -1, 4, $01, $60
+ dsprite 1, 0, 0, 4, $00, $60
+
+.OAMData_1c
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $02, $00
+ dsprite -2, 0, 1, 0, $03, $00
+ dsprite -1, 0, -2, 0, $04, $00
+ dsprite -1, 0, -1, 0, $05, $00
+ dsprite -1, 0, 0, 0, $06, $00
+ dsprite -1, 0, 1, 0, $07, $00
+ dsprite 0, 0, -2, 0, $08, $00
+ dsprite 0, 0, -1, 0, $09, $00
+ dsprite 0, 0, 0, 0, $0a, $00
+ dsprite 0, 0, 1, 0, $0b, $00
+ dsprite 1, 0, -2, 0, $0c, $00
+ dsprite 1, 0, -1, 0, $0d, $00
+ dsprite 1, 0, 0, 0, $0e, $00
+ dsprite 1, 0, 1, 0, $0f, $00
+
+.OAMData_00
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -1, 0, -2, 0, $02, $00
+ dsprite -1, 0, -1, 0, $03, $00
+ dsprite -2, 0, 0, 0, $01, $20
+ dsprite -2, 0, 1, 0, $00, $20
+ dsprite -1, 0, 0, 0, $03, $20
+ dsprite -1, 0, 1, 0, $02, $20
+ dsprite 0, 0, -2, 0, $02, $40
+ dsprite 0, 0, -1, 0, $03, $40
+ dsprite 1, 0, -2, 0, $00, $40
+ dsprite 1, 0, -1, 0, $01, $40
+ dsprite 0, 0, 0, 0, $03, $60
+ dsprite 0, 0, 1, 0, $02, $60
+ dsprite 1, 0, 0, 0, $01, $60
+ dsprite 1, 0, 1, 0, $00, $60
+
+.OAMData_09
+ dsprite -3, 4, -3, 4, $00, $00
+ dsprite -3, 4, -2, 4, $01, $00
+ dsprite -2, 4, -3, 4, $02, $00
+ dsprite -2, 4, -2, 4, $03, $00
+ dsprite -3, 4, 0, 4, $01, $20
+ dsprite -3, 4, 1, 4, $00, $20
+ dsprite -2, 4, 0, 4, $03, $20
+ dsprite -2, 4, 1, 4, $02, $20
+ dsprite 0, 4, -3, 4, $02, $40
+ dsprite 0, 4, -2, 4, $03, $40
+ dsprite 1, 4, -3, 4, $00, $40
+ dsprite 1, 4, -2, 4, $01, $40
+ dsprite 0, 4, 0, 4, $03, $60
+ dsprite 0, 4, 1, 4, $02, $60
+ dsprite 1, 4, 0, 4, $01, $60
+ dsprite 1, 4, 1, 4, $00, $60
+
+.OAMData_0c
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $00, $20
+
+.OAMData_6a
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $00, $20
+
+.OAMData_04
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $01, $20
+
+.OAMData_5d
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $01, $40
+
+.OAMData_13
+ dsprite -1, 2, -1, 0, $02, $00
+ dsprite 0, 2, -1, 0, $03, $00
+ dsprite -2, 6, 0, 0, $02, $00
+ dsprite -1, 6, 0, 0, $03, $00
+
+.OAMData_22
+ dsprite 1, 0, -11, 0, $01, $00
+ dsprite 0, 0, -10, 0, $02, $00
+ dsprite 0, 0, -9, 0, $03, $00
+ dsprite 0, 0, -8, 0, $00, $00
+ dsprite 0, 0, -7, 0, $03, $00
+ dsprite 0, 0, -6, 0, $00, $00
+ dsprite 0, 0, -5, 0, $03, $00
+ dsprite 0, 0, -4, 0, $00, $00
+ dsprite 0, 0, -3, 0, $03, $00
+ dsprite 0, 0, -2, 0, $00, $00
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $02, $00
+ dsprite -1, 0, 1, 0, $03, $00
+ dsprite -1, 0, 2, 0, $00, $00
+ dsprite -1, 0, 3, 0, $03, $00
+ dsprite -1, 0, 4, 0, $00, $00
+ dsprite -1, 0, 5, 0, $03, $00
+ dsprite -1, 0, 6, 0, $00, $00
+ dsprite -1, 0, 7, 0, $03, $00
+ dsprite -1, 0, 8, 0, $00, $00
+ dsprite -1, 0, 9, 0, $01, $00
+ dsprite -2, 0, 10, 0, $02, $00
+
+.OAMData_2a
+ dsprite -3, 4, -1, 0, $00, $00
+ dsprite -3, 4, 0, 0, $00, $20
+ dsprite -2, 4, -1, 0, $01, $00
+ dsprite -2, 4, 0, 0, $01, $20
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2b
+ dsprite -4, 4, -1, 0, $00, $00
+ dsprite -4, 4, 0, 0, $00, $20
+ dsprite -3, 4, -1, 0, $01, $00
+ dsprite -3, 4, 0, 0, $01, $20
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2c
+ dsprite -5, 4, -1, 0, $00, $00
+ dsprite -5, 4, 0, 0, $00, $20
+ dsprite -4, 4, -1, 0, $01, $00
+ dsprite -4, 4, 0, 0, $01, $20
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2d
+ dsprite -6, 4, -1, 0, $00, $00
+ dsprite -6, 4, 0, 0, $00, $20
+ dsprite -5, 4, -1, 0, $01, $00
+ dsprite -5, 4, 0, 0, $01, $20
+ dsprite -4, 4, -1, 4, $02, $00
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2e
+ dsprite -7, 4, -1, 0, $00, $00
+ dsprite -7, 4, 0, 0, $00, $20
+ dsprite -6, 4, -1, 0, $01, $00
+ dsprite -6, 4, 0, 0, $01, $20
+ dsprite -5, 4, -1, 4, $02, $00
+ dsprite -4, 4, -1, 4, $02, $00
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2f
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_30
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $01, $60
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_31
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $03, $00
+ dsprite 0, 4, -1, 0, $04, $00
+ dsprite 0, 4, 0, 0, $05, $00
+
+.OAMData_76
+ dsprite -1, 5, -1, 0, $00, $00
+ dsprite -1, 1, 0, 0, $00, $00
+
+.OAMData_32
+ dsprite -1, 0, -2, 4, $00, $00
+ dsprite -1, 0, 0, 4, $00, $00
+ dsprite -3, 0, -2, 4, $00, $00
+ dsprite -3, 0, 0, 4, $00, $00
+ dsprite -2, 0, -3, 4, $00, $00
+ dsprite -2, 0, -2, 4, $01, $00
+ dsprite -2, 0, -1, 4, $00, $00
+ dsprite -2, 0, 0, 4, $01, $00
+ dsprite -2, 0, 1, 4, $00, $00
+ dsprite -1, 0, -4, 4, $00, $00
+ dsprite -1, 0, -3, 4, $01, $00
+ dsprite -1, 0, -1, 4, $01, $00
+ dsprite -1, 0, 1, 4, $01, $00
+ dsprite -1, 0, 2, 4, $00, $00
+
+.OAMData_33
+ dsprite -2, 0, -2, 4, $00, $00
+ dsprite -2, 0, 0, 4, $00, $00
+ dsprite -1, 0, -3, 4, $00, $00
+ dsprite -1, 0, -2, 4, $01, $00
+ dsprite -1, 0, -1, 4, $00, $00
+ dsprite -1, 0, 0, 4, $01, $00
+ dsprite -1, 0, 1, 4, $00, $00
+ dsprite -4, 0, -2, 4, $00, $00
+ dsprite -4, 0, 0, 4, $00, $00
+ dsprite -3, 0, -3, 4, $00, $00
+ dsprite -3, 0, -2, 4, $01, $00
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -3, 0, 0, 4, $01, $00
+ dsprite -3, 0, 1, 4, $00, $00
+ dsprite -2, 0, -4, 4, $00, $00
+ dsprite -2, 0, -3, 4, $01, $00
+ dsprite -2, 0, -1, 4, $01, $00
+ dsprite -2, 0, 1, 4, $01, $00
+ dsprite -2, 0, 2, 4, $00, $00
+ dsprite -1, 0, -4, 4, $01, $00
+ dsprite -1, 0, 2, 4, $01, $00
+
+.OAMData_36
+ dsprite -7, 4, -1, 0, $00, $00
+ dsprite -7, 4, 0, 0, $01, $00
+ dsprite -6, 4, -1, 0, $02, $00
+ dsprite -6, 4, 0, 0, $03, $00
+ dsprite -5, 4, -1, 0, $04, $00
+ dsprite -5, 4, 0, 0, $05, $00
+ dsprite -4, 4, -1, 0, $06, $00
+ dsprite -4, 4, 0, 0, $07, $00
+ dsprite -3, 4, -1, 0, $08, $00
+ dsprite -3, 4, 0, 0, $09, $00
+ dsprite -2, 4, -1, 0, $0a, $00
+ dsprite -2, 4, 0, 0, $0b, $00
+ dsprite -1, 4, -1, 0, $0c, $00
+ dsprite -1, 4, 0, 0, $0d, $00
+
+.OAMData_3a
+ dsprite -7, 4, -1, 0, $0c, $00
+ dsprite -7, 4, 0, 0, $0d, $00
+ dsprite -6, 4, -1, 0, $08, $00
+ dsprite -6, 4, 0, 0, $09, $00
+ dsprite -5, 4, -1, 0, $04, $00
+ dsprite -5, 4, 0, 0, $05, $00
+ dsprite -4, 4, -1, 0, $00, $00
+ dsprite -4, 4, 0, 0, $01, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $03, $00
+ dsprite -2, 4, 0, 0, $02, $00
+ dsprite -2, 4, 1, 0, $03, $00
+ dsprite -1, 4, 0, 0, $0a, $00
+ dsprite -1, 4, 1, 0, $0b, $00
+
+.OAMData_3e
+ dsprite 1, 4, -2, 0, $00, $40
+ dsprite 1, 4, -1, 0, $02, $40
+ dsprite 1, 4, 0, 0, $02, $60
+ dsprite 1, 4, 1, 0, $00, $60
+ dsprite -1, 4, -3, 0, $09, $20
+ dsprite -1, 4, -2, 0, $08, $20
+ dsprite -1, 4, -1, 0, $06, $00
+ dsprite -1, 4, 0, 0, $07, $00
+ dsprite -1, 4, 1, 0, $08, $00
+ dsprite -1, 4, 2, 0, $09, $00
+ dsprite 0, 4, -3, 0, $01, $20
+ dsprite 0, 4, -2, 0, $00, $20
+ dsprite 0, 4, -1, 0, $0c, $00
+ dsprite 0, 4, 0, 0, $0d, $00
+ dsprite 0, 4, 1, 0, $00, $00
+ dsprite 0, 4, 2, 0, $01, $00
+ dsprite -3, 4, -2, 0, $00, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $02, $20
+ dsprite -3, 4, 1, 0, $00, $20
+ dsprite -2, 4, -3, 0, $03, $20
+ dsprite -2, 4, -2, 0, $02, $20
+ dsprite -2, 4, -1, 0, $04, $00
+ dsprite -2, 4, 0, 0, $05, $00
+ dsprite -2, 4, 1, 0, $02, $00
+ dsprite -2, 4, 2, 0, $03, $00
+
+.OAMData_41
+ dsprite -3, 4, -2, 0, $00, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $02, $20
+ dsprite -3, 4, 1, 0, $00, $20
+ dsprite -2, 4, -3, 4, $00, $00
+ dsprite -2, 4, -2, 4, $01, $00
+ dsprite -2, 4, -1, 0, $05, $20
+ dsprite -2, 4, 0, 0, $04, $20
+ dsprite -2, 4, 0, 4, $01, $20
+ dsprite -2, 4, 1, 4, $00, $20
+ dsprite -1, 4, -3, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 0, $07, $20
+ dsprite -1, 4, 0, 0, $06, $20
+ dsprite -1, 4, 0, 4, $03, $20
+ dsprite -1, 4, 1, 4, $02, $20
+ dsprite 0, 4, -3, 4, $04, $00
+ dsprite 0, 4, -2, 4, $05, $00
+ dsprite 0, 4, -1, 0, $0d, $20
+ dsprite 0, 4, 0, 0, $0c, $20
+ dsprite 0, 4, 0, 4, $05, $20
+ dsprite 0, 4, 1, 4, $04, $20
+ dsprite 1, 4, -2, 0, $00, $40
+ dsprite 1, 4, -1, 0, $02, $40
+ dsprite 1, 4, 0, 0, $02, $60
+ dsprite 1, 4, 1, 0, $00, $60
+
+.OAMData_42
+ dsprite -3, 0, -1, 4, $02, $00
+ dsprite 2, 0, -1, 4, $02, $60
+ dsprite -1, 4, -3, 0, $01, $00
+ dsprite -1, 4, 2, 0, $01, $60
+ dsprite -4, 0, -1, 4, $02, $00
+ dsprite 3, 0, -1, 4, $02, $60
+ dsprite -1, 4, -4, 0, $01, $00
+ dsprite -1, 4, 3, 0, $01, $60
+
+.OAMData_44
+ dsprite -3, 5, -3, 5, $00, $20
+ dsprite -3, 5, 1, 3, $00, $00
+ dsprite 1, 3, -3, 5, $00, $60
+ dsprite 1, 3, 1, 3, $00, $40
+ dsprite -4, 5, -4, 5, $00, $20
+ dsprite -4, 5, 2, 3, $00, $00
+ dsprite 2, 3, -4, 5, $00, $60
+ dsprite 2, 3, 2, 3, $00, $40
+
+.OAMData_46
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite 1, 4, -1, 4, $02, $60
+ dsprite -1, 4, -3, 4, $01, $00
+ dsprite -1, 4, 1, 4, $01, $60
+
+.OAMData_47
+ dsprite -2, 0, -2, 0, $00, $20
+ dsprite -2, 0, 1, 0, $00, $00
+ dsprite 1, 0, -2, 0, $00, $60
+ dsprite 1, 0, 1, 0, $00, $40
+
+.OAMData_48
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -2, 0, -1, 2, $00, $00
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 1, 0, -1, 2, $00, $00
+ dsprite 2, 0, -1, 4, $00, $00
+
+.OAMData_49
+ dsprite -1, 4, -2, 0, $00, $20
+ dsprite -1, 2, -1, 0, $00, $20
+ dsprite -1, 2, 0, 0, $00, $00
+ dsprite -1, 4, 1, 0, $00, $00
+
+.OAMData_4a
+ dsprite -1, 4, -1, 0, $00, $60
+ dsprite -1, 4, 0, 0, $00, $40
+
+.OAMData_0f
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 4, -2, 4, $01, $00
+ dsprite -1, 4, -1, 4, $01, $20
+ dsprite 0, 4, -2, 4, $01, $40
+ dsprite 0, 4, -1, 4, $01, $60
+
+.OAMData_4c
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 0, 2, -3, 6, $01, $00
+ dsprite 0, 2, -2, 6, $01, $20
+ dsprite 1, 2, -3, 6, $01, $40
+ dsprite 1, 2, -2, 6, $01, $60
+
+.OAMData_4d
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 0, -3, 0, $01, $00
+ dsprite 1, 0, -2, 0, $01, $20
+ dsprite 2, 0, -3, 0, $01, $40
+ dsprite 2, 0, -2, 0, $01, $60
+
+.OAMData_4f
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 1, 6, -4, 2, $01, $00
+ dsprite 1, 6, -3, 2, $01, $20
+ dsprite 2, 6, -4, 2, $01, $40
+ dsprite 2, 6, -3, 2, $01, $60
+
+.OAMData_50
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 2, 4, -4, 4, $00, $00
+ dsprite 2, 4, -5, 4, $01, $00
+ dsprite 2, 4, -4, 4, $01, $20
+ dsprite 3, 4, -5, 4, $01, $40
+ dsprite 3, 4, -4, 4, $01, $60
+
+.OAMData_51
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 2, 4, -4, 4, $00, $00
+ dsprite 3, 2, -5, 6, $00, $00
+ dsprite 3, 2, -6, 6, $01, $00
+ dsprite 3, 2, -5, 6, $01, $20
+ dsprite 4, 2, -6, 6, $01, $40
+ dsprite 4, 2, -5, 6, $01, $60
+
+.OAMData_59
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $00, $20
+
+.OAMData_5a
+ dsprite -1, 4, -2, 0, $02, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $02, $20
+
+.OAMData_60
+ dsprite -1, 0, -1, 4, $00, $00
+
+.OAMData_69
+ dsprite 0, 0, -1, 4, $00, $00
+
+.OAMData_61
+ dsprite -1, 4, -4, 4, $00, $00
+ dsprite -1, 4, -3, 4, $01, $00
+ dsprite -1, 4, -2, 4, $02, $00
+ dsprite -1, 4, -1, 4, $03, $00
+ dsprite -1, 4, 0, 4, $04, $00
+ dsprite -1, 4, 1, 4, $05, $00
+ dsprite -1, 4, 2, 4, $06, $00
+ dsprite -2, 4, 1, 4, $07, $00
+ dsprite -2, 4, 2, 4, $08, $00
+
+.OAMData_65
+ dsprite -2, 4, -4, 4, $08, $20
+ dsprite -2, 4, -3, 4, $07, $20
+ dsprite -1, 4, -4, 4, $06, $20
+ dsprite -1, 4, -3, 4, $05, $20
+ dsprite -1, 4, -2, 4, $04, $20
+ dsprite -1, 4, -1, 4, $03, $20
+ dsprite -1, 4, 0, 4, $02, $20
+ dsprite -1, 4, 1, 4, $01, $20
+ dsprite -1, 4, 2, 4, $00, $20
+
+.OAMData_d4
+ dsprite 0, 0, -4, 4, $00, $10
+ dsprite 0, 0, -3, 4, $01, $10
+ dsprite 0, 0, -2, 4, $02, $10
+ dsprite 0, 0, -1, 4, $03, $10
+ dsprite 0, 0, 0, 4, $04, $10
+ dsprite 0, 0, 1, 4, $05, $10
+ dsprite 0, 0, 2, 4, $06, $10
+
+.OAMData_d6
+ dsprite -1, 0, -4, 4, $00, $10
+ dsprite 0, 0, -4, 4, $01, $10
+ dsprite -1, 0, -3, 4, $02, $10
+ dsprite 0, 0, -3, 4, $03, $10
+ dsprite -1, 0, -2, 4, $04, $10
+ dsprite 0, 0, -2, 4, $05, $10
+ dsprite -1, 0, -1, 4, $06, $10
+ dsprite 0, 0, -1, 4, $07, $10
+ dsprite -1, 0, 0, 4, $08, $10
+ dsprite 0, 0, 0, 4, $09, $10
+ dsprite -1, 0, 1, 4, $0a, $10
+ dsprite 0, 0, 1, 4, $0b, $10
+ dsprite -1, 0, 2, 4, $0c, $10
+ dsprite 0, 0, 2, 4, $0d, $10
+
+.OAMData_d5
+ dsprite 0, 0, -3, 0, $00, $11
+ dsprite 0, 0, -2, 0, $01, $11
+ dsprite 0, 0, -1, 0, $02, $11
+ dsprite 0, 0, 0, 0, $03, $11
+ dsprite 0, 0, 1, 0, $04, $11
+ dsprite 0, 0, 2, 0, $05, $11
+
+.OAMData_d7
+ dsprite 0, 0, -3, 0, $00, $11
+ dsprite 1, 0, -3, 0, $01, $11
+ dsprite 0, 0, -2, 0, $02, $11
+ dsprite 1, 0, -2, 0, $03, $11
+ dsprite 0, 0, -1, 0, $04, $11
+ dsprite 1, 0, -1, 0, $05, $11
+ dsprite 0, 0, 0, 0, $06, $11
+ dsprite 1, 0, 0, 0, $07, $11
+ dsprite 0, 0, 1, 0, $08, $11
+ dsprite 1, 0, 1, 0, $09, $11
+ dsprite 0, 0, 2, 0, $0a, $11
+ dsprite 1, 0, 2, 0, $0b, $11
+
+.OAMData_6e
+ dsprite -2, 4, 0, 4, $00, $00
+ dsprite -1, 4, -2, 4, $01, $00
+ dsprite -1, 4, -1, 4, $02, $00
+ dsprite -1, 4, 0, 4, $03, $00
+ dsprite 0, 4, -2, 4, $04, $00
+
+.OAMData_6f
+ dsprite -1, 4, -2, 4, $00, $00
+ dsprite -1, 4, -1, 4, $01, $00
+ dsprite -1, 4, 0, 4, $02, $00
+
+.OAMData_77
+ dsprite -4, 4, 1, 4, $01, $60
+
+.OAMData_78
+ dsprite -4, 4, 1, 4, $00, $00
+ dsprite -4, 4, 0, 4, $01, $60
+ dsprite -3, 4, 1, 4, $01, $60
+
+.OAMData_79
+ dsprite -4, 4, 1, 4, $01, $00
+ dsprite -4, 4, 0, 4, $00, $00
+ dsprite -4, 4, -1, 4, $01, $60
+ dsprite -3, 4, 1, 4, $00, $00
+ dsprite -3, 4, 0, 4, $01, $60
+ dsprite -2, 4, 1, 4, $01, $60
+
+.OAMData_7a
+ dsprite -4, 4, -2, 4, $01, $60
+ dsprite -4, 4, -1, 4, $00, $00
+ dsprite -4, 4, 0, 4, $01, $00
+ dsprite -3, 4, -1, 4, $01, $60
+ dsprite -3, 4, 0, 4, $00, $00
+ dsprite -3, 4, 1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $01, $60
+ dsprite -2, 4, 1, 4, $00, $00
+ dsprite -1, 4, 1, 4, $01, $60
+
+.OAMData_7b
+ dsprite -4, 4, -3, 4, $01, $60
+ dsprite -4, 4, -2, 4, $00, $00
+ dsprite -4, 4, -1, 4, $01, $00
+ dsprite -3, 4, -2, 4, $01, $60
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite -3, 4, 0, 4, $01, $00
+ dsprite -2, 4, -1, 4, $01, $60
+ dsprite -2, 4, 0, 4, $00, $00
+ dsprite -2, 4, 1, 4, $01, $00
+ dsprite -1, 4, 0, 4, $01, $60
+ dsprite -1, 4, 1, 4, $00, $00
+ dsprite 0, 4, 1, 4, $01, $60
+
+.OAMData_7c
+ dsprite -4, 4, -3, 4, $00, $00
+ dsprite -4, 4, -2, 4, $01, $00
+ dsprite -3, 4, -3, 4, $01, $60
+ dsprite -3, 4, -2, 4, $00, $00
+ dsprite -3, 4, -1, 4, $01, $00
+ dsprite -2, 4, -2, 4, $01, $60
+ dsprite -2, 4, -1, 4, $00, $00
+ dsprite -2, 4, 0, 4, $01, $00
+ dsprite -1, 4, -1, 4, $01, $60
+ dsprite -1, 4, 0, 4, $00, $00
+ dsprite -1, 4, 1, 4, $01, $00
+ dsprite 0, 4, 0, 4, $01, $60
+ dsprite 0, 4, 1, 4, $00, $00
+ dsprite 1, 4, 1, 4, $01, $60
+
+.OAMData_7d
+ dsprite -4, 4, -3, 4, $01, $00
+ dsprite -3, 4, -3, 4, $00, $00
+ dsprite -3, 4, -2, 4, $01, $00
+ dsprite -2, 4, -3, 4, $01, $60
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -1, 4, -2, 4, $01, $60
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 4, 0, 4, $01, $00
+ dsprite 0, 4, -1, 4, $01, $60
+ dsprite 0, 4, 0, 4, $00, $00
+ dsprite 0, 4, 1, 4, $01, $00
+ dsprite 1, 4, 0, 4, $01, $60
+ dsprite 1, 4, 1, 4, $00, $00
+ dsprite 2, 4, 1, 4, $01, $60
+
+.OAMData_70
+ dsprite -2, 0, -1, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $00, $20
+ dsprite -1, 0, 0, 0, $01, $20
+ dsprite 0, 0, -1, 0, $01, $40
+ dsprite 1, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $01, $60
+ dsprite 1, 0, 0, 0, $00, $60
+
+.OAMData_81
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $01, $60
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_87
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $03, $00
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $01, $00
+ dsprite 0, 4, -1, 0, $02, $00
+ dsprite 0, 4, 0, 0, $03, $00
+ dsprite -3, 4, -1, 0, $00, $00
+ dsprite -3, 4, 0, 0, $01, $00
+ dsprite -2, 4, -1, 0, $02, $00
+ dsprite -2, 4, 0, 0, $03, $00
+ dsprite 0, 4, -1, 0, $00, $00
+ dsprite 0, 4, 0, 0, $01, $00
+ dsprite 1, 4, -1, 0, $02, $00
+ dsprite 1, 4, 0, 0, $03, $00
+
+.OAMData_88
+ dsprite -2, 0, -1, 0, $00, $00
+ dsprite -2, 0, 0, 0, $01, $00
+ dsprite -1, 0, -1, 0, $02, $00
+ dsprite -1, 0, 0, 0, $03, $00
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $02, $00
+ dsprite 0, 0, 0, 0, $03, $00
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $01, $00
+ dsprite 1, 0, -1, 0, $02, $00
+ dsprite 1, 0, 0, 0, $03, $00
+
+.OAMData_8a
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 0, 0, 4, $00, $00
+ dsprite -2, 4, 1, 4, $00, $00
+ dsprite -2, 0, 2, 4, $00, $00
+ dsprite -3, 4, 3, 4, $00, $00
+ dsprite -3, 0, 4, 4, $00, $00
+ dsprite -4, 0, 5, 4, $00, $00
+ dsprite -5, 4, 6, 4, $00, $00
+
+.OAMData_8e
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -1, 4, -1, 4, $02, $00
+ dsprite 0, 4, -1, 4, $01, $40
+ dsprite 1, 4, -1, 4, $00, $40
+
+.OAMData_8f
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $02, $00
+ dsprite -1, 4, 1, 0, $03, $00
+
+.OAMData_93
+ dsprite -1, 0, -2, 4, $00, $00
+ dsprite -1, 0, -1, 4, $01, $00
+ dsprite -1, 0, 0, 4, $02, $00
+ dsprite 0, 0, -2, 4, $03, $00
+ dsprite 0, 0, -1, 4, $04, $00
+ dsprite 0, 0, 0, 4, $05, $00
+
+.OAMData_99
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $05, $00
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $05, $00
+
+.OAMData_9b
+ dsprite -4, 4, 1, 0, $00, $00
+ dsprite -4, 4, 2, 0, $01, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $03, $00
+ dsprite -3, 4, 1, 0, $04, $00
+ dsprite -3, 4, 2, 0, $05, $00
+ dsprite -3, 4, 3, 0, $06, $00
+ dsprite -2, 4, -2, 0, $07, $00
+ dsprite -2, 4, -1, 0, $08, $00
+ dsprite -2, 4, 0, 0, $09, $00
+ dsprite -2, 4, 1, 0, $0a, $00
+ dsprite -2, 4, 2, 0, $0b, $00
+ dsprite -2, 4, 3, 0, $0c, $00
+ dsprite -2, 4, 4, 0, $0d, $00
+ dsprite -1, 4, -3, 0, $0e, $00
+ dsprite -1, 4, -2, 0, $0f, $00
+ dsprite -1, 4, -1, 0, $10, $00
+ dsprite -1, 4, 0, 0, $11, $00
+ dsprite -1, 4, 1, 0, $12, $00
+ dsprite -1, 4, 2, 0, $13, $00
+ dsprite 0, 4, -5, 0, $14, $00
+ dsprite 0, 4, -4, 0, $15, $00
+ dsprite 0, 4, -3, 0, $16, $00
+ dsprite 0, 4, -2, 0, $17, $00
+ dsprite 0, 4, -1, 0, $18, $00
+ dsprite 0, 4, 0, 0, $19, $00
+ dsprite 0, 4, 1, 0, $1a, $00
+ dsprite 0, 4, 2, 0, $1b, $00
+ dsprite 0, 4, 3, 0, $1c, $00
+ dsprite 1, 4, -5, 0, $1d, $00
+ dsprite 1, 4, -4, 0, $1e, $00
+ dsprite 1, 4, -2, 0, $1f, $00
+ dsprite 1, 4, -1, 0, $20, $00
+ dsprite 1, 4, 0, 0, $21, $00
+ dsprite 1, 4, 1, 0, $22, $00
+ dsprite 2, 4, 0, 0, $23, $00
+
+.OAMData_9c
+ dsprite 0, 4, -1, 0, $02, $00
+ dsprite 0, 4, 0, 0, $03, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $00, $20
+
+.OAMData_9f
+ dsprite -1, 0, -2, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $02, $00
+ dsprite -1, 0, 1, 0, $03, $00
+ dsprite 0, 0, -2, 0, $04, $00
+ dsprite 0, 0, -1, 0, $05, $00
+ dsprite 0, 0, 0, 0, $06, $00
+ dsprite 0, 0, 1, 0, $07, $00
+
+.OAMData_a0
+ dsprite -2, 4, -1, 4, $00, $00
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 4, -1, 4, $00, $00
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite 1, 4, -1, 4, $00, $00
+ dsprite -4, 4, -1, 4, $00, $00
+ dsprite 2, 4, -1, 4, $00, $00
+
+.OAMData_a4
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 4, $04, $00
+ dsprite -1, 4, 0, 4, $05, $00
+ dsprite 0, 4, -2, 4, $00, $40
+ dsprite 0, 4, -1, 4, $01, $40
+ dsprite 0, 4, 0, 4, $02, $40
+
+.OAMData_ac
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $00, $20
+
+.OAMData_bc
+ dsprite -1, 4, -3, 0, $00, $00
+ dsprite -1, 4, -2, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $02, $20
+ dsprite -1, 4, 1, 0, $01, $20
+ dsprite -1, 4, 2, 0, $00, $20
+
+.OAMData_c1
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $02, $00
+ dsprite -2, 0, 1, 0, $00, $20
+ dsprite -1, 0, -2, 0, $03, $00
+ dsprite -1, 0, -1, 0, $04, $00
+ dsprite -1, 0, 0, 0, $04, $20
+ dsprite -1, 0, 1, 0, $05, $00
+ dsprite 0, 0, -2, 0, $05, $60
+ dsprite 0, 0, -1, 0, $04, $40
+ dsprite 0, 0, 0, 0, $04, $60
+ dsprite 0, 0, 1, 0, $03, $60
+ dsprite 1, 0, -2, 0, $00, $40
+ dsprite 1, 0, -1, 0, $02, $60
+ dsprite 1, 0, 0, 0, $01, $60
+ dsprite 1, 0, 1, 0, $00, $60
+
+.OAMData_c2
+ dsprite -1, 0, -2, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $00, $60
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $01, $00
+ dsprite 0, 0, 1, 0, $00, $60
+
+.OAMData_c8
+ dsprite -1, 0, 1, 4, $00, $00
+ dsprite -1, 0, 2, 4, $01, $00
+ dsprite 0, 0, -1, 4, $02, $00
+ dsprite 0, 0, 0, 4, $03, $00
+ dsprite 0, 0, 1, 4, $04, $00
+ dsprite 0, 0, 2, 4, $05, $00
+
+.OAMData_ca
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $60
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $01, $20
+
+.OAMData_cc
+ dsprite -2, 0, -13, 4, $00, $00
+ dsprite -4, 0, -11, 4, $00, $00
+ dsprite -1, 0, -9, 4, $00, $00
+ dsprite -5, 0, -7, 4, $00, $00
+ dsprite -3, 0, -5, 4, $00, $00
+ dsprite -5, 0, -3, 4, $00, $00
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -3, 0, 0, 4, $00, $00
+ dsprite -5, 0, 2, 4, $00, $00
+ dsprite 0, 0, 4, 4, $00, $00
+ dsprite -2, 0, 6, 4, $00, $00
+ dsprite -4, 0, 8, 4, $00, $00
+ dsprite -2, 0, 10, 4, $00, $00
+; cfcf6
diff --git a/battle/sliding_intro.asm b/battle/sliding_intro.asm index e13e8bd05..6361f7fa7 100755 --- a/battle/sliding_intro.asm +++ b/battle/sliding_intro.asm @@ -1,14 +1,14 @@ -SlideBattlePics: ; 4e980 +BattleIntroSlidingPics: ; 4e980 ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a call .subfunction1 ld a, rSCX - $ff00 - ld [hLCDStatCustom], a + ld [hFFC6], a call .subfunction2 xor a - ld [hLCDStatCustom], a + ld [hFFC6], a pop af ld [rSVBK], a ret @@ -62,7 +62,7 @@ endr ; 4e9d6 .subfunction3: ; 4e9d6 - ld hl, Sprites + 1 + ld hl, Sprites + 1 ; x pixel ld c, $12 ; 18 ld de, $4 .loop3 diff --git a/battle/trainer_huds.asm b/battle/trainer_huds.asm new file mode 100755 index 000000000..7a5e17bdd --- /dev/null +++ b/battle/trainer_huds.asm @@ -0,0 +1,269 @@ +BattleStart_TrainerHuds: ; 2c000 + ld a, $e4 + ld [rOBP0], a + call LoadBallIconGFX + call ShowPlayerMonsRemaining + ld a, [wBattleMode] + dec a + ret z + jp ShowOTTrainerMonsRemaining +; 2c012 + +EnemySwitch_TrainerHud: ; 2c012 + ld a, $e4 + ld [rOBP0], a + call LoadBallIconGFX + jp ShowOTTrainerMonsRemaining +; 2c01c + +ShowPlayerMonsRemaining: ; 2c01c + call DrawPlayerPartyIconHUDBorder + ld hl, PartyMon1HP + ld de, PartyCount + call StageBallTilesData + ; ldpixel wPlaceBallsX, 12, 12 + ld a, 12 * 8 + ld hl, wPlaceBallsX + ld [hli], a + ld [hl], a + ld a, 8 + ld [wPlaceBallsDirection], a + ld hl, Sprites + jp LoadTrainerHudOAM +; 2c03a + +ShowOTTrainerMonsRemaining: ; 2c03a + call DrawEnemyHUDBorder + ld hl, OTPartyMon1HP + ld de, OTPartyCount + call StageBallTilesData + ; ldpixel wPlaceBallsX, 9, 4 + ld hl, wPlaceBallsX + ld a, 9 * 8 + ld [hli], a + ld [hl], 4 * 8 + ld a, -8 + ld [wPlaceBallsDirection], a + ld hl, Sprites + PARTY_LENGTH * 4 + jp LoadTrainerHudOAM +; 2c059 + +StageBallTilesData: ; 2c059 + ld a, [de] + push af + ld de, Buffer1 + ld c, PARTY_LENGTH + ld a, $34 ; empty slot +.loop1 + ld [de], a + inc de + dec c + jr nz, .loop1 + pop af + ld de, Buffer1 +.loop2 + push af + call .GetHUDTile + inc de + pop af + dec a + jr nz, .loop2 + ret +; 2c075 + +.GetHUDTile: ; 2c075 + ld a, [hli] + and a + jr nz, .got_hp + ld a, [hl] + and a + ld b, $33 ; fainted + jr z, .fainted + +.got_hp +rept 3 + dec hl +endr + ld a, [hl] + and a + ld b, $32 ; statused + jr nz, .load + dec b ; normal + jr .load + +.fainted +rept 3 + dec hl +endr + +.load + ld a, b + ld [de], a + ld bc, PARTYMON_STRUCT_LENGTH + MON_HP - MON_STATUS + add hl, bc + ret +; 2c095 + +DrawPlayerHUDBorder: ; 2c095 + ld hl, .tiles + ld de, wTrainerHUDTiles + ld bc, 4 + call CopyBytes + hlcoord 18, 10 + ld de, -1 ; start on right + jr PlaceHUDBorderTiles + +.tiles + db $73 ; right side + db $77 ; bottom right + db $6f ; bottom left + db $76 ; bottom side +; 2c0ad + +DrawPlayerPartyIconHUDBorder: ; 2c0ad + ld hl, .tiles + ld de, wTrainerHUDTiles + ld bc, 4 + call CopyBytes + hlcoord 18, 10 + ld de, -1 ; start on right + jr PlaceHUDBorderTiles + +.tiles + db $73 ; right side + db $5c ; bottom right + db $6f ; bottom left + db $76 ; bottom side +; 2c0c5 + +DrawEnemyHUDBorder: ; 2c0c5 + ld hl, .tiles + ld de, wTrainerHUDTiles + ld bc, 4 + call CopyBytes + hlcoord 1, 2 + ld de, 1 ; start on left + call PlaceHUDBorderTiles + ld a, [wBattleMode] + dec a + ret nz + ld a, [TempEnemyMonSpecies] + dec a + call CheckCaughtMon + ret z + hlcoord 1, 1 + ld [hl], $5d + ret + +.tiles + db $6d ; left side + db $74 ; bottom left + db $78 ; bottom right + db $76 ; bottom side +; 2c0f1 + +PlaceHUDBorderTiles: ; 2c0f1 + ld a, [wTrainerHUDTiles] + ld [hl], a + ld bc, SCREEN_WIDTH + add hl, bc + ld a, [StartFlypoint] + ld [hl], a + ld b, $8 +.loop + add hl, de + ld a, [MovementBuffer] + ld [hl], a + dec b + jr nz, .loop + add hl, de + ld a, [EndFlypoint] + ld [hl], a + ret +; 2c10d + +LinkBattle_TrainerHuds: ; 2c10d + call LoadBallIconGFX + ld hl, PartyMon1HP + ld de, PartyCount + call StageBallTilesData + ld hl, wPlaceBallsX + ld a, 10 * 8 + ld [hli], a + ld [hl], 8 * 8 + ld a, $8 + ld [wPlaceBallsDirection], a + ld hl, Sprites + call LoadTrainerHudOAM + + ld hl, OTPartyMon1HP + ld de, OTPartyCount + call StageBallTilesData + ld hl, wPlaceBallsX + ld a, 10 * 8 + ld [hli], a + ld [hl], 13 * 8 + ld hl, Sprites + PARTY_LENGTH * 4 + jp LoadTrainerHudOAM +; 2c143 + +LoadTrainerHudOAM: ; 2c143 + ld de, Buffer1 + ld c, PARTY_LENGTH +.loop + ld a, [wPlaceBallsY] + ld [hli], a + ld a, [wPlaceBallsX] + ld [hli], a + ld a, [de] + ld [hli], a + ld a, $3 + ld [hli], a + ld a, [wPlaceBallsX] + ld b, a + ld a, [wPlaceBallsDirection] + add b + ld [wPlaceBallsX], a + inc de + dec c + jr nz, .loop + ret +; 2c165 + +LoadBallIconGFX: ; 2c165 + ld de, .gfx + ld hl, VTiles0 tile $31 + lb bc, BANK(LoadBallIconGFX), 4 + call Get2bpp_2 + ret +; 2c172 + +.gfx: ; 2c172 +INCBIN "gfx/battle/balls.2bpp" +; 2c1b2 + +_ShowLinkBattleParticipants: ; 2c1b2 + call ClearBGPalettes + call LoadFontsExtra + hlcoord 2, 3 + ld b, 9 + ld c, 14 + call TextBox + hlcoord 4, 5 + ld de, PlayerName + call PlaceString + hlcoord 4, 10 + ld de, OTPlayerName + call PlaceString + hlcoord 9, 8 + ld a, $69 ; "V" + ld [hli], a + ld [hl], $6a ; "S" + callba LinkBattle_TrainerHuds ; no need to callba + ld b, SCGB_08 + call GetSGBLayout + call SetPalettes + ld a, $e4 + ld [rOBP0], a + ret +; 2c1ef diff --git a/battle/used_move_text.asm b/battle/used_move_text.asm index dac38dbef..b526d1233 100755 --- a/battle/used_move_text.asm +++ b/battle/used_move_text.asm @@ -11,7 +11,6 @@ UsedMoveText: ; 105db9 text_jump _ActorNameText start_asm - ld a, [hBattleTurn] and a jr nz, .start @@ -67,30 +66,26 @@ UsedMoveText: ; 105db9 UsedMove1Text: ; 105e04 text_jump _UsedMove1Text start_asm - jr Function105e10 + jr UsedMoveText_CheckObedience ; 105e0b UsedMove2Text: ; 105e0b text_jump _UsedMove2Text start_asm -; 105e10 - -Function105e10: ; 105e10 +UsedMoveText_CheckObedience: ; 105e10 ; check obedience ld a, [AlreadyDisobeyed] and a - jr z, GetMoveNameText + jr z, .GetMoveNameText ; print "instead," - ld hl, UsedInsteadText + ld hl, .UsedInsteadText ret ; 105e1a -UsedInsteadText: ; 105e1a +.UsedInsteadText text_jump _UsedInsteadText start_asm -; 105e1f - -GetMoveNameText: ; 105e1f +.GetMoveNameText ld hl, MoveNameText ret ; 105e23 @@ -98,9 +93,6 @@ GetMoveNameText: ; 105e1f MoveNameText: ; 105e23 text_jump _MoveNameText start_asm -; 105e28 - -GetUsedMoveTextEnder: ; 105e28 ; get start address ld hl, .endusedmovetexts |