void sub_80CEB0C(struct Sprite* sprite) { u8 index; u8 a; u8 b; sub_8078650(sprite); StartSpriteAnim(sprite, gBattleAnimArgs[0]); if ((index = IndexOfSpritePaletteTag(gUnknown_083D712C[gBattleAnimArgs[1]][0])) != 0xFF) sprite->oam.paletteNum = index; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = 0; sprite->data[3] = gBattleAnimArgs[2]; if (IsContest()) { a = 0x30; b = 0x28; } else { a = GetBattlerSpriteCoord(gAnimBankTarget, 2); b = GetBattlerSpriteCoord(gAnimBankTarget, 3); } sprite->data[4] = sprite->pos1.x << 4; sprite->data[5] = sprite->pos1.y << 4; sub_80CEBC4(a - sprite->pos1.x, b - sprite->pos1.y, &sprite->data[6], &sprite->data[7], 0x28); sprite->callback = sub_80CEC1C; }
void sub_80CAA14(struct Sprite* sprite) { u16 a = Random(); u16 b; StartSpriteAnim(sprite, a & 7); sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); if (GetBattlerSide(gAnimBankAttacker)) { sprite->pos1.x -= 20; } else { sprite->pos1.x += 20; } b = Random(); sprite->data[0] = (b & 31) + 64; sprite->data[1] = sprite->pos1.x; sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sub_8078D60(sprite); sprite->data[5] = Random() & 0xFF; sprite->data[6] = sprite->subpriority; sprite->callback = sub_80CAACC; sub_80CAACC(sprite); }
void sub_80CBDF4(u8 taskId) { struct Task *task = &gTasks[taskId]; task->data[4] = GetBattlerSubpriority(gBattleAnimTarget) - 1; task->data[6] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); task->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); task->data[10] = sub_807A100(gBattleAnimTarget, 1); task->data[11] = sub_807A100(gBattleAnimTarget, 0); task->data[5] = (GetBattlerSide(gBattleAnimTarget) == 1) ? 1 : -1; task->data[9] = 0x38 - (task->data[5] * 64); task->data[8] = task->data[7] - task->data[9] + task->data[6]; task->data[2] = CreateSprite(&gSpriteTemplate_83D6884, task->data[8], task->data[9], task->data[4]); if (task->data[2] == 0x40) DestroyAnimVisualTask(taskId); gSprites[task->data[2]].data[0] = 10; gSprites[task->data[2]].data[1] = task->data[8]; gSprites[task->data[2]].data[2] = task->data[6] - (task->data[10] / 2 + 10) * task->data[5]; gSprites[task->data[2]].data[3] = task->data[9]; gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5]; gSprites[task->data[2]].data[5] = sub_80CC338(&gSprites[task->data[2]]); InitAnimArcTranslation(&gSprites[task->data[2]]); task->func = sub_80CBF5C; }
void sub_80CA7B0(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, move_anim_8074EE0); }
void sub_80CA9A8(struct Sprite* sprite) { sub_8078764(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; sprite->data[2] = GetBattlerSpriteCoord(gAnimBankAttacker, 2); sprite->data[4] = GetBattlerSpriteCoord(gAnimBankAttacker, 3); sprite->data[5] = gBattleAnimArgs[2]; InitAnimSpriteTranslationOverDuration(sprite); sprite->callback = sub_80CA9F8; }
void sub_80CA800(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); StartSpriteAnim(sprite, gBattleAnimArgs[3]); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); sprite->callback = StartTranslateAnimSpriteByDeltas; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); }
void sub_80DD4D4(u8 taskId) { u16 var0, var1, var2, var3; u8 var4; int var5; s16 pan1, pan2; struct Task *task; task = &gTasks[taskId]; var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 24; var2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); var3 = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 24; if ((gBattleAnimAttacker ^ 2) == gBattleAnimTarget) var3 = var1; var4 = sub_80DD8BC(); if (var4 == 1) task->data[8] = 32; else task->data[8] = 48 - (var4 * 8); task->data[0] = 0; task->data[11] = 0; task->data[9] = 0; task->data[12] = 1; var5 = task->data[8]; if (var5 < 0) var5 += 7; task->data[10] = (var5 >> 3) - 1; task->data[2] = var0 * 8; task->data[3] = var1 * 8; task->data[4] = ((var2 - var0) * 8) / task->data[8]; task->data[5] = ((var3 - var1) * 8) / task->data[8]; task->data[6] = 0; task->data[7] = 0; pan1 = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER_NEG); pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[13] = pan1; task->data[14] = (pan2 - pan1) / task->data[8]; task->data[1] = var4; task->data[15] = GetAnimBattlerSpriteId(0); task->func = sub_80DD604; }
void sub_80CA858(struct Sprite* sprite) { InitAnimSpritePos(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; sprite->data[2] = GetBattlerSpriteCoord(gAnimBankTarget, 2); sprite->data[3] = sprite->pos1.y; sprite->data[4] = GetBattlerSpriteCoord(gAnimBankTarget, 3); InitAnimSpriteTranslationDeltas(sprite); sprite->data[5] = gBattleAnimArgs[3]; sprite->callback = sub_80CA8B4; sub_80CA8B4(sprite); }
void sub_80DD9A4(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; sprite->data[5] = gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[3]); sprite->callback = sub_80DD9FC; }
void sub_80CC474(struct Sprite* sprite) { u8 bank; if (!gBattleAnimArgs[6]) bank = gAnimBankAttacker; else bank = gAnimBankTarget; if (GetBattlerSide(bank) != 0) { sprite->data[4] = 0; sprite->data[2] = gBattleAnimArgs[3]; sprite->pos1.x = 0xFFF0; } else { sprite->data[4] = 1; sprite->data[2] = -gBattleAnimArgs[3]; sprite->pos1.x = 0x100; } sprite->data[1] = gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[3] = gBattleAnimArgs[4]; switch (gBattleAnimArgs[5]) { case 0: sprite->pos1.y = gBattleAnimArgs[0]; sprite->oam.priority = sub_8079ED4(bank); break; case 1: sprite->pos1.y = gBattleAnimArgs[0]; sprite->oam.priority = sub_8079ED4(bank) + 1; break; case 2: sprite->pos1.y = GetBattlerSpriteCoord(bank, 3) + gBattleAnimArgs[0]; sprite->oam.priority = sub_8079ED4(bank); break; case 3: sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankTarget, 3) + gBattleAnimArgs[0]; GetAnimBattlerSpriteId(1); sprite->oam.priority = sub_8079ED4(bank) + 1; break; } sprite->callback = sub_80CC580; }
void sub_80CEDF0(struct Sprite* sprite) { s16 a; if (gBattleAnimArgs[0] == 1) { sprite->oam.matrixNum = 8; a = 16; } else { a = -16; } sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + a; sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + 8; sprite->data[0] = 8; sprite->callback = WaitAnimForDuration; StoreSpriteCallbackInData(sprite, DestroyAnimSprite); }
void sub_80CECE8(struct Sprite* sprite) { int a; if (GetBattlerSide(gAnimBankAttacker) == 1) { a = gBattleAnimArgs[1]; (u16)gBattleAnimArgs[1] = -a; } sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2) + gBattleAnimArgs[1]; sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3) + gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[0]); sprite->data[2] = 0; sprite->data[3] = 0; sprite->data[4] = sprite->pos1.x << 4; sprite->data[5] = sprite->pos1.y << 4; sprite->data[6] = (gBattleAnimArgs[1] << 4) / 5; sprite->data[7] = (gBattleAnimArgs[2] << 7) / 5; sprite->callback = sub_80CED78; }
void sub_80CF3C4(struct Sprite* sprite) { u8 a; sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankAttacker, 2); sprite->pos1.y = GetBattlerSpriteCoord(gAnimBankAttacker, 3); a = gBankSpriteIds[gAnimBankTarget]; if (GetBattlerSide(gAnimBankAttacker) != 0) { sprite->pos1.x -= gBattleAnimArgs[0]; } else { sprite->pos1.x += gBattleAnimArgs[0]; } sprite->pos1.y += gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = a; sprite->callback = sub_80CF374; sprite->invisible = 1; }
void sub_80D0178(struct Sprite* sprite) { s16 r7 = 32; s16 r4 = -32; s16 r8 = 16; s16 r6 = -16; if (gBattleAnimArgs[0] != 0) { r7 = r4; r4 = 32; r8 = r6; r6 = 16; StartSpriteAnim(sprite, 1); } sprite->pos1.x += r7; sprite->pos1.y += r4; sprite->data[0] = 6; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + r8; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + r6; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData(sprite, sub_80D020C); }
void sub_81398BC(u8 bank) { u16 species; ewram17800[bank].transformedSpecies = 0; gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); GetMonSpriteTemplate_803C56C(species, GetBattlerPosition(bank)); gBankSpriteIds[bank] = CreateSprite( &gUnknown_02024E8C, GetBattlerSpriteCoord(bank, 2), sub_8077F68(bank), sub_8079E90(bank)); gSprites[gUnknown_0300434C[bank]].data[1] = gBankSpriteIds[bank]; gSprites[gBankSpriteIds[bank]].data[0] = bank; gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; gSprites[gUnknown_0300434C[bank]].data[0] = sub_8046400(0, 0xFF); }