diff options
Diffstat (limited to 'battle/objects/functions.asm')
-rwxr-xr-x | battle/objects/functions.asm | 212 |
1 files changed, 112 insertions, 100 deletions
diff --git a/battle/objects/functions.asm b/battle/objects/functions.asm index fbe48e558..4ed9b67b7 100755 --- a/battle/objects/functions.asm +++ b/battle/objects/functions.asm @@ -13,26 +13,26 @@ DoBattleAnimFrame: ; ccfbe ; ccfce .Jumptable: - dw BattleAnimFunction_00 ; 00 + dw BattleAnimFunction_Null ; 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_ThrowFromPlayerToEnemy ; 05 + dw BattleAnimFunction_ThrowFromPlayerToEnemyAndDisappear ; 06 dw BattleAnimFunction_07 ; 07 dw BattleAnimFunction_08 ; 08 dw BattleAnimFunction_09 ; 09 dw BattleAnimFunction_0A ; 0a - dw BattleAnimFunction_0B ; 0b + dw BattleAnimFunction_RazorLeaf ; 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_PokeBall ; 12 + dw BattleAnimFunction_PokeBallBlocked ; 13 dw BattleAnimFunction_14 ; 14 dw BattleAnimFunction_15 ; 15 dw BattleAnimFunction_16 ; 16 @@ -45,7 +45,7 @@ DoBattleAnimFrame: ; ccfbe dw BattleAnimFunction_1D ; 1d dw BattleAnimFunction_1E ; 1e dw BattleAnimFunction_1F ; 1f - dw BattleAnimFunction_20 ; 20 + dw BattleAnimFunction_LeechSeed ; 20 dw BattleAnimFunction_21 ; 21 dw BattleAnimFunction_22 ; 22 dw BattleAnimFunction_23 ; 23 @@ -54,9 +54,9 @@ DoBattleAnimFrame: ; ccfbe 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_SpiralDescent ; 29 + dw BattleAnimFunction_PoisonGas ; 2a + dw BattleAnimFunction_Horn ; 2b dw BattleAnimFunction_2C ; 2c dw BattleAnimFunction_2D ; 2d dw BattleAnimFunction_2E ; 2e @@ -94,7 +94,7 @@ DoBattleAnimFrame: ; ccfbe dw BattleAnimFunction_4E ; 4e dw BattleAnimFunction_4F ; 4f -BattleAnimFunction_00: ; cd06e (33:506e) +BattleAnimFunction_Null: ; cd06e (33:506e) call BattleAnim_AnonJumptable .anon_dw dw .zero @@ -104,34 +104,41 @@ BattleAnimFunction_00: ; cd06e (33:506e) .zero ret -BattleAnimFunction_06: ; cd079 (33:5079) - call BattleAnimFunction_05 +BattleAnimFunction_ThrowFromPlayerToEnemyAndDisappear: ; cd079 (33:5079) + call BattleAnimFunction_ThrowFromPlayerToEnemy ret c call DeinitBattleAnimation ret -BattleAnimFunction_05: ; cd081 (33:5081) +BattleAnimFunction_ThrowFromPlayerToEnemy: ; cd081 (33:5081) + ; If x coord at $88 or beyond, abort. ld hl, BATTLEANIMSTRUCT_XCOORD add hl, bc ld a, [hl] cp $88 ret nc + ; Move right 2 pixels add $2 ld [hl], a + ; Move down 1 pixel ld hl, BATTLEANIMSTRUCT_YCOORD add hl, bc dec [hl] + ; Decrease ??? and hold onto its previous value (argument of the sine function) ld hl, BATTLEANIMSTRUCT_0F add hl, bc ld a, [hl] dec [hl] + ; Get ???, which is the amplitude of the sine function ld hl, BATTLEANIMSTRUCT_0B add hl, bc ld d, [hl] call BattleAnim_Sine + ; Store the result in the Y offset ld hl, BATTLEANIMSTRUCT_YOFFSET add hl, bc ld [hl], a + ; Carry flag denotes success scf ret @@ -153,9 +160,10 @@ BattleAnimFunction_04: ; cd0a6 (33:50a6) ld hl, BATTLEANIMSTRUCT_0F add hl, bc ld a, [hl] -rept 4 inc [hl] -endr + inc [hl] + inc [hl] + inc [hl] ld d, $10 push af push de @@ -258,7 +266,7 @@ BattleAnimFunction_02: ; cd146 (33:5146) call DeinitBattleAnimation ret -BattleAnimFunction_12: ; cd15c (33:515c) +BattleAnimFunction_PokeBall: ; cd15c (33:515c) call BattleAnim_AnonJumptable .anon_dw dw .zero @@ -273,13 +281,13 @@ BattleAnimFunction_12: ; cd15c (33:515c) dw .nine dw .ten dw .eleven -.zero +.zero ; init call GetBallAnimPal call BattleAnim_IncAnonJumptableIndex ret .one - call BattleAnimFunction_05 + call BattleAnimFunction_ThrowFromPlayerToEnemy ret c ld hl, BATTLEANIMSTRUCT_YOFFSET add hl, bc @@ -288,14 +296,14 @@ BattleAnimFunction_12: ; cd15c (33:515c) add hl, bc add [hl] ld [hl], a - ld a, $b + ld a, BATTLEANIMFRAMESET_0B call ReinitBattleAnimFrameset call BattleAnim_IncAnonJumptableIndex ret .three call BattleAnim_IncAnonJumptableIndex - ld a, $9 + ld a, BATTLEANIMFRAMESET_09 call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_0F add hl, bc @@ -325,13 +333,13 @@ BattleAnimFunction_12: ; cd15c (33:515c) sub $4 ld [hl], a ret nz - ld a, $c + ld a, BATTLEANIMFRAMESET_0C call ReinitBattleAnimFrameset call BattleAnim_IncAnonJumptableIndex ret .six - ld a, $d + ld a, BATTLEANIMFRAMESET_0D call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX add hl, bc @@ -343,7 +351,7 @@ BattleAnimFunction_12: ; cd15c (33:515c) .seven call GetBallAnimPal - ld a, $a + ld a, BATTLEANIMFRAMESET_0A call ReinitBattleAnimFrameset call BattleAnim_IncAnonJumptableIndex ld hl, BATTLEANIMSTRUCT_10 @@ -375,7 +383,7 @@ BattleAnimFunction_12: ; cd15c (33:515c) call DeinitBattleAnimation ret -BattleAnimFunction_13: ; cd212 (33:5212) +BattleAnimFunction_PokeBallBlocked: ; cd212 (33:5212) call BattleAnim_AnonJumptable .anon_dw dw .zero @@ -392,7 +400,7 @@ BattleAnimFunction_13: ; cd212 (33:5212) ld a, [hl] cp $70 jr nc, .next - call BattleAnimFunction_05 + call BattleAnimFunction_ThrowFromPlayerToEnemy ret .next @@ -493,7 +501,7 @@ BattleAnimFunction_10: ; cd284 (33:5284) .three call BattleAnim_IncAnonJumptableIndex - ld a, $f + ld a, BATTLEANIMFRAMESET_0F call ReinitBattleAnimFrameset .four ret @@ -727,7 +735,7 @@ BattleAnimFunction_0A: ; cd3f2 (33:53f2) ld [hl], a cp $7 jr z, .seven - ld a, $11 + ld a, BATTLEANIMFRAMESET_11 call ReinitBattleAnimFrameset ret @@ -746,7 +754,7 @@ BattleAnimFunction_0A: ; cd3f2 (33:53f2) .set_up_eight call BattleAnim_IncAnonJumptableIndex - ld a, $10 + ld a, BATTLEANIMFRAMESET_10 call ReinitBattleAnimFrameset .eight ld hl, BATTLEANIMSTRUCT_0F @@ -801,7 +809,7 @@ BattleAnimFunction_0A: ; cd3f2 (33:53f2) .six ret -BattleAnimFunction_0B: ; cd478 (33:5478) +BattleAnimFunction_RazorLeaf: ; cd478 (33:5478) call BattleAnim_AnonJumptable .anon_dw dw .zero @@ -830,7 +838,7 @@ BattleAnimFunction_0B: ; cd478 (33:5478) add hl, bc ld [hli], a ld [hl], a - ld a, $17 + ld a, BATTLEANIMFRAMESET_17 call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_0B add hl, bc @@ -926,7 +934,7 @@ BattleAnimFunction_0B: ; cd478 (33:5478) ret .three - ld a, $16 + ld a, BATTLEANIMFRAMESET_16 call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_01 add hl, bc @@ -1077,7 +1085,7 @@ BattleAnimFunction_0C: ; cd5e9 (33:55e9) ld hl, BATTLEANIMSTRUCT_0F add hl, bc ld [hl], $0 - ld a, $22 + ld a, BATTLEANIMFRAMESET_22 call ReinitBattleAnimFrameset .two ld hl, BATTLEANIMSTRUCT_XCOORD @@ -1142,12 +1150,12 @@ BattleAnimFunction_0D: ; cd66a (33:566a) dw .four .zero call BattleAnim_IncAnonJumptableIndex - ld a, $42 - ld [hFFC6], a + ld a, rSCY - $ff00 + ld [hLCDCPointer], a ld a, $58 - ld [hFFC7], a + ld [hLYOverrideStart], a ld a, $5e - ld [hFFC8], a + ld [hLYOverrideEnd], a ret .one @@ -1161,7 +1169,7 @@ BattleAnimFunction_0D: ; cd66a (33:566a) jr nc, .asm_cd69b call BattleAnim_IncAnonJumptableIndex xor a - ld [hFFC7], a + ld [hLYOverrideStart], a ret .asm_cd69b @@ -1180,7 +1188,7 @@ BattleAnimFunction_0D: ; cd66a (33:566a) add [hl] sub $10 ret c - ld [hFFC7], a + ld [hLYOverrideStart], a ld hl, BATTLEANIMSTRUCT_XOFFSET add hl, bc ld a, [hl] @@ -1201,9 +1209,9 @@ BattleAnimFunction_0D: ; cd66a (33:566a) cp $70 jr c, asm_cd6da xor a - ld [hFFC6], a - ld [hFFC7], a - ld [hFFC8], a + ld [hLCDCPointer], a + ld [hLYOverrideStart], a + ld [hLYOverrideEnd], a .four call DeinitBattleAnimation ret @@ -1214,7 +1222,7 @@ asm_cd6da: ; cd6da (33:56da) ld [hl], a sub $10 ret c - ld [hFFC7], a + ld [hLYOverrideStart], a ret BattleAnimFunction_0E: ; cd6e3 (33:56e3) @@ -1226,8 +1234,8 @@ Functioncd6ea: ; cd6ea (33:56ea) call BattleAnim_IncAnonJumptableIndex ld hl, BATTLEANIMSTRUCT_0B add hl, bc - ld a, $24 - add [hl] + ld a, BATTLEANIMFRAMESET_24 + add [hl] ; offset call ReinitBattleAnimFrameset Functioncd6f7: ; cd6f7 (33:56f7) ld hl, BATTLEANIMSTRUCT_XCOORD @@ -1282,7 +1290,7 @@ Functioncd728: ; cd728 (33:5728) .asm_cd747 call BattleAnim_IncAnonJumptableIndex - ld a, $28 + ld a, BATTLEANIMFRAMESET_28 call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_YOFFSET add hl, bc @@ -1306,7 +1314,7 @@ Functioncd763: ; cd763 (33:5763) .asm_cd76e call BattleAnim_IncAnonJumptableIndex - ld a, $29 + ld a, BATTLEANIMFRAMESET_29 call ReinitBattleAnimFrameset Functioncd776: ; cd776 (33:5776) ret @@ -1419,7 +1427,7 @@ BattleAnimFunction_15: ; cd80c (33:580c) dw Functioncd820 Functioncd817: ; cd817 (33:5817) call BattleAnim_IncAnonJumptableIndex - ld a, $35 + ld a, BATTLEANIMFRAMESET_35 call ReinitBattleAnimFrameset Functioncd81f: ; cd81f (33:581f) ret @@ -1477,18 +1485,18 @@ Functioncd860: ; cd860 (33:5860) add hl, bc ld [hl], a bit 7, a - jr nz, .asm_cd87e + jr nz, .load_no_inc ld hl, BATTLEANIMSTRUCT_10 add hl, bc ld a, [hl] inc a - jr .asm_cd883 + jr .reinit -.asm_cd87e +.load_no_inc ld hl, BATTLEANIMSTRUCT_10 add hl, bc ld a, [hl] -.asm_cd883 +.reinit call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_0F add hl, bc @@ -1800,50 +1808,50 @@ Functioncda3a: ; cda3a (33:5a3a) Functioncda4c: ; cda4c (33:5a4c) ret -BattleAnimFunction_20: ; cda4d (33:5a4d) +BattleAnimFunction_LeechSeed: ; cda4d (33:5a4d) call BattleAnim_AnonJumptable .anon_dw - dw Functioncda58 - dw Functioncda62 - dw Functioncda7a - dw Functioncda8c -Functioncda58: ; cda58 (33:5a58) + dw .zero + dw .one + dw .two + dw .three +.zero: ; cda58 (33:5a58) call BattleAnim_IncAnonJumptableIndex ld hl, BATTLEANIMSTRUCT_10 add hl, bc ld [hl], $40 ret -Functioncda62: ; cda62 (33:5a62) +.one: ; cda62 (33:5a62) ld hl, BATTLEANIMSTRUCT_10 add hl, bc ld a, [hl] cp $20 - jr c, .asm_cda6f + jr c, .sprout call Functioncda8d ret -.asm_cda6f +.sprout ld [hl], $40 - ld a, $57 + ld a, BATTLEANIMFRAMESET_57 call ReinitBattleAnimFrameset call BattleAnim_IncAnonJumptableIndex ret -Functioncda7a: ; cda7a (33:5a7a) +.two: ; cda7a (33:5a7a) ld hl, BATTLEANIMSTRUCT_10 add hl, bc ld a, [hl] and a - jr z, .asm_cda84 + jr z, .flutter dec [hl] ret -.asm_cda84 +.flutter call BattleAnim_IncAnonJumptableIndex - ld a, $58 + ld a, BATTLEANIMFRAMESET_58 call ReinitBattleAnimFrameset -Functioncda8c: ; cda8c (33:5a8c) +.three: ; cda8c (33:5a8c) ret Functioncda8d: ; cda8d (33:5a8d) @@ -2124,7 +2132,7 @@ Functioncdc1a: ; cdc1a (33:5c1a) ret Functioncdc1e: ; cdc1e (33:5c1e) - ld a, $4e + ld a, BATTLEANIMFRAMESET_4E call ReinitBattleAnimFrameset call BattleAnim_IncAnonJumptableIndex ret @@ -2143,7 +2151,7 @@ Functioncdc27: ; cdc27 (33:5c27) ret Functioncdc39: ; cdc39 (33:5c39) - ld a, $50 + ld a, BATTLEANIMFRAMESET_50 call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_YOFFSET add hl, bc @@ -2152,7 +2160,7 @@ Functioncdc39: ; cdc39 (33:5c39) ret Functioncdc48: ; cdc48 (33:5c48) - ld a, $4f + ld a, BATTLEANIMFRAMESET_4F call ReinitBattleAnimFrameset call BattleAnim_IncAnonJumptableIndex ld hl, BATTLEANIMSTRUCT_0F @@ -2258,7 +2266,7 @@ Functioncdcca: ; cdcca (33:5cca) ld [hl], $8 ld hl, BATTLEANIMSTRUCT_0B add hl, bc - ld a, $59 + ld a, BATTLEANIMFRAMESET_59 add [hl] call ReinitBattleAnimFrameset ret @@ -2330,7 +2338,7 @@ Functioncdd31: ; cdd31 (33:5d31) and $80 rlca ld [hl], a - add $5d + add BATTLEANIMFRAMESET_5D call ReinitBattleAnimFrameset ret @@ -2456,7 +2464,7 @@ Functioncde02: ; cde02 (33:5e02) ld hl, BATTLEANIMSTRUCT_0B add hl, bc ld a, [hl] - add $63 + add BATTLEANIMFRAMESET_63 call ReinitBattleAnimFrameset ld hl, BATTLEANIMSTRUCT_0B add hl, bc @@ -2540,7 +2548,7 @@ Functioncde72: ; cde72 (33:5e72) add hl, bc set 6, [hl] .asm_cde83 - add $6a + add BATTLEANIMFRAMESET_6A call ReinitBattleAnimFrameset Functioncde88: ; cde88 (33:5e88) ret @@ -2578,7 +2586,7 @@ Functioncde90: ; cde90 (33:5e90) xor $ff inc a ld [hl], a - ld a, $6e + ld a, BATTLEANIMFRAMESET_6E call ReinitBattleAnimFrameset ret @@ -2606,7 +2614,7 @@ Functioncdebf: ; cdebf (33:5ebf) ld [hl], a ret -BattleAnimFunction_29: ; cdedd (33:5edd) +BattleAnimFunction_SpiralDescent: ; cdedd (33:5edd) ld hl, BATTLEANIMSTRUCT_0F add hl, bc ld a, [hl] @@ -2639,11 +2647,11 @@ BattleAnimFunction_29: ; cdedd (33:5edd) add hl, bc ld a, [hl] cp $28 - jr nc, .asm_cdf17 + jr nc, .delete inc [hl] ret -.asm_cdf17 +.delete call DeinitBattleAnimation ret @@ -2688,17 +2696,17 @@ BattleAnimFunction_2D: ; cdf1b (33:5f1b) call DeinitBattleAnimation ret -BattleAnimFunction_2A: ; cdf59 (33:5f59) +BattleAnimFunction_PoisonGas: ; cdf59 (33:5f59) call BattleAnim_AnonJumptable .anon_dw dw Functioncdf60 - dw BattleAnimFunction_29 + dw BattleAnimFunction_SpiralDescent Functioncdf60: ; cdf60 (33:5f60) ld hl, BATTLEANIMSTRUCT_XCOORD add hl, bc ld a, [hl] cp $84 - jr nc, .asm_cdf88 + jr nc, .next inc [hl] ld hl, BATTLEANIMSTRUCT_0F add hl, bc @@ -2719,7 +2727,7 @@ Functioncdf60: ; cdf60 (33:5f60) dec [hl] ret -.asm_cdf88 +.next call BattleAnim_IncAnonJumptableIndex ret @@ -2865,14 +2873,14 @@ Functionce05f: ; ce05f (33:605f) call DeinitBattleAnimation ret -BattleAnimFunction_2B: ; ce063 (33:6063) +BattleAnimFunction_Horn: ; ce063 (33:6063) call BattleAnim_AnonJumptable .anon_dw - dw Functionce06e - dw Functionce083 - dw Functionce091 + dw .zero + dw .one + dw .two dw Functionce09e -Functionce06e: ; ce06e (33:606e) +.zero: ; ce06e (33:606e) ld hl, BATTLEANIMSTRUCT_0B add hl, bc ld a, [hl] @@ -2887,7 +2895,7 @@ Functionce06e: ; ce06e (33:606e) ld [hl], a ret -Functionce083: ; ce083 (33:6083) +.one: ; ce083 (33:6083) ld hl, BATTLEANIMSTRUCT_XCOORD add hl, bc ld a, [hl] @@ -2897,7 +2905,7 @@ Functionce083: ; ce083 (33:6083) call Functionce70a ret -Functionce091: ; ce091 (33:6091) +.two: ; ce091 (33:6091) ld hl, BATTLEANIMSTRUCT_10 add hl, bc ld a, [hl] @@ -3395,7 +3403,7 @@ Functionce366: ; ce366 (33:6366) add hl, bc ld a, [hl] and $7f - add $81 + add BATTLEANIMFRAMESET_81 call ReinitBattleAnimFrameset Functionce375: ; ce375 (33:6375) ld hl, BATTLEANIMSTRUCT_0B @@ -3437,7 +3445,7 @@ Functionce39c: ; ce39c (33:639c) .asm_ce3a6 call BattleAnim_IncAnonJumptableIndex - ld a, $20 + ld a, BATTLEANIMFRAMESET_20 call ReinitBattleAnimFrameset Functionce3ae: ; ce3ae (33:63ae) ld hl, BATTLEANIMSTRUCT_YOFFSET @@ -3611,7 +3619,7 @@ Functionce4a3: ; ce4a3 (33:64a3) call BattleAnim_IncAnonJumptableIndex ld hl, BATTLEANIMSTRUCT_0B add hl, bc - ld a, $24 + ld a, BATTLEANIMFRAMESET_24 add [hl] call ReinitBattleAnimFrameset Functionce4b0: ; ce4b0 (33:64b0) @@ -3832,13 +3840,14 @@ BattleAnimFunction_48: ; ce5dc (33:65dc) add hl, bc ld a, [hl] cp $d0 - jr z, .asm_ce5ea -rept 4 + jr z, .disappear + dec [hl] + dec [hl] + dec [hl] dec [hl] -endr ret -.asm_ce5ea +.disappear call DeinitBattleAnimation ret @@ -3865,9 +3874,10 @@ Functionce60a: ; ce60a (33:660a) ld a, [hl] cp $4 jr z, Functionce618 -rept 4 inc [hl] -endr + inc [hl] + inc [hl] + inc [hl] ret Functionce618: ; ce618 (33:6618) @@ -3883,9 +3893,10 @@ Functionce622: ; ce622 (33:6622) ld a, [hl] cp $d8 ret z -rept 4 dec [hl] -endr + dec [hl] + dec [hl] + dec [hl] ret BattleAnimFunction_4A: ; ce62f (33:662f) @@ -4085,6 +4096,7 @@ BattleAnim_IncAnonJumptableIndex: ; ce72c (33:672c) BattleAnim_Cosine: ; ce732 (33:6732) add $10 BattleAnim_Sine: ; ce734 (33:6734) +; a = d sin a and $3f cp $20 jr nc, .negative |