summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bag.c321
-rw-r--r--src/fame_checker.c8
-rw-r--r--src/seagallop.c4
-rw-r--r--src/trainer_pokemon_sprites.c324
4 files changed, 651 insertions, 6 deletions
diff --git a/src/bag.c b/src/bag.c
new file mode 100644
index 000000000..4386f5fdf
--- /dev/null
+++ b/src/bag.c
@@ -0,0 +1,321 @@
+#include "global.h"
+#include "task.h"
+#include "palette.h"
+#include "item_menu.h"
+#include "text.h"
+#include "window.h"
+#include "text_window.h"
+#include "menu_helpers.h"
+#include "menu.h"
+#include "money.h"
+#include "bag.h"
+
+extern const u8 gText_DepositItem[];
+
+const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
+const struct TextColor gUnknown_84530B8[] = {
+ {0, 1, 2},
+ {0, 2, 3},
+ {0, 3, 2},
+ {0, 8, 9}
+};
+const struct WindowTemplate gUnknown_84530C4[] = {
+ {
+ .priority = 0,
+ .tilemapLeft = 0x0b,
+ .tilemapTop = 0x01,
+ .width = 0x12,
+ .height = 0x0c,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x008a
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x05,
+ .tilemapTop = 0x0e,
+ .width = 0x19,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0162
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x01,
+ .width = 0x09,
+ .height = 0x02,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x01f8
+ }, DUMMY_WIN_TEMPLATE
+};
+const struct WindowTemplate gUnknown_84530E4[] = {
+ {
+ .priority = 0,
+ .tilemapLeft = 0x0b,
+ .tilemapTop = 0x01,
+ .width = 0x12,
+ .height = 0x0c,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x008a
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x05,
+ .tilemapTop = 0x0e,
+ .width = 0x19,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0162
+ }, {
+ .priority = 0,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x01,
+ .width = 0x08,
+ .height = 0x02,
+ .paletteNum = 0x0C,
+ .baseBlock = 0x01f8
+ }, DUMMY_WIN_TEMPLATE
+};
+const struct WindowTemplate gUnknown_8453104[] = {
+ {
+ .priority = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 15,
+ .width = 5,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x242
+ }, {
+ .priority = 0,
+ .tilemapLeft = 17,
+ .tilemapTop = 9,
+ .width = 12,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x242
+ }, {
+ .priority = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 8,
+ .height = 3,
+ .paletteNum = 0xC,
+ .baseBlock = 0x272
+ }
+};
+
+const struct WindowTemplate gUnknown_845311C = {
+ .priority = 0,
+ .tilemapLeft = 23,
+ .tilemapTop = 15,
+ .width = 6,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x28a
+};
+
+const struct WindowTemplate gUnknown_8453124 = {
+ .priority = 0,
+ .tilemapLeft = 21,
+ .tilemapTop = 9,
+ .width = 6,
+ .height = 4,
+ .paletteNum = 0xF,
+ .baseBlock = 0x28a
+};
+
+const struct WindowTemplate gUnknown_845312C[] = {
+ {
+ .priority = 0x00,
+ .tilemapLeft = 0x02,
+ .tilemapTop = 0x0f,
+ .width = 0x1a,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x02a2
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x0e,
+ .height = 0x04,
+ .paletteNum = 0x0c,
+ .baseBlock = 0x02a2
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x0f,
+ .height = 0x04,
+ .paletteNum = 0x0c,
+ .baseBlock = 0x02da
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x10,
+ .height = 0x04,
+ .paletteNum = 0x0c,
+ .baseBlock = 0x0316
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x06,
+ .tilemapTop = 0x0f,
+ .width = 0x17,
+ .height = 0x04,
+ .paletteNum = 0x0c,
+ .baseBlock = 0x0356
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x16,
+ .tilemapTop = 0x11,
+ .width = 0x07,
+ .height = 0x02,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x020a
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x16,
+ .tilemapTop = 0x0f,
+ .width = 0x07,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x020a
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x16,
+ .tilemapTop = 0x0d,
+ .width = 0x07,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x020a
+ }, {
+ .priority = 0x00,
+ .tilemapLeft = 0x16,
+ .tilemapTop = 0x0b,
+ .width = 0x07,
+ .height = 0x08,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x020a
+ }
+};
+
+const u8 gUnknown_8453174[] = {16, 8, 4};
+
+EWRAM_DATA u8 gUnknown_203AD34[11] = {};
+
+void sub_810B858(void)
+{
+ u8 i;
+
+ if (gUnknown_203ACFC.location != 3)
+ InitWindows(gUnknown_84530C4);
+ else
+ InitWindows(gUnknown_84530E4);
+ DeactivateAllTextPrinters();
+ sub_815001C(0, 0x64, 0xE0);
+ sub_814FEAC(0, 0x6D, 0xD0);
+ sub_814FF2C(0, 0x81, 0xC0);
+ LoadPalette(gUnknown_8453098, 0xF0, 0x20);
+ for (i = 0; i < 3; i++)
+ {
+ FillWindowPixelBuffer(i, 0x00);
+ PutWindowTilemap(i);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ for (i = 0; i < 11; i++)
+ {
+ gUnknown_203AD34[i] = 0xFF;
+ }
+}
+
+void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx)
+{
+ AddTextPrinterParametrized2(windowId, fontId, x, y, letterSpacing, lineSpacing, &gUnknown_84530B8[colorIdx], speed, str);
+}
+
+void sub_810B958(const u8 * str)
+{
+ u32 x = 0x48 - GetStringWidth(1, str, 0);
+ box_print(2, 1, x / 2, 1, &gUnknown_84530B8[0], 0, str);
+}
+
+void sub_810B994(void)
+{
+ u32 x;
+ SetWindowBorderStyle(2, FALSE, 0x081, 0x0C);
+ x = 0x40 - GetStringWidth(0, gText_DepositItem, 0);
+ AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL);
+}
+
+u8 sub_810B9DC(u8 a0, u8 a1)
+{
+ if (gUnknown_203AD34[a0] == 0xFF)
+ {
+ gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]);
+ if (a0 != 6)
+ {
+ SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E);
+ }
+ else
+ {
+ SetWindowBorderStyle(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ }
+ return gUnknown_203AD34[a0];
+}
+
+void sub_810BA3C(u8 a0)
+{
+ sub_810F4D8(gUnknown_203AD34[a0], FALSE);
+ ClearWindowTilemap(gUnknown_203AD34[a0]);
+ RemoveWindow(gUnknown_203AD34[a0]);
+ schedule_bg_copy_tilemap_to_vram(0);
+ gUnknown_203AD34[a0] = 0xFF;
+}
+
+u8 sub_810BA70(u8 a0)
+{
+ if (gUnknown_203AD34[a0] == 0xFF)
+ {
+ gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]);
+ }
+ return gUnknown_203AD34[a0];
+}
+
+void sub_810BA9C(u8 a0)
+{
+ if (gUnknown_203AD34[a0] != 0xFF)
+ {
+ sub_810F260(gUnknown_203AD34[a0], FALSE);
+ ClearWindowTilemap(gUnknown_203AD34[a0]);
+ RemoveWindow(gUnknown_203AD34[a0]);
+ PutWindowTilemap(1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ gUnknown_203AD34[a0] = 0xFF;
+
+ }
+}
+
+u8 sub_810BAD8(u8 a0)
+{
+ return gUnknown_203AD34[a0];
+}
+
+void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs)
+{
+ CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs);
+}
+
+void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs)
+{
+ CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs);
+}
+
+void sub_810BB40(void)
+{
+ PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
+}
+
+void sub_810BB74(u8 windowId)
+{
+ DrawTextBorderOuter(windowId, 0x064, 0x0E);
+}
diff --git a/src/fame_checker.c b/src/fame_checker.c
index c47e52f06..795863aca 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -8,7 +8,7 @@
#include "battle.h"
#include "battle_setup.h"
#include "menu.h"
-#include "battle_dome_cards.h"
+#include "trainer_pokemon_sprites.h"
#include "scanline_effect.h"
#include "new_menu_helpers.h"
#include "item_menu.h"
@@ -1012,7 +1012,7 @@ static void FCSetup_ResetTasksAndSpriteResources(void)
ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
- dp13_810BB8C();
+ ResetAllPicSprites();
ResetPaletteFade();
npc_paltag_set_load(0);
gReservedSpritePaletteCount = 7;
@@ -1181,7 +1181,7 @@ static u8 CreatePersonPicSprite(u8 fcPersonIdx)
}
else
{
- spriteId = sub_810C2A4(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF);
+ spriteId = CreateTrainerPicSprite(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF);
}
gSprites[spriteId].callback = SpriteCB_FCSpinningPokeball;
if (gSaveBlock1Ptr->fameChecker[fcPersonIdx].pickState == FCPICKSTATE_SILHOUETTE)
@@ -1202,7 +1202,7 @@ static void DestroyPersonPicSprite(u8 taskId, u16 who)
)
DestroySprite(&gSprites[data[2]]);
else
- sub_810C2E8(data[2]);
+ FreeAndDestroyTrainerPicSprite(data[2]);
}
static void UpdateIconDescriptionBox(u8 whichText)
diff --git a/src/seagallop.c b/src/seagallop.c
index 585838607..72813f525 100644
--- a/src/seagallop.c
+++ b/src/seagallop.c
@@ -4,7 +4,7 @@
#include "palette.h"
#include "malloc.h"
#include "scanline_effect.h"
-#include "battle_dome_cards.h"
+#include "trainer_pokemon_sprites.h"
#include "window.h"
#include "text_window.h"
#include "sound.h"
@@ -365,7 +365,7 @@ static void ResetAllAssets(void)
ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
- dp13_810BB8C();
+ ResetAllPicSprites();
ResetPaletteFade();
FreeAllSpritePalettes();
}
diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c
new file mode 100644
index 000000000..ecd889d80
--- /dev/null
+++ b/src/trainer_pokemon_sprites.c
@@ -0,0 +1,324 @@
+#include "global.h"
+#include "sprite.h"
+#include "window.h"
+#include "malloc.h"
+#include "constants/species.h"
+#include "palette.h"
+#include "decompress.h"
+#include "trainer_pokemon_sprites.h"
+#include "pokemon.h"
+#include "constants/trainer_classes.h"
+
+extern const struct CompressedSpriteSheet gMonFrontPicTable[];
+extern const struct CompressedSpriteSheet gMonBackPicTable[];
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
+extern const struct CompressedSpriteSheet gTrainerBackPicTable[];
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
+extern const union AnimCmd *const gUnknown_82349BC[];
+extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
+
+// Static type declarations
+
+struct PicData
+{
+ u8 *frames;
+ struct SpriteFrameImage *images;
+ u16 paletteTag;
+ u8 spriteId;
+ 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 gUnknown_8453178 = {};
+
+static const struct OamData gUnknown_8453184 =
+{
+ .shape = SPRITE_SHAPE(64x64),
+ .size = SPRITE_SIZE(64x64)
+};
+
+// .text
+
+void DummyPicSpriteCallback(struct Sprite *sprite)
+{
+
+}
+
+bool16 ResetAllPicSprites(void)
+{
+ int i;
+
+ for (i = 0; i < PICS_COUNT; i ++)
+ sSpritePics[i] = gUnknown_8453178;
+
+ return FALSE;
+}
+
+static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer, bool8 ignoreDeoxys)
+{
+ if (!isTrainer)
+ {
+ if (isFrontPic)
+ {
+ if (!ignoreDeoxys)
+ LoadSpecialPokePic(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
+ else
+ LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], dest, species, personality, isFrontPic);
+ }
+ else
+ {
+ if (!ignoreDeoxys)
+ LoadSpecialPokePic(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
+ else
+ LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], dest, species, personality, isFrontPic);
+ }
+ }
+ else
+ {
+ if (isFrontPic)
+ DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species);
+ else
+ DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species);
+ }
+ return FALSE;
+}
+
+static bool16 DecompressPic_HandleDeoxys(u16 species, u32 personality, bool8 isFrontPic, u8 *dest, bool8 isTrainer)
+{
+ return DecompressPic(species, personality, isFrontPic, dest, isTrainer, FALSE);
+}
+
+void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
+{
+ if (!isTrainer)
+ {
+ if (paletteTag == 0xFFFF)
+ {
+ sCreatingSpriteTemplate.paletteTag = 0xFFFF;
+ LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x100 + paletteSlot * 0x10, 0x20);
+ }
+ else
+ {
+ sCreatingSpriteTemplate.paletteTag = paletteTag;
+ LoadCompressedObjectPalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality));
+ }
+ }
+ else
+ {
+ if (paletteTag == 0xFFFF)
+ {
+ sCreatingSpriteTemplate.paletteTag = 0xFFFF;
+ LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, 0x100 + paletteSlot * 0x10, 0x20);
+ }
+ else
+ {
+ sCreatingSpriteTemplate.paletteTag = paletteTag;
+ LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[species]);
+ }
+ }
+}
+
+void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot, bool8 isTrainer)
+{
+ if (!isTrainer)
+ LoadCompressedPalette(GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality), paletteSlot * 0x10, 0x20);
+ else
+ LoadCompressedPalette(gTrainerFrontPicPaletteTable[species].data, paletteSlot * 0x10, 0x20);
+}
+
+void AssignSpriteAnimsTable(bool8 isTrainer)
+{
+ if (!isTrainer)
+ sCreatingSpriteTemplate.anims = gUnknown_82349BC;
+ else
+ sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0];
+}
+
+u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer, bool8 ignoreDeoxys)
+{
+ u8 i;
+ u8 *framePics;
+ struct SpriteFrameImage *images;
+ int j;
+ u8 spriteId;
+
+ 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)
+ {
+ Free(framePics);
+ return 0xFFFF;
+ }
+ if (DecompressPic(species, personality, isFrontPic, framePics, isTrainer, ignoreDeoxys))
+ {
+ // debug trap?
+ return 0xFFFF;
+ }
+ for (j = 0; j < 4; j ++)
+ {
+ images[j].data = framePics + 0x800 * j;
+ images[j].size = 0x800;
+ }
+ sCreatingSpriteTemplate.tileTag = 0xFFFF;
+ sCreatingSpriteTemplate.oam = &gUnknown_8453184;
+ AssignSpriteAnimsTable(isTrainer);
+ sCreatingSpriteTemplate.images = images;
+ sCreatingSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
+ sCreatingSpriteTemplate.callback = DummyPicSpriteCallback;
+ LoadPicPaletteByTagOrSlot(species, otId, personality, paletteSlot, paletteTag, isTrainer);
+ spriteId = CreateSprite(&sCreatingSpriteTemplate, x, y, 0);
+ if (paletteTag == 0xFFFF)
+ {
+ gSprites[spriteId].oam.paletteNum = paletteSlot;
+ }
+ sSpritePics[i].frames = framePics;
+ sSpritePics[i].images = images;
+ sSpritePics[i].paletteTag = paletteTag;
+ sSpritePics[i].spriteId = spriteId;
+ sSpritePics[i].active = TRUE;
+ return spriteId;
+}
+
+u16 CreatePicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 isTrainer)
+{
+ return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, isTrainer, FALSE);
+}
+
+u16 FreeAndDestroyPicSpriteInternal(u16 spriteId)
+{
+ u8 i;
+ u8 *framePics;
+ struct SpriteFrameImage *images;
+
+ 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 != 0xFFFF)
+ {
+ FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
+ }
+ DestroySprite(&gSprites[spriteId]);
+ Free(framePics);
+ Free(images);
+ sSpritePics[i] = gUnknown_8453178;
+ return 0;
+}
+
+u16 sub_810C050(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;
+}
+
+u16 sub_810C0C0(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId, bool8 isTrainer)
+{
+ u8 *framePics;
+
+ framePics = Alloc(4 * 0x800);
+ if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer))
+ {
+ BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40);
+ LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer);
+ Free(framePics);
+ return 0;
+ }
+ return 0xFFFF;
+}
+
+u16 CreateMonPicSprite(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag, bool8 ignoreDeoxys)
+{
+ return CreatePicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE, ignoreDeoxys);
+}
+
+u16 CreateMonPicSprite_HandleDeoxys(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
+{
+ return CreateMonPicSprite(species, otId, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE);
+}
+
+u16 FreeAndDestroyMonPicSprite(u16 spriteId)
+{
+ return FreeAndDestroyPicSpriteInternal(spriteId);
+}
+
+u16 sub_810C228(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
+{
+ return sub_810C0C0(species, otId, personality, isFrontPic, 0, 0, paletteSlot, windowId, FALSE);
+}
+
+u16 sub_810C25C(u16 species, u32 otId, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId)
+{
+ return sub_810C0C0(species, otId, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE);
+}
+
+u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag)
+{
+ return CreatePicSprite_HandleDeoxys(species, 0, 0, isFrontPic, x, y, paletteSlot, paletteTag, TRUE);
+}
+
+u16 FreeAndDestroyTrainerPicSprite(u16 spriteId)
+{
+ return FreeAndDestroyPicSpriteInternal(spriteId);
+}
+
+u16 sub_810C2FC(u16 species, bool8 isFrontPic, u8 paletteSlot, u8 windowId)
+{
+ return sub_810C050(species, 0, 0, isFrontPic, paletteSlot, windowId, TRUE);
+}
+
+u16 sub_810C330(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId)
+{
+ return sub_810C0C0(species, 0, 0, isFrontPic, destX, destY, paletteSlot, windowId, TRUE);
+}
+
+u16 PlayerGenderToFrontTrainerPicId_Debug(u8 gender, bool8 getClass)
+{
+ if (getClass == TRUE)
+ {
+ switch (gender)
+ {
+ default:
+ return gFacilityClassToPicIndex[0x87];
+ case MALE:
+ return gFacilityClassToPicIndex[0x86];
+ }
+ }
+ return gender;
+}