mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-31 20:52:48 -05:00
resolve compiler errors
This commit is contained in:
parent
5c40e5ea21
commit
f1bd7a41cc
|
|
@ -2464,7 +2464,7 @@ gFile_graphics_battle_anims_masks_cure_bubbles_sheet:: @ 8D2DE3C
|
|||
.incbin "graphics/battle_anims/masks/cure_bubbles.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_battle_anims_masks_cure_bubbles_palette:: @ 8D2DF78
|
||||
gCureBubblesPal:: @ 8D2DF78
|
||||
.incbin "graphics/battle_anims/masks/cure_bubbles.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
|
|
|
|||
|
|
@ -197,8 +197,12 @@ void sub_80BCEF4(s32 bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *ar
|
|||
// battle_anim_special.s
|
||||
void sub_80F1720(u8 battler, struct Pokemon *mon);
|
||||
|
||||
// battle_anim_effects_1.s
|
||||
void AnimMoveTwisterParticle(struct Sprite *sprite);
|
||||
// battle_anim_effects_1.c
|
||||
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
|
||||
void AnimMoveTwisterParticle(struct Sprite* sprite);
|
||||
|
||||
// water.c
|
||||
void AnimWaterPulseRing(struct Sprite *sprite);
|
||||
|
||||
enum
|
||||
{
|
||||
|
|
@ -284,7 +288,7 @@ void sub_8075358(u32 bgId);
|
|||
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset);
|
||||
void InitAnimBgTilemapBuffer(u32 bgId, const void *src);
|
||||
void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src);
|
||||
u8 sub_8075454(void);
|
||||
u8 GetBattleBgPaletteNum(void);
|
||||
void sub_8075458(bool8 arg0);
|
||||
void sub_8075490(struct Sprite *sprite);
|
||||
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
|
||||
|
|
@ -451,6 +455,9 @@ void sub_80AD800(u8 taskId);
|
|||
extern const union AnimCmd *const gUnknown_83E5958[];
|
||||
extern const union AnimCmd *const gUnknown_83E5A78[];
|
||||
|
||||
// smokescreen.c
|
||||
u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
|
||||
|
||||
// battle_anim_utility_funcs.c
|
||||
void sub_80BA7F8(u8 taskId);
|
||||
void sub_80BA83C(u8 taskId);
|
||||
|
|
|
|||
|
|
@ -73,10 +73,18 @@
|
|||
#define TOTAL_OBJ_TILE_COUNT 1024
|
||||
|
||||
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
|
||||
#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
|
||||
#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
|
||||
|
||||
#define RGB_BLACK RGB(0, 0, 0)
|
||||
#define RGB_WHITE RGB(31, 31, 31)
|
||||
#define RGB_WHITEALPHA (0xFFFF)
|
||||
#define RGB_RED RGB(31, 0, 0)
|
||||
#define RGB_GREEN RGB(0, 31, 0)
|
||||
#define RGB_BLUE RGB(0, 0, 31)
|
||||
#define RGB_YELLOW RGB(31, 31, 0)
|
||||
#define RGB_MAGENTA RGB(31, 0, 31)
|
||||
#define RGB_CYAN RGB(0, 31, 31)
|
||||
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
|
||||
|
||||
#define NAKED __attribute__((naked))
|
||||
#define UNUSED __attribute__((unused))
|
||||
|
|
|
|||
|
|
@ -4215,6 +4215,7 @@ extern const u32 gBattleAnimSpritePal_CrossImpact[];
|
|||
extern const u32 gBattleAnimSpritePal_Slash2[];
|
||||
extern const u32 gBattleAnimSpritePal_WhipHit[];
|
||||
extern const u32 gBattleAnimSpritePal_BlueRing2[];
|
||||
extern const u32 gCureBubblesPal[];
|
||||
|
||||
// battle bg
|
||||
extern const u32 gBattleAnimBgImage_Dark[];
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
#include "sound.h"
|
||||
#include "trig.h"
|
||||
#include "util.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
// RAM
|
||||
|
|
@ -4373,7 +4372,7 @@ static void AnimLockOnTargetStep4(struct Sprite* sprite)
|
|||
sprite->data[1] = 0;
|
||||
}
|
||||
|
||||
BlendPalettes(sub_80A75AC(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31));
|
||||
BlendPalettes(sub_8075BE8(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB(31, 31, 31));
|
||||
if (sprite->data[1] == 16)
|
||||
{
|
||||
int pal;
|
||||
|
|
@ -5029,7 +5028,7 @@ void AnimTask_FadeScreenBlueStep(u8);
|
|||
|
||||
void AnimTask_FadeScreenBlue(u8 taskId)
|
||||
{
|
||||
int a = sub_80A75AC(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
|
||||
int a = sub_8075BE8(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
|
||||
int b;
|
||||
int c;
|
||||
int d;
|
||||
|
|
@ -5044,7 +5043,7 @@ void AnimTask_FadeScreenBlue(u8 taskId)
|
|||
gTasks[taskId].data[7] = 13;
|
||||
gTasks[taskId].data[8] = 14;
|
||||
gTasks[taskId].data[9] = 15;
|
||||
b = sub_80A76C4(1, 1, 1, 1);
|
||||
b = sub_8075CB8(1, 1, 1, 1);
|
||||
c = a | b;
|
||||
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
|
||||
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
#include "sound.h"
|
||||
#include "trig.h"
|
||||
#include "util.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
void sub_80A6E48(struct Sprite *);
|
||||
|
|
@ -344,7 +343,7 @@ const struct SpriteTemplate gWaterPulseRingSpriteTemplate = //gUnknown_83E3CE8
|
|||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gWaterPulseRingAffineAnimTable,
|
||||
.callback = AnimWaterPulseRing,
|
||||
.callback = sub_80AC6D8,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gEggThrowSpriteTemplate = //gUnknown_83E3D00
|
||||
|
|
@ -3096,7 +3095,7 @@ static void FakeOutStep2(u8 taskId)
|
|||
{
|
||||
gTasks[taskId].data[11] = 0x88;
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN);
|
||||
BlendPalettes(sub_80A75AC(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
|
||||
BlendPalettes(sub_8075BE8(1, 0, 0, 0, 0, 0, 0), 16, RGB(31, 31, 31));
|
||||
}
|
||||
else if (gTasks[taskId].data[10] > 4)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "bg.h"
|
||||
#include "contest.h"
|
||||
#include "data.h"
|
||||
#include "decompress.h"
|
||||
#include "dma3.h"
|
||||
|
|
@ -19,7 +18,6 @@
|
|||
#include "trig.h"
|
||||
#include "util.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/weather.h"
|
||||
|
|
@ -122,6 +120,10 @@ static void AnimRecycleStep(struct Sprite *);
|
|||
static void AnimTask_SlackOffSquishStep(u8);
|
||||
|
||||
// Data
|
||||
extern const u32 gUnknown_8D2A8C0[];
|
||||
extern const u32 gUnknown_8D2A808[];
|
||||
extern const u32 gUnknown_8D2A8A8[];
|
||||
|
||||
const union AnimCmd gScratchAnimCmds[] = //83FEDE4
|
||||
{
|
||||
ANIMCMD_FRAME(0, 4),
|
||||
|
|
@ -468,8 +470,8 @@ const union AffineAnimCmd *const gTriAttackTriangleAffineAnimTable[] = //83FF0D4
|
|||
|
||||
const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = //83FF0D8
|
||||
{
|
||||
.tileTag = ANIM_TAG_TRI_ATTACK_TRIANGLE,
|
||||
.paletteTag = ANIM_TAG_TRI_ATTACK_TRIANGLE,
|
||||
.tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE,
|
||||
.paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE,
|
||||
.oam = &gOamData_AffineDouble_ObjNormal_64x64,
|
||||
.anims = gTriAttackTriangleAnimTable,
|
||||
.images = NULL,
|
||||
|
|
@ -719,7 +721,7 @@ const struct SpriteTemplate gSweetScentPetalSpriteTemplate = //83FF324
|
|||
.callback = AnimSweetScentPetal,
|
||||
};
|
||||
|
||||
const u16 gUnknown_83FF33C[] = INCBIN_U16("graphics/unknown/unk_83FF33C.gbapal"); //Unused
|
||||
const u16 gUnknown_83FF33C[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused
|
||||
|
||||
const union AnimCmd gPainSplitAnimCmds[] = //83FF35C
|
||||
{
|
||||
|
|
@ -1214,7 +1216,7 @@ static void AnimBlackSmokeStep(struct Sprite *sprite)
|
|||
|
||||
void AnimTask_SmokescreenImpact(u8 taskId)
|
||||
{
|
||||
SmokescreenImpact(
|
||||
SmokescreenImpact( //sub_804A76C
|
||||
GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 8,
|
||||
GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 8,
|
||||
0);
|
||||
|
|
@ -2288,8 +2290,7 @@ void AnimTask_TransformMon(u8 taskId)
|
|||
break;
|
||||
case 2:
|
||||
HandleSpeciesGfxDataChange(gBattleAnimAttacker, gBattleAnimTarget, gTasks[taskId].data[10]);
|
||||
sub_80A6BFC(&animBg, gBattleAnimAttacker);
|
||||
|
||||
sub_8075300(&animBg, gBattleAnimAttacker);
|
||||
if (IsContest())
|
||||
position = 0;
|
||||
else
|
||||
|
|
@ -2297,40 +2298,8 @@ void AnimTask_TransformMon(u8 taskId)
|
|||
|
||||
src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
|
||||
dest = animBg.bgTiles;
|
||||
CpuCopy32(src, dest, 0x800);
|
||||
CpuSet(src, dest, 0x4000200);
|
||||
LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset);
|
||||
if (IsContest())
|
||||
{
|
||||
if (IsSpeciesNotUnown(gContestResources->field_18->species) != IsSpeciesNotUnown(gContestResources->field_18->unk2))
|
||||
{
|
||||
bgTilemap = (u16 *)animBg.bgTilemap;
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
u16 temp = bgTilemap[j + i * 0x20];
|
||||
bgTilemap[j + i * 0x20] = bgTilemap[(7 - j) + i * 0x20];
|
||||
bgTilemap[(7 - j) + i * 0x20] = temp;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 8; i++)
|
||||
{
|
||||
for (j = 0; j < 8; j++)
|
||||
{
|
||||
bgTilemap[j + i * 0x20] ^= 0x400;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (IsSpeciesNotUnown(gContestResources->field_18->unk2))
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF6C0;
|
||||
else
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].affineAnims = gUnknown_082FF694;
|
||||
|
||||
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0);
|
||||
}
|
||||
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
case 3:
|
||||
|
|
@ -2392,13 +2361,13 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
|
|||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
||||
|
||||
sub_80752A0
|
||||
sub_807543C
|
||||
sub_80753B4 //AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset);
|
||||
sub_80752A0(&animBg);
|
||||
AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_8D2A8C0);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_8D2A808, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_8D2A8A8, animBg.paletteId * 16, 32);
|
||||
if (IsContest())
|
||||
{
|
||||
sub_80730C0(animBg.paletteId, [sp+4 ???], 0, 0);
|
||||
sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0);
|
||||
gBattle_BG1_X = -56;
|
||||
}
|
||||
else
|
||||
|
|
@ -2410,30 +2379,6 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
|
|||
}
|
||||
|
||||
gBattle_BG1_Y = 0;
|
||||
|
||||
/*
|
||||
sub_80752A0(&animBg);
|
||||
sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0);
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
gBattle_BG1_X = -56;
|
||||
gBattle_BG1_Y = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
gBattle_BG1_X = -135;
|
||||
else
|
||||
gBattle_BG1_X = -10;
|
||||
|
||||
gBattle_BG1_Y = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
gTasks[taskId].data[10] = gBattle_BG1_X;
|
||||
gTasks[taskId].data[11] = gBattle_BG1_Y;
|
||||
|
||||
|
|
@ -2594,21 +2539,16 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
|
|||
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
|
||||
if (!IsContest())
|
||||
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
|
||||
|
||||
/*
|
||||
sub_80752A0(&animBg);
|
||||
sub_80A6D60(&animBg, &gUnknown_08C2A6EC, 0);
|
||||
*/
|
||||
|
||||
sub_80752A0( ,
|
||||
sub_807543C( , gUnknown_8D2A8C0
|
||||
sub_80753B4( , gUnknown_8D2A808
|
||||
LoadCompressedPalette(gUnknown_8D2A808
|
||||
//...
|
||||
|
||||
sub_80752A0(&animBg);
|
||||
AnimLoadCompressedBgTilemap(animBg.bgId, gUnknown_8D2A8C0);
|
||||
AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_8D2A808, animBg.tilesOffset);
|
||||
LoadCompressedPalette(gUnknown_8D2A8A8, animBg.paletteId * 16, 32);
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
gBattle_BG1_X = -56;
|
||||
sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 0);
|
||||
gBattle_BG1_X = -56;
|
||||
gBattle_BG1_Y = 0;
|
||||
}
|
||||
else
|
||||
|
|
@ -2636,8 +2576,6 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
|
|||
gBattle_BG1_Y = 0;
|
||||
}
|
||||
|
||||
//AnimLoadCompressedBgGfx(animBg.bgId, gUnknown_08C2A634, animBg.tilesOffset);
|
||||
//LoadCompressedPalette(gUnknown_08C2A6D4, animBg.paletteId * 16, 32);
|
||||
gTasks[taskId].data[10] = gBattle_BG1_X;
|
||||
gTasks[taskId].data[11] = gBattle_BG1_Y;
|
||||
gTasks[taskId].data[0]++;
|
||||
|
|
@ -3229,62 +3167,51 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
|
|||
s16 coord1, coord2;
|
||||
|
||||
GetAnimBattlerSpriteId(ANIM_ATTACKER);
|
||||
if (IsContest())
|
||||
{
|
||||
isBackPic = 1;
|
||||
personality = gContestResources->field_18->unk10;
|
||||
otId = gContestResources->field_18->unkC;
|
||||
species = gContestResources->field_18->unk2;
|
||||
xOffset = 20;
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
{
|
||||
isBackPic = 0;
|
||||
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
}
|
||||
else
|
||||
{
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
|
||||
}
|
||||
|
||||
xOffset = 20;
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
isBackPic = 1;
|
||||
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
}
|
||||
else
|
||||
{
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
|
||||
}
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
{
|
||||
isBackPic = 0;
|
||||
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
}
|
||||
else
|
||||
{
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
|
||||
}
|
||||
|
||||
xOffset = -20;
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
}
|
||||
xOffset = 20;
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
else
|
||||
{
|
||||
isBackPic = 1;
|
||||
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_SPECIES);
|
||||
}
|
||||
else
|
||||
{
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies;
|
||||
}
|
||||
|
||||
xOffset = -20;
|
||||
priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
|
||||
}
|
||||
|
||||
coord1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
|
||||
coord2 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
|
||||
spriteId = sub_80A8394(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
|
||||
spriteId = sub_80768D0(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
|
||||
|
||||
gSprites[spriteId].oam.priority = priority;
|
||||
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
|
||||
|
|
@ -5056,46 +4983,34 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
if (IsContest())
|
||||
{
|
||||
personality = gContestResources->field_18->unk8;
|
||||
otId = gContestResources->field_18->unkC;
|
||||
species = gContestResources->field_18->species;
|
||||
subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
|
||||
isBackPic = 0;
|
||||
x = -32;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
|
||||
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
|
||||
{
|
||||
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
|
||||
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
|
||||
|
||||
subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1;
|
||||
isBackPic = 0;
|
||||
x = 272;
|
||||
}
|
||||
else
|
||||
{
|
||||
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
|
||||
subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1;
|
||||
isBackPic = 0;
|
||||
x = 272;
|
||||
}
|
||||
else
|
||||
{
|
||||
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
|
||||
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
|
||||
else
|
||||
species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
|
||||
|
||||
subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1;
|
||||
isBackPic = 1;
|
||||
x = -32;
|
||||
}
|
||||
}
|
||||
subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1;
|
||||
isBackPic = 1;
|
||||
x = -32;
|
||||
}
|
||||
|
||||
spriteId2 = sub_80A8394(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0);
|
||||
spriteId2 = sub_80768D0(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies != SPECIES_NONE)
|
||||
BlendPalette((gSprites[spriteId2].oam.paletteNum * 16) | 0x100, 16, 6, RGB_WHITE);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_main.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_interface.h"
|
||||
#include "decompress.h"
|
||||
|
|
@ -19,7 +20,6 @@
|
|||
#include "constants/items.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/rgb.h"
|
||||
|
||||
// Defines
|
||||
#define TAG_PARTICLES_POKEBALL 55020
|
||||
|
|
@ -35,6 +35,9 @@
|
|||
#define TAG_PARTICLES_LUXURYBALL 55030
|
||||
#define TAG_PARTICLES_PREMIERBALL 55031
|
||||
|
||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||
#define LOHALF(n) ((n) & 0xFFFF)
|
||||
|
||||
// IWRAM
|
||||
EWRAM_DATA int gUnknown_3005424 = 0;
|
||||
EWRAM_DATA u16 gUnknown_3005428 = 0;
|
||||
|
|
@ -66,6 +69,8 @@ static void sub_80F05B4(u8);
|
|||
static void sub_80F0278(struct Sprite *);
|
||||
static void sub_80F0378(struct Sprite *);
|
||||
static void sub_80F04B4(struct Sprite *);
|
||||
static void sub_80F052C(struct Sprite *sprite);
|
||||
static void sub_80F0574(struct Sprite *sprite);
|
||||
static void PokeBallOpenParticleAnimation_Step1(struct Sprite *);
|
||||
static void PokeBallOpenParticleAnimation_Step2(struct Sprite *);
|
||||
static void DestroyBallOpenAnimationParticle(struct Sprite *);
|
||||
|
|
@ -94,6 +99,10 @@ static void PremierBallOpenParticleAnimation(u8);
|
|||
static void sub_80F1B3C(struct Sprite *);
|
||||
|
||||
// Data
|
||||
extern const u32 gUnknown_8D2EC24[];
|
||||
extern const u32 gUnknown_8D2EC70[];
|
||||
extern const struct SpriteTemplate gBallSpriteTemplates[]; //for now
|
||||
|
||||
struct BallCaptureSuccessStarData
|
||||
{
|
||||
s8 xOffset;
|
||||
|
|
@ -445,9 +454,9 @@ void sub_80EEC0C(u8 taskId)
|
|||
gSprites[spriteId3].callback = SpriteCallbackDummy;
|
||||
gSprites[spriteId4].callback = SpriteCallbackDummy;
|
||||
|
||||
sub_80A6B30(&unknownStruct);
|
||||
AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_08C2EA9C);
|
||||
AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_08C2EA50, unknownStruct.tilesOffset);
|
||||
sub_80752A0(&unknownStruct);
|
||||
AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_8D2EC70);
|
||||
AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_8D2EC24, unknownStruct.tilesOffset);
|
||||
LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32);
|
||||
|
||||
gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32;
|
||||
|
|
@ -492,7 +501,7 @@ static void sub_80EEDF4(u8 taskId)
|
|||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
|
||||
if (gTasks[taskId].data[12] == 0)
|
||||
{
|
||||
sub_80A477C(0);
|
||||
sub_8073128(0);
|
||||
gBattle_WIN0H = 0;
|
||||
gBattle_WIN0V = 0;
|
||||
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
|
||||
|
|
@ -518,7 +527,7 @@ static void sub_80EEDF4(u8 taskId)
|
|||
}
|
||||
}
|
||||
|
||||
static void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
|
||||
void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
|
||||
{
|
||||
u8 healthBoxSpriteId;
|
||||
u8 spriteId1, spriteId2;
|
||||
|
|
@ -547,7 +556,7 @@ void sub_80EF0B4(u8 taskId)
|
|||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
||||
static void sub_80EF0E0(u8 battler)
|
||||
void sub_80EF0E0(u8 battler)
|
||||
{
|
||||
u8 healthBoxSpriteId;
|
||||
u8 spriteId1, spriteId2;
|
||||
|
|
@ -666,8 +675,8 @@ void sub_80EF344(u8 taskId)
|
|||
y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1);
|
||||
priority = gSprites[spriteId].oam.priority;
|
||||
subpriority = gSprites[spriteId].subpriority;
|
||||
gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId);
|
||||
selectedPalettes = sub_80A75AC(1, 0, 0, 0, 0, 0, 0);
|
||||
gTasks[taskId].data[10] = LaunchBallStarsTask(x, y + 32, priority, subpriority, ballId);
|
||||
selectedPalettes = sub_8075BE8(1, 0, 0, 0, 0, 0, 0);
|
||||
gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId);
|
||||
gTasks[taskId].data[0]++;
|
||||
break;
|
||||
|
|
@ -764,25 +773,27 @@ void sub_80EF6D4(u8 taskId)
|
|||
u8 subpriority;
|
||||
u8 spriteId;
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL)
|
||||
{
|
||||
x = 32;
|
||||
x = 28;
|
||||
y = 11;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = 23;
|
||||
y = 5;
|
||||
y = 11;
|
||||
if (gSaveBlock2Ptr->playerGender == FEMALE)
|
||||
y = 13;
|
||||
}
|
||||
|
||||
ballId = ItemIdToBallId(gLastUsedItem);
|
||||
subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
|
||||
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x + 32, y | 80, subpriority);
|
||||
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x | 32, y | 80, subpriority);
|
||||
gSprites[spriteId].data[0] = 34;
|
||||
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
|
||||
gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) - 16;
|
||||
gSprites[spriteId].callback = SpriteCallbackDummy;
|
||||
gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8039E84;
|
||||
gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8012354;
|
||||
gTasks[taskId].data[0] = spriteId;
|
||||
gTasks[taskId].func = sub_80EF7EC;
|
||||
}
|
||||
|
|
@ -853,7 +864,7 @@ static void sub_80EF8F0(struct Sprite *sprite)
|
|||
switch (ballId)
|
||||
{
|
||||
case 0 ... POKEBALL_COUNT - 1:
|
||||
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
|
||||
LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
|
||||
LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId);
|
||||
break;
|
||||
}
|
||||
|
|
@ -1185,7 +1196,7 @@ static void sub_80EFFC4(struct Sprite *sprite)
|
|||
sprite->data[4]++;
|
||||
if (sprite->data[4] == 40)
|
||||
{
|
||||
PlaySE(SE_RG_GETTING);
|
||||
PlaySE(SE_GETTING);
|
||||
BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB(0, 0, 0));
|
||||
sub_80F01B8(sprite);
|
||||
}
|
||||
|
|
@ -1198,7 +1209,7 @@ static void sub_80EFFC4(struct Sprite *sprite)
|
|||
gDoingBattleAnim = 0;
|
||||
UpdateOamPriorityInAllHealthboxes(1);
|
||||
m4aMPlayAllStop();
|
||||
PlaySE(MUS_RG_FAN6);
|
||||
PlaySE(MUS_FAN6);
|
||||
}
|
||||
else if (sprite->data[4] == 315)
|
||||
{
|
||||
|
|
@ -1315,7 +1326,7 @@ static void sub_80F02B0(struct Sprite *sprite)
|
|||
switch (ballId)
|
||||
{
|
||||
case 0 ... POKEBALL_COUNT - 1:
|
||||
AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
|
||||
LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId);
|
||||
LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId);
|
||||
break;
|
||||
}
|
||||
|
|
@ -1391,7 +1402,23 @@ static void sub_80F04B4(struct Sprite *sprite)
|
|||
// GhostBallDodge
|
||||
static void sub_80F052C(struct Sprite *sprite)
|
||||
{
|
||||
// to do
|
||||
s16 x;
|
||||
s16 y;
|
||||
|
||||
x = sprite->pos1.x + sprite->pos2.x;
|
||||
sprite->pos1.x = x;
|
||||
y = sprite->pos1.y + sprite->pos2.y;
|
||||
sprite->pos1.y = y;
|
||||
sprite->pos2.x = sprite->pos2.y = 0;
|
||||
sprite->data[0] = 0x22;
|
||||
sprite->data[1] = x;
|
||||
sprite->data[2] = x - 8;
|
||||
sprite->data[3] = y;
|
||||
sprite->data[4] = 0x90;
|
||||
sprite->data[5] = 0x20;
|
||||
InitAnimArcTranslation(sprite);
|
||||
TranslateAnimVerticalArc(sprite);
|
||||
sprite->callback = sub_80F0574;
|
||||
}
|
||||
|
||||
static void sub_80F0574(struct Sprite *sprite)
|
||||
|
|
@ -1410,7 +1437,7 @@ static void sub_80F05B4(u8 ballId)
|
|||
}
|
||||
}
|
||||
|
||||
u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
|
||||
u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
|
|
@ -2217,7 +2244,7 @@ static void sub_80F1B3C(struct Sprite *sprite)
|
|||
sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), 1) + gBattleAnimArgs[3];
|
||||
sprite->data[5] = -32;
|
||||
InitAnimArcTranslation(sprite);
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8039E84;
|
||||
gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8012354;
|
||||
sprite->callback = sub_80F1BCC;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#include "trig.h"
|
||||
#include "util.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/pokemon.h"
|
||||
|
||||
// Function Declarations
|
||||
static u8 sub_8078178(u8 battlerId, bool8 b);
|
||||
|
|
@ -51,7 +51,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF3F8 =
|
|||
.anims = gSpriteAnimTable_83BF3F4,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80A8AEC,
|
||||
.callback = sub_8076F58,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_83BF410 =
|
||||
|
|
@ -62,7 +62,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF410 =
|
|||
.anims = gSpriteAnimTable_83BF3F4,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80A8A6C,
|
||||
.callback = sub_8076ED8,
|
||||
};
|
||||
|
||||
static const union AnimCmd gUnknown_83BF428[] =
|
||||
|
|
@ -84,7 +84,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF434 =
|
|||
.anims = gSpriteAnimTable_83BF430,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80A8E30,
|
||||
.callback = sub_807729C,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_83BF44C =
|
||||
|
|
@ -95,7 +95,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF44C =
|
|||
.anims = gSpriteAnimTable_83BF430,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80A8EE4,
|
||||
.callback = sub_8077350,
|
||||
};
|
||||
|
||||
static const union AnimCmd gUnknown_83BF464[] =
|
||||
|
|
@ -121,7 +121,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF480 =
|
|||
.anims = gSpriteAnimTable_83BF47C,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80A8B64,
|
||||
.callback = sub_8076FD0,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSpriteTemplate_83BF498 =
|
||||
|
|
@ -132,7 +132,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 =
|
|||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80A8AEC,
|
||||
.callback = sub_8076F58,
|
||||
};
|
||||
|
||||
static const union AnimCmd gUnknown_83BF4B0[] =
|
||||
|
|
@ -168,7 +168,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF4D4 =
|
|||
.anims = gSpriteAniimTable_83BF4C8,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80A8AEC,
|
||||
.callback = sub_8076F58,
|
||||
};
|
||||
|
||||
static const union AnimCmd gUnknown_83BF4EC[] =
|
||||
|
|
@ -202,10 +202,11 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 =
|
|||
.anims = gSpriteAnimTable_83BF4F4,
|
||||
.images = NULL,
|
||||
.affineAnims = gSpriteAffineAnimTable_83BF510,
|
||||
.callback = sub_80A8A6C,
|
||||
.callback = sub_8076ED8,
|
||||
};
|
||||
|
||||
static const u32 gUnknown_83BF52C = _("TASK OVER\nタスクがオーバーしました$");
|
||||
const u8 gUnknown_83BF52C[] = _("TASK OVER\n");
|
||||
const u8 gUnknown_83BF536[] = {0x60, 0x5D, 0x58, 0x37, 0x55, 0xAE, 0x96, 0xAE, 0x0C, 0x1F, 0x0C, 0x10, 0xFF}; //
|
||||
|
||||
static const struct Subsprite gSubsprites_83BF544[] =
|
||||
{
|
||||
|
|
@ -510,8 +511,8 @@ void AnimTask_StatsChange(u8 taskId)
|
|||
gBattleAnimArgs[2] = 0;
|
||||
gBattleAnimArgs[3] = 0;
|
||||
gBattleAnimArgs[4] = sharply;
|
||||
gTasks[taskId].func = sub_8116EB4;
|
||||
sub_8116EB4(taskId);
|
||||
gTasks[taskId].func = sub_80BB088;
|
||||
sub_80BB088(taskId);
|
||||
}
|
||||
|
||||
#undef CASE
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user