Add NUM_MON_PIC_FRAMES, and trainer pic size constants
This commit is contained in:
@@ -9,6 +9,12 @@
|
||||
#include "pokemon.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
#define PICS_COUNT 8
|
||||
|
||||
// Needs to be large enough to store either a decompressed pokemon pic or trainer pic
|
||||
#define PIC_SPRITE_SIZE max(MON_PIC_SIZE, TRAINER_PIC_SIZE)
|
||||
#define MAX_PIC_FRAMES max(MAX_MON_PIC_FRAMES, MAX_TRAINER_PIC_FRAMES)
|
||||
|
||||
struct PicData
|
||||
{
|
||||
u8 *frames;
|
||||
@@ -18,8 +24,6 @@ struct PicData
|
||||
u8 active;
|
||||
};
|
||||
|
||||
#define PICS_COUNT 8
|
||||
|
||||
static EWRAM_DATA struct SpriteTemplate sCreatingSpriteTemplate = {};
|
||||
static EWRAM_DATA struct PicData sSpritePics[PICS_COUNT] = {};
|
||||
|
||||
@@ -149,11 +153,11 @@ static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFront
|
||||
if (i == PICS_COUNT)
|
||||
return 0xFFFF;
|
||||
|
||||
framePics = Alloc(4 * 0x800);
|
||||
framePics = Alloc(PIC_SPRITE_SIZE * MAX_PIC_FRAMES);
|
||||
if (!framePics)
|
||||
return 0xFFFF;
|
||||
|
||||
images = Alloc(4 * sizeof(struct SpriteFrameImage));
|
||||
images = Alloc(sizeof(struct SpriteFrameImage) * MAX_PIC_FRAMES);
|
||||
if (!images)
|
||||
{
|
||||
Free(framePics);
|
||||
@@ -164,10 +168,10 @@ static u16 CreatePicSprite(u16 species, u32 otId, u32 personality, bool8 isFront
|
||||
// debug trap?
|
||||
return 0xFFFF;
|
||||
}
|
||||
for (j = 0; j < 4; j ++)
|
||||
for (j = 0; j < MAX_PIC_FRAMES; j ++)
|
||||
{
|
||||
images[j].data = framePics + 0x800 * j;
|
||||
images[j].size = 0x800;
|
||||
images[j].data = framePics + PIC_SPRITE_SIZE * j;
|
||||
images[j].size = PIC_SPRITE_SIZE;
|
||||
}
|
||||
sCreatingSpriteTemplate.tileTag = TAG_NONE;
|
||||
sCreatingSpriteTemplate.oam = &sOamData_Normal;
|
||||
@@ -209,7 +213,7 @@ u16 CreateMonPicSprite_Affine(u16 species, u32 otId, u32 personality, u8 flags,
|
||||
if (i == PICS_COUNT)
|
||||
return 0xFFFF;
|
||||
|
||||
framePics = Alloc(4 * MON_PIC_SIZE);
|
||||
framePics = Alloc(MON_PIC_SIZE * MAX_MON_PIC_FRAMES);
|
||||
if (!framePics)
|
||||
return 0xFFFF;
|
||||
|
||||
@@ -222,7 +226,7 @@ u16 CreateMonPicSprite_Affine(u16 species, u32 otId, u32 personality, u8 flags,
|
||||
{
|
||||
type = flags;
|
||||
}
|
||||
images = Alloc(4 * sizeof(struct SpriteFrameImage));
|
||||
images = Alloc(sizeof(struct SpriteFrameImage) * MAX_MON_PIC_FRAMES);
|
||||
if (!images)
|
||||
{
|
||||
Free(framePics);
|
||||
@@ -233,7 +237,7 @@ u16 CreateMonPicSprite_Affine(u16 species, u32 otId, u32 personality, u8 flags,
|
||||
// debug trap?
|
||||
return 0xFFFF;
|
||||
}
|
||||
for (j = 0; j < 4; j ++)
|
||||
for (j = 0; j < MAX_MON_PIC_FRAMES; j ++)
|
||||
{
|
||||
images[j].data = framePics + MON_PIC_SIZE * j;
|
||||
images[j].size = MON_PIC_SIZE;
|
||||
@@ -307,10 +311,10 @@ static u16 CreateTrainerCardSprite(u16 species, u32 otId, u32 personality, bool8
|
||||
{
|
||||
u8 *framePics;
|
||||
|
||||
framePics = Alloc(4 * 0x800);
|
||||
framePics = Alloc(TRAINER_PIC_SIZE * MAX_TRAINER_PIC_FRAMES);
|
||||
if (framePics && !DecompressPic_HandleDeoxys(species, personality, isFrontPic, framePics, isTrainer))
|
||||
{
|
||||
BlitBitmapRectToWindow(windowId, framePics, 0, 0, 0x40, 0x40, destX, destY, 0x40, 0x40);
|
||||
BlitBitmapRectToWindow(windowId, framePics, 0, 0, TRAINER_PIC_WIDTH, TRAINER_PIC_HEIGHT, destX, destY, TRAINER_PIC_WIDTH, TRAINER_PIC_HEIGHT);
|
||||
LoadPicPaletteBySlot(species, otId, personality, paletteSlot, isTrainer);
|
||||
Free(framePics);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user