From 4fe6a8bd80ff947661aea391060207a53895338e Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 10 Feb 2018 23:49:54 -0800 Subject: Document battle anim things related to SWIFT and TWISTER --- src/battle/anim/sonic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/battle/anim/sonic.c') diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index 0897ec6e3..280943a67 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -29,7 +29,7 @@ void sub_80CF6DC(struct Sprite* sprite) gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } - sub_80787B0(sprite, 1); + InitAnimSpritePos(sprite, 1); a = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; b = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; c = sub_80790F0(a - sprite->pos1.x, b - sprite->pos1.y); -- cgit v1.2.3 From c775680d716299ae74cbcfb7eeb41c8982010021 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 11 Feb 2018 12:43:48 -0800 Subject: Document battle anim things related to STRENGTH, TACKLE, BODY_SLAM, and SUPERSONIC --- src/battle/anim/sonic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/battle/anim/sonic.c') diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index 280943a67..2808c86c2 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -41,7 +41,7 @@ void sub_80CF6DC(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = a; sprite->data[4] = b; - sprite->callback = sub_8078B34; + sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -- cgit v1.2.3 From 570d547ee7d3a57da026d2fac007036beaf80233 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Thu, 15 Mar 2018 08:12:14 -0700 Subject: Document PIN_MISSILE and ICICLE_SPEAR anims --- src/battle/anim/sonic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/battle/anim/sonic.c') diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index 2808c86c2..ff3ba9480 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -32,7 +32,7 @@ void sub_80CF6DC(struct Sprite* sprite) InitAnimSpritePos(sprite, 1); a = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; b = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - c = sub_80790F0(a - sprite->pos1.x, b - sprite->pos1.y); + c = ArcTan2Neg(a - sprite->pos1.x, b - sprite->pos1.y); c += 0xF000; if (IsContest()) c -= 0x6000; -- cgit v1.2.3 From 3c9552befdbd295b94a06fca31a4c03c667465b3 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 17 Mar 2018 11:44:32 -0700 Subject: More battle anim documentation --- src/battle/anim/sonic.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'src/battle/anim/sonic.c') diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c index ff3ba9480..1501f51f1 100644 --- a/src/battle/anim/sonic.c +++ b/src/battle/anim/sonic.c @@ -9,14 +9,18 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -// sonic (shoots a projectile towards the target.) -// Used in Sonic Boom and Air Cutter. - -void sub_80CF6DC(struct Sprite* sprite) +// Moves a projectile towards the target mon. The sprite is rotated to be pointing +// in the same direction it's moving. +// arg 0: initial x pixel offset +// arg 1: initial y pixel offset +// arg 2: target x pixel offset +// arg 3: target y pixel offset +// arg 4: duration +void AnimSonicBoomProjectile(struct Sprite* sprite) { - s16 a; - s16 b; - u16 c; + s16 targetXPos; + s16 targetYPos; + u16 rotation; if (IsContest()) { @@ -30,17 +34,17 @@ void sub_80CF6DC(struct Sprite* sprite) } InitAnimSpritePos(sprite, 1); - a = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; - b = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; - c = ArcTan2Neg(a - sprite->pos1.x, b - sprite->pos1.y); - c += 0xF000; + targetXPos = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2]; + targetYPos = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3]; + rotation = ArcTan2Neg(targetXPos - sprite->pos1.x, targetYPos - sprite->pos1.y); + rotation += 0xF000; if (IsContest()) - c -= 0x6000; + rotation -= 0x6000; - sub_8078FDC(sprite, 0, 0x100, 0x100, c); + sub_8078FDC(sprite, 0, 0x100, 0x100, rotation); sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = a; - sprite->data[4] = b; + sprite->data[2] = targetXPos; + sprite->data[4] = targetYPos; sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); } -- cgit v1.2.3