summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2021-10-18 01:39:07 -0400
committerGriffinR <griffin.g.richards@gmail.com>2021-10-18 01:56:24 -0400
commit46dd10c87ba7abf8c10e5ab604a7c21e9beaebc3 (patch)
tree94543a1a25675ab45e90b5465532d72d8b1cfdfb /src
parentdb8ce5d7f9429e4054267617896f66daa2f56633 (diff)
Clean up trainer_pokemon_sprites
Diffstat (limited to 'src')
-rw-r--r--src/hall_of_fame.c2
-rw-r--r--src/main_menu.c4
-rw-r--r--src/starter_choose.c2
-rw-r--r--src/trainer_pokemon_sprites.c96
4 files changed, 38 insertions, 66 deletions
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 3485f3ba3..571c55001 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -588,7 +588,7 @@ static void Task_Hof_DisplayMon(u8 taskId)
if (currMon->species == SPECIES_EGG)
destY += 10;
- spriteId = CreatePicSprite2(currMon->species, currMon->tid, currMon->personality, 1, startX, startY, currMonId, TAG_NONE);
+ spriteId = CreateMonPicSprite_Affine(currMon->species, currMon->tid, currMon->personality, MON_PIC_AFFINE_FRONT, startX, startY, currMonId, TAG_NONE);
gSprites[spriteId].tDestinationX = destX;
gSprites[spriteId].tDestinationY = destY;
gSprites[spriteId].data[0] = 0;
diff --git a/src/main_menu.c b/src/main_menu.c
index f6dff3d44..6553278e8 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1871,9 +1871,9 @@ static void SpriteCB_MovePlayerDownWhileShrinking(struct Sprite *sprite)
sprite->data[0] = y;
}
-static u8 NewGameBirchSpeech_CreateLotadSprite(u8 a, u8 b)
+static u8 NewGameBirchSpeech_CreateLotadSprite(u8 x, u8 y)
{
- return CreatePicSprite2(SPECIES_LOTAD, SHINY_ODDS, 0, 1, a, b, 14, -1);
+ return CreateMonPicSprite_Affine(SPECIES_LOTAD, SHINY_ODDS, 0, MON_PIC_AFFINE_FRONT, x, y, 14, TAG_NONE);
}
static void AddBirchSpeechObjects(u8 taskId)
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 37c334680..d14846130 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -635,7 +635,7 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y)
{
u8 spriteId;
- spriteId = CreatePicSprite2(species, SHINY_ODDS, 0, 1, x, y, 0xE, TAG_NONE);
+ spriteId = CreateMonPicSprite_Affine(species, SHINY_ODDS, 0, MON_PIC_AFFINE_FRONT, x, y, 14, TAG_NONE);
gSprites[spriteId].oam.priority = 0;
return spriteId;
}
diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c
index 9e30f636e..a7289677e 100644
--- a/src/trainer_pokemon_sprites.c
+++ b/src/trainer_pokemon_sprites.c
@@ -9,8 +9,6 @@
#include "pokemon.h"
#include "constants/trainers.h"
-// Static type declarations
-
struct PicData
{
u8 *frames;
@@ -20,33 +18,26 @@ struct PicData
u8 active;
};
-// Static RAM declarations
#define PICS_COUNT 8
static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {};
static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {};
-// Static ROM declarations
-
-// .rodata
-
static const struct PicData sDummyPicData = {};
-static const struct OamData gUnknown_0860B064 =
+static const struct OamData sOamData_Normal =
{
.shape = SPRITE_SHAPE(64x64),
.size = SPRITE_SIZE(64x64)
};
-static const struct OamData gUnknown_0860B06C =
+static const struct OamData sOamData_Affine =
{
.affineMode = ST_OAM_AFFINE_NORMAL,
.shape = SPRITE_SHAPE(64x64),
.size = SPRITE_SIZE(64x64)
};
-// .text
-
static void DummyPicSpriteCallback(struct Sprite *sprite)
{
@@ -153,19 +144,15 @@ static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFront
for (i = 0; i < PICS_COUNT; i ++)
{
if (!sSpritePics[i].active)
- {
break;
- }
}
if (i == PICS_COUNT)
- {
return 0xFFFF;
- }
+
framePics = Alloc(4 * 0x800);
if (!framePics)
- {
return 0xFFFF;
- }
+
images = Alloc(4 * sizeof(struct SpriteFrameImage));
if (!images)
{
@@ -183,7 +170,7 @@ static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFront
images[j].size = 0x800;
}
sCreatingSpriteTemplate.tileTag = TAG_NONE;
- sCreatingSpriteTemplate.oam = &gUnknown_0860B064;
+ sCreatingSpriteTemplate.oam = &sOamData_Normal;
AssignSpriteAnimsTable(isTrainer);
sCreatingSpriteTemplate.images = images;
sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
@@ -191,9 +178,7 @@ static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFront
LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, isTrainer);
spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0);
if (paletteTag == TAG_NONE)
- {
gSprites[spriteId].oam.paletteNum = paletteSlot;
- }
sSpritePics[i].frames = framePics;
sSpritePics[i].images = images;
sSpritePics[i].paletteTag = paletteTag;
@@ -207,39 +192,35 @@ static u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality,
return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
}
-u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
+u16 CreateMonPicSprite_Affine(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
{
u8 *framePics;
struct SpriteFrameImage *images;
int j;
u8 i;
u8 spriteId;
- u8 flags2;
+ u8 type;
- for (i = 0; i < PICS_COUNT; i ++)
+ for (i = 0; i < PICS_COUNT; i++)
{
if (!sSpritePics[i].active)
- {
break;
- }
}
if (i == PICS_COUNT)
- {
return 0xFFFF;
- }
- framePics = Alloc(4 * 0x800);
+
+ framePics = Alloc(4 * MON_PIC_SIZE);
if (!framePics)
- {
return 0xFFFF;
- }
- if (flags & 0x80)
+
+ if (flags & F_MON_PIC_NO_AFFINE)
{
- flags &= 0x7F;
- flags2 = 3;
+ flags &= ~F_MON_PIC_NO_AFFINE;
+ type = MON_PIC_AFFINE_NONE;
}
else
{
- flags2 = flags;
+ type = flags;
}
images = Alloc(4 * sizeof(struct SpriteFrameImage));
if (!images)
@@ -254,34 +235,32 @@ u16 CreatePicSprite2(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s1
}
for (j = 0; j < 4; j ++)
{
- images[j].data = framePics + 0x800 * j;
- images[j].size = 0x800;
+ images[j].data = framePics + MON_PIC_SIZE * j;
+ images[j].size = MON_PIC_SIZE;
}
sCreatingSpriteTemplate.tileTag = TAG_NONE;
sCreatingSpriteTemplate.anims = gMonFrontAnimsPtrTable[species];
sCreatingSpriteTemplate.images = images;
- if (flags2 == 0x01)
+ if (type == MON_PIC_AFFINE_FRONT)
{
sCreatingSpriteTemplate.affineAnims = gAffineAnims_BattleSpriteOpponentSide;
- sCreatingSpriteTemplate.oam = &gUnknown_0860B06C;
+ sCreatingSpriteTemplate.oam = &sOamData_Affine;
}
- else if (flags2 == 0x00)
+ else if (type == MON_PIC_AFFINE_BACK)
{
sCreatingSpriteTemplate.affineAnims = gAffineAnims_BattleSpritePlayerSide;
- sCreatingSpriteTemplate.oam = &gUnknown_0860B06C;
+ sCreatingSpriteTemplate.oam = &sOamData_Affine;
}
- else
+ else // MON_PIC_AFFINE_NONE
{
- sCreatingSpriteTemplate.oam = &gUnknown_0860B064;
+ sCreatingSpriteTemplate.oam = &sOamData_Normal;
sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
}
sCreatingSpriteTemplate.callback = DummyPicSpriteCallback;
LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, FALSE);
spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0);
if (paletteTag == TAG_NONE)
- {
gSprites[spriteId].oam.paletteNum = paletteSlot;
- }
sSpritePics[i].frames = framePics;
sSpritePics[i].images = images;
sSpritePics[i].paletteTag = paletteTag;
@@ -299,20 +278,15 @@ static u16 FreeAndDestroyPicSpriteInternal(u16 spriteId)
for (i = 0; i < PICS_COUNT; i ++)
{
if (sSpritePics[i].spriteId == spriteId)
- {
break;
- }
}
if (i == PICS_COUNT)
- {
return 0xFFFF;
- }
+
framePics = sSpritePics[i].frames;
images = sSpritePics[i].images;
if (sSpritePics[i].paletteTag != TAG_NONE)
- {
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
- }
DestroySprite(&gSprites[spriteId]);
Free(framePics);
Free(images);
@@ -320,12 +294,11 @@ static u16 FreeAndDestroyPicSpriteInternal(u16 spriteId)
return 0;
}
-static u16 sub_818D65C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer)
+static u16 LoadPicSpriteInWindow(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId, bool8 isTrainer)
{
if (DecompressPic_HandleDeoxys(species, personality, isFrontPic, (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA), FALSE))
- {
return 0xFFFF;
- }
+
LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer);
return 0;
}
@@ -360,9 +333,10 @@ u16 FreeAndDestroyMonPicSprite(u16 spriteId)
return FreeAndDestroyPicSpriteInternal(spriteId);
}
-u16 sub_818D834(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
+// Unused
+static u16 LoadMonPicInWindow(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
{
- return sub_818D65C(species, otId, personality, isFrontPic, paletteSlot, windowId, FALSE);
+ return LoadPicSpriteInWindow(species, otId, personality, isFrontPic, paletteSlot, windowId, FALSE);
}
// Unused, FRLG only
@@ -381,9 +355,10 @@ u16 FreeAndDestroyTrainerPicSprite(u16 spriteId)
return FreeAndDestroyPicSpriteInternal(spriteId);
}
-u16 sub_818D904(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
+// Unused
+static u16 LoadTrainerPicInWindow(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
{
- return sub_818D65C(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE);
+ return LoadPicSpriteInWindow(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE);
}
u16 CreateTrainerCardTrainerPicSprite(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId)
@@ -395,13 +370,10 @@ u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass)
{
if (getClass == TRUE)
{
- switch (gender)
- {
- default:
+ if (gender != MALE)
return gFacilityClassToPicIndex[FACILITY_CLASS_MAY];
- case MALE:
+ else
return gFacilityClassToPicIndex[FACILITY_CLASS_BRENDAN];
- }
}
return gender;
}