void do_boulder_dust(u8 taskId) { struct Struct_sub_8078914 subStruct; int var0 = 0; REG_BLDCNT = 0x3F42; REG_BLDALPHA = 0x1000; REG_BG1CNT_BITFIELD.priority = 1; REG_BG1CNT_BITFIELD.screenSize = 0; if (!IsContest()) REG_BG1CNT_BITFIELD.charBaseBlock = 1; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; REG_BG1HOFS = 0; REG_BG1VOFS = 0; sub_8078914(&subStruct); DmaFill32Defvars(3, 0, subStruct.field_4, 0x1000); LZDecompressVram(&gBattleAnimBackgroundTilemap_SandstormBrew, subStruct.field_4); LZDecompressVram(&gBattleAnimBackgroundImage_SandstormBrew, subStruct.field_0); LoadCompressedPalette(&gBattleAnimSpritePalette_261, subStruct.field_8 << 4, 32); if (IsContest()) sub_80763FC(subStruct.field_8, (u16 *)subStruct.field_4, 0, 0); if (gBattleAnimArgs[0] != 0 && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; gTasks[taskId].data[0] = var0; gTasks[taskId].func = sub_80DD190; }
void WallyHandleTrainerBallThrow(void) { u8 paletteNum; u8 taskId; oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBattler]]); gSprites[gBankSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBankSpriteIds[gActiveBattler]].data[2] = -40; gSprites[gBankSpriteIds[gActiveBattler]].data[4] = gSprites[gBankSpriteIds[gActiveBattler]].pos1.y; gSprites[gBankSpriteIds[gActiveBattler]].callback = StartTranslateAnimSpriteByDeltas; gSprites[gBankSpriteIds[gActiveBattler]].data[5] = gActiveBattler; StoreSpriteCallbackInData(&gSprites[gBankSpriteIds[gActiveBattler]], sub_8030E38); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); LoadCompressedPalette(gTrainerBackPicPaletteTable[2].data, 0x100 + paletteNum * 16, 32); gSprites[gBankSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_8139A2C, 5); gTasks[taskId].data[0] = gActiveBattler; if (ewram17810[gActiveBattler].unk0_0) gTasks[gUnknown_02024E68[gActiveBattler]].func = sub_8044CA0; ewram17810[4].unk9 |= 1; gBattleBankFunc[gActiveBattler] = nullsub_91; }