diff options
Diffstat (limited to 'battle')
-rw-r--r-- | battle/ai/items.asm | 4 | ||||
-rwxr-xr-x | battle/ai/move.asm | 222 | ||||
-rwxr-xr-x | battle/ai/redundant.asm | 198 | ||||
-rw-r--r-- | battle/anim_commands.asm | 434 | ||||
-rw-r--r-- | battle/anim_objects.asm | 6479 | ||||
-rw-r--r-- | battle/anims.asm | 4332 | ||||
-rw-r--r-- | battle/bg_effects.asm | 2419 | ||||
-rw-r--r-- | battle/core.asm | 471 | ||||
-rw-r--r-- | battle/effect_commands.asm | 94 | ||||
-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 | 4257 | ||||
-rwxr-xr-x | battle/objects/gfx_headers.asm | 52 | ||||
-rwxr-xr-x | battle/objects/library.asm | 130 | ||||
-rwxr-xr-x | battle/objects/oam.asm | 1086 | ||||
-rwxr-xr-x | battle/sliding_intro.asm | 4 | ||||
-rwxr-xr-x | battle/trainer_huds.asm | 269 |
19 files changed, 12305 insertions, 10421 deletions
diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 7c11e70b2..75245dd94 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 @@ -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..4596f19d4 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 @@ -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..bdb5c222c 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/library.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..b84c26ab1 100644 --- a/battle/bg_effects.asm +++ b/battle/bg_effects.asm @@ -1,62 +1,71 @@ + 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 @@ -70,71 +79,71 @@ endr 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 +151,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 +164,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 +223,132 @@ Functionc80fb: ; c80fb (32:40fb) ld h, 0 add hl, de ld a, [hl] - ld [wcfc7], a + ld [wBGP], a ret -Functionc812d: ; c812d (32:412d) +BattleBGEffect_WhiteHues: ; c812d (32:412d) ld de, Unknown_c813d call Functionc8d57 jr c, .asm_c8139 - ld [wcfc7], a + ld [wBGP], a ret + .asm_c8139 call EndBattleBGEffect ret + ; c813d (32:413d) Unknown_c813d: db $e4, $e0, $d0, $ff ; c8141 -Functionc8141: ; c8141 (32:4141) +BattleBGEffect_BlackHues: ; c8141 (32:4141) ld de, Unknown_c8151 call Functionc8d57 jr c, .asm_c814d - ld [wcfc7], a + ld [wBGP], a ret + .asm_c814d call EndBattleBGEffect ret + ; c8151 (32:4151) Unknown_c8151: db $e4, $f4, $f8, $ff ; c8155 -Functionc8155: ; c8155 (32:4155) +BattleBGEffect_AlternateHues: ; c8155 (32:4155) ld de, Unknown_c8168 call Functionc8d57 jr c, .asm_c8164 - ld [wcfc7], a - ld [wcfc9], a + ld [wBGP], a + ld [wOBP1], a ret + .asm_c8164 call EndBattleBGEffect ret + ; c8168 (32:4168) Unknown_c8168: db $e4, $f8, $fc, $f8, $e4, $90, $40, $90, $fe ; 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 +BattleBGEffect_06: ; c8171 (32:4171) + call BattleBGEffects_CheckSGB + jr nz, .sgb + ld de, .PalsCGB + jr .okay + +.sgb + ld de, .PalsSGB +.okay call Functionc8d57 - ld [wcfc8], a + ld [wOBP0], a ret -; c8185 (32:4185) -Unknown_c8185: +.PalsCGB db $e4, $90, $fe -; c8188 - -Unknown_c8188: +.PalsSGB db $f0, $c0, $fe ; 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 +BattleBGEffect_07: ; c818b (32:418b) + call BattleBGEffects_CheckSGB + jr nz, .sgb + ld de, .PalsCGB + jr .okay + +.sgb + ld de, .PalsSGB +.okay call Functionc8d57 - ld [wcfc8], a + ld [wOBP0], a ret -; c819f (32:419f) -Unknown_c819f: +.PalsCGB db $e4, $d8, $fe -; c81a2 - -Unknown_c81a2: +.PalsSGB db $f0, $cc, $fe ; c81a5 -Functionc81a5: ; c81a5 (32:41a5) - ld de, Unknown_c81af +BattleBGEffect_08: ; c81a5 (32:41a5) + ld de, .Pals call Functionc8d57 - ld [wcfc7], a + ld [wBGP], a ret -; c81af (32:41af) -Unknown_c81af: +.Pals db $1b, $63, $87, $fe ; c81b3 -Functionc81b3: ; c81b3 (32:41b3) - call Functionc80d7 ; ; ; call does not return +BattleBGEffect_HideMon: ; c81b3 (32:41b3) + call BattleBGEffects_AnonJumptable +.anon_jumptable + 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 +357,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_jumptable + 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_B8 + ld [wBattleAnimTemp0], a + ld a, 16 * 8 + 4 + jr .okay + +.player_turn + ld a, ANIM_OBJ_B9 + 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_jumptable + 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_jumptable + 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_jumptable + 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,9 +765,10 @@ Functionc843b: ; c843b (32:443b) swap a and $f ld b, a +; get coords ld e, [hl] ld d, 0 - ld hl, Unknown_c849c + ld hl, .Coords rept 2 add hl, de endr @@ -767,12 +779,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,17 +797,20 @@ 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 + ld hl, .Coords rept 2 add hl, de endr @@ -802,68 +818,68 @@ endr 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 +887,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_jumptable + 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) +.one ld a, [hLCDStatCustom] 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 +.loop2 ld a, [hLCDStatCustom + 1] 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 +965,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 +BattleBGEffect_Whirlpool: ; c8599 (32:4599) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw .one + dw .two -Jumptable_c859c: ; c859c (32:459c) - dw Functionc85a2 - dw Functionc85ba - dw Functionc85be - -Functionc85a2: ; c85a2 (32:45a2) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 ld [hLCDStatCustom], a xor a ld [hLCDStatCustom + 1], a ld a, $5e ld [hLCDStatCustom + 2], a - ld de, $202 + 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 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,236 +1019,233 @@ 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 + jr nc, .done rept 2 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_jumptable + 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 xor a ld [hLCDStatCustom + 1], a ld a, $5f ld [hLCDStatCustom + 2], a - ld de, $605 + 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_jumptable + 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 + 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_jumptable + 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 + 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_jumptable + 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] inc a ld [hLCDStatCustom + 2], a - ld hl, $2 + 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 h, LYOverridesBackup / $100 ld a, [hLCDStatCustom + 1] ld l, a ld a, [hLCDStatCustom + 2] 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 +BattleBGEffect_AcidArmor: ; c8709 (32:4709) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw .one + dw .two -Jumptable_c870c: ; c870c (32:470c) - dw Functionc8712 - dw Functionc8732 - dw Functionc875d - -Functionc8712: ; c8712 (32:4712) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 call Functionc8ede - ld hl, $3 + 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] @@ -1245,30 +1255,30 @@ Functionc8712: ; c8712 (32:4712) ld [hl], $0 ret -Functionc8732: ; c8732 (32:4732) +.one ld a, [hLCDStatCustom + 2] 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] cp l - jr nz, .asm_c873a + jr nz, .loop ld [hl], $90 ld a, [hLCDStatCustom + 2] 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 +1288,233 @@ 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 +BattleBGEffect_21: ; c8761 (32:4761) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw .one + dw .two -Jumptable_c8764: ; c8764 (32:4764) - dw Functionc876a - dw Functionc8781 - dw Functionc87a3 - -Functionc876a: ; c876a (32:476a) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 call Functionc8ede ld a, [hLCDStatCustom + 2] inc a ld [hLCDStatCustom + 2], a - ld hl, $2 + 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 - -Jumptable_c87aa: ; c87aa (32:47aa) - dw Functionc87b2 - dw Functionc87cf - dw Functionc87de - dw Functionc8801 +BattleBGEffect_Dig: ; c87a7 (32:47a7) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw .one + dw .two + dw .three -Functionc87b2: ; c87b2 (32:47b2) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $42 call Functionc8ede ld a, [hLCDStatCustom + 2] inc a ld [hLCDStatCustom + 2], a - ld hl, $2 + 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) +.next + ld [hl], $10 + call BattleBGEffects_IncrementJumptable +.two ld a, [hLCDStatCustom + 1] ld l, a ld a, [hLCDStatCustom + 2] 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 ret -Functionc8801: ; c8801 (32:4801) - call Functionc8f0a +.three + call BattleAnim_ResetLCDStatCustom ret -Functionc8805: ; c8805 (32:4805) - call Functionc80d7 ; ; ; call does not return - -Jumptable_c8808: ; c8808 (32:4808) - dw Functionc8810 - dw Functionc8869 - dw Functionc8888 - dw Functionc8833 +BattleBGEffect_Tackle: ; c8805 (32:4805) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw Tackle_BGEffect25_2d_one + dw Tackle_BGEffect25_2d_two + dw .three -Functionc8810: ; c8810 (32:4810) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 call Functionc8ede ld a, [hLCDStatCustom + 2] inc a ld [hLCDStatCustom + 2], a - ld hl, $3 + 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 +BattleBGEffect_25: ; c8837 (32:4837) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw Tackle_BGEffect25_2d_one + dw Tackle_BGEffect25_2d_two + dw .three -Jumptable_c883a: ; c883a (32:483a) - dw Functionc8842 - dw Functionc8869 - dw Functionc8888 - dw Functionc8865 - -Functionc8842: ; c8842 (32:4842) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 call Functionc8ef4 ld a, [hLCDStatCustom + 2] inc a ld [hLCDStatCustom + 2], a - ld hl, $3 + 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,14 +1524,15 @@ 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 + +.rollout ld a, [hLCDStatCustom + 1] ld d, a ld a, [hLCDStatCustom + 2] @@ -1532,296 +1541,289 @@ Functionc88a5: ; c88a5 (32:48a5) ld h, LYOverridesBackup / $100 ld a, [hSCY] or a - jr nz, .asm_c88d0 + jr nz, .skip1 ld a, [hLCDStatCustom + 1] or a - jr z, .asm_c88d6 + jr z, .skip2 dec a ld l, a ld [hl], $0 - jr .asm_c88d6 -.asm_c88d0 + jr .skip2 + +.skip1 ld a, [hLCDStatCustom + 2] dec a ld l, a ld [hl], $0 -.asm_c88d6 +.skip2 ld a, [hSCY] ld l, a ld a, [hLCDStatCustom + 1] 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 - -Jumptable_c88ea: ; c88ea (32:48ea) - dw Functionc88f6 - dw Functionc8869 - dw Functionc8888 - dw Functionc88f2 +BattleBGEffect_2d: ; c88e7 (32:48e7) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw BGEffect2d_2f_zero + dw Tackle_BGEffect25_2d_one + dw Tackle_BGEffect25_2d_two + dw .three -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] inc a ld [hLCDStatCustom + 2], a - ld hl, $3 + 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_jumptable + 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_jumptable + 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] inc a ld [hLCDStatCustom + 2], a - ld hl, $3 + 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_jumptable + 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] inc a ld [hLCDStatCustom + 2], 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_jumptable + 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 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_jumptable + 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] inc a ld [hLCDStatCustom + 2], a - ld hl, $2 + 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 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_jumptable + 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] @@ -1830,72 +1832,75 @@ Functionc8a49: ; c8a49 (32:4a49) ld a, [hLCDStatCustom + 1] ld l, a ld h, $d2 -.asm_c8a60 +.loop ld a, [hLCDStatCustom + 2] 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] inc a ld [hLCDStatCustom + 1], a - call Functionc80e5 + call BattleBGEffects_IncrementJumptable ret -Functionc8a88: ; c8a88 (32:4a88) - call Functionc8ab0 - jr nc, .asm_c8a96 - call Functionc8a9a +.three + call .GetLYOverride + jr nc, .finish + call .SetLYOverridesBackup ld a, [hLCDStatCustom + 2] 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 l, a ld a, [hLCDStatCustom + 2] sub l srl a - ld h, $d2 -.asm_c8aa5 + ld h, LYOverridesBackup / $100 +.loop2 ld [hl], e rept 2 inc hl endr dec a - jr nz, .asm_c8aa5 + jr nz, .loop2 ret -Functionc8aac: ; c8aac (32:4aac) +.five call Functionc8f19 ret -Functionc8ab0: ; c8ab0 (32:4ab0) - ld hl, $3 +.GetLYOverride + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] inc [hl] @@ -1904,37 +1909,36 @@ 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 +BattleBGEffect_2b: ; c8acc (32:4acc) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw .one -Jumptable_c8acf: ; c8acf (32:4acf) - dw Functionc8ad3 - dw Functionc8ae5 - -Functionc8ad3: ; c8ad3 (32:4ad3) - call Functionc80e5 - call Functionc8eca +.zero + call BattleBGEffects_IncrementJumptable + call BattleBGEffects_ClearLYOverrides ld a, $43 call Functionc8ede - ld hl, $2 + 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 @@ -1948,26 +1952,26 @@ Functionc8ae5: ; c8ae5 (32:4ae5) ld e, a call Functionc8f2e ret + .asm_c8afc - call Functionc8f0a + 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 + jr nz, .cgb + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw .one + dw .two -Jumptable_c8b08: ; c8b08 (32:4b08) - dw Functionc8b0e - dw Functionc8b22 - dw Functionc8b60 - -Functionc8b0e: ; c8b0e (32:4b0e) - call Functionc80e5 +.zero + call BattleBGEffects_IncrementJumptable ld a, $e4 - call Functionc8ecb + call BattleBGEffects_SetLYOverrides ld a, $47 ld [hLCDStatCustom], a xor a @@ -1976,8 +1980,8 @@ Functionc8b0e: ; c8b0e (32:4b0e) ld [hLCDStatCustom + 2], 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 +1996,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) +.two call Functionc8f19 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 +2073,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 +BattleBGEffect_VibrateMon: ; c8c61 (32:4c61) + call BattleBGEffects_AnonJumptable +.anon_jumptable + dw .zero + dw .one -Jumptable_c8c64: ; c8c64 (32:4c64) - dw Functionc8c68 - dw Functionc8c85 - -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] inc a ld [hLCDStatCustom + 2], a - ld hl, $2 + 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 +2237,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_jumptable + 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 xor a ld [hLCDStatCustom + 1], a ld a, $37 ld [hLCDStatCustom + 2], a - ld hl, $3 + 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 +2355,211 @@ 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 + 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 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 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] inc a ld [hLCDStatCustom + 2], a - ld hl, $3 + 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 + 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) +.two_dmg: ; c8dc9 (32:4dc9) call Functionc8f19 ld a, $e4 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 + 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 + 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 +2586,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 @@ -2616,7 +2614,7 @@ Functionc8e7f: ; c8e7f (32:4e7f) ret Functionc8eac: ; c8eac (32:4eac) - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld a, [hl] inc [hl] @@ -2631,43 +2629,44 @@ Functionc8eb2: ; c8eb2 (32:4eb2) cp $fe jr nz, .asm_c8ec6 ld a, [de] - ld hl, $3 + ld hl, BG_EFFECT_STRUCT_03 add hl, bc ld [hl], $0 .asm_c8ec6 and a ret + .asm_c8ec8 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 + jr nz, .loop2 ret Functionc8ede: ; c8ede (32:4ede) ld [hLCDStatCustom], a - call Functionc9038 + call BGEffect_CheckBattleTurn jr nz, .asm_c8eea ld de, $36 - jr .asm_c8eed + jr .okay + .asm_c8eea ld de, $2f5e -.asm_c8eed +.okay ld a, d ld [hLCDStatCustom + 1], a ld a, e @@ -2676,10 +2675,11 @@ Functionc8ede: ; c8ede (32:4ede) Functionc8ef4: ; c8ef4 (32:4ef4) ld [hLCDStatCustom], a - call Functionc9038 + call BGEffect_CheckBattleTurn jr nz, .asm_c8f00 ld de, $36 jr .asm_c8f03 + .asm_c8f00 ld de, $2d5e .asm_c8f03 @@ -2689,11 +2689,11 @@ Functionc8ef4: ; c8ef4 (32:4ef4) ld [hLCDStatCustom + 2], a ret -Functionc8f0a: ; c8f0a (32:4f0a) +BattleAnim_ResetLCDStatCustom: ; c8f0a (32:4f0a) xor a ld [hLCDStatCustom + 1], a ld [hLCDStatCustom + 2], a - call Functionc8eca + call BattleBGEffects_ClearLYOverrides xor a ld [hLCDStatCustom], a call EndBattleBGEffect @@ -2704,135 +2704,136 @@ Functionc8f19: ; c8f19 (32:4f19) ld [hLCDStatCustom], a ld a, $e4 ld [rBGP], a - ld [wcfc7], a - ld [wcfc9], a + ld [wBGP], a + ld [wOBP1], a ld [hLCDStatCustom + 1], a ld [hLCDStatCustom + 2], a - call Functionc8eca + 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 +.loop ld a, [hLCDStatCustom + 1] cp c - jr nc, .asm_c8f58 + jr nc, .next ld a, [hLCDStatCustom + 2] 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] cp c - jr c, .asm_c8fcf + jr c, .skip1 ld a, e ld [bc], a inc bc -.asm_c8fcf +.skip1 ld a, [hLCDStatCustom + 1] 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) +.GetLYOverrideBackupAddrOffset ld a, [hLCDStatCustom + 1] 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 l, a @@ -2843,19 +2844,19 @@ Functionc8fef: ; c8fef (32:4fef) ld a, [hLCDStatCustom + 2] 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 @@ -2899,43 +2900,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..09ebefee9 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 @@ -1892,26 +1889,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 @@ -2415,7 +2412,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,8 +2486,8 @@ 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 @@ -2506,7 +2503,7 @@ WinTrainerBattle: ; 3cfa4 jp Function3d02b .mobile - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames ld c, $4 @@ -2514,7 +2511,7 @@ WinTrainerBattle: ; 3cfa4 ret .battle_tower - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames call EmptyBattleTextBox @@ -2874,13 +2871,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 @@ -3111,7 +3108,7 @@ LostBattle: ; 3d38e hlcoord 0, 0 lb bc, 8, 21 call ClearBox - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames @@ -3128,7 +3125,7 @@ LostBattle: ; 3d38e hlcoord 0, 0 lb bc, 8, 21 call ClearBox - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames @@ -3180,7 +3177,7 @@ LostBattle: ; 3d38e hlcoord 0, 0 lb bc, 8, 21 call ClearBox - call Function3ebd8 + call BattleWinSlideInEnemyTrainerFrontpic ld c, 40 call DelayFrames @@ -3260,31 +3257,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 +3410,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 +3643,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,7 +3698,7 @@ OfferSwitch: ; 3d74b call StdBattleTextBox lb bc, 1, 7 call PlaceYesNoBox - ld a, [MenuSelection2] + ld a, [wMenuCursorY] dec a jr nz, .said_no call Function3d2f7 @@ -3764,8 +3761,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 +3770,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 +4267,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 +4460,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 +4475,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 +4508,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 +4539,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,15 +4552,15 @@ 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 @@ -4596,7 +4593,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 +4669,7 @@ UseHeldStatusHealingItem: ; 3dde9 ; 3de51 -HandleStatusHealingItem: ; 3de51 +UseConfusionHealingItem: ; 3de51 ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar bit SUBSTATUS_CONFUSED, a @@ -4692,7 +4689,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 @@ -4856,7 +4853,7 @@ DrawPlayerHUD: ; 3df58 lb bc, 5, 11 call ClearBox - callba DrawPlayerExpBar + callba DrawPlayerHUDBorder hlcoord 18, 9 ld [hl], $73 ; vertical bar @@ -4998,7 +4995,7 @@ DrawEnemyHUD: ; 3e043 lb bc, 4, 11 call ClearBox - callba Function2c0c5 + callba DrawEnemyHUDBorder ld a, [TempEnemyMonSpecies] ld [CurSpecies], a @@ -5228,11 +5225,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 +5258,7 @@ BattleMenu_Pack: ; 3e1c7 call DoItemEffect .got_item - call Function3e234 + call .UseItem ret .didnt_use_item @@ -5277,52 +5274,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,39 +5331,39 @@ Function3e290: call ExitMenu call LoadStandardMenuDataHeader call ClearBGPalettes -Function3e299: +BattleMenuPKMN_Loop: call Function3d2fa 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 @@ -5378,18 +5375,18 @@ Function3e299: 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 +5394,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 @@ -5459,9 +5456,6 @@ Function3e358: ; 3e358 call SetPalettes ld a, [CurPartyMon] ld [CurBattleMon], a - ; fallthrough -; 3e3ad - PlayerSwitch: ; 3e3ad ld a, 1 ld [wPlayerIsSwitching], a @@ -5551,7 +5545,7 @@ BattleMonEntrance: ; 3e40b call SetPlayerTurn call SpikesDamage ld a, $2 - ld [MenuSelection2], a + ld [wMenuCursorY], a ret ; 3e459 @@ -5581,7 +5575,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 +5661,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 +5671,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 +5694,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 +5726,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 +5738,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 +5763,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 +5779,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 +5809,26 @@ 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] + ld a, [wNumMoves] rept 2 inc a endr cp b jp nz, .menu_loop ld a, $1 - ld [MenuSelection2], a + ld [wMenuCursorY], a jp .menu_loop ; 3e643 @@ -5851,7 +5845,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 +5864,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 +5899,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 +5912,7 @@ endr ret .start_swap - ld a, [MenuSelection2] + ld a, [wMenuCursorY] ld [wMoveSwapBuffer], a jp MoveSelectionScreen ; 3e6c8 @@ -5940,7 +5934,7 @@ MoveInfoBox: ; 3e6c8 swap a and $f ld b, a - ld a, [MenuSelection2] + ld a, [wMenuCursorY] cp b jr nz, .not_disabled @@ -5950,11 +5944,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 +5961,7 @@ MoveInfoBox: ; 3e6c8 ld [MonType], a callab GetMaxPPOfMove - ld hl, MenuSelection2 + ld hl, wMenuCursorY ld c, [hl] inc [hl] ld b, 0 @@ -6537,7 +6531,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 +6708,7 @@ endr ld bc, PKMN_NAME_LENGTH call CopyBytes -; Caught this mon +; Saw this mon ld a, [TempEnemyMonSpecies] dec a ld c, a @@ -6874,7 +6868,7 @@ Function3ebc7: ; 3ebc7 ret ; 3ebd8 -Function3ebd8: ; 3ebd8 +BattleWinSlideInEnemyTrainerFrontpic: ; 3ebd8 xor a ld [TempEnemyMonSpecies], a call FinishBattleAnim @@ -6883,12 +6877,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 +6892,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 +6902,7 @@ Function3ebd8: ; 3ebd8 ld a, $1 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames pop hl pop bc @@ -6916,11 +6910,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 +6964,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 +6985,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 +7008,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 +7027,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 @@ -7423,6 +7417,7 @@ GiveExperiencePoints: ; 3ee3b and a pop bc jp z, .skip_stats + ld hl, MON_STAT_EXP + 1 add hl, bc ld d, h @@ -7534,7 +7529,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] @@ -7567,7 +7562,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 +7577,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 +7585,7 @@ endr ld a, d ld [hld], a -.max_exp +.not_max_exp xor a ; PARTYMON ld [MonType], a predef CopyPkmnToTempMon @@ -7604,7 +7599,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 +7621,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 +7707,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 +7720,7 @@ endr ld a, [CurPartyLevel] push af ld c, a - ld a, [wc719] + ld a, [wTempLevel] ld b, a .level_loop @@ -7767,35 +7762,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 @@ -7941,12 +7938,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 @@ -8401,7 +8398,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 +8434,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 +8478,7 @@ StartBattle: ; 3f4c1 ld a, [TimeOfDayPal] push af call BattleIntro - call SendOutFirstMons + call DoBattle call ExitBattle pop af ld [TimeOfDayPal], a @@ -8490,9 +8487,9 @@ StartBattle: ; 3f4c1 ; 3f4d9 -_SendOutFirstMons: ; 3f4d9 +_DoBattle: ; 3f4d9 ; unreferenced - call SendOutFirstMons + call DoBattle ret ; 3f4dd @@ -8531,7 +8528,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 +8557,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 +8567,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 +8583,7 @@ InitEnemyTrainer: ; 3f594 callba MobileFn_10606a xor a ld [TempEnemyMonSpecies], a - callab Function3957b + callab GetTrainerAttributes callab ReadTrainerParty ld a, [TrainerClass] @@ -8637,16 +8634,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 +8651,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 @@ -8746,7 +8743,7 @@ Function3f6a5: ; 3f6a5 ret nz call CheckPayDay xor a - ld [wd1e9], a + ld [wForceEvolution], a predef EvolveAfterBattle callba Function2ed44 ret @@ -8764,7 +8761,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 @@ -8812,7 +8809,7 @@ endr 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 @@ -8937,7 +8934,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 @@ -9427,7 +9424,7 @@ InitBattleDisplay: ; 3fb6c call WaitBGMap xor a ld [hBGMapMode], a - callba SlideBattlePics + callba BattleIntroSlidingPics ld a, $1 ld [hBGMapMode], a ld a, $31 @@ -9456,12 +9453,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 +9476,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 +9591,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 +9610,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 +9623,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 +9639,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..e7d4878bc 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -1,7 +1,7 @@ DoPlayerTurn: ; 34000 call SetPlayerTurn - ld a, [wd0ec] + ld a, [wPlayerAction] and a ret nz @@ -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 @@ -420,7 +420,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 +521,7 @@ CheckEnemyTurn: ; 3421f call StdBattleTextBox xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_CONFUSED call FarPlayBattleAnimation @@ -542,7 +542,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 +567,7 @@ CheckEnemyTurn: ; 3421f ld hl, InLoveWithText call StdBattleTextBox xor a - ld [wcfca], a + ld [wNumHits], a ld de, ANIM_IN_LOVE call FarPlayBattleAnimation @@ -656,7 +656,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 @@ -912,7 +912,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. @@ -2071,7 +2071,7 @@ BattleCommand_LowerSub: ; 34eee jr c, .mimic_anims xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a inc a ld [wKickCounter], a @@ -2125,7 +2125,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 @@ -2177,7 +2177,7 @@ BattleCommand_HitTargetNoSub: ; 34f60 pop af jp z, PlayFXAnimID xor a - ld [wcfca], a + ld [wNumHits], a jp PlayFXAnimID ; 34fd1 @@ -2208,7 +2208,7 @@ BattleCommand_StatDownAnim: ; 34fdb BattleCommand_StatUpDownAnim: ; 34feb - ld [wcfca], a + ld [wNumHits], a xor a ld [wKickCounter], a ld a, BATTLE_VARS_MOVE_ANIM @@ -2241,7 +2241,7 @@ BattleCommand_RaiseSub: ; 35004 jp c, BattleCommand_RaiseSubNoAnim xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, $2 ld [wKickCounter], a @@ -2599,7 +2599,7 @@ BattleCommand_CheckDestinyBond: ; 351c0 call BattleCommand_SwitchTurn xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a inc a ld [wKickCounter], a @@ -5254,7 +5254,7 @@ BattleCommand_BurnTarget: ; 3608c ; burntarget xor a - ld [wcfca], a + ld [wNumHits], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -5324,7 +5324,7 @@ BattleCommand_FreezeTarget: ; 36102 ; freezetarget xor a - ld [wcfca], a + ld [wNumHits], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -5379,7 +5379,7 @@ BattleCommand_ParalyzeTarget: ; 36165 ; paralyzetarget xor a - ld [wcfca], a + ld [wNumHits], a call CheckSubstituteOpp ret nz ld a, BATTLE_VARS_STATUS_OPP @@ -5584,12 +5584,12 @@ CheckIfStatCanBeRaised: ; 361ef StatUpAnimation: ; 36281 ld bc, wPlayerMinimized - ld hl, Function3f447 + ld hl, DropPlayerSub ld a, [hBattleTurn] and a jr z, .do_player ; 0x3628a $6 ld bc, wEnemyMinimized - ld hl, Function3f486 + ld hl, DropEnemySub .do_player ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar @@ -6174,11 +6174,11 @@ BattleCommand_RaiseSubNoAnim: ; 365af BattleCommand_LowerSubNoAnim: ; 365c3 - ld hl, Function3f447 + ld hl, DropPlayerSub ld a, [hBattleTurn] and a jr z, .PlayerTurn ; 365c9 $3 - ld hl, Function3f486 + ld hl, DropEnemySub .PlayerTurn xor a ld [hBGMapMode], a @@ -6549,7 +6549,7 @@ BattleCommand_Teleport: ; 36778 .run_away call UpdateBattleMonInParty xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wForcedSwitch], a ld [wKickCounter], a @@ -6617,7 +6617,7 @@ BattleCommand_ForceSwitch: ; 3680f .wild_force_flee call UpdateBattleMonInParty xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wForcedSwitch], a call SetBattleDraw @@ -6710,7 +6710,7 @@ BattleCommand_ForceSwitch: ; 3680f .wild_succeed_playeristarget call UpdateBattleMonInParty xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wForcedSwitch], a call SetBattleDraw @@ -7141,7 +7141,7 @@ BattleCommand_Charge: ; 36b4d call BattleCommand_LowerSub xor a - ld [wcfca], a + ld [wNumHits], a inc a ld [wKickCounter], a call LoadMoveAnim @@ -7496,14 +7496,14 @@ endr 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,11 +7513,11 @@ 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 @@ -7713,7 +7713,7 @@ endr jr c, .mobile xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld [wKickCounter], a ld a, SUBSTITUTE @@ -8234,7 +8234,7 @@ BattleCommand_Transform: ; 371cd call CheckHiddenOpponent jp nz, Function372d2 xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, $1 ld [wKickCounter], a @@ -8352,7 +8352,7 @@ endr call BattleCommand_RaiseSubNoAnim .after_anim xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, $2 ld [wKickCounter], a @@ -8546,7 +8546,7 @@ CheckSubstituteOpp: ; 37378 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 @@ -9025,7 +9025,7 @@ BatonPass_LinkPlayerSwitch: ; 37a67 ret z ld a, 1 - ld [wd0ec], a + ld [wPlayerAction], a call LoadStandardMenuDataHeader ld hl, LinkBattleSendReceiveAction @@ -9033,7 +9033,7 @@ BatonPass_LinkPlayerSwitch: ; 37a67 call WriteBackup xor a - ld [wd0ec], a + ld [wPlayerAction], a ret ; 37a82 @@ -9239,13 +9239,13 @@ BattleCommand_ClearHazards: ; 37b39 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 +9254,7 @@ BattleCommand_HealNite: ; 37b7c ; fallthrough ; 37b7e -BattleCommand_HealMorn6c: ; 37b7e +BattleCommand_TimeBasedHealContinue: ; 37b7e ; Time- and weather-sensitive heal. ld hl, BattleMonMaxHP @@ -9284,7 +9284,7 @@ BattleCommand_HealMorn6c: ; 37b7e ld a, [TimeOfDay] cp b jr z, .Weather - dec c + dec c ; double .Weather ld a, [Weather] @@ -9773,7 +9773,7 @@ PlayDamageAnim: ; 37e19 ld a, BATTLEANIM_PLAYER_DAMAGE .player - ld [wcfca], a + ld [wNumHits], a jp PlayUserBattleAnim ; 37e36 @@ -9781,7 +9781,7 @@ PlayDamageAnim: ; 37e19 LoadMoveAnim: ; 37e36 xor a - ld [wcfca], a + ld [wNumHits], a ld [FXAnimIDHi], a ld a, BATTLE_VARS_MOVE_ANIM @@ -9819,7 +9819,7 @@ PlayOpponentBattleAnim: ; 37e54 ld a, d ld [FXAnimIDHi], a xor a - ld [wcfca], a + ld [wNumHits], a push hl push de 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..cd4a6fb60 --- /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_B8 + battleanimobj $00, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, $00, $28 + +; ANIM_OBJ_B9 + 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..13e78b0b3 --- /dev/null +++ b/battle/objects/functions.asm @@ -0,0 +1,4257 @@ +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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + dw .zero + dw .one + dw .two + dw .three + dw .four + +.zero + call BattleAnim_IncAnonJumptableIndex + ld a, $42 + ld [hLCDStatCustom], a + ld a, $58 + ld [hLCDStatCustom + 1], a + ld a, $5e + ld [hLCDStatCustom + 2], 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 [hLCDStatCustom + 1], 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 [hLCDStatCustom + 1], 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 [hLCDStatCustom], a + ld [hLCDStatCustom + 1], a + ld [hLCDStatCustom + 2], a + +.four + call DeinitBattleAnimation + ret + +asm_cd6da: ; cd6da (33:56da) + inc a + inc a + ld [hl], a + sub $10 + ret c + ld [hLCDStatCustom + 1], a + ret + +BattleAnimFunction_0E: ; cd6e3 (33:56e3) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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_jumptable + 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/library.asm b/battle/objects/library.asm new file mode 100755 index 000000000..a692211d3 --- /dev/null +++ b/battle/objects/library.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..0611c91d9 100755 --- a/battle/sliding_intro.asm +++ b/battle/sliding_intro.asm @@ -1,4 +1,4 @@ -SlideBattlePics: ; 4e980 +BattleIntroSlidingPics: ; 4e980 ld a, [rSVBK] push af ld a, $5 @@ -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 |