Merge branch 'master' of https://github.com/pret/pokefirered into doc-ql

This commit is contained in:
GriffinR
2023-08-18 11:26:22 -04:00
221 changed files with 3371 additions and 3779 deletions
+54 -54
View File
@@ -20,27 +20,27 @@ static const u8 sTextColors[][3] = {
static const struct WindowTemplate sDefaultBagWindowsStd[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
.tilemapTop = 0x01,
.width = 0x12,
.height = 0x0c,
.paletteNum = 0x0f,
.tilemapLeft = 11,
.tilemapTop = 1,
.width = 18,
.height = 12,
.paletteNum = 15,
.baseBlock = 0x008a
}, {
.bg = 0,
.tilemapLeft = 0x05,
.tilemapTop = 0x0e,
.width = 0x19,
.height = 0x06,
.paletteNum = 0x0f,
.tilemapLeft = 5,
.tilemapTop = 14,
.width = 25,
.height = 6,
.paletteNum = 15,
.baseBlock = 0x0162
}, {
.bg = 0,
.tilemapLeft = 0x01,
.tilemapTop = 0x01,
.width = 0x09,
.height = 0x02,
.paletteNum = 0x0f,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 9,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
@@ -48,27 +48,27 @@ static const struct WindowTemplate sDefaultBagWindowsStd[] = {
static const struct WindowTemplate sDefaultBagWindowsDeposit[] = {
{
.bg = 0,
.tilemapLeft = 0x0b,
.tilemapTop = 0x01,
.width = 0x12,
.height = 0x0c,
.paletteNum = 0x0f,
.tilemapLeft = 11,
.tilemapTop = 1,
.width = 18,
.height = 12,
.paletteNum = 15,
.baseBlock = 0x008a
}, {
.bg = 0,
.tilemapLeft = 0x05,
.tilemapTop = 0x0e,
.width = 0x19,
.height = 0x06,
.paletteNum = 0x0f,
.tilemapLeft = 5,
.tilemapTop = 14,
.width = 25,
.height = 6,
.paletteNum = 15,
.baseBlock = 0x0162
}, {
.bg = 0,
.tilemapLeft = 0x01,
.tilemapTop = 0x01,
.width = 0x08,
.height = 0x02,
.paletteNum = 0x0C,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 8,
.height = 2,
.paletteNum = 12,
.baseBlock = 0x01f8
}, DUMMY_WIN_TEMPLATE
};
@@ -80,7 +80,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 5,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x242
}, {
.bg = 0,
@@ -88,7 +88,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 9,
.width = 12,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x242
}, {
.bg = 0,
@@ -96,7 +96,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 1,
.width = 8,
.height = 3,
.paletteNum = 0xC,
.paletteNum = 12,
.baseBlock = 0x272
}, {
.bg = 0,
@@ -104,7 +104,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x28a
}, {
.bg = 0,
@@ -112,7 +112,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x28a
}, {
.bg = 0,
@@ -120,7 +120,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x2a2
}, {
.bg = 0,
@@ -128,7 +128,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 14,
.height = 4,
.paletteNum = 0xC,
.paletteNum = 12,
.baseBlock = 0x2a2
}, {
.bg = 0,
@@ -136,7 +136,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 15,
.height = 4,
.paletteNum = 0xC,
.paletteNum = 12,
.baseBlock = 0x2da
}, {
.bg = 0,
@@ -144,7 +144,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 16,
.height = 4,
.paletteNum = 0xC,
.paletteNum = 12,
.baseBlock = 0x316
}, {
.bg = 0,
@@ -152,7 +152,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 23,
.height = 4,
.paletteNum = 0xC,
.paletteNum = 12,
.baseBlock = 0x356
}, {
.bg = 0,
@@ -160,7 +160,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 17,
.width = 7,
.height = 2,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x20a
}, {
.bg = 0,
@@ -168,7 +168,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 7,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x20a
}, {
.bg = 0,
@@ -176,7 +176,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 13,
.width = 7,
.height = 6,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x20a
}, {
.bg = 0,
@@ -184,7 +184,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 11,
.width = 7,
.height = 8,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x20a
}
};
@@ -202,10 +202,10 @@ void InitBagWindows(void)
else
InitWindows(sDefaultBagWindowsDeposit);
DeactivateAllTextPrinters();
LoadUserWindowGfx(0, 0x64, 0xE0);
LoadMenuMessageWindowGfx(0, 0x6D, 0xD0);
LoadStdWindowGfx(0, 0x81, 0xC0);
LoadPalette(sBagWindowPalF, 0xF0, 0x20);
LoadUserWindowGfx(0, 0x64, BG_PLTT_ID(14));
LoadMenuMessageWindowGfx(0, 0x6D, BG_PLTT_ID(13));
LoadStdWindowGfx(0, 0x81, BG_PLTT_ID(12));
LoadPalette(sBagWindowPalF, BG_PLTT_ID(15), sizeof(sBagWindowPalF));
for (i = 0; i < 3; i++)
{
FillWindowPixelBuffer(i, 0x00);
@@ -232,7 +232,7 @@ void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused)
void BagDrawDepositItemTextBox(void)
{
u32 x;
DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C);
DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 12);
x = 0x40 - GetStringWidth(FONT_SMALL, gText_DepositItem, 0);
AddTextPrinterParameterized(2, FONT_SMALL, gText_DepositItem, x / 2, 1, 0, NULL);
}
@@ -244,11 +244,11 @@ u8 ShowBagWindow(u8 whichWindow, u8 nItems)
sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow + nItems]);
if (whichWindow != 6)
{
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x064, 0xE);
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x064, 14);
}
else
{
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x081, 0xC);
DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x081, 12);
}
ScheduleBgCopyTilemapToVram(0);
}
@@ -293,12 +293,12 @@ u8 GetBagWindow(u8 whichWindow)
void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[3], FONT_NORMAL, 0, 2, 0x064, 0x0E, ptrs);
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[3], FONT_NORMAL, 0, 2, 0x064, 14, ptrs);
}
void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[4], FONT_NORMAL, 0, 2, 0x064, 0x0E, ptrs);
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[4], FONT_NORMAL, 0, 2, 0x064, 14, ptrs);
}
void BagPrintMoneyAmount(void)
@@ -308,5 +308,5 @@ void BagPrintMoneyAmount(void)
void BagDrawTextBoxOnWindow(u8 windowId)
{
DrawTextBorderOuter(windowId, 0x064, 0x0E);
DrawTextBorderOuter(windowId, 0x064, 14);
}
+7 -17
View File
@@ -654,8 +654,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], animBg.paletteId * 16, 0x20);
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void *)(BG_PLTT + animBg.paletteId * 32), 0x20);
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + animBg.paletteId * PLTT_SIZE_4BPP), PLTT_SIZE_4BPP);
CopyBattlerSpriteToBg(1, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles,
animBg.bgTilemap, animBg.tilesOffset);
@@ -679,8 +679,8 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
LoadPalette(&gPlttBufferUnfaded[0x100 + battlerId * 16], 0x90, 0x20);
CpuCopy32(&gPlttBufferUnfaded[0x100 + battlerId * 16], (void *)(BG_PLTT + 0x120), 0x20);
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], BG_PLTT_ID(9), PLTT_SIZE_4BPP);
CpuCopy32(&gPlttBufferUnfaded[OBJ_PLTT_ID(battlerId)], (void *)(BG_PLTT + 9 * PLTT_SIZE_4BPP), PLTT_SIZE_4BPP);
CopyBattlerSpriteToBg(2, 0, 0, GetBattlerPosition(battlerId), animBg.paletteId, animBg.bgTiles + 0x1000,
animBg.bgTilemap + 0x400, animBg.tilesOffset);
@@ -739,25 +739,15 @@ static void Task_InitUpdateMonBg(u8 taskId)
if (gTasks[taskId].data[5] == 0)
{
u16 *src;
u16 *dst;
gBattle_BG1_X = x + gTasks[taskId].data[3];
gBattle_BG1_Y = y + gTasks[taskId].data[4];
src = gPlttBufferFaded + 0x100 + palIndex * 16;
dst = gPlttBufferFaded + 0x100 + animBg.paletteId * 16 - 256;
CpuCopy32(src, dst, 0x20);
CpuCopy32(&gPlttBufferFaded[OBJ_PLTT_ID(palIndex)], &gPlttBufferFaded[BG_PLTT_ID(animBg.paletteId)], PLTT_SIZE_4BPP);
}
else
{
u16 *src;
u16 *dst;
gBattle_BG2_X = x + gTasks[taskId].data[3];
gBattle_BG2_Y = y + gTasks[taskId].data[4];
src = gPlttBufferFaded + 0x100 + palIndex * 16;
dst = gPlttBufferFaded + 0x100 - 112;
CpuCopy32(src, dst, 0x20);
CpuCopy32(&gPlttBufferFaded[OBJ_PLTT_ID(palIndex)], &gPlttBufferFaded[BG_PLTT_ID(9)], PLTT_SIZE_4BPP);
}
}
@@ -1113,7 +1103,7 @@ static void LoadMoveBg(u16 bgId)
{
LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(BG_SCREEN_ADDR(26)));
LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(BG_CHAR_ADDR(2)));
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32);
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, BG_PLTT_ID(2), PLTT_SIZE_4BPP);
}
static void LoadDefaultBg(void)
+6 -6
View File
@@ -415,7 +415,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
FillPalette(RGB_BLACK, animBg.paletteId * 16, 32);
FillPalette(RGB_BLACK, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
scanlineParams.dmaDest = &REG_BG1VOFS;
var0 = WINOUT_WIN01_BG1;
if (!IsContest())
@@ -425,7 +425,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
{
task->data[10] = gBattle_BG2_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
FillPalette(RGB_BLACK, 144, 32);
FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP);
scanlineParams.dmaDest = &REG_BG2VOFS;
var0 = WINOUT_WIN01_BG2;
if (!IsContest())
@@ -545,12 +545,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
{
GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y;
FillPalette(RGB_BLACK, animBg.paletteId * 16, 32);
FillPalette(RGB_BLACK, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
}
else
{
task->data[10] = gBattle_BG2_Y;
FillPalette(RGB_BLACK, 9 * 16, 32);
FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP);
}
SetAllBattlersSpritePriority(3);
++task->data[0];
@@ -806,14 +806,14 @@ void AnimTask_MetallicShine(u8 taskId)
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32);
LoadCompressedPalette(gMetalShinePalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
gBattle_BG1_X = -gSprites[spriteId].x + 96;
gBattle_BG1_Y = -gSprites[spriteId].y + 32;
paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
if (gBattleAnimArgs[1] == 0)
SetGreyscaleOrOriginalPalette(paletteNum, FALSE);
else
BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]);
BlendPalette(PLTT_ID(paletteNum), 16, 11, gBattleAnimArgs[2]);
gTasks[taskId].data[0] = newSpriteId;
gTasks[taskId].data[1] = gBattleAnimArgs[0];
gTasks[taskId].data[2] = gBattleAnimArgs[1];
+8 -8
View File
@@ -3672,8 +3672,8 @@ void AnimTask_CycleMagicalLeafPal(u8 taskId)
switch (task->data[0])
{
case 0:
task->data[8] = IndexOfSpritePaletteTag(ANIM_TAG_LEAF) * 16 + 256;
task->data[12] = IndexOfSpritePaletteTag(ANIM_TAG_RAZOR_LEAF) * 16 + 256;
task->data[8] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(ANIM_TAG_LEAF));
task->data[12] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(ANIM_TAG_RAZOR_LEAF));
task->data[0]++;
break;
case 1:
@@ -3996,7 +3996,7 @@ static void AnimProtect(struct Sprite* sprite)
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = (IndexOfSpritePaletteTag(ANIM_TAG_PROTECT) << 4) + 0x100;
sprite->data[2] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(ANIM_TAG_PROTECT));
sprite->data[7] = 16;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7]));
@@ -4384,7 +4384,7 @@ static void AnimLockOnTarget_Step4(struct Sprite* sprite)
int pal;
sprite->data[2]++;
pal = sprite->oam.paletteNum;
LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4);
LoadPalette(&gPlttBufferUnfaded[OBJ_PLTT_ID(pal) + 8], OBJ_PLTT_ID(pal) + 1, PLTT_SIZEOF(2));
PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
}
else if (sprite->data[1] == 0)
@@ -5216,8 +5216,8 @@ void AnimTask_DoubleTeam(u8 taskId)
task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
task->data[1] = AllocSpritePalette(ANIM_TAG_BENT_SPOON);
r3 = (task->data[1] * 16) + 0x100;
r4 = (gSprites[task->data[0]].oam.paletteNum + 16) << 4;
r3 = OBJ_PLTT_ID(task->data[1]);
r4 = OBJ_PLTT_ID2(gSprites[task->data[0]].oam.paletteNum);
for (i = 1; i < 16; i++)
gPlttBufferUnfaded[r3 + i] = gPlttBufferUnfaded[r4 + i];
@@ -5295,7 +5295,7 @@ void AnimTask_MusicNotesRainbowBlend(u8 taskId)
index = IndexOfSpritePaletteTag(sParticlesColorBlendTable[0][0]);
if (index != 0xFF)
{
index = (index << 4) + 0x100;
index = OBJ_PLTT_ID(index);
for (i = 1; i < NELEMS(sParticlesColorBlendTable[0]); i++)
gPlttBufferFaded[index + i] = sParticlesColorBlendTable[0][i];
}
@@ -5305,7 +5305,7 @@ void AnimTask_MusicNotesRainbowBlend(u8 taskId)
index = AllocSpritePalette(sParticlesColorBlendTable[j][0]);
if (index != 0xFF)
{
index = (index << 4) + 0x100;
index = OBJ_PLTT_ID(index);
for (i = 1; i < NELEMS(sParticlesColorBlendTable[0]); i++)
gPlttBufferFaded[index + i] = sParticlesColorBlendTable[j][i];
}
+5 -7
View File
@@ -1744,7 +1744,7 @@ void AnimTask_AirCutterProjectile(u8 taskId)
static void AnimVoidLines(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, FALSE);
sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag) << 4);
sprite->data[0] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag));
sprite->callback = AnimVoidLines_Step;
}
@@ -2687,9 +2687,7 @@ static void AnimUproarRing(struct Sprite *sprite)
u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING);
if (index != 0xFF)
{
BlendPalette(((index << 20) + 0x1010000) >> 16, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]);
}
BlendPalette(OBJ_PLTT_ID(index) + 1, 15, gBattleAnimArgs[5], gBattleAnimArgs[4]);
StartSpriteAffineAnim(sprite, 1);
sprite->callback = AnimSpriteOnMonPos;
@@ -3045,7 +3043,7 @@ void AnimTask_LoadMusicNotesPals(u8 taskId)
gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000);
LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->multiUseBuffer);
for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++)
LoadPalette(&gMonSpritesGfxPtr->multiUseBuffer[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32);
LoadPalette(&gMonSpritesGfxPtr->multiUseBuffer[i * 32], OBJ_PLTT_ID(paletteNums[i]), PLTT_SIZE_4BPP);
FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer);
DestroyAnimVisualTask(taskId);
@@ -3282,7 +3280,7 @@ void AnimTask_HeartsBackground(u8 taskId)
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBg_AttractTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBg_AttractGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnimBg_AttractPal, animBg.paletteId * 16, 32);
LoadCompressedPalette(gBattleAnimBg_AttractPal, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
if (IsContest())
RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0);
@@ -3370,7 +3368,7 @@ void AnimTask_ScaryFace(u8 taskId)
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_ScaryFaceOpponent);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_ScaryFaceGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_ScaryFacePal, animBg.paletteId * 16, 32);
LoadCompressedPalette(gBattleAnim_ScaryFacePal, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
if (IsContest())
RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0);
+14 -14
View File
@@ -1367,11 +1367,11 @@ static void SetPsychicBackground_Step(u8 taskId)
if (++gTasks[taskId].data[5] == 4)
{
lastColor = gPlttBufferFaded[paletteIndex * 16 + 11];
lastColor = gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + 11];
for (i = 10; i > 0; i--)
gPlttBufferFaded[paletteIndex * 16 + i + 1] = gPlttBufferFaded[paletteIndex * 16 + i];
gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + i + 1] = gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + i];
gPlttBufferFaded[paletteIndex * 16 + 1] = lastColor;
gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + 1] = lastColor;
gTasks[taskId].data[5] = 0;
}
@@ -1393,15 +1393,15 @@ static void FadeScreenToWhite_Step(u8 taskId)
if (++gTasks[taskId].data[5] == 4)
{
lastColor = gPlttBufferFaded[paletteIndex * 16 + 11];
lastColor = gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + 11];
for (i = 10; i > 0; i--)
gPlttBufferFaded[paletteIndex * 16 + i + 1] = gPlttBufferFaded[paletteIndex * 16 + i];
gPlttBufferFaded[paletteIndex * 16 + 1] = lastColor;
gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + i + 1] = gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + i];
gPlttBufferFaded[BG_PLTT_ID(paletteIndex) + 1] = lastColor;
lastColor = gPlttBufferUnfaded[paletteIndex * 16 + 11];
lastColor = gPlttBufferUnfaded[BG_PLTT_ID(paletteIndex) + 11];
for (i = 10; i > 0; i--)
gPlttBufferUnfaded[paletteIndex * 16 + i + 1] = gPlttBufferUnfaded[paletteIndex * 16 + i];
gPlttBufferUnfaded[paletteIndex * 16 + 1] = lastColor;
gPlttBufferUnfaded[BG_PLTT_ID(paletteIndex) + i + 1] = gPlttBufferUnfaded[BG_PLTT_ID(paletteIndex) + i];
gPlttBufferUnfaded[BG_PLTT_ID(paletteIndex) + 1] = lastColor;
gTasks[taskId].data[5] = 0;
}
@@ -2329,7 +2329,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32);
LoadCompressedPalette(gBattleAnim_MorningSunPal, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
if (IsContest())
{
RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0);
@@ -2509,7 +2509,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32);
LoadCompressedPalette(gBattleAnim_MorningSunPal, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
if (IsContest())
{
@@ -3177,7 +3177,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
spriteId = CreateAdditionalMonSpriteForMoveAnim(species, isBackPic, 0, coord1 + xOffset, coord2, 5, personality, otId, gBattleAnimTarget, 1);
gSprites[spriteId].oam.priority = priority;
gSprites[spriteId].oam.objMode = ST_OAM_OBJ_BLEND;
FillPalette(RGB_WHITE, (gSprites[spriteId].oam.paletteNum << 4) + 0x100, 32);
FillPalette(RGB_WHITE, OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP);
gSprites[spriteId].oam.priority = priority;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1]));
@@ -3806,7 +3806,7 @@ void AnimTask_FacadeColorBlend(u8 taskId)
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = gBattleAnimArgs[1];
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
gTasks[taskId].data[2] = 0x100 + gSprites[spriteId].oam.paletteNum * 16;
gTasks[taskId].data[2] = OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum);
gTasks[taskId].func = AnimTask_FacadeColorBlend_Step;
}
@@ -5025,7 +5025,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
spriteId2 = CreateAdditionalMonSpriteForMoveAnim(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);
BlendPalette(OBJ_PLTT_ID(gSprites[spriteId2].oam.paletteNum), 16, 6, RGB_WHITE);
gTasks[taskId].data[15] = spriteId2;
gTasks[taskId].data[0]++;
break;
+2 -1
View File
@@ -4,6 +4,7 @@
#include "util.h"
#include "task.h"
#include "trig.h"
#include "palette.h"
#include "constants/songs.h"
static void AnimFireSpiralInward(struct Sprite *sprite);
@@ -1239,7 +1240,7 @@ void AnimTask_BlendBackground(u8 taskId)
struct BattleAnimBgData animBg;
GetBattleAnimBg1Data(&animBg);
BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]);
BlendPalette(BG_PLTT_ID(animBg.paletteId), 16, gBattleAnimArgs[0], gBattleAnimArgs[1]);
DestroyAnimVisualTask(taskId);
}
+4 -4
View File
@@ -395,15 +395,15 @@ static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId)
{
gTasks[taskId].data[10] = 0;
data2 = gTasks[taskId].data[2];
temp = gPlttBufferFaded[16 * data2 + 0x108];
temp = gPlttBufferFaded[OBJ_PLTT_ID(data2) + 8];
i = 7;
base = data2 * 16;
base = PLTT_ID(data2);
do
{
gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i];
gPlttBufferFaded[base + OBJ_PLTT_OFFSET + 1 + i] = gPlttBufferFaded[base + OBJ_PLTT_OFFSET + i];
} while (--i > 0);
gPlttBufferFaded[base + 0x101] = temp;
gPlttBufferFaded[base + OBJ_PLTT_OFFSET + 1] = temp;
}
if (--gTasks[taskId].data[0] == 0)
DestroyAnimVisualTask(taskId);
+7 -7
View File
@@ -625,7 +625,7 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId)
task->data[2] = 0;
task->data[3] = 16;
task->data[13] = GetAnimBattlerSpriteId(ANIM_TARGET);
task->data[4] = (gSprites[task->data[13]].oam.paletteNum + 16) * 16;
task->data[4] = OBJ_PLTT_ID2(gSprites[task->data[13]].oam.paletteNum);
if (position == 1)
{
u16 mask = DISPCNT_BG1_ON;
@@ -644,8 +644,8 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId)
}
break;
case 1:
task->data[14] = (task->data[14] + 16) * 16;
CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], 0x20);
task->data[14] = OBJ_PLTT_ID2(task->data[14]);
CpuCopy32(&gPlttBufferUnfaded[task->data[4]], &gPlttBufferFaded[task->data[14]], PLTT_SIZE_4BPP);
BlendPalette(task->data[4], 16, 10, RGB(13, 0, 15));
++task->data[15];
break;
@@ -1290,10 +1290,10 @@ static void AnimTask_GhostGetOut_Step1(u8 taskId)
task->data[3] = 16;
task->data[4] = GetAnimBattlerSpriteId(ANIM_ATTACKER);
task->data[5] = gSprites[task->data[4]].oam.priority;
task->data[6] = (gSprites[task->data[4]].oam.paletteNum + 16) << 4;
task->data[6] = OBJ_PLTT_ID2(gSprites[task->data[4]].oam.paletteNum);
gSprites[task->data[4]].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[task->data[4]].oam.priority = 3;
task->data[7] = 128;
task->data[7] = BG_PLTT_ID(8);
break;
case 1:
++task->data[1];
@@ -1320,7 +1320,7 @@ static void AnimTask_GhostGetOut_Step1(u8 taskId)
SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
GetBattleAnimBgData(&animBgData, 2);
AnimLoadCompressedBgGfx(animBgData.bgId, gBattleAnim_ScaryFaceGfx, animBgData.tilesOffset);
LoadCompressedPalette(gBattleAnim_ScaryFacePal, 16 * animBgData.paletteId, 0x20);
LoadCompressedPalette(gBattleAnim_ScaryFacePal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
case 3:
GetBattleAnimBgData(&animBgData, 2);
@@ -1422,7 +1422,7 @@ static void AnimTask_GhostGetOut_Step3(u8 taskId)
break;
case 3:
InitBattleAnimBg(2);
FillPalette(RGB_BLACK, 0x90, 0x20);
FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP);
SetAnimBgAttribute(2, BG_ANIM_CHAR_BASE_BLOCK, 0);
task->data[1] = 12;
break;
+2 -2
View File
@@ -946,7 +946,7 @@ void AnimTask_HazeScrollingFog(u8 taskId)
GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimFogTilemap);
LoadPalette(&gDefaultWeatherSpritePalette, animBg.paletteId * 16, 32);
LoadPalette(&gDefaultWeatherSpritePalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
if (IsContest())
RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0);
gTasks[taskId].func = AnimTask_HazeScrollingFog_Step;
@@ -1043,7 +1043,7 @@ void AnimTask_MistBallFog(u8 taskId)
GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimFogTilemap);
LoadPalette(&gDefaultWeatherSpritePalette, animBg.paletteId * 16, 32);
LoadPalette(&gDefaultWeatherSpritePalette, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
if (IsContest())
RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0);
gTasks[taskId].data[15] = -1;
+8 -8
View File
@@ -1291,7 +1291,7 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
struct PlttData *destColor;
u16 average;
paletteNum *= 16;
paletteNum = PLTT_ID(paletteNum);
if (!restoreOriginalColor)
{
@@ -1308,7 +1308,7 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
}
else
{
CpuCopy32(&gPlttBufferUnfaded[paletteNum], &gPlttBufferFaded[paletteNum], 32);
CpuCopy32(&gPlttBufferUnfaded[paletteNum], &gPlttBufferFaded[paletteNum], PLTT_SIZE_4BPP);
}
}
@@ -1609,7 +1609,7 @@ void AnimTask_BlendMonInAndOut(u8 task)
DestroyAnimVisualTask(task);
return;
}
gTasks[task].data[0] = (gSprites[spriteId].oam.paletteNum * 0x10) + 0x101;
gTasks[task].data[0] = OBJ_PLTT_ID(gSprites[spriteId].oam.paletteNum) + 1;
AnimTask_BlendMonInAndOutSetup(&gTasks[task]);
}
@@ -1952,7 +1952,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000);
if (!isBackpic)
{
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP);
if (ignoreDeoxys == TRUE || ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_ANIM, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
LoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
gMonSpritesGfxPtr->multiUseBuffer,
@@ -1968,7 +1968,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
}
else
{
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), (palette * 0x10) + 0x100, 0x20);
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), OBJ_PLTT_ID(palette), PLTT_SIZE_4BPP);
if (ignoreDeoxys == TRUE || ShouldIgnoreDeoxysForm(DEOXYS_CHECK_BATTLE_ANIM, battlerId) == TRUE || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != 0)
LoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
gMonSpritesGfxPtr->multiUseBuffer,
@@ -2224,8 +2224,8 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId)
task->tPaletteNum = AllocSpritePalette(ANIM_TAG_BENT_SPOON);
task->tNumTracesActive = 0;
dest = (task->tPaletteNum + 16) * 16;
src = (gSprites[task->tBattlerSpriteId].oam.paletteNum + 0x10) * 0x10;
dest = OBJ_PLTT_ID2(task->tPaletteNum);
src = OBJ_PLTT_ID2(gSprites[task->tBattlerSpriteId].oam.paletteNum);
// Set trace's priority based on battler's subpriority
task->tPriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
@@ -2234,7 +2234,7 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId)
else
task->tPriority = 3;
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20);
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], PLTT_SIZE_4BPP);
BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]);
task->func = AnimTask_AttackerPunchWithTrace_Step;
}
+1 -1
View File
@@ -459,7 +459,7 @@ static void AnimDefensiveWall(struct Sprite *sprite)
}
if (IsContest())
sprite->y += 9;
sprite->data[0] = 256 + IndexOfSpritePaletteTag(gBattleAnimArgs[2]) * 16;
sprite->data[0] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(gBattleAnimArgs[2]));
sprite->callback = AnimDefensiveWall_Step2;
sprite->callback(sprite);
}
+1 -1
View File
@@ -404,7 +404,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32);
LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
if (IsContest())
RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0);
if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+11 -11
View File
@@ -438,7 +438,7 @@ void AnimTask_LevelUpHealthBox(u8 taskId)
GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gUnusedLevelupAnimationTilemap);
AnimLoadCompressedBgGfx(animBgData.bgId, gUnusedLevelupAnimationGfx, animBgData.tilesOffset);
LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32);
LoadCompressedPalette(gCureBubblesPal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
gBattle_BG1_X = -gSprites[spriteId3].x + 32;
gBattle_BG1_Y = -gSprites[spriteId3].y - 32;
gTasks[taskId].data[1] = 640;
@@ -518,10 +518,10 @@ void DoLoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battler)
spriteId2 = gSprites[healthBoxSpriteId].data[5];
*paletteId1 = AllocSpritePalette(TAG_HEALTHBOX_PALS_1);
*paletteId2 = AllocSpritePalette(TAG_HEALTHBOX_PALS_2);
offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100;
offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100;
LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20);
LoadPalette(&gPlttBufferUnfaded[offset2], *paletteId2 * 16 + 0x100, 0x20);
offset1 = OBJ_PLTT_ID(gSprites[healthBoxSpriteId].oam.paletteNum);
offset2 = OBJ_PLTT_ID(gSprites[spriteId2].oam.paletteNum);
LoadPalette(&gPlttBufferUnfaded[offset1], OBJ_PLTT_ID(*paletteId1), PLTT_SIZE_4BPP);
LoadPalette(&gPlttBufferUnfaded[offset2], OBJ_PLTT_ID(*paletteId2), PLTT_SIZE_4BPP);
gSprites[healthBoxSpriteId].oam.paletteNum = *paletteId1;
gSprites[spriteId1].oam.paletteNum = *paletteId1;
gSprites[spriteId2].oam.paletteNum = *paletteId2;
@@ -584,7 +584,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId)
if (gTasks[taskId].data[2] > 16)
gTasks[taskId].data[2] = 16;
paletteOffset = paletteNum * 16 + 0x100;
paletteOffset = OBJ_PLTT_ID(paletteNum);
BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31));
if (gTasks[taskId].data[2] == 16)
gTasks[taskId].data[1]++;
@@ -594,7 +594,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId)
if (gTasks[taskId].data[2] < 0)
gTasks[taskId].data[2] = 0;
paletteOffset = paletteNum * 16 + 0x100;
paletteOffset = OBJ_PLTT_ID(paletteNum);
BlendPalette(paletteOffset + colorOffset, 1, gTasks[taskId].data[2], RGB(20, 27, 31));
if (gTasks[taskId].data[2] == 0)
DestroyAnimVisualTask(taskId);
@@ -1874,12 +1874,12 @@ u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 battler, u32 selectedPalettes, u8
if (!unfadeLater)
{
BlendPalette(battler * 16 + 0x100, 16, 0, sBallOpenFadeColors[ballId]);
BlendPalette(OBJ_PLTT_ID(battler), 16, 0, sBallOpenFadeColors[ballId]);
gTasks[taskId].data[1] = 1;
}
else
{
BlendPalette(battler * 16 + 0x100, 16, 16, sBallOpenFadeColors[ballId]);
BlendPalette(OBJ_PLTT_ID(battler), 16, 16, sBallOpenFadeColors[ballId]);
gTasks[taskId].data[0] = 16;
gTasks[taskId].data[1] = -1;
gTasks[taskId].func = Task_FadeMon_ToNormal;
@@ -1895,7 +1895,7 @@ static void Task_FadeMon_ToBallColor(u8 taskId)
if (gTasks[taskId].data[2] <= 16)
{
BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], sBallOpenFadeColors[ballId]);
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[3]), 16, gTasks[taskId].data[0], sBallOpenFadeColors[ballId]);
gTasks[taskId].data[0] += gTasks[taskId].data[1];
gTasks[taskId].data[2]++;
}
@@ -1923,7 +1923,7 @@ static void Task_FadeMon_ToNormal_Step(u8 taskId)
if (gTasks[taskId].data[2] <= 16)
{
BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], sBallOpenFadeColors[ballId]);
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[3]), 16, gTasks[taskId].data[0], sBallOpenFadeColors[ballId]);
gTasks[taskId].data[0] += gTasks[taskId].data[1];
gTasks[taskId].data[2]++;
}
+5 -5
View File
@@ -284,7 +284,7 @@ static void Task_UpdateFlashingCircleImpacts(u8 taskId)
if (gTasks[taskId].data[2] == 2)
{
gTasks[taskId].data[2] = 0;
BlendPalette(0x100 + gTasks[taskId].data[0] * 16, 16, gTasks[taskId].data[4], gTasks[taskId].data[1]);
BlendPalette(OBJ_PLTT_ID(gTasks[taskId].data[0]), 16, gTasks[taskId].data[4], gTasks[taskId].data[1]);
if (gTasks[taskId].data[5] == 0)
{
gTasks[taskId].data[4]++;
@@ -394,10 +394,10 @@ static void AnimTask_FrozenIceCube_Step2(u8 taskId)
{
u16 temp;
temp = gPlttBufferFaded[0x100 + palIndex * 16 + 13];
gPlttBufferFaded[0x100 + palIndex * 16 + 13] = gPlttBufferFaded[0x100 + palIndex * 16 + 14];
gPlttBufferFaded[0x100 + palIndex * 16 + 14] = gPlttBufferFaded[0x100 + palIndex * 16 + 15];
gPlttBufferFaded[0x100 + palIndex * 16 + 15] = temp;
temp = gPlttBufferFaded[OBJ_PLTT_ID(palIndex) + 13];
gPlttBufferFaded[OBJ_PLTT_ID(palIndex) + 13] = gPlttBufferFaded[OBJ_PLTT_ID(palIndex) + 14];
gPlttBufferFaded[OBJ_PLTT_ID(palIndex) + 14] = gPlttBufferFaded[OBJ_PLTT_ID(palIndex) + 15];
gPlttBufferFaded[OBJ_PLTT_ID(palIndex) + 15] = temp;
gTasks[taskId].data[2] = 0;
gTasks[taskId].data[3]++;
+16 -16
View File
@@ -338,7 +338,7 @@ void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId)
if (IsContest())
RelocateBattleBgPal(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_sheet, animBgData.tilesOffset);
LoadPalette(sRgbWhite, animBgData.paletteId * 16 + 1, 2);
LoadPalette(sRgbWhite, BG_PLTT_ID(animBgData.paletteId) + 1, PLTT_SIZEOF(1));
gBattle_BG1_X = -gSprites[spriteId].x + 32;
gBattle_BG1_Y = -gSprites[spriteId].y + 32;
gTasks[taskId].data[0] = newSpriteId;
@@ -465,28 +465,28 @@ static void StatsChangeAnimation_Step2(u8 taskId)
switch (sAnimStatsChangeData->data[1])
{
case 0:
LoadCompressedPalette(gBattleStatMask2_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask2_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
case 1:
LoadCompressedPalette(gBattleStatMask1_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask1_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
case 2:
LoadCompressedPalette(gBattleStatMask3_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask3_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
case 3:
LoadCompressedPalette(gBattleStatMask4_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask4_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
case 4:
LoadCompressedPalette(gBattleStatMask6_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask6_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
case 5:
LoadCompressedPalette(gBattleStatMask7_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask7_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
case 6:
LoadCompressedPalette(gBattleStatMask8_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask8_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
default:
LoadCompressedPalette(gBattleStatMask5_Pal, animBgData.paletteId * 16, 32);
LoadCompressedPalette(gBattleStatMask5_Pal, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
break;
}
gBattle_BG1_X = 0;
@@ -618,13 +618,13 @@ static void AnimTask_Flash_Step(u8 taskId)
{
if ((task->data[15] >> i) & 1)
{
u16 paletteOffset = i * 16;
u16 paletteOffset = BG_PLTT_ID(i);
BlendPalette(paletteOffset, 16, task->data[2], 0xFFFF);
}
if ((task->data[14] >> i) & 1)
{
u16 paletteOffset = i * 16 + 0x100;
u16 paletteOffset = OBJ_PLTT_ID(i);
BlendPalette(paletteOffset, 16, task->data[2], 0);
}
}
@@ -645,7 +645,7 @@ static void SetPalettesToColor(u32 selectedPalettes, u16 color)
for (i = 0; i < 32; selectedPalettes >>= 1, ++i)
if (selectedPalettes & 1)
for (curOffset = i * 16, paletteOffset = curOffset; curOffset < paletteOffset + 16; ++curOffset)
for (curOffset = PLTT_ID(i), paletteOffset = curOffset; curOffset < paletteOffset + 16; ++curOffset)
gPlttBufferFaded[curOffset] = color;
}
@@ -764,7 +764,7 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 scrollSpeed, u8 battler1
if (IsContest())
RelocateBattleBgPal(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
AnimLoadCompressedBgGfx(animBgData.bgId, gfx, animBgData.tilesOffset);
LoadCompressedPalette(palette, animBgData.paletteId * 16, 32);
LoadCompressedPalette(palette, BG_PLTT_ID(animBgData.paletteId), PLTT_SIZE_4BPP);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gTasks[taskId].data[1] = scrollSpeed;
@@ -867,7 +867,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId)
paletteIndex = gBattleAnimAttacker + 16;
else if (gBattleAnimArgs[0] == 2)
paletteIndex = gBattleAnimTarget + 16;
memcpy(&gMonSpritesGfxPtr->multiUseBuffer[gBattleAnimArgs[1] * 16], &gPlttBufferUnfaded[paletteIndex * 16], 32);
memcpy(&gMonSpritesGfxPtr->multiUseBuffer[gBattleAnimArgs[1] * 16], &gPlttBufferUnfaded[PLTT_ID(paletteIndex)], PLTT_SIZE_4BPP);
DestroyAnimVisualTask(taskId);
}
@@ -885,7 +885,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId)
paletteIndex = gBattleAnimAttacker + 16;
else if (gBattleAnimArgs[0] == 2)
paletteIndex = gBattleAnimTarget + 16;
memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gMonSpritesGfxPtr->multiUseBuffer[gBattleAnimArgs[1] * 16], 32);
memcpy(&gPlttBufferUnfaded[PLTT_ID(paletteIndex)], &gMonSpritesGfxPtr->multiUseBuffer[gBattleAnimArgs[1] * 16], PLTT_SIZE_4BPP);
DestroyAnimVisualTask(taskId);
}
@@ -903,7 +903,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId)
paletteIndex = gBattleAnimAttacker + 16;
else if (gBattleAnimArgs[0] == 2)
paletteIndex = gBattleAnimTarget + 16;
memcpy(&gPlttBufferUnfaded[paletteIndex * 16], &gPlttBufferFaded[paletteIndex * 16], 32);
memcpy(&gPlttBufferUnfaded[PLTT_ID(paletteIndex)], &gPlttBufferFaded[PLTT_ID(paletteIndex)], PLTT_SIZE_4BPP);
DestroyAnimVisualTask(taskId);
}
+3 -3
View File
@@ -620,7 +620,7 @@ static void AnimAuroraBeamRings_Step(struct Sprite *sprite)
void AnimTask_RotateAuroraRingColors(u8 taskId)
{
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_RAINBOW_RINGS) * 16 + 256;
gTasks[taskId].data[2] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(ANIM_TAG_RAINBOW_RINGS));
gTasks[taskId].func = AnimTask_RotateAuroraRingColors_Step;
}
static void AnimTask_RotateAuroraRingColors_Step(u8 taskId)
@@ -826,9 +826,9 @@ void AnimTask_CreateSurfWave(u8 taskId)
}
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset);
if (gBattleAnimArgs[0] == 0)
LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32);
LoadCompressedPalette(gBattleAnimBgPalette_Surf, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
else
LoadCompressedPalette(gBattleAnimBgPalette_MuddyWater, animBg.paletteId * 16, 32);
LoadCompressedPalette(gBattleAnimBgPalette_MuddyWater, BG_PLTT_ID(animBg.paletteId), PLTT_SIZE_4BPP);
taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1);
gTasks[taskId].data[15] = taskId2;
gTasks[taskId2].data[0] = 0;
+20 -17
View File
@@ -648,7 +648,7 @@ static void LoadBattleTerrainGfx(u16 terrain)
// Copy to bg3
LZDecompressVram(sBattleTerrainTable[terrain].tileset, (void *)BG_CHAR_ADDR(2));
LZDecompressVram(sBattleTerrainTable[terrain].tilemap, (void *)BG_SCREEN_ADDR(26));
LoadCompressedPalette(sBattleTerrainTable[terrain].palette, 0x20, 0x60);
LoadCompressedPalette(sBattleTerrainTable[terrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
}
static void LoadBattleTerrainEntryGfx(u16 terrain)
@@ -690,19 +690,22 @@ void InitBattleBgsVideo(void)
void LoadBattleMenuWindowGfx(void)
{
LoadUserWindowGfx(2, 0x012, 0x10);
LoadUserWindowGfx(2, 0x022, 0x10);
gPlttBufferUnfaded[0x5C] = RGB( 9, 9, 9);
gPlttBufferUnfaded[0x5D] = RGB( 9, 9, 9);
gPlttBufferUnfaded[0x5E] = RGB(31, 31, 31);
gPlttBufferUnfaded[0x5F] = RGB( 26, 26, 25);
CpuCopy16(&gPlttBufferUnfaded[0x5C], &gPlttBufferFaded[0x5C], 8);
LoadUserWindowGfx(2, 0x012, BG_PLTT_ID(1));
LoadUserWindowGfx(2, 0x022, BG_PLTT_ID(1));
gPlttBufferUnfaded[BG_PLTT_ID(5) + 12] = RGB( 9, 9, 9);
gPlttBufferUnfaded[BG_PLTT_ID(5) + 13] = RGB( 9, 9, 9);
gPlttBufferUnfaded[BG_PLTT_ID(5) + 14] = RGB(31, 31, 31);
gPlttBufferUnfaded[BG_PLTT_ID(5) + 15] = RGB( 26, 26, 25);
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(5) + 12], &gPlttBufferFaded[BG_PLTT_ID(5) + 12], PLTT_SIZEOF(4));
if (gBattleTypeFlags & (BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_POKEDUDE))
{
Menu_LoadStdPalAt(0x70);
LoadMenuMessageWindowGfx(0, 0x030, 0x70);
gPlttBufferUnfaded[0x76] = RGB( 0, 0, 0);
CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2);
Menu_LoadStdPalAt(BG_PLTT_ID(7));
LoadMenuMessageWindowGfx(0, 0x030, BG_PLTT_ID(7));
gPlttBufferUnfaded[BG_PLTT_ID(7) + 6] = RGB( 0, 0, 0);
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(7) + 6], &gPlttBufferFaded[BG_PLTT_ID(7) + 6], PLTT_SIZEOF(1));
}
}
@@ -716,7 +719,7 @@ void LoadBattleTextboxAndBackground(void)
LZDecompressVram(gBattleInterface_Textbox_Gfx, (void *)BG_CHAR_ADDR(0));
CopyToBgTilemapBuffer(0, gBattleInterface_Textbox_Tilemap, 0, 0x000);
CopyBgTilemapBufferToVram(0);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, 0x00, 0x40);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP);
LoadBattleMenuWindowGfx();
DrawMainBattleBackground();
}
@@ -927,7 +930,7 @@ void InitLinkBattleVsScreen(u8 taskId)
break;
case 1:
palId = AllocSpritePalette(TAG_VS_LETTERS);
gPlttBufferUnfaded[palId * 16 + 0x10F] = gPlttBufferFaded[palId * 16 + 0x10F] = RGB(31, 31, 31);
gPlttBufferUnfaded[OBJ_PLTT_ID(palId) + 15] = gPlttBufferFaded[OBJ_PLTT_ID(palId) + 15] = RGB_WHITE;
gBattleStruct->linkBattleVsSpriteId_V = CreateSprite(&sVsLetter_V_SpriteTemplate, 108, 80, 0);
gBattleStruct->linkBattleVsSpriteId_S = CreateSprite(&sVsLetter_S_SpriteTemplate, 132, 80, 0);
gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = TRUE;
@@ -982,7 +985,7 @@ void DrawBattleEntryBackground(void)
{
LZDecompressVram(gFile_graphics_battle_transitions_vs_frame_sheet, (void *)(BG_CHAR_ADDR(1)));
LZDecompressVram(gVsLettersGfx, (void *)(VRAM + 0x10000));
LoadCompressedPalette(gFile_graphics_battle_transitions_vs_frame_palette, 0x60, 0x20);
LoadCompressedPalette(gFile_graphics_battle_transitions_vs_frame_palette, BG_PLTT_ID(6), PLTT_SIZE_4BPP);
SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1);
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(28) | BGCNT_TXT512x256);
CopyToBgTilemapBuffer(1, gFile_graphics_battle_transitions_vs_frame_tilemap, 0, 0);
@@ -1083,7 +1086,7 @@ bool8 LoadChosenBattleElement(u8 caseId)
CopyBgTilemapBufferToVram(0);
break;
case 2:
LoadCompressedPalette(gBattleInterface_Textbox_Pal, 0x00, 0x40);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP);
break;
case 3:
battleScene = GetBattleTerrainOverride();
@@ -1095,7 +1098,7 @@ bool8 LoadChosenBattleElement(u8 caseId)
break;
case 5:
battleScene = GetBattleTerrainOverride();
LoadCompressedPalette(sBattleTerrainTable[battleScene].palette, 0x20, 0x60);
LoadCompressedPalette(sBattleTerrainTable[battleScene].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP);
break;
case 6:
LoadBattleMenuWindowGfx();
+1 -1
View File
@@ -1513,7 +1513,7 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void)
trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender;
}
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32);
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
+1 -1
View File
@@ -2086,7 +2086,7 @@ static void OakOldManHandleIntroTrainerBallThrow(void)
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(Task_StartSendOutAnim, 5);
gTasks[taskId].data[0] = gActiveBattler;
+1 -1
View File
@@ -2714,7 +2714,7 @@ static void PlayerHandleIntroTrainerBallThrow(void)
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(Task_StartSendOutAnim, 5);
gTasks[taskId].data[0] = gActiveBattler;
+1 -1
View File
@@ -1858,7 +1858,7 @@ static void PokedudeHandleIntroTrainerBallThrow(void)
StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_POKEDUDE].data, 0x100 + paletteNum * 16, 32);
LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_POKEDUDE].data, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(Task_StartSendOutAnim, 5);
gTasks[taskId].data[0] = gActiveBattler;
+27 -27
View File
@@ -341,27 +341,27 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
gMonSpritesGfxPtr->sprites[position],
species, currentPersonality);
paletteOffset = 0x100 + battlerId * 16;
paletteOffset = OBJ_PLTT_ID(battlerId);
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE)
lzPaletteData = GetMonFrontSpritePal(mon);
else
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
buffer = AllocZeroed(0x400);
LZDecompressWram(lzPaletteData, buffer);
LoadPalette(buffer, paletteOffset, 0x20);
LoadPalette(buffer, 0x80 + battlerId * 16, 0x20);
LoadPalette(buffer, paletteOffset, PLTT_SIZE_4BPP);
LoadPalette(buffer, BG_PLTT_ID(8) + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP);
Free(buffer);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + battlerId * 16;
paletteOffset = OBJ_PLTT_ID(battlerId);
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]);
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20);
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, PLTT_SIZE_4BPP);
}
// transform's pink color
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
{
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
CpuCopy32(&gPlttBufferFaded[paletteOffset], &gPlttBufferUnfaded[paletteOffset], PLTT_SIZE_4BPP);
}
}
@@ -395,27 +395,27 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
HandleLoadSpecialPokePic(&gMonBackPicTable[species],
gMonSpritesGfxPtr->sprites[position],
species, currentPersonality);
paletteOffset = 0x100 + battlerId * 16;
paletteOffset = OBJ_PLTT_ID(battlerId);
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies == SPECIES_NONE)
lzPaletteData = GetMonFrontSpritePal(mon);
else
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
buffer = AllocZeroed(0x400);
LZDecompressWram(lzPaletteData, buffer);
LoadPalette(buffer, paletteOffset, 0x20);
LoadPalette(buffer, 0x80 + battlerId * 16, 0x20);
LoadPalette(buffer, paletteOffset, PLTT_SIZE_4BPP);
LoadPalette(buffer, BG_PLTT_ID(8) + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP);
Free(buffer);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + battlerId * 16;
paletteOffset = OBJ_PLTT_ID(battlerId);
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]);
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, 0x20);
LoadPalette(gBattleStruct->castformPalette[gBattleMonForms[battlerId]], paletteOffset, PLTT_SIZE_4BPP);
}
// transform's pink color
if (gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
{
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
CpuCopy32(&gPlttBufferFaded[paletteOffset], &gPlttBufferUnfaded[paletteOffset], PLTT_SIZE_4BPP);
}
}
@@ -426,11 +426,11 @@ void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId)
u8 position = GetBattlerPosition(battlerId);
LZ77UnCompWram(gGhostFrontPic, gMonSpritesGfxPtr->sprites[position]);
palOffset = 0x100 + 16 * battlerId;
palOffset = OBJ_PLTT_ID(battlerId);
buffer = AllocZeroed(0x400);
LZDecompressWram(gGhostPalette, buffer);
LoadPalette(buffer, palOffset, 0x20);
LoadPalette(buffer, 0x80 + 16 * battlerId, 0x20);
LoadPalette(buffer, palOffset, PLTT_SIZE_4BPP);
LoadPalette(buffer, BG_PLTT_ID(8) + BG_PLTT_ID(battlerId), PLTT_SIZE_4BPP);
Free(buffer);
}
@@ -449,7 +449,7 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId)
void DecompressTrainerBackPalette(u16 index, u8 palette)
{
LoadCompressedPalette(gTrainerBackPicPaletteTable[index].data, (palette + 16) * 16, 0x20);
LoadCompressedPalette(gTrainerBackPicPaletteTable[index].data, OBJ_PLTT_ID2(palette), PLTT_SIZE_4BPP);
}
void BattleGfxSfxDummy3(u8 gender)
@@ -675,11 +675,11 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 transformType)
src = gMonSpritesGfxPtr->sprites[position];
dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32);
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + battlerAtk * 16;
paletteOffset = OBJ_PLTT_ID(battlerAtk);
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue);
buffer = AllocZeroed(0x400);
LZDecompressWram(lzPaletteData, buffer);
LoadPalette(buffer, paletteOffset, 32);
LoadPalette(buffer, paletteOffset, PLTT_SIZE_4BPP);
Free(buffer);
gSprites[gBattlerSpriteIds[battlerAtk]].y = GetBattlerSpriteDefault_Y(battlerAtk);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleMonForms[battlerAtk]);
@@ -690,13 +690,13 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 transformType)
else if (transformType) // Castform form change
{
StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerAtk]], gBattleSpritesDataPtr->animationData->animArg);
paletteOffset = 0x100 + battlerAtk * 16;
LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, 32);
paletteOffset = OBJ_PLTT_ID(battlerAtk);
LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, PLTT_SIZE_4BPP);
gBattleMonForms[battlerAtk] = gBattleSpritesDataPtr->animationData->animArg;
if (gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies != SPECIES_NONE)
{
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
CpuCopy32(&gPlttBufferFaded[paletteOffset], &gPlttBufferUnfaded[paletteOffset], PLTT_SIZE_4BPP);
}
gSprites[gBattlerSpriteIds[battlerAtk]].y = GetBattlerSpriteDefault_Y(battlerAtk);
}
@@ -733,19 +733,19 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 transformType)
src = gMonSpritesGfxPtr->sprites[position];
dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32);
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + battlerAtk * 16;
paletteOffset = OBJ_PLTT_ID(battlerAtk);
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue);
buffer = AllocZeroed(0x400);
LZDecompressWram(lzPaletteData, buffer);
LoadPalette(buffer, paletteOffset, 32);
LoadPalette(buffer, paletteOffset, PLTT_SIZE_4BPP);
Free(buffer);
if (targetSpecies == SPECIES_CASTFORM)
{
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]);
LoadPalette(gBattleStruct->castformPalette[0] + gBattleMonForms[battlerDef] * 16, paletteOffset, 32);
LoadPalette(gBattleStruct->castformPalette[0] + gBattleMonForms[battlerDef] * 16, paletteOffset, PLTT_SIZE_4BPP);
}
BlendPalette(paletteOffset, 16, 6, RGB_WHITE);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
CpuCopy32(&gPlttBufferFaded[paletteOffset], &gPlttBufferUnfaded[paletteOffset], PLTT_SIZE_4BPP);
gBattleSpritesDataPtr->battlerData[battlerAtk].transformSpecies = targetSpecies;
gBattleMonForms[battlerAtk] = gBattleMonForms[battlerDef];
gSprites[gBattlerSpriteIds[battlerAtk]].y = GetBattlerSpriteDefault_Y(battlerAtk);
@@ -774,8 +774,8 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
--ptr;
DmaCopy32Defvars(3, (*ptr)[0], (*ptr)[i], 0x800);
}
palOffset = (battlerId * 16) + 0x100;
LoadCompressedPalette(gSubstituteDollPal, palOffset, 32);
palOffset = OBJ_PLTT_ID(battlerId);
LoadCompressedPalette(gSubstituteDollPal, palOffset, PLTT_SIZE_4BPP);
}
else
{
+3 -3
View File
@@ -1663,11 +1663,11 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
return;
}
pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16;
pltAdder = PLTT_ID(gSprites[healthboxSpriteId].oam.paletteNum);
pltAdder += battlerId + 12;
FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2);
CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void *)(OBJ_PLTT + pltAdder * 2), 2);
FillPalette(sStatusIconColors[statusPalId], pltAdder + OBJ_PLTT_OFFSET, PLTT_SIZEOF(1));
CpuCopy16(&gPlttBufferUnfaded[OBJ_PLTT_OFFSET + pltAdder], (u16 *)OBJ_PLTT + pltAdder, PLTT_SIZEOF(1));
CpuCopy32(statusGfxPtr, (void *)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * TILE_SIZE_4BPP), 3 * TILE_SIZE_4BPP);
if (IsDoubleBattle() == TRUE || GetBattlerSide(battlerId) == B_SIDE_OPPONENT)
{
+1 -1
View File
@@ -1769,7 +1769,7 @@ void CB2_InitEndLinkBattle(void)
gBattle_BG3_X = 0;
gBattle_BG3_Y = 0;
InitBattleBgsVideo();
LoadCompressedPalette(gBattleInterface_Textbox_Pal, 0, 64);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP);
LoadBattleMenuWindowGfx();
ResetSpriteData();
ResetTasks();
+4 -4
View File
@@ -2820,11 +2820,11 @@ void SetPpNumbersPaletteInMoveSelection(void)
u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]],
chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]);
gPlttBufferUnfaded[92] = palPtr[(var * 2) + 0];
gPlttBufferUnfaded[91] = palPtr[(var * 2) + 1];
gPlttBufferUnfaded[BG_PLTT_ID(5) + 12] = palPtr[(var * 2) + 0];
gPlttBufferUnfaded[BG_PLTT_ID(5) + 11] = palPtr[(var * 2) + 1];
CpuCopy16(&gPlttBufferUnfaded[92], &gPlttBufferFaded[92], sizeof(u16));
CpuCopy16(&gPlttBufferUnfaded[91], &gPlttBufferFaded[91], sizeof(u16));
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(5) + 12], &gPlttBufferFaded[BG_PLTT_ID(5) + 12], PLTT_SIZEOF(1));
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(5) + 11], &gPlttBufferFaded[BG_PLTT_ID(5) + 11], PLTT_SIZEOF(1));
}
u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp)
+3 -3
View File
@@ -45,7 +45,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 1,
.width = 27,
.height = 18,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x014
}, DUMMY_WIN_TEMPLATE
};
@@ -109,7 +109,7 @@ static void MainCB2_SetUp(void)
break;
case 3:
LoadFrameGfxOnBg(3);
LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20);
LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
gMain.state++;
break;
case 4:
@@ -564,5 +564,5 @@ static void LoadFrameGfxOnBg(u8 bg)
{
LoadBgTiles(bg, sTiles, 0xC0, 0);
CopyToBgTilemapBufferRect(bg, sTilemap, 0, 0, 32, 32);
LoadPalette(sPalette, 0, 0x20);
LoadPalette(sPalette, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
}
+1 -1
View File
@@ -5784,7 +5784,7 @@ static void InitLevelUpBanner(void)
gBattle_BG2_Y = 0;
gBattle_BG2_X = LEVEL_UP_BANNER_START;
LoadPalette(sLevelUpBanner_Pal, 0x60, 0x20);
LoadPalette(sLevelUpBanner_Pal, BG_PLTT_ID(6), sizeof(sLevelUpBanner_Pal));
CopyToWindowPixelBuffer(B_WIN_LEVEL_UP_BANNER, sLevelUpBanner_Gfx, 0, 0);
PutWindowTilemap(B_WIN_LEVEL_UP_BANNER);
CopyWindowToVram(B_WIN_LEVEL_UP_BANNER, COPYWIN_FULL);
+6 -6
View File
@@ -655,7 +655,7 @@ static void Task_BattleTransition(u8 taskId)
static bool8 Transition_StartIntro(struct Task *task)
{
SetWeatherScreenFadeOut();
CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, sizeof(gPlttBufferUnfaded));
CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_SIZE);
if (sTasks_Intro[task->tTransitionId] != NULL)
{
CreateTask(sTasks_Intro[task->tTransitionId], 4);
@@ -937,7 +937,7 @@ static bool8 BigPokeball_Init(struct Task *task)
GetBg0TilesDst(&tilemap, &tileset);
CpuFill16(0, tilemap, BG_SCREEN_SIZE);
CpuCopy16(sBigPokeball_Gfx, tileset, sizeof(sBigPokeball_Gfx));
LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball));
LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball));
task->tState++;
return FALSE;
}
@@ -1108,7 +1108,7 @@ static bool8 PokeballsTrail_Init(struct Task *task)
GetBg0TilesDst(&tilemap, &tileset);
CpuCopy16(sSlidingPokeball_Tilemap, tileset, sizeof(sSlidingPokeball_Tilemap));
CpuFill32(0, tilemap, BG_SCREEN_SIZE);
LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball));
LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball));
task->tState++;
return FALSE;
}
@@ -1906,8 +1906,8 @@ static bool8 Mugshot_SetGfx(struct Task *task)
GetBg0TilesDst(&tilemap, &tileset);
CpuCopy16(sMugshotBanner_Gfx, tileset, sizeof(sMugshotBanner_Gfx));
LoadPalette(sOpponentMugshotsPals[task->tMugshotId], 0xF0, 0x20);
LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], 0xFA, 0xC);
LoadPalette(sOpponentMugshotsPals[task->tMugshotId], BG_PLTT_ID(15), PLTT_SIZE_4BPP);
LoadPalette(sPlayerMugshotsPals[gSaveBlock2Ptr->playerGender], BG_PLTT_ID(15) + 10, PLTT_SIZEOF(16 - 10));
for (i = 0; i < 20; i++)
for (j = 0; j < 32; j++, mugshotsMap++)
@@ -2588,7 +2588,7 @@ static bool8 GridSquares_Init(struct Task *task)
GetBg0TilesDst(&tilemap, &tileset);
CpuCopy16(sGridSquare_Gfx, tileset, 0x20);
CpuFill16(0xF0 << 8, tilemap, BG_SCREEN_SIZE);
LoadPalette(sFieldEffectPal_Pokeball, 0xF0, sizeof(sFieldEffectPal_Pokeball));
LoadPalette(sFieldEffectPal_Pokeball, BG_PLTT_ID(15), sizeof(sFieldEffectPal_Pokeball));
task->tState++;
return FALSE;
}
+13 -13
View File
@@ -548,7 +548,7 @@ static const struct WindowTemplate sWindowTemplate_BerryCrushRankings = {
.tilemapTop = 4,
.width = 24,
.height = 13,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x001
};
@@ -559,7 +559,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[] = {
.tilemapTop = 0,
.width = 9,
.height = 2,
.paletteNum = 0x8,
.paletteNum = 8,
.baseBlock = 0x3ed
}, {
.bg = 0,
@@ -567,7 +567,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[] = {
.tilemapTop = 3,
.width = 9,
.height = 2,
.paletteNum = 0x8,
.paletteNum = 8,
.baseBlock = 0x3db
}, {
.bg = 0,
@@ -575,7 +575,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[] = {
.tilemapTop = 6,
.width = 9,
.height = 2,
.paletteNum = 0x8,
.paletteNum = 8,
.baseBlock = 0x3c9
}, {
.bg = 0,
@@ -583,7 +583,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[] = {
.tilemapTop = 3,
.width = 9,
.height = 2,
.paletteNum = 0x8,
.paletteNum = 8,
.baseBlock = 0x3b7
}, {
.bg = 0,
@@ -591,7 +591,7 @@ static const struct WindowTemplate sWindowTemplates_PlayerNames[] = {
.tilemapTop = 6,
.width = 9,
.height = 2,
.paletteNum = 0x8,
.paletteNum = 8,
.baseBlock = 0x3a5
}, DUMMY_WIN_TEMPLATE
};
@@ -604,7 +604,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = {
.tilemapTop = 2,
.width = 22,
.height = 16,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x001
},
[STATE_RESULTS_RANDOM - RESULTS_STATE_START] = {
@@ -613,7 +613,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = {
.tilemapTop = 2,
.width = 22,
.height = 16,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x001
},
[STATE_RESULTS_CRUSHING - RESULTS_STATE_START] = {
@@ -622,7 +622,7 @@ static const struct WindowTemplate sWindowTemplates_Results[] = {
.tilemapTop = 2,
.width = 24,
.height = 16,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x001
}, DUMMY_WIN_TEMPLATE
};
@@ -2551,7 +2551,7 @@ static s32 ShowGameDisplay(void)
gPaletteFade.bufferTransferDisabled = TRUE;
break;
case 7:
LoadPalette(gBerryCrush_Crusher_Pal, 0, 0x180);
LoadPalette(gBerryCrush_Crusher_Pal, BG_PLTT_ID(0), 12 * PLTT_SIZE_4BPP);
CopyToBgTilemapBuffer(1, sCrusherTop_Tilemap, 0, 0);
CopyToBgTilemapBuffer(2, sContainerCap_Tilemap, 0, 0);
CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0);
@@ -3046,7 +3046,7 @@ static bool32 OpenResultsWindow(struct BerryCrushGame * game, struct BerryCrushG
FillWindowPixelBuffer(spriteManager->resultsWindowId, PIXEL_FILL(0));
break;
case 2:
LoadStdWindowGfx(spriteManager->resultsWindowId, 0x21D, 0xD0);
LoadStdWindowGfx(spriteManager->resultsWindowId, 0x21D, BG_PLTT_ID(13));
DrawStdFrameWithCustomTileAndPalette(spriteManager->resultsWindowId, FALSE, 541, 13);
break;
case 3:
@@ -3105,8 +3105,8 @@ static void Task_ShowBerryCrushRankings(u8 taskId)
tWindowId = AddWindow(&sWindowTemplate_BerryCrushRankings);
PutWindowTilemap(tWindowId);
FillWindowPixelBuffer(tWindowId, PIXEL_FILL(0));
LoadStdWindowGfx(tWindowId, 0x21D, 0xD0);
DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 0x21D, 0xD);
LoadStdWindowGfx(tWindowId, 0x21D, BG_PLTT_ID(13));
DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 0x21D, 13);
break;
case 1:
xPos = 96 - GetStringWidth(FONT_NORMAL, gText_BerryCrush2, -1) / 2u;
+95 -95
View File
@@ -244,116 +244,116 @@ static const struct WindowTemplate sWindowTemplates_Main[] = {
static const struct WindowTemplate sWindowTemplates_Variable[] = {
{
.bg = 0x02,
.tilemapLeft = 0x18,
.tilemapTop = 0x0f,
.width = 0x05,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 24,
.tilemapTop = 15,
.width = 5,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x1d1
}, {
.bg = 0x02,
.tilemapLeft = 0x11,
.tilemapTop = 0x09,
.width = 0x0c,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 17,
.tilemapTop = 9,
.width = 12,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x1d1
}, {
.bg = 0x02,
.tilemapLeft = 0x01,
.tilemapTop = 0x01,
.width = 0x08,
.height = 0x03,
.paletteNum = 0x0c,
.bg = 2,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 8,
.height = 3,
.paletteNum = 12,
.baseBlock = 0x201
}, {
.bg = 0x02,
.tilemapLeft = 0x17,
.tilemapTop = 0x0f,
.width = 0x06,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 23,
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x219
}, {
.bg = 0x02,
.tilemapLeft = 0x15,
.tilemapTop = 0x09,
.width = 0x06,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x219
}, {
.bg = 0x02,
.tilemapLeft = 0x02,
.tilemapTop = 0x0f,
.width = 0x1a,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 2,
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x231
}, {
.bg = 0x02,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0e,
.height = 0x04,
.paletteNum = 0x0c,
.bg = 2,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 14,
.height = 4,
.paletteNum = 12,
.baseBlock = 0x231
}, {
.bg = 0x02,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0f,
.height = 0x04,
.paletteNum = 0x0c,
.bg = 2,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 15,
.height = 4,
.paletteNum = 12,
.baseBlock = 0x269
}, {
.bg = 0x02,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x10,
.height = 0x04,
.paletteNum = 0x0c,
.bg = 2,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 16,
.height = 4,
.paletteNum = 12,
.baseBlock = 0x2a5
}, {
.bg = 0x02,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x17,
.height = 0x04,
.paletteNum = 0x0c,
.bg = 2,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 23,
.height = 4,
.paletteNum = 12,
.baseBlock = 0x2e5
}, {
.bg = 0x02,
.tilemapLeft = 0x16,
.tilemapTop = 0x11,
.width = 0x07,
.height = 0x02,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 22,
.tilemapTop = 17,
.width = 7,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x199
}, {
.bg = 0x02,
.tilemapLeft = 0x16,
.tilemapTop = 0x0f,
.width = 0x07,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 22,
.tilemapTop = 15,
.width = 7,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x199
}, {
.bg = 0x02,
.tilemapLeft = 0x16,
.tilemapTop = 0x0d,
.width = 0x07,
.height = 0x06,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 22,
.tilemapTop = 13,
.width = 7,
.height = 6,
.paletteNum = 15,
.baseBlock = 0x199
}, {
.bg = 0x02,
.tilemapLeft = 0x16,
.tilemapTop = 0x0b,
.width = 0x07,
.height = 0x08,
.paletteNum = 0x0f,
.bg = 2,
.tilemapLeft = 22,
.tilemapTop = 11,
.width = 7,
.height = 8,
.paletteNum = 15,
.baseBlock = 0x199
}
};
@@ -619,9 +619,9 @@ static bool8 BerryPouchLoadGfx(void)
}
break;
case 2:
LoadCompressedPalette(gBerryPouchBgPals, 0, 0x60);
LoadCompressedPalette(gBerryPouchBgPals, BG_PLTT_ID(0), 3 * PLTT_SIZE_4BPP);
if (gSaveBlock2Ptr->playerGender != MALE)
LoadCompressedPalette(gBerryPouchBgPal0FemaleOverride, 0, 0x20);
LoadCompressedPalette(gBerryPouchBgPal0FemaleOverride, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
sResources->data[0]++;
break;
case 3:
@@ -1412,10 +1412,10 @@ static void BerryPouchInitWindows(void)
u8 i;
InitWindows(sWindowTemplates_Main);
DeactivateAllTextPrinters();
LoadUserWindowGfx(0, 0x001, 0xE0);
LoadMenuMessageWindowGfx(0, 0x013, 0xD0);
LoadStdWindowGfx(0, 0x00A, 0xC0);
LoadPalette(gStandardMenuPalette, 0xF0, 0x20);
LoadUserWindowGfx(0, 0x001, BG_PLTT_ID(14));
LoadMenuMessageWindowGfx(0, 0x013, BG_PLTT_ID(13));
LoadStdWindowGfx(0, 0x00A, BG_PLTT_ID(12));
LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
for (i = 0; i < 3; i++)
FillWindowPixelBuffer(i, PIXEL_FILL(0));
PutWindowTilemap(0);
@@ -1439,9 +1439,9 @@ static u8 GetOrCreateVariableWindow(u8 winIdx)
{
sVariableWindowIds[winIdx] = AddWindow(&sWindowTemplates_Variable[winIdx]);
if (winIdx == 2 || winIdx == 6 || winIdx == 7 || winIdx == 8 || winIdx == 9)
DrawStdFrameWithCustomTileAndPalette(sVariableWindowIds[winIdx], FALSE, 0x00A, 0xC);
DrawStdFrameWithCustomTileAndPalette(sVariableWindowIds[winIdx], FALSE, 0x00A, 12);
else
DrawStdFrameWithCustomTileAndPalette(sVariableWindowIds[winIdx], FALSE, 0x001, 0xE);
DrawStdFrameWithCustomTileAndPalette(sVariableWindowIds[winIdx], FALSE, 0x001, 14);
ScheduleBgCopyTilemapToVram(2);
retval = sVariableWindowIds[winIdx];
}
@@ -1450,7 +1450,7 @@ static u8 GetOrCreateVariableWindow(u8 winIdx)
static void VariableWindowSetAltFrameTileAndPalette(u8 winIdx)
{
DrawStdFrameWithCustomTileAndPalette(sVariableWindowIds[winIdx], FALSE, 0x001, 0xE);
DrawStdFrameWithCustomTileAndPalette(sVariableWindowIds[winIdx], FALSE, 0x001, 14);
}
static void DestroyVariableWindow(u8 winIdx)
@@ -1491,12 +1491,12 @@ void DisplayItemMessageInBerryPouch(u8 taskId, u8 fontId, const u8 * str, TaskFu
static void CreateYesNoMenuWin3(u8 taskId, const struct YesNoFuncTable *ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_Variable[3], FONT_NORMAL, 0, 2, 0x001, 0xE, ptrs);
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_Variable[3], FONT_NORMAL, 0, 2, 0x001, 14, ptrs);
}
static void CreateYesNoMenuWin4(u8 taskId, const struct YesNoFuncTable *ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_Variable[4], FONT_NORMAL, 0, 2, 0x001, 0xE, ptrs);
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_Variable[4], FONT_NORMAL, 0, 2, 0x001, 14, ptrs);
}
static void PrintMoneyInWin2(void)
+3 -2
View File
@@ -2,6 +2,7 @@
#include "event_data.h"
#include "load_save.h"
#include "menu.h"
#include "palette.h"
#include "quest_log.h"
#include "script_menu.h"
#include "string_util.h"
@@ -120,8 +121,8 @@ void DisplayBerryPowderVendorMenu(void)
sBerryPowderVendorWindowId = AddWindow(&template);
FillWindowPixelBuffer(sBerryPowderVendorWindowId, 0);
PutWindowTilemap(sBerryPowderVendorWindowId);
LoadStdWindowGfx(sBerryPowderVendorWindowId, 0x21D, 0xD0);
DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 0xD, GetBerryPowder());
LoadStdWindowGfx(sBerryPowderVendorWindowId, 0x21D, BG_PLTT_ID(13));
DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 13, GetBerryPowder());
}
void RemoveBerryPowderVendorMenu(void)
+6 -6
View File
@@ -338,7 +338,7 @@ void BikeClearState(u32 directionHistory, u32 abStartSelectHistory)
gPlayerAvatar.acroBikeState = BIKE_STATE_NORMAL;
gPlayerAvatar.newDirBackup = 0;
gPlayerAvatar.bikeFrameCounter = 0;
gPlayerAvatar.bikeSpeed = SPEED_STANDING;
gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING;
gPlayerAvatar.directionHistory = directionHistory;
gPlayerAvatar.abStartSelectHistory = abStartSelectHistory;
gPlayerAvatar.lastSpinTile = 0;
@@ -355,21 +355,21 @@ void Bike_UpdateBikeCounterSpeed(u8 counter)
static void Bike_SetBikeStill(void)
{
gPlayerAvatar.bikeFrameCounter = 0;
gPlayerAvatar.bikeSpeed = SPEED_STANDING;
gPlayerAvatar.bikeSpeed = PLAYER_SPEED_STANDING;
}
s16 GetPlayerSpeed(void)
{
s16 machBikeSpeeds[] = { SPEED_NORMAL, SPEED_FAST, SPEED_FASTEST };
s16 machBikeSpeeds[] = { PLAYER_SPEED_NORMAL, PLAYER_SPEED_FAST, PLAYER_SPEED_FASTEST };
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE)
return machBikeSpeeds[gPlayerAvatar.bikeFrameCounter];
else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)
return SPEED_FASTER;
return PLAYER_SPEED_FASTER;
else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_DASH))
return SPEED_FAST;
return PLAYER_SPEED_FAST;
else
return SPEED_NORMAL;
return PLAYER_SPEED_NORMAL;
}
void Bike_HandleBumpySlopeJump(void)
+91 -90
View File
@@ -8,61 +8,62 @@
#include "new_menu_helpers.h"
#include "menu.h"
#include "shop.h"
#include "palette.h"
static const struct WindowTemplate sShopBuyMenuWindowTemplatesNormal[] =
{
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0x1,
.width = 0x8,
.height = 0x3,
.paletteNum = 0xF,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 8,
.height = 3,
.paletteNum = 15,
.baseBlock = 0x27,
},
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0xB,
.width = 0xD,
.height = 0x2,
.paletteNum = 0xF,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 11,
.width = 13,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x3F,
},
{
.bg = 0x0,
.tilemapLeft = 0x2,
.tilemapTop = 0xF,
.width = 0x1A,
.height = 0x4,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 2,
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x59,
},
{
.bg = 0x0,
.tilemapLeft = 0x11,
.tilemapTop = 0x9,
.width = 0xC,
.height = 0x4,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 17,
.tilemapTop = 9,
.width = 12,
.height = 4,
.paletteNum = 14,
.baseBlock = 0xC1,
},
{
.bg = 0x0,
.tilemapLeft = 0xB,
.tilemapTop = 0x1,
.width = 0x11,
.height = 0xC,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 11,
.tilemapTop = 1,
.width = 17,
.height = 12,
.paletteNum = 14,
.baseBlock = 0xF1,
},
{
.bg = 0x0,
.tilemapLeft = 0x5,
.tilemapTop = 0xE,
.width = 0x19,
.height = 0x6,
.paletteNum = 0xF,
.bg = 0,
.tilemapLeft = 5,
.tilemapTop = 14,
.width = 25,
.height = 6,
.paletteNum = 15,
.baseBlock = 0x1BD,
},
DUMMY_WIN_TEMPLATE,
@@ -72,66 +73,66 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplatesNormal[] =
static const struct WindowTemplate sShopBuyMenuWindowTemplatesTM[] =
{
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0x1,
.width = 0x8,
.height = 0x3,
.paletteNum = 0xF,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 8,
.height = 3,
.paletteNum = 15,
.baseBlock = 0x27,
},
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0xB,
.width = 0xD,
.height = 0x2,
.paletteNum = 0xF,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 11,
.width = 13,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x3F,
},
{
.bg = 0x0,
.tilemapLeft = 0x2,
.tilemapTop = 0xF,
.width = 0x1A,
.height = 0x4,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 2,
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x59,
},
{
.bg = 0x0,
.tilemapLeft = 0x11,
.tilemapTop = 0x9,
.width = 0xC,
.height = 0x4,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 17,
.tilemapTop = 9,
.width = 12,
.height = 4,
.paletteNum = 14,
.baseBlock = 0xC1,
},
{
.bg = 0x0,
.tilemapLeft = 0xB,
.tilemapTop = 0x1,
.width = 0x11,
.height = 0xA,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 11,
.tilemapTop = 1,
.width = 17,
.height = 10,
.paletteNum = 14,
.baseBlock = 0xF1,
},
{
.bg = 0x0,
.tilemapLeft = 0xC,
.tilemapTop = 0xC,
.width = 0x12,
.height = 0x8,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 12,
.tilemapTop = 12,
.width = 18,
.height = 8,
.paletteNum = 14,
.baseBlock = 0x19B,
},
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0xE,
.width = 0xA,
.height = 0x4,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 14,
.width = 10,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x22B,
},
DUMMY_WIN_TEMPLATE,
@@ -139,12 +140,12 @@ static const struct WindowTemplate sShopBuyMenuWindowTemplatesTM[] =
static const struct WindowTemplate sShopBuyMenuYesNoWindowTemplate =
{
.bg = 0x0,
.tilemapLeft = 0x15,
.tilemapTop = 0x9,
.width = 0x6,
.height = 0x4,
.paletteNum = 0xE,
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 9,
.width = 6,
.height = 4,
.paletteNum = 14,
.baseBlock = 0xC1,
};
@@ -162,9 +163,9 @@ void BuyMenuInitWindows(bool32 isSellingTM)
else
InitWindows(sShopBuyMenuWindowTemplatesTM);
DeactivateAllTextPrinters();
LoadUserWindowGfx(0, 0x1, 0xD0);
LoadMenuMessageWindowGfx(0, 0x13, 0xE0);
LoadStdWindowGfx(0, 0xA, 0xF0);
LoadUserWindowGfx(0, 0x1, BG_PLTT_ID(13));
LoadMenuMessageWindowGfx(0, 0x13, BG_PLTT_ID(14));
LoadStdWindowGfx(0, 0xA, BG_PLTT_ID(15));
PutWindowTilemap(0);
PutWindowTilemap(4);
PutWindowTilemap(5);
@@ -190,15 +191,15 @@ void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback)
void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram)
{
DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, 0x1, 0xD);
DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, 0x1, 13);
}
void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram)
{
DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, 0xA, 0xF);
DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, 0xA, 15);
}
void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo)
{
CreateYesNoMenuWithCallbacks(taskId, &sShopBuyMenuYesNoWindowTemplate, FONT_NORMAL, 0, 2, 1, 0xD, yesNo);
CreateYesNoMenuWithCallbacks(taskId, &sShopBuyMenuYesNoWindowTemplate, FONT_NORMAL, 0, 2, 1, 13, yesNo);
}
+6 -6
View File
@@ -40,7 +40,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 5,
.width = 6,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x00A
}, {
.bg = 0,
@@ -48,7 +48,7 @@ static const struct WindowTemplate sWindowTemplates[] = {
.tilemapTop = 15,
.width = 23,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x022
}, DUMMY_WIN_TEMPLATE
};
@@ -101,16 +101,16 @@ static void Task_DrawClearSaveDataScreen(u8 taskId)
SaveClearScreen_GpuInit();
break;
case 3:
LoadStdWindowGfx(0, 0x001, 0xF0);
LoadStdWindowGfx(1, 0x001, 0xF0);
LoadStdWindowGfx(0, 0x001, BG_PLTT_ID(15));
LoadStdWindowGfx(1, 0x001, BG_PLTT_ID(15));
break;
case 4:
DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF);
DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 15);
AddTextPrinterParameterized4(1, FONT_NORMAL, 0, 3, 1, 1, sTextColor, 0, gText_ClearAllSaveData);
CopyWindowToVram(1, COPYWIN_GFX);
break;
case 5:
CreateYesNoMenu(&sWindowTemplates[0], FONT_NORMAL, 0, 2, 0x001, 0xF, 1);
CreateYesNoMenu(&sWindowTemplates[0], FONT_NORMAL, 0, 2, 0x001, 15, 1);
CopyBgTilemapBufferToVram(0);
break;
default:
+2 -2
View File
@@ -84,8 +84,8 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
sCoinsWindowId = AddWindow(&template);
FillWindowPixelBuffer(sCoinsWindowId, 0);
PutWindowTilemap(sCoinsWindowId);
LoadStdWindowGfx(sCoinsWindowId, 0x21D, 0xD0);
DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x21D, 0xD);
LoadStdWindowGfx(sCoinsWindowId, 0x21D, BG_PLTT_ID(13));
DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x21D, 13);
AddTextPrinterParameterized(sCoinsWindowId, FONT_NORMAL, gText_Coins_2, 0, 0, 0xFF, 0);
PrintCoinsString(coinAmount);
}
+17 -17
View File
@@ -803,9 +803,9 @@ static bool32 DoOverworldMapScrollScene(u8 whichMon)
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(36, DISPLAY_HEIGHT - 36));
SwitchWin1OffWin0On();
InitBgDarkenEffect();
Menu_LoadStdPalAt(0xF0);
gPlttBufferUnfaded[0xFF] = RGB_BLACK;
gPlttBufferFaded[0xFF] = RGB_BLACK;
Menu_LoadStdPalAt(BG_PLTT_ID(15));
gPlttBufferUnfaded[BG_PLTT_ID(15) + 15] = RGB_BLACK;
gPlttBufferFaded[BG_PLTT_ID(15) + 15] = RGB_BLACK;
return TRUE;
default:
return FALSE;
@@ -827,9 +827,9 @@ static s32 RollCredits(void)
case CREDITSSCENE_SETUP_DARKEN_EFFECT:
InitBgDarkenEffect();
CreateCreditsWindow();
Menu_LoadStdPalAt(0xF0);
gPlttBufferUnfaded[0xFF] = RGB_BLACK;
gPlttBufferFaded[0xFF] = RGB_BLACK;
Menu_LoadStdPalAt(BG_PLTT_ID(15));
gPlttBufferUnfaded[BG_PLTT_ID(15) + 15] = RGB_BLACK;
gPlttBufferFaded[BG_PLTT_ID(15) + 15] = RGB_BLACK;
sCreditsMgr->mainseqno = CREDITSSCENE_OPEN_WIN0;
return 0;
case CREDITSSCENE_OPEN_WIN0:
@@ -1128,15 +1128,15 @@ static bool32 DoCreditsMonScene(void)
DecompressAndLoadBgGfxUsingHeap(2, sCreditsMonCircle_Tiles, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(1, gCreditsMonPokeball_Tilemap, 0x500, 0, 1);
DecompressAndLoadBgGfxUsingHeap(2, sCreditsMonCircle_Tilemap, 0x400, 0, 1);
LoadPalette(gCreditsMonPokeball_Pals[sCreditsMgr->whichMon], 0, 0x20);
LoadPalette(sCreditsMonCircle_Pal, 0xF0, 0x20);
LoadPalette(gCreditsMonPokeball_Pals[sCreditsMgr->whichMon], BG_PLTT_ID(0), PLTT_SIZE_4BPP);
LoadPalette(sCreditsMonCircle_Pal, BG_PLTT_ID(15), sizeof(sCreditsMonCircle_Pal));
LoadCreditsMonPic(sCreditsMgr->whichMon);
SetVBlankCallback(VBlankCB);
EnableInterrupts(INTR_FLAG_VBLANK);
sCreditsMgr->subseqno++;
break;
case 1:
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, PIXEL_FILL(1));
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 17);
PutWindowTilemap(0);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
@@ -1249,7 +1249,7 @@ static bool32 DoCopyrightOrTheEndGfxScene(void)
ChangeBgY(0, 0, BG_COORD_SET);
DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].tiles, 0x2000, 0, 0);
DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].map, 0x800, 0, 1);
LoadPalette(sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].palette, 0x00, 0x200);
LoadPalette(sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].palette, BG_PLTT_ID(0), 16 * PLTT_SIZE_4BPP);
SetVBlankCallback(VBlankCB);
EnableInterrupts(INTR_FLAG_VBLANK);
sCreditsMgr->subseqno++;
@@ -1375,7 +1375,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene)
sprSheet.size = 0x3000;
sprSheet.tag = data->characterTilesTag;
LoadCompressedSpriteSheet(&sprSheet);
LoadPalette(sPlayerMale_Pal, 0x1F0, sizeof(sPlayerMale_Pal));
LoadPalette(sPlayerMale_Pal, OBJ_PLTT_ID(15), sizeof(sPlayerMale_Pal));
}
else
{
@@ -1383,7 +1383,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene)
sprSheet.size = 0x3000;
sprSheet.tag = data->characterTilesTag;
LoadCompressedSpriteSheet(&sprSheet);
LoadPalette(sPlayerFemale_Pal, 0x1F0, sizeof(sPlayerFemale_Pal));
LoadPalette(sPlayerFemale_Pal, OBJ_PLTT_ID(15), sizeof(sPlayerFemale_Pal));
}
break;
case 1:
@@ -1392,7 +1392,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene)
sprSheet.size = 0x3000;
sprSheet.tag = data->characterTilesTag;
LoadCompressedSpriteSheet(&sprSheet);
LoadPalette(sRival_Pal, 0x1F0, sizeof(sRival_Pal));
LoadPalette(sRival_Pal, OBJ_PLTT_ID(15), sizeof(sRival_Pal));
break;
}
sprTemplate = sPlayerOrRivalSpriteTemplate;
@@ -1410,7 +1410,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene)
sprSheet.size = 0x3000;
sprSheet.tag = data->groundTilesTag;
LoadCompressedSpriteSheet(&sprSheet);
LoadPalette(sGround_Grass_Pal, 0x1E0, sizeof(sGround_Grass_Pal));
LoadPalette(sGround_Grass_Pal, OBJ_PLTT_ID(14), sizeof(sGround_Grass_Pal));
sprTemplate = sGroundSpriteTemplate_Running;
break;
case 1:
@@ -1418,7 +1418,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene)
sprSheet.size = 0x3000;
sprSheet.tag = data->groundTilesTag;
LoadCompressedSpriteSheet(&sprSheet);
LoadPalette(sGround_Grass_Pal, 0x1E0, sizeof(sGround_Grass_Pal));
LoadPalette(sGround_Grass_Pal, OBJ_PLTT_ID(14), sizeof(sGround_Grass_Pal));
sprTemplate = sGroundSpriteTemplate_Static;
break;
case 2:
@@ -1426,7 +1426,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene)
sprSheet.size = 0x3000;
sprSheet.tag = data->groundTilesTag;
LoadCompressedSpriteSheet(&sprSheet);
LoadPalette(sGround_Dirt_Pal, 0x1E0, sizeof(sGround_Dirt_Pal));
LoadPalette(sGround_Dirt_Pal, OBJ_PLTT_ID(14), sizeof(sGround_Dirt_Pal));
sprTemplate = sGroundSpriteTemplate_Running;
break;
case 3:
@@ -1434,7 +1434,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene)
sprSheet.size = 0x3000;
sprSheet.tag = data->groundTilesTag;
LoadCompressedSpriteSheet(&sprSheet);
LoadPalette(sGround_City_Pal, 0x1E0, sizeof(sGround_City_Pal));
LoadPalette(sGround_City_Pal, OBJ_PLTT_ID(14), sizeof(sGround_City_Pal));
sprTemplate = sGroundSpriteTemplate_Running;
break;
}
+507 -466
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -450,7 +450,7 @@ const u8 gTrainerBackPic_OldMan[] = INCBIN_U8("graphics/trainers/back_pics/old_m
const u8 gTrainerBackPic_RSBrendan[] = INCBIN_U8("graphics/trainers/back_pics/ruby_sapphire_brendan_back_pic.4bpp");
const u8 gTrainerBackPic_RSMay[] = INCBIN_U8("graphics/trainers/back_pics/ruby_sapphire_may_back_pic.4bpp");
const u32 gTrainerPalette_RedBackPic[] = INCBIN_U32("graphics/trainers/palettes/leaf_back_pic.gbapal.lz");
const u32 gTrainerPalette_LeafBackPic[] = INCBIN_U32("graphics/trainers/palettes/red_back_pic.gbapal.lz");
const u32 gTrainerPalette_RedBackPic[] = INCBIN_U32("graphics/trainers/palettes/red_back_pic.gbapal.lz");
const u32 gTrainerPalette_LeafBackPic[] = INCBIN_U32("graphics/trainers/palettes/leaf_back_pic.gbapal.lz");
const u32 gTrainerPalette_PokedudeBackPic[] = INCBIN_U32("graphics/trainers/palettes/pokedude_back_pic.gbapal.lz");
const u32 gTrainerPalette_OldManBackPic[] = INCBIN_U32("graphics/trainers/palettes/old_man_back_pic.gbapal.lz");
+401 -377
View File
@@ -1,379 +1,403 @@
static const void *const sItemIconTable[ITEMS_COUNT + 1][2] =
static const u32 *const sItemIconTable[ITEMS_COUNT + 1][2] =
{
[ITEM_NONE] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_MASTER_BALL] = {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette},
[ITEM_ULTRA_BALL] = {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette},
[ITEM_GREAT_BALL] = {gFile_graphics_items_icons_great_ball_sheet, gFile_graphics_items_icon_palettes_great_ball_palette},
[ITEM_POKE_BALL] = {gFile_graphics_items_icons_poke_ball_sheet, gFile_graphics_items_icon_palettes_poke_ball_palette},
[ITEM_SAFARI_BALL] = {gFile_graphics_items_icons_safari_ball_sheet, gFile_graphics_items_icon_palettes_safari_ball_palette},
[ITEM_NET_BALL] = {gFile_graphics_items_icons_net_ball_sheet, gFile_graphics_items_icon_palettes_net_ball_palette},
[ITEM_DIVE_BALL] = {gFile_graphics_items_icons_dive_ball_sheet, gFile_graphics_items_icon_palettes_dive_ball_palette},
[ITEM_NEST_BALL] = {gFile_graphics_items_icons_nest_ball_sheet, gFile_graphics_items_icon_palettes_nest_ball_palette},
[ITEM_REPEAT_BALL] = {gFile_graphics_items_icons_repeat_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette},
[ITEM_TIMER_BALL] = {gFile_graphics_items_icons_timer_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette},
[ITEM_LUXURY_BALL] = {gFile_graphics_items_icons_luxury_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette},
[ITEM_PREMIER_BALL] = {gFile_graphics_items_icons_premier_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette},
[ITEM_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_potion_palette},
[ITEM_ANTIDOTE] = {gFile_graphics_items_icons_antidote_sheet, gFile_graphics_items_icon_palettes_antidote_palette},
[ITEM_BURN_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_burn_heal_palette},
[ITEM_ICE_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_ice_heal_palette},
[ITEM_AWAKENING] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_awakening_palette},
[ITEM_PARALYZE_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_paralyze_heal_palette},
[ITEM_FULL_RESTORE] = {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_full_restore_palette},
[ITEM_MAX_POTION] = {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_max_potion_palette},
[ITEM_HYPER_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_hyper_potion_palette},
[ITEM_SUPER_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_super_potion_palette},
[ITEM_FULL_HEAL] = {gFile_graphics_items_icons_full_heal_sheet, gFile_graphics_items_icon_palettes_full_heal_palette},
[ITEM_REVIVE] = {gFile_graphics_items_icons_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette},
[ITEM_MAX_REVIVE] = {gFile_graphics_items_icons_max_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette},
[ITEM_FRESH_WATER] = {gFile_graphics_items_icons_fresh_water_sheet, gFile_graphics_items_icon_palettes_fresh_water_palette},
[ITEM_SODA_POP] = {gFile_graphics_items_icons_soda_pop_sheet, gFile_graphics_items_icon_palettes_soda_pop_palette},
[ITEM_LEMONADE] = {gFile_graphics_items_icons_lemonade_sheet, gFile_graphics_items_icon_palettes_lemonade_palette},
[ITEM_MOOMOO_MILK] = {gFile_graphics_items_icons_moomoo_milk_sheet, gFile_graphics_items_icon_palettes_moomoo_milk_palette},
[ITEM_ENERGY_POWDER] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_energy_powder_palette},
[ITEM_ENERGY_ROOT] = {gFile_graphics_items_icons_energy_root_sheet, gFile_graphics_items_icon_palettes_energy_root_palette},
[ITEM_HEAL_POWDER] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_heal_powder_palette},
[ITEM_REVIVAL_HERB] = {gFile_graphics_items_icons_revival_herb_sheet, gFile_graphics_items_icon_palettes_revival_herb_palette},
[ITEM_ETHER] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_ether_palette},
[ITEM_MAX_ETHER] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_ether_palette},
[ITEM_ELIXIR] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_elixir_palette},
[ITEM_MAX_ELIXIR] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_elixir_palette},
[ITEM_LAVA_COOKIE] = {gFile_graphics_items_icons_lava_cookie_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette},
[ITEM_BLUE_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_blue_flute_palette},
[ITEM_YELLOW_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_yellow_flute_palette},
[ITEM_RED_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_red_flute_palette},
[ITEM_BLACK_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_black_flute_palette},
[ITEM_WHITE_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_white_flute_palette},
[ITEM_BERRY_JUICE] = {gFile_graphics_items_icons_berry_juice_sheet, gFile_graphics_items_icon_palettes_berry_juice_palette},
[ITEM_SACRED_ASH] = {gFile_graphics_items_icons_sacred_ash_sheet, gFile_graphics_items_icon_palettes_sacred_ash_palette},
[ITEM_SHOAL_SALT] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_shoal_salt_palette},
[ITEM_SHOAL_SHELL] = {gFile_graphics_items_icons_shoal_shell_sheet, gFile_graphics_items_icon_palettes_shell_palette},
[ITEM_RED_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_red_shard_palette},
[ITEM_BLUE_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_blue_shard_palette},
[ITEM_YELLOW_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_yellow_shard_palette},
[ITEM_GREEN_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_green_shard_palette},
[ITEM_034] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_035] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_036] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_037] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_038] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_039] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_03A] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_03B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_03C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_03D] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_03E] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_HP_UP] = {gFile_graphics_items_icons_hp_up_sheet, gFile_graphics_items_icon_palettes_hp_up_palette},
[ITEM_PROTEIN] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_protein_palette},
[ITEM_IRON] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_iron_palette},
[ITEM_CARBOS] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_carbos_palette},
[ITEM_CALCIUM] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_calcium_palette},
[ITEM_RARE_CANDY] = {gFile_graphics_items_icons_rare_candy_sheet, gFile_graphics_items_icon_palettes_rare_candy_palette},
[ITEM_PP_UP] = {gFile_graphics_items_icons_pp_up_sheet, gFile_graphics_items_icon_palettes_pp_up_palette},
[ITEM_ZINC] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_zinc_palette},
[ITEM_PP_MAX] = {gFile_graphics_items_icons_pp_max_sheet, gFile_graphics_items_icon_palettes_pp_max_palette},
[ITEM_048] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_GUARD_SPEC] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_guard_spec_palette},
[ITEM_DIRE_HIT] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_dire_hit_palette},
[ITEM_X_ATTACK] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_attack_palette},
[ITEM_X_DEFEND] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_defend_palette},
[ITEM_X_SPEED] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_speed_palette},
[ITEM_X_ACCURACY] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_accuracy_palette},
[ITEM_X_SPECIAL] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_special_palette},
[ITEM_POKE_DOLL] = {gFile_graphics_items_icons_poke_doll_sheet, gFile_graphics_items_icon_palettes_poke_doll_palette},
[ITEM_FLUFFY_TAIL] = {gFile_graphics_items_icons_fluffy_tail_sheet, gFile_graphics_items_icon_palettes_fluffy_tail_palette},
[ITEM_052] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_SUPER_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_super_repel_palette},
[ITEM_MAX_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_max_repel_palette},
[ITEM_ESCAPE_ROPE] = {gFile_graphics_items_icons_escape_rope_sheet, gFile_graphics_items_icon_palettes_escape_rope_palette},
[ITEM_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_repel_palette},
[ITEM_057] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_058] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_059] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_05A] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_05B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_05C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_SUN_STONE] = {gFile_graphics_items_icons_sun_stone_sheet, gFile_graphics_items_icon_palettes_sun_stone_palette},
[ITEM_MOON_STONE] = {gFile_graphics_items_icons_moon_stone_sheet, gFile_graphics_items_icon_palettes_moon_stone_palette},
[ITEM_FIRE_STONE] = {gFile_graphics_items_icons_fire_stone_sheet, gFile_graphics_items_icon_palettes_fire_stone_palette},
[ITEM_THUNDER_STONE] = {gFile_graphics_items_icons_thunder_stone_sheet, gFile_graphics_items_icon_palettes_thunder_stone_palette},
[ITEM_WATER_STONE] = {gFile_graphics_items_icons_water_stone_sheet, gFile_graphics_items_icon_palettes_water_stone_palette},
[ITEM_LEAF_STONE] = {gFile_graphics_items_icons_leaf_stone_sheet, gFile_graphics_items_icon_palettes_leaf_stone_palette},
[ITEM_063] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_064] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_065] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_066] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_TINY_MUSHROOM] = {gFile_graphics_items_icons_tiny_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette},
[ITEM_BIG_MUSHROOM] = {gFile_graphics_items_icons_big_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette},
[ITEM_069] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_PEARL] = {gFile_graphics_items_icons_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette},
[ITEM_BIG_PEARL] = {gFile_graphics_items_icons_big_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette},
[ITEM_STARDUST] = {gFile_graphics_items_icons_stardust_sheet, gFile_graphics_items_icon_palettes_star_palette},
[ITEM_STAR_PIECE] = {gFile_graphics_items_icons_star_piece_sheet, gFile_graphics_items_icon_palettes_star_palette},
[ITEM_NUGGET] = {gFile_graphics_items_icons_nugget_sheet, gFile_graphics_items_icon_palettes_nugget_palette},
[ITEM_HEART_SCALE] = {gFile_graphics_items_icons_heart_scale_sheet, gFile_graphics_items_icon_palettes_heart_scale_palette},
[ITEM_070] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_071] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_072] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_073] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_074] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_075] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_076] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_077] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_078] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_ORANGE_MAIL] = {gFile_graphics_items_icons_orange_mail_sheet, gFile_graphics_items_icon_palettes_orange_mail_palette},
[ITEM_HARBOR_MAIL] = {gFile_graphics_items_icons_harbor_mail_sheet, gFile_graphics_items_icon_palettes_harbor_mail_palette},
[ITEM_GLITTER_MAIL] = {gFile_graphics_items_icons_glitter_mail_sheet, gFile_graphics_items_icon_palettes_glitter_mail_palette},
[ITEM_MECH_MAIL] = {gFile_graphics_items_icons_mech_mail_sheet, gFile_graphics_items_icon_palettes_mech_mail_palette},
[ITEM_WOOD_MAIL] = {gFile_graphics_items_icons_wood_mail_sheet, gFile_graphics_items_icon_palettes_wood_mail_palette},
[ITEM_WAVE_MAIL] = {gFile_graphics_items_icons_wave_mail_sheet, gFile_graphics_items_icon_palettes_wave_mail_palette},
[ITEM_BEAD_MAIL] = {gFile_graphics_items_icons_bead_mail_sheet, gFile_graphics_items_icon_palettes_bead_mail_palette},
[ITEM_SHADOW_MAIL] = {gFile_graphics_items_icons_shadow_mail_sheet, gFile_graphics_items_icon_palettes_shadow_mail_palette},
[ITEM_TROPIC_MAIL] = {gFile_graphics_items_icons_tropic_mail_sheet, gFile_graphics_items_icon_palettes_tropic_mail_palette},
[ITEM_DREAM_MAIL] = {gFile_graphics_items_icons_dream_mail_sheet, gFile_graphics_items_icon_palettes_dream_mail_palette},
[ITEM_FAB_MAIL] = {gFile_graphics_items_icons_fab_mail_sheet, gFile_graphics_items_icon_palettes_fab_mail_palette},
[ITEM_RETRO_MAIL] = {gFile_graphics_items_icons_retro_mail_sheet, gFile_graphics_items_icon_palettes_retro_mail_palette},
[ITEM_CHERI_BERRY] = {gFile_graphics_items_icons_cheri_berry_sheet, gFile_graphics_items_icon_palettes_cheri_berry_palette},
[ITEM_CHESTO_BERRY] = {gFile_graphics_items_icons_chesto_berry_sheet, gFile_graphics_items_icon_palettes_chesto_berry_palette},
[ITEM_PECHA_BERRY] = {gFile_graphics_items_icons_pecha_berry_sheet, gFile_graphics_items_icon_palettes_pecha_berry_palette},
[ITEM_RAWST_BERRY] = {gFile_graphics_items_icons_rawst_berry_sheet, gFile_graphics_items_icon_palettes_rawst_berry_palette},
[ITEM_ASPEAR_BERRY] = {gFile_graphics_items_icons_aspear_berry_sheet, gFile_graphics_items_icon_palettes_aspear_berry_palette},
[ITEM_LEPPA_BERRY] = {gFile_graphics_items_icons_leppa_berry_sheet, gFile_graphics_items_icon_palettes_leppa_berry_palette},
[ITEM_ORAN_BERRY] = {gFile_graphics_items_icons_oran_berry_sheet, gFile_graphics_items_icon_palettes_oran_berry_palette},
[ITEM_PERSIM_BERRY] = {gFile_graphics_items_icons_persim_berry_sheet, gFile_graphics_items_icon_palettes_persim_berry_palette},
[ITEM_LUM_BERRY] = {gFile_graphics_items_icons_lum_berry_sheet, gFile_graphics_items_icon_palettes_lum_berry_palette},
[ITEM_SITRUS_BERRY] = {gFile_graphics_items_icons_sitrus_berry_sheet, gFile_graphics_items_icon_palettes_sitrus_berry_palette},
[ITEM_FIGY_BERRY] = {gFile_graphics_items_icons_figy_berry_sheet, gFile_graphics_items_icon_palettes_figy_berry_palette},
[ITEM_WIKI_BERRY] = {gFile_graphics_items_icons_wiki_berry_sheet, gFile_graphics_items_icon_palettes_wiki_berry_palette},
[ITEM_MAGO_BERRY] = {gFile_graphics_items_icons_mago_berry_sheet, gFile_graphics_items_icon_palettes_mago_berry_palette},
[ITEM_AGUAV_BERRY] = {gFile_graphics_items_icons_aguav_berry_sheet, gFile_graphics_items_icon_palettes_aguav_berry_palette},
[ITEM_IAPAPA_BERRY] = {gFile_graphics_items_icons_iapapa_berry_sheet, gFile_graphics_items_icon_palettes_iapapa_berry_palette},
[ITEM_RAZZ_BERRY] = {gFile_graphics_items_icons_razz_berry_sheet, gFile_graphics_items_icon_palettes_razz_berry_palette},
[ITEM_BLUK_BERRY] = {gFile_graphics_items_icons_bluk_berry_sheet, gFile_graphics_items_icon_palettes_bluk_berry_palette},
[ITEM_NANAB_BERRY] = {gFile_graphics_items_icons_nanab_berry_sheet, gFile_graphics_items_icon_palettes_nanab_berry_palette},
[ITEM_WEPEAR_BERRY] = {gFile_graphics_items_icons_wepear_berry_sheet, gFile_graphics_items_icon_palettes_wepear_berry_palette},
[ITEM_PINAP_BERRY] = {gFile_graphics_items_icons_pinap_berry_sheet, gFile_graphics_items_icon_palettes_pinap_berry_palette},
[ITEM_POMEG_BERRY] = {gFile_graphics_items_icons_pomeg_berry_sheet, gFile_graphics_items_icon_palettes_pomeg_berry_palette},
[ITEM_KELPSY_BERRY] = {gFile_graphics_items_icons_kelpsy_berry_sheet, gFile_graphics_items_icon_palettes_kelpsy_berry_palette},
[ITEM_QUALOT_BERRY] = {gFile_graphics_items_icons_qualot_berry_sheet, gFile_graphics_items_icon_palettes_qualot_berry_palette},
[ITEM_HONDEW_BERRY] = {gFile_graphics_items_icons_hondew_berry_sheet, gFile_graphics_items_icon_palettes_hondew_berry_palette},
[ITEM_GREPA_BERRY] = {gFile_graphics_items_icons_grepa_berry_sheet, gFile_graphics_items_icon_palettes_grepa_berry_palette},
[ITEM_TAMATO_BERRY] = {gFile_graphics_items_icons_tamato_berry_sheet, gFile_graphics_items_icon_palettes_tamato_berry_palette},
[ITEM_CORNN_BERRY] = {gFile_graphics_items_icons_cornn_berry_sheet, gFile_graphics_items_icon_palettes_cornn_berry_palette},
[ITEM_MAGOST_BERRY] = {gFile_graphics_items_icons_magost_berry_sheet, gFile_graphics_items_icon_palettes_magost_berry_palette},
[ITEM_RABUTA_BERRY] = {gFile_graphics_items_icons_rabuta_berry_sheet, gFile_graphics_items_icon_palettes_rabuta_berry_palette},
[ITEM_NOMEL_BERRY] = {gFile_graphics_items_icons_nomel_berry_sheet, gFile_graphics_items_icon_palettes_nomel_berry_palette},
[ITEM_SPELON_BERRY] = {gFile_graphics_items_icons_spelon_berry_sheet, gFile_graphics_items_icon_palettes_spelon_berry_palette},
[ITEM_PAMTRE_BERRY] = {gFile_graphics_items_icons_pamtre_berry_sheet, gFile_graphics_items_icon_palettes_pamtre_berry_palette},
[ITEM_WATMEL_BERRY] = {gFile_graphics_items_icons_watmel_berry_sheet, gFile_graphics_items_icon_palettes_watmel_berry_palette},
[ITEM_DURIN_BERRY] = {gFile_graphics_items_icons_durin_berry_sheet, gFile_graphics_items_icon_palettes_durin_berry_palette},
[ITEM_BELUE_BERRY] = {gFile_graphics_items_icons_belue_berry_sheet, gFile_graphics_items_icon_palettes_belue_berry_palette},
[ITEM_LIECHI_BERRY] = {gFile_graphics_items_icons_liechi_berry_sheet, gFile_graphics_items_icon_palettes_liechi_berry_palette},
[ITEM_GANLON_BERRY] = {gFile_graphics_items_icons_ganlon_berry_sheet, gFile_graphics_items_icon_palettes_ganlon_berry_palette},
[ITEM_SALAC_BERRY] = {gFile_graphics_items_icons_salac_berry_sheet, gFile_graphics_items_icon_palettes_salac_berry_palette},
[ITEM_PETAYA_BERRY] = {gFile_graphics_items_icons_petaya_berry_sheet, gFile_graphics_items_icon_palettes_petaya_berry_palette},
[ITEM_APICOT_BERRY] = {gFile_graphics_items_icons_apicot_berry_sheet, gFile_graphics_items_icon_palettes_apicot_berry_palette},
[ITEM_LANSAT_BERRY] = {gFile_graphics_items_icons_lansat_berry_sheet, gFile_graphics_items_icon_palettes_lansat_berry_palette},
[ITEM_STARF_BERRY] = {gFile_graphics_items_icons_starf_berry_sheet, gFile_graphics_items_icon_palettes_starf_berry_palette},
[ITEM_ENIGMA_BERRY] = {gFile_graphics_items_icons_enigma_berry_sheet, gFile_graphics_items_icon_palettes_enigma_berry_palette},
[ITEM_0B0] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0B1] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0B2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_BRIGHT_POWDER] = {gFile_graphics_items_icons_bright_powder_sheet, gFile_graphics_items_icon_palettes_bright_powder_palette},
[ITEM_WHITE_HERB] = {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_white_herb_palette},
[ITEM_MACHO_BRACE] = {gFile_graphics_items_icons_macho_brace_sheet, gFile_graphics_items_icon_palettes_macho_brace_palette},
[ITEM_EXP_SHARE] = {gFile_graphics_items_icons_exp_share_sheet, gFile_graphics_items_icon_palettes_exp_share_palette},
[ITEM_QUICK_CLAW] = {gFile_graphics_items_icons_quick_claw_sheet, gFile_graphics_items_icon_palettes_quick_claw_palette},
[ITEM_SOOTHE_BELL] = {gFile_graphics_items_icons_soothe_bell_sheet, gFile_graphics_items_icon_palettes_soothe_bell_palette},
[ITEM_MENTAL_HERB] = {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_mental_herb_palette},
[ITEM_CHOICE_BAND] = {gFile_graphics_items_icons_choice_band_sheet, gFile_graphics_items_icon_palettes_choice_band_palette},
[ITEM_KINGS_ROCK] = {gFile_graphics_items_icons_kings_rock_sheet, gFile_graphics_items_icon_palettes_kings_rock_palette},
[ITEM_SILVER_POWDER] = {gFile_graphics_items_icons_silver_powder_sheet, gFile_graphics_items_icon_palettes_silver_powder_palette},
[ITEM_AMULET_COIN] = {gFile_graphics_items_icons_amulet_coin_sheet, gFile_graphics_items_icon_palettes_amulet_coin_palette},
[ITEM_CLEANSE_TAG] = {gFile_graphics_items_icons_cleanse_tag_sheet, gFile_graphics_items_icon_palettes_cleanse_tag_palette},
[ITEM_SOUL_DEW] = {gFile_graphics_items_icons_soul_dew_sheet, gFile_graphics_items_icon_palettes_soul_dew_palette},
[ITEM_DEEP_SEA_TOOTH] = {gFile_graphics_items_icons_deep_sea_tooth_sheet, gFile_graphics_items_icon_palettes_deep_sea_tooth_palette},
[ITEM_DEEP_SEA_SCALE] = {gFile_graphics_items_icons_deep_sea_scale_sheet, gFile_graphics_items_icon_palettes_deep_sea_scale_palette},
[ITEM_SMOKE_BALL] = {gFile_graphics_items_icons_smoke_ball_sheet, gFile_graphics_items_icon_palettes_smoke_ball_palette},
[ITEM_EVERSTONE] = {gFile_graphics_items_icons_everstone_sheet, gFile_graphics_items_icon_palettes_everstone_palette},
[ITEM_FOCUS_BAND] = {gFile_graphics_items_icons_focus_band_sheet, gFile_graphics_items_icon_palettes_focus_band_palette},
[ITEM_LUCKY_EGG] = {gFile_graphics_items_icons_lucky_egg_sheet, gFile_graphics_items_icon_palettes_lucky_egg_palette},
[ITEM_SCOPE_LENS] = {gFile_graphics_items_icons_scope_lens_sheet, gFile_graphics_items_icon_palettes_scope_lens_palette},
[ITEM_METAL_COAT] = {gFile_graphics_items_icons_metal_coat_sheet, gFile_graphics_items_icon_palettes_metal_coat_palette},
[ITEM_LEFTOVERS] = {gFile_graphics_items_icons_leftovers_sheet, gFile_graphics_items_icon_palettes_leftovers_palette},
[ITEM_DRAGON_SCALE] = {gFile_graphics_items_icons_dragon_scale_sheet, gFile_graphics_items_icon_palettes_dragon_scale_palette},
[ITEM_LIGHT_BALL] = {gFile_graphics_items_icons_light_ball_sheet, gFile_graphics_items_icon_palettes_light_ball_palette},
[ITEM_SOFT_SAND] = {gFile_graphics_items_icons_soft_sand_sheet, gFile_graphics_items_icon_palettes_soft_sand_palette},
[ITEM_HARD_STONE] = {gFile_graphics_items_icons_hard_stone_sheet, gFile_graphics_items_icon_palettes_hard_stone_palette},
[ITEM_MIRACLE_SEED] = {gFile_graphics_items_icons_miracle_seed_sheet, gFile_graphics_items_icon_palettes_miracle_seed_palette},
[ITEM_BLACK_GLASSES] = {gFile_graphics_items_icons_black_glasses_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette},
[ITEM_BLACK_BELT] = {gFile_graphics_items_icons_black_belt_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette},
[ITEM_MAGNET] = {gFile_graphics_items_icons_magnet_sheet, gFile_graphics_items_icon_palettes_magnet_palette},
[ITEM_MYSTIC_WATER] = {gFile_graphics_items_icons_mystic_water_sheet, gFile_graphics_items_icon_palettes_mystic_water_palette},
[ITEM_SHARP_BEAK] = {gFile_graphics_items_icons_sharp_beak_sheet, gFile_graphics_items_icon_palettes_sharp_beak_palette},
[ITEM_POISON_BARB] = {gFile_graphics_items_icons_poison_barb_sheet, gFile_graphics_items_icon_palettes_poison_barb_palette},
[ITEM_NEVER_MELT_ICE] = {gFile_graphics_items_icons_never_melt_ice_sheet, gFile_graphics_items_icon_palettes_never_melt_ice_palette},
[ITEM_SPELL_TAG] = {gFile_graphics_items_icons_spell_tag_sheet, gFile_graphics_items_icon_palettes_spell_tag_palette},
[ITEM_TWISTED_SPOON] = {gFile_graphics_items_icons_twisted_spoon_sheet, gFile_graphics_items_icon_palettes_twisted_spoon_palette},
[ITEM_CHARCOAL] = {gFile_graphics_items_icons_charcoal_sheet, gFile_graphics_items_icon_palettes_charcoal_palette},
[ITEM_DRAGON_FANG] = {gFile_graphics_items_icons_dragon_fang_sheet, gFile_graphics_items_icon_palettes_dragon_fang_palette},
[ITEM_SILK_SCARF] = {gFile_graphics_items_icons_silk_scarf_sheet, gFile_graphics_items_icon_palettes_silk_scarf_palette},
[ITEM_UP_GRADE] = {gFile_graphics_items_icons_up_grade_sheet, gFile_graphics_items_icon_palettes_up_grade_palette},
[ITEM_SHELL_BELL] = {gFile_graphics_items_icons_shell_bell_sheet, gFile_graphics_items_icon_palettes_shell_palette},
[ITEM_SEA_INCENSE] = {gFile_graphics_items_icons_sea_incense_sheet, gFile_graphics_items_icon_palettes_sea_incense_palette},
[ITEM_LAX_INCENSE] = {gFile_graphics_items_icons_lax_incense_sheet, gFile_graphics_items_icon_palettes_lax_incense_palette},
[ITEM_LUCKY_PUNCH] = {gFile_graphics_items_icons_lucky_punch_sheet, gFile_graphics_items_icon_palettes_lucky_punch_palette},
[ITEM_METAL_POWDER] = {gFile_graphics_items_icons_metal_powder_sheet, gFile_graphics_items_icon_palettes_metal_powder_palette},
[ITEM_THICK_CLUB] = {gFile_graphics_items_icons_thick_club_sheet, gFile_graphics_items_icon_palettes_thick_club_palette},
[ITEM_STICK] = {gFile_graphics_items_icons_stick_sheet, gFile_graphics_items_icon_palettes_stick_palette},
[ITEM_0E2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0E3] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0E4] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0E5] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0E6] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0E7] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0E8] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0E9] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0EA] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0EB] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0EC] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0ED] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0EE] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0EF] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F0] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F1] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F3] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F4] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F5] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F6] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F7] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F8] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0F9] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0FA] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0FB] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0FC] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_0FD] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_RED_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_red_scarf_palette},
[ITEM_BLUE_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_blue_scarf_palette},
[ITEM_PINK_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_pink_scarf_palette},
[ITEM_GREEN_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_green_scarf_palette},
[ITEM_YELLOW_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_yellow_scarf_palette},
[ITEM_MACH_BIKE] = {gFile_graphics_items_icons_mach_bike_sheet, gFile_graphics_items_icon_palettes_mach_bike_palette},
[ITEM_COIN_CASE] = {gFile_graphics_items_icons_coin_case_sheet, gFile_graphics_items_icon_palettes_coin_case_palette},
[ITEM_ITEMFINDER] = {gFile_graphics_items_icons_itemfinder_sheet, gFile_graphics_items_icon_palettes_itemfinder_palette},
[ITEM_OLD_ROD] = {gFile_graphics_items_icons_old_rod_sheet, gFile_graphics_items_icon_palettes_old_rod_palette},
[ITEM_GOOD_ROD] = {gFile_graphics_items_icons_good_rod_sheet, gFile_graphics_items_icon_palettes_good_rod_palette},
[ITEM_SUPER_ROD] = {gFile_graphics_items_icons_super_rod_sheet, gFile_graphics_items_icon_palettes_super_rod_palette},
[ITEM_SS_TICKET] = {gFile_graphics_items_icons_ss_ticket_sheet, gFile_graphics_items_icon_palettes_ss_ticket_palette},
[ITEM_CONTEST_PASS] = {gFile_graphics_items_icons_contest_pass_sheet, gFile_graphics_items_icon_palettes_contest_pass_palette},
[ITEM_10B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_WAILMER_PAIL] = {gFile_graphics_items_icons_wailmer_pail_sheet, gFile_graphics_items_icon_palettes_wailmer_pail_palette},
[ITEM_DEVON_GOODS] = {gFile_graphics_items_icons_devon_goods_sheet, gFile_graphics_items_icon_palettes_devon_goods_palette},
[ITEM_SOOT_SACK] = {gFile_graphics_items_icons_soot_sack_sheet, gFile_graphics_items_icon_palettes_soot_sack_palette},
[ITEM_BASEMENT_KEY] = {gFile_graphics_items_icons_basement_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette},
[ITEM_ACRO_BIKE] = {gFile_graphics_items_icons_acro_bike_sheet, gFile_graphics_items_icon_palettes_acro_bike_palette},
[ITEM_POKEBLOCK_CASE] = {gFile_graphics_items_icons_pokeblock_case_sheet, gFile_graphics_items_icon_palettes_pokeblock_case_palette},
[ITEM_LETTER] = {gFile_graphics_items_icons_letter_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette},
[ITEM_EON_TICKET] = {gFile_graphics_items_icons_eon_ticket_sheet, gFile_graphics_items_icon_palettes_eon_ticket_palette},
[ITEM_RED_ORB] = {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_red_orb_palette},
[ITEM_BLUE_ORB] = {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_blue_orb_palette},
[ITEM_SCANNER] = {gFile_graphics_items_icons_scanner_sheet, gFile_graphics_items_icon_palettes_scanner_palette},
[ITEM_GO_GOGGLES] = {gFile_graphics_items_icons_go_goggles_sheet, gFile_graphics_items_icon_palettes_go_goggles_palette},
[ITEM_METEORITE] = {gFile_graphics_items_icons_meteorite_sheet, gFile_graphics_items_icon_palettes_meteorite_palette},
[ITEM_ROOM_1_KEY] = {gFile_graphics_items_icons_room1_key_sheet, gFile_graphics_items_icon_palettes_key_palette},
[ITEM_ROOM_2_KEY] = {gFile_graphics_items_icons_room2_key_sheet, gFile_graphics_items_icon_palettes_key_palette},
[ITEM_ROOM_4_KEY] = {gFile_graphics_items_icons_room4_key_sheet, gFile_graphics_items_icon_palettes_key_palette},
[ITEM_ROOM_6_KEY] = {gFile_graphics_items_icons_room6_key_sheet, gFile_graphics_items_icon_palettes_key_palette},
[ITEM_STORAGE_KEY] = {gFile_graphics_items_icons_storage_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette},
[ITEM_ROOT_FOSSIL] = {gFile_graphics_items_icons_root_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette},
[ITEM_CLAW_FOSSIL] = {gFile_graphics_items_icons_claw_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette},
[ITEM_DEVON_SCOPE] = {gFile_graphics_items_icons_devon_scope_sheet, gFile_graphics_items_icon_palettes_devon_scope_palette},
[ITEM_TM01] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette},
[ITEM_TM02] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dragon_tm_hm_palette},
[ITEM_TM03] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette},
[ITEM_TM04] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette},
[ITEM_TM05] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM06] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette},
[ITEM_TM07] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette},
[ITEM_TM08] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette},
[ITEM_TM09] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette},
[ITEM_TM10] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM11] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette},
[ITEM_TM12] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette},
[ITEM_TM13] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette},
[ITEM_TM14] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette},
[ITEM_TM15] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM16] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette},
[ITEM_TM17] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM18] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette},
[ITEM_TM19] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette},
[ITEM_TM20] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM21] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM22] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette},
[ITEM_TM23] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette},
[ITEM_TM24] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette},
[ITEM_TM25] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette},
[ITEM_TM26] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette},
[ITEM_TM27] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM28] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette},
[ITEM_TM29] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette},
[ITEM_TM30] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ghost_tm_hm_palette},
[ITEM_TM31] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette},
[ITEM_TM32] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM33] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette},
[ITEM_TM34] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette},
[ITEM_TM35] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette},
[ITEM_TM36] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette},
[ITEM_TM37] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette},
[ITEM_TM38] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette},
[ITEM_TM39] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette},
[ITEM_TM40] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette},
[ITEM_TM41] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette},
[ITEM_TM42] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM43] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM44] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette},
[ITEM_TM45] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_TM46] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette},
[ITEM_TM47] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette},
[ITEM_TM48] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette},
[ITEM_TM49] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette},
[ITEM_TM50] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette},
[ITEM_HM01] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_HM02] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette},
[ITEM_HM03] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette},
[ITEM_HM04] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_HM05] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette},
[ITEM_HM06] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette},
[ITEM_HM07] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette},
[ITEM_HM08] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette},
[ITEM_15B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_15C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette},
[ITEM_OAKS_PARCEL] = {gFile_graphics_items_icons_oaks_parcel_sheet, gFile_graphics_items_icon_palettes_oaks_parcel_palette},
[ITEM_POKE_FLUTE] = {gFile_graphics_items_icons_poke_flute_sheet, gFile_graphics_items_icon_palettes_poke_flute_palette},
[ITEM_SECRET_KEY] = {gFile_graphics_items_icons_secret_key_sheet, gFile_graphics_items_icon_palettes_secret_key_palette},
[ITEM_BIKE_VOUCHER] = {gFile_graphics_items_icons_bike_voucher_sheet, gFile_graphics_items_icon_palettes_bike_voucher_palette},
[ITEM_GOLD_TEETH] = {gFile_graphics_items_icons_gold_teeth_sheet, gFile_graphics_items_icon_palettes_gold_teeth_palette},
[ITEM_OLD_AMBER] = {gFile_graphics_items_icons_old_amber_sheet, gFile_graphics_items_icon_palettes_old_amber_palette},
[ITEM_CARD_KEY] = {gFile_graphics_items_icons_card_key_sheet, gFile_graphics_items_icon_palettes_card_key_palette},
[ITEM_LIFT_KEY] = {gFile_graphics_items_icons_lift_key_sheet, gFile_graphics_items_icon_palettes_key_palette},
[ITEM_HELIX_FOSSIL] = {gFile_graphics_items_icons_helix_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette},
[ITEM_DOME_FOSSIL] = {gFile_graphics_items_icons_dome_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette},
[ITEM_SILPH_SCOPE] = {gFile_graphics_items_icons_silph_scope_sheet, gFile_graphics_items_icon_palettes_silph_scope_palette},
[ITEM_BICYCLE] = {gFile_graphics_items_icons_bicycle_sheet, gFile_graphics_items_icon_palettes_bicycle_palette},
[ITEM_TOWN_MAP] = {gFile_graphics_items_icons_town_map_sheet, gFile_graphics_items_icon_palettes_town_map_palette},
[ITEM_VS_SEEKER] = {gFile_graphics_items_icons_vs_seeker_sheet, gFile_graphics_items_icon_palettes_vs_seeker_palette},
[ITEM_FAME_CHECKER] = {gFile_graphics_items_icons_fame_checker_sheet, gFile_graphics_items_icon_palettes_fame_checker_palette},
[ITEM_TM_CASE] = {gFile_graphics_items_icons_tm_case_sheet, gFile_graphics_items_icon_palettes_tm_case_palette},
[ITEM_BERRY_POUCH] = {gFile_graphics_items_icons_berry_pouch_sheet, gFile_graphics_items_icon_palettes_berry_pouch_palette},
[ITEM_TEACHY_TV] = {gFile_graphics_items_icons_teachy_tv_sheet, gFile_graphics_items_icon_palettes_teachy_tv_palette},
[ITEM_TRI_PASS] = {gFile_graphics_items_icons_tri_pass_sheet, gFile_graphics_items_icon_palettes_tri_pass_palette},
[ITEM_RAINBOW_PASS] = {gFile_graphics_items_icons_rainbow_pass_sheet, gFile_graphics_items_icon_palettes_rainbow_pass_palette},
[ITEM_TEA] = {gFile_graphics_items_icons_tea_sheet, gFile_graphics_items_icon_palettes_tea_palette},
[ITEM_MYSTIC_TICKET] = {gFile_graphics_items_icons_mystic_ticket_sheet, gFile_graphics_items_icon_palettes_mystic_ticket_palette},
[ITEM_AURORA_TICKET] = {gFile_graphics_items_icons_aurora_ticket_sheet, gFile_graphics_items_icon_palettes_aurora_ticket_palette},
[ITEM_POWDER_JAR] = {gFile_graphics_items_icons_powder_jar_sheet, gFile_graphics_items_icon_palettes_powder_jar_palette},
[ITEM_RUBY] = {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_ruby_palette},
[ITEM_SAPPHIRE] = {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_sapphire_palette},
[ITEMS_COUNT] = {gFile_graphics_items_icons_return_to_field_arrow_sheet, gFile_graphics_items_icon_palettes_return_to_field_arrow_palette}
[ITEM_NONE] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Pokeballs
[ITEM_MASTER_BALL] = {gItemIcon_MasterBall, gItemIconPalette_MasterBall},
[ITEM_ULTRA_BALL] = {gItemIcon_UltraBall, gItemIconPalette_UltraBall},
[ITEM_GREAT_BALL] = {gItemIcon_GreatBall, gItemIconPalette_GreatBall},
[ITEM_POKE_BALL] = {gItemIcon_PokeBall, gItemIconPalette_PokeBall},
[ITEM_SAFARI_BALL] = {gItemIcon_SafariBall, gItemIconPalette_SafariBall},
[ITEM_NET_BALL] = {gItemIcon_NetBall, gItemIconPalette_NetBall},
[ITEM_DIVE_BALL] = {gItemIcon_DiveBall, gItemIconPalette_DiveBall},
[ITEM_NEST_BALL] = {gItemIcon_NestBall, gItemIconPalette_NestBall},
[ITEM_REPEAT_BALL] = {gItemIcon_RepeatBall, gItemIconPalette_RepeatBall},
[ITEM_TIMER_BALL] = {gItemIcon_TimerBall, gItemIconPalette_RepeatBall},
[ITEM_LUXURY_BALL] = {gItemIcon_LuxuryBall, gItemIconPalette_LuxuryBall},
[ITEM_PREMIER_BALL] = {gItemIcon_PremierBall, gItemIconPalette_LuxuryBall},
// Medicine
[ITEM_POTION] = {gItemIcon_Potion, gItemIconPalette_Potion},
[ITEM_ANTIDOTE] = {gItemIcon_Antidote, gItemIconPalette_Antidote},
[ITEM_BURN_HEAL] = {gItemIcon_StatusHeal, gItemIconPalette_BurnHeal},
[ITEM_ICE_HEAL] = {gItemIcon_StatusHeal, gItemIconPalette_IceHeal},
[ITEM_AWAKENING] = {gItemIcon_StatusHeal, gItemIconPalette_Awakening},
[ITEM_PARALYZE_HEAL] = {gItemIcon_StatusHeal, gItemIconPalette_ParalyzeHeal},
[ITEM_FULL_RESTORE] = {gItemIcon_LargePotion, gItemIconPalette_FullRestore},
[ITEM_MAX_POTION] = {gItemIcon_LargePotion, gItemIconPalette_MaxPotion},
[ITEM_HYPER_POTION] = {gItemIcon_Potion, gItemIconPalette_HyperPotion},
[ITEM_SUPER_POTION] = {gItemIcon_Potion, gItemIconPalette_SuperPotion},
[ITEM_FULL_HEAL] = {gItemIcon_FullHeal, gItemIconPalette_FullHeal},
[ITEM_REVIVE] = {gItemIcon_Revive, gItemIconPalette_Revive},
[ITEM_MAX_REVIVE] = {gItemIcon_MaxRevive, gItemIconPalette_Revive},
[ITEM_FRESH_WATER] = {gItemIcon_FreshWater, gItemIconPalette_FreshWater},
[ITEM_SODA_POP] = {gItemIcon_SodaPop, gItemIconPalette_SodaPop},
[ITEM_LEMONADE] = {gItemIcon_Lemonade, gItemIconPalette_Lemonade},
[ITEM_MOOMOO_MILK] = {gItemIcon_MoomooMilk, gItemIconPalette_MoomooMilk},
[ITEM_ENERGY_POWDER] = {gItemIcon_Powder, gItemIconPalette_EnergyPowder},
[ITEM_ENERGY_ROOT] = {gItemIcon_EnergyRoot, gItemIconPalette_EnergyRoot},
[ITEM_HEAL_POWDER] = {gItemIcon_Powder, gItemIconPalette_HealPowder},
[ITEM_REVIVAL_HERB] = {gItemIcon_RevivalHerb, gItemIconPalette_RevivalHerb},
[ITEM_ETHER] = {gItemIcon_Ether, gItemIconPalette_Ether},
[ITEM_MAX_ETHER] = {gItemIcon_Ether, gItemIconPalette_MaxEther},
[ITEM_ELIXIR] = {gItemIcon_Ether, gItemIconPalette_Elixir},
[ITEM_MAX_ELIXIR] = {gItemIcon_Ether, gItemIconPalette_MaxElixir},
[ITEM_LAVA_COOKIE] = {gItemIcon_LavaCookie, gItemIconPalette_LavaCookieAndLetter},
[ITEM_BLUE_FLUTE] = {gItemIcon_Flute, gItemIconPalette_BlueFlute},
[ITEM_YELLOW_FLUTE] = {gItemIcon_Flute, gItemIconPalette_YellowFlute},
[ITEM_RED_FLUTE] = {gItemIcon_Flute, gItemIconPalette_RedFlute},
[ITEM_BLACK_FLUTE] = {gItemIcon_Flute, gItemIconPalette_BlackFlute},
[ITEM_WHITE_FLUTE] = {gItemIcon_Flute, gItemIconPalette_WhiteFlute},
[ITEM_BERRY_JUICE] = {gItemIcon_BerryJuice, gItemIconPalette_BerryJuice},
[ITEM_SACRED_ASH] = {gItemIcon_SacredAsh, gItemIconPalette_SacredAsh},
// Collectibles
[ITEM_SHOAL_SALT] = {gItemIcon_Powder, gItemIconPalette_ShoalSalt},
[ITEM_SHOAL_SHELL] = {gItemIcon_ShoalShell, gItemIconPalette_Shell},
[ITEM_RED_SHARD] = {gItemIcon_Shard, gItemIconPalette_RedShard},
[ITEM_BLUE_SHARD] = {gItemIcon_Shard, gItemIconPalette_BlueShard},
[ITEM_YELLOW_SHARD] = {gItemIcon_Shard, gItemIconPalette_YellowShard},
[ITEM_GREEN_SHARD] = {gItemIcon_Shard, gItemIconPalette_GreenShard},
// ????????
[ITEM_034] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_035] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_036] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_037] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_038] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_039] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_03A] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_03B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_03C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_03D] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_03E] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Vitamins
[ITEM_HP_UP] = {gItemIcon_HPUp, gItemIconPalette_HPUp},
[ITEM_PROTEIN] = {gItemIcon_Vitamin, gItemIconPalette_Protein},
[ITEM_IRON] = {gItemIcon_Vitamin, gItemIconPalette_Iron},
[ITEM_CARBOS] = {gItemIcon_Vitamin, gItemIconPalette_Carbos},
[ITEM_CALCIUM] = {gItemIcon_Vitamin, gItemIconPalette_Calcium},
[ITEM_RARE_CANDY] = {gItemIcon_RareCandy, gItemIconPalette_RareCandy},
[ITEM_PP_UP] = {gItemIcon_PPUp, gItemIconPalette_PPUp},
[ITEM_ZINC] = {gItemIcon_Vitamin, gItemIconPalette_Zinc},
[ITEM_PP_MAX] = {gItemIcon_PPMax, gItemIconPalette_PPMax},
// ????????
[ITEM_048] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Battle items
[ITEM_GUARD_SPEC] = {gItemIcon_BattleStatItem, gItemIconPalette_GuardSpec},
[ITEM_DIRE_HIT] = {gItemIcon_BattleStatItem, gItemIconPalette_DireHit},
[ITEM_X_ATTACK] = {gItemIcon_BattleStatItem, gItemIconPalette_XAttack},
[ITEM_X_DEFEND] = {gItemIcon_BattleStatItem, gItemIconPalette_XDefend},
[ITEM_X_SPEED] = {gItemIcon_BattleStatItem, gItemIconPalette_XSpeed},
[ITEM_X_ACCURACY] = {gItemIcon_BattleStatItem, gItemIconPalette_XAccuracy},
[ITEM_X_SPECIAL] = {gItemIcon_BattleStatItem, gItemIconPalette_XSpecial},
[ITEM_POKE_DOLL] = {gItemIcon_PokeDoll, gItemIconPalette_PokeDoll},
[ITEM_FLUFFY_TAIL] = {gItemIcon_FluffyTail, gItemIconPalette_FluffyTail},
// ????????
[ITEM_052] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Field items
[ITEM_SUPER_REPEL] = {gItemIcon_Repel, gItemIconPalette_SuperRepel},
[ITEM_MAX_REPEL] = {gItemIcon_Repel, gItemIconPalette_MaxRepel},
[ITEM_ESCAPE_ROPE] = {gItemIcon_EscapeRope, gItemIconPalette_EscapeRope},
[ITEM_REPEL] = {gItemIcon_Repel, gItemIconPalette_Repel},
// ????????
[ITEM_057] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_058] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_059] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_05A] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_05B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_05C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Evolution stones
[ITEM_SUN_STONE] = {gItemIcon_SunStone, gItemIconPalette_SunStone},
[ITEM_MOON_STONE] = {gItemIcon_MoonStone, gItemIconPalette_MoonStone},
[ITEM_FIRE_STONE] = {gItemIcon_FireStone, gItemIconPalette_FireStone},
[ITEM_THUNDER_STONE] = {gItemIcon_ThunderStone, gItemIconPalette_ThunderStone},
[ITEM_WATER_STONE] = {gItemIcon_WaterStone, gItemIconPalette_WaterStone},
[ITEM_LEAF_STONE] = {gItemIcon_LeafStone, gItemIconPalette_LeafStone},
// ????????
[ITEM_063] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_064] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_065] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_066] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Valuables
[ITEM_TINY_MUSHROOM] = {gItemIcon_TinyMushroom, gItemIconPalette_Mushroom},
[ITEM_BIG_MUSHROOM] = {gItemIcon_BigMushroom, gItemIconPalette_Mushroom},
[ITEM_069] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_PEARL] = {gItemIcon_Pearl, gItemIconPalette_Pearl},
[ITEM_BIG_PEARL] = {gItemIcon_BigPearl, gItemIconPalette_Pearl},
[ITEM_STARDUST] = {gItemIcon_Stardust, gItemIconPalette_Star},
[ITEM_STAR_PIECE] = {gItemIcon_StarPiece, gItemIconPalette_Star},
[ITEM_NUGGET] = {gItemIcon_Nugget, gItemIconPalette_Nugget},
[ITEM_HEART_SCALE] = {gItemIcon_HeartScale, gItemIconPalette_HeartScale},
// ????????
[ITEM_070] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_071] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_072] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_073] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_074] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_075] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_076] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_077] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_078] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Mail
[ITEM_ORANGE_MAIL] = {gItemIcon_OrangeMail, gItemIconPalette_OrangeMail},
[ITEM_HARBOR_MAIL] = {gItemIcon_HarborMail, gItemIconPalette_HarborMail},
[ITEM_GLITTER_MAIL] = {gItemIcon_GlitterMail, gItemIconPalette_GlitterMail},
[ITEM_MECH_MAIL] = {gItemIcon_MechMail, gItemIconPalette_MechMail},
[ITEM_WOOD_MAIL] = {gItemIcon_WoodMail, gItemIconPalette_WoodMail},
[ITEM_WAVE_MAIL] = {gItemIcon_WaveMail, gItemIconPalette_WaveMail},
[ITEM_BEAD_MAIL] = {gItemIcon_BeadMail, gItemIconPalette_BeadMail},
[ITEM_SHADOW_MAIL] = {gItemIcon_ShadowMail, gItemIconPalette_ShadowMail},
[ITEM_TROPIC_MAIL] = {gItemIcon_TropicMail, gItemIconPalette_TropicMail},
[ITEM_DREAM_MAIL] = {gItemIcon_DreamMail, gItemIconPalette_DreamMail},
[ITEM_FAB_MAIL] = {gItemIcon_FabMail, gItemIconPalette_FabMail},
[ITEM_RETRO_MAIL] = {gItemIcon_RetroMail, gItemIconPalette_RetroMail},
// Berries
[ITEM_CHERI_BERRY] = {gItemIcon_CheriBerry, gItemIconPalette_CheriBerry},
[ITEM_CHESTO_BERRY] = {gItemIcon_ChestoBerry, gItemIconPalette_ChestoBerry},
[ITEM_PECHA_BERRY] = {gItemIcon_PechaBerry, gItemIconPalette_PechaBerry},
[ITEM_RAWST_BERRY] = {gItemIcon_RawstBerry, gItemIconPalette_RawstBerry},
[ITEM_ASPEAR_BERRY] = {gItemIcon_AspearBerry, gItemIconPalette_AspearBerry},
[ITEM_LEPPA_BERRY] = {gItemIcon_LeppaBerry, gItemIconPalette_LeppaBerry},
[ITEM_ORAN_BERRY] = {gItemIcon_OranBerry, gItemIconPalette_OranBerry},
[ITEM_PERSIM_BERRY] = {gItemIcon_PersimBerry, gItemIconPalette_PersimBerry},
[ITEM_LUM_BERRY] = {gItemIcon_LumBerry, gItemIconPalette_LumBerry},
[ITEM_SITRUS_BERRY] = {gItemIcon_SitrusBerry, gItemIconPalette_SitrusBerry},
[ITEM_FIGY_BERRY] = {gItemIcon_FigyBerry, gItemIconPalette_FigyBerry},
[ITEM_WIKI_BERRY] = {gItemIcon_WikiBerry, gItemIconPalette_WikiBerry},
[ITEM_MAGO_BERRY] = {gItemIcon_MagoBerry, gItemIconPalette_MagoBerry},
[ITEM_AGUAV_BERRY] = {gItemIcon_AguavBerry, gItemIconPalette_AguavBerry},
[ITEM_IAPAPA_BERRY] = {gItemIcon_IapapaBerry, gItemIconPalette_IapapaBerry},
[ITEM_RAZZ_BERRY] = {gItemIcon_RazzBerry, gItemIconPalette_RazzBerry},
[ITEM_BLUK_BERRY] = {gItemIcon_BlukBerry, gItemIconPalette_BlukBerry},
[ITEM_NANAB_BERRY] = {gItemIcon_NanabBerry, gItemIconPalette_NanabBerry},
[ITEM_WEPEAR_BERRY] = {gItemIcon_WepearBerry, gItemIconPalette_WepearBerry},
[ITEM_PINAP_BERRY] = {gItemIcon_PinapBerry, gItemIconPalette_PinapBerry},
[ITEM_POMEG_BERRY] = {gItemIcon_PomegBerry, gItemIconPalette_PomegBerry},
[ITEM_KELPSY_BERRY] = {gItemIcon_KelpsyBerry, gItemIconPalette_KelpsyBerry},
[ITEM_QUALOT_BERRY] = {gItemIcon_QualotBerry, gItemIconPalette_QualotBerry},
[ITEM_HONDEW_BERRY] = {gItemIcon_HondewBerry, gItemIconPalette_HondewBerry},
[ITEM_GREPA_BERRY] = {gItemIcon_GrepaBerry, gItemIconPalette_GrepaBerry},
[ITEM_TAMATO_BERRY] = {gItemIcon_TamatoBerry, gItemIconPalette_TamatoBerry},
[ITEM_CORNN_BERRY] = {gItemIcon_CornnBerry, gItemIconPalette_CornnBerry},
[ITEM_MAGOST_BERRY] = {gItemIcon_MagostBerry, gItemIconPalette_MagostBerry},
[ITEM_RABUTA_BERRY] = {gItemIcon_RabutaBerry, gItemIconPalette_RabutaBerry},
[ITEM_NOMEL_BERRY] = {gItemIcon_NomelBerry, gItemIconPalette_NomelBerry},
[ITEM_SPELON_BERRY] = {gItemIcon_SpelonBerry, gItemIconPalette_SpelonBerry},
[ITEM_PAMTRE_BERRY] = {gItemIcon_PamtreBerry, gItemIconPalette_PamtreBerry},
[ITEM_WATMEL_BERRY] = {gItemIcon_WatmelBerry, gItemIconPalette_WatmelBerry},
[ITEM_DURIN_BERRY] = {gItemIcon_DurinBerry, gItemIconPalette_DurinBerry},
[ITEM_BELUE_BERRY] = {gItemIcon_BelueBerry, gItemIconPalette_BelueBerry},
[ITEM_LIECHI_BERRY] = {gItemIcon_LiechiBerry, gItemIconPalette_LiechiBerry},
[ITEM_GANLON_BERRY] = {gItemIcon_GanlonBerry, gItemIconPalette_GanlonBerry},
[ITEM_SALAC_BERRY] = {gItemIcon_SalacBerry, gItemIconPalette_SalacBerry},
[ITEM_PETAYA_BERRY] = {gItemIcon_PetayaBerry, gItemIconPalette_PetayaBerry},
[ITEM_APICOT_BERRY] = {gItemIcon_ApicotBerry, gItemIconPalette_ApicotBerry},
[ITEM_LANSAT_BERRY] = {gItemIcon_LansatBerry, gItemIconPalette_LansatBerry},
[ITEM_STARF_BERRY] = {gItemIcon_StarfBerry, gItemIconPalette_StarfBerry},
[ITEM_ENIGMA_BERRY] = {gItemIcon_EnigmaBerry, gItemIconPalette_EnigmaBerry},
[ITEM_UNUSED_BERRY_1] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_UNUSED_BERRY_2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_UNUSED_BERRY_3] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Hold items
[ITEM_BRIGHT_POWDER] = {gItemIcon_BrightPowder, gItemIconPalette_BrightPowder},
[ITEM_WHITE_HERB] = {gItemIcon_InBattleHerb, gItemIconPalette_WhiteHerb},
[ITEM_MACHO_BRACE] = {gItemIcon_MachoBrace, gItemIconPalette_MachoBrace},
[ITEM_EXP_SHARE] = {gItemIcon_ExpShare, gItemIconPalette_ExpShare},
[ITEM_QUICK_CLAW] = {gItemIcon_QuickClaw, gItemIconPalette_QuickClaw},
[ITEM_SOOTHE_BELL] = {gItemIcon_SootheBell, gItemIconPalette_SootheBell},
[ITEM_MENTAL_HERB] = {gItemIcon_InBattleHerb, gItemIconPalette_MentalHerb},
[ITEM_CHOICE_BAND] = {gItemIcon_ChoiceBand, gItemIconPalette_ChoiceBand},
[ITEM_KINGS_ROCK] = {gItemIcon_KingsRock, gItemIconPalette_KingsRock},
[ITEM_SILVER_POWDER] = {gItemIcon_SilverPowder, gItemIconPalette_SilverPowder},
[ITEM_AMULET_COIN] = {gItemIcon_AmuletCoin, gItemIconPalette_AmuletCoin},
[ITEM_CLEANSE_TAG] = {gItemIcon_CleanseTag, gItemIconPalette_CleanseTag},
[ITEM_SOUL_DEW] = {gItemIcon_SoulDew, gItemIconPalette_SoulDew},
[ITEM_DEEP_SEA_TOOTH] = {gItemIcon_DeepSeaTooth, gItemIconPalette_DeepSeaTooth},
[ITEM_DEEP_SEA_SCALE] = {gItemIcon_DeepSeaScale, gItemIconPalette_DeepSeaScale},
[ITEM_SMOKE_BALL] = {gItemIcon_SmokeBall, gItemIconPalette_SmokeBall},
[ITEM_EVERSTONE] = {gItemIcon_Everstone, gItemIconPalette_Everstone},
[ITEM_FOCUS_BAND] = {gItemIcon_FocusBand, gItemIconPalette_FocusBand},
[ITEM_LUCKY_EGG] = {gItemIcon_LuckyEgg, gItemIconPalette_LuckyEgg},
[ITEM_SCOPE_LENS] = {gItemIcon_ScopeLens, gItemIconPalette_ScopeLens},
[ITEM_METAL_COAT] = {gItemIcon_MetalCoat, gItemIconPalette_MetalCoat},
[ITEM_LEFTOVERS] = {gItemIcon_Leftovers, gItemIconPalette_Leftovers},
[ITEM_DRAGON_SCALE] = {gItemIcon_DragonScale, gItemIconPalette_DragonScale},
[ITEM_LIGHT_BALL] = {gItemIcon_LightBall, gItemIconPalette_LightBall},
[ITEM_SOFT_SAND] = {gItemIcon_SoftSand, gItemIconPalette_SoftSand},
[ITEM_HARD_STONE] = {gItemIcon_HardStone, gItemIconPalette_HardStone},
[ITEM_MIRACLE_SEED] = {gItemIcon_MiracleSeed, gItemIconPalette_MiracleSeed},
[ITEM_BLACK_GLASSES] = {gItemIcon_BlackGlasses, gItemIconPalette_BlackTypeEnhancingItem},
[ITEM_BLACK_BELT] = {gItemIcon_BlackBelt, gItemIconPalette_BlackTypeEnhancingItem},
[ITEM_MAGNET] = {gItemIcon_Magnet, gItemIconPalette_Magnet},
[ITEM_MYSTIC_WATER] = {gItemIcon_MysticWater, gItemIconPalette_MysticWater},
[ITEM_SHARP_BEAK] = {gItemIcon_SharpBeak, gItemIconPalette_SharpBeak},
[ITEM_POISON_BARB] = {gItemIcon_PoisonBarb, gItemIconPalette_PoisonBarb},
[ITEM_NEVER_MELT_ICE] = {gItemIcon_NeverMeltIce, gItemIconPalette_NeverMeltIce},
[ITEM_SPELL_TAG] = {gItemIcon_SpellTag, gItemIconPalette_SpellTag},
[ITEM_TWISTED_SPOON] = {gItemIcon_TwistedSpoon, gItemIconPalette_TwistedSpoon},
[ITEM_CHARCOAL] = {gItemIcon_Charcoal, gItemIconPalette_Charcoal},
[ITEM_DRAGON_FANG] = {gItemIcon_DragonFang, gItemIconPalette_DragonFang},
[ITEM_SILK_SCARF] = {gItemIcon_SilkScarf, gItemIconPalette_SilkScarf},
[ITEM_UP_GRADE] = {gItemIcon_UpGrade, gItemIconPalette_UpGrade},
[ITEM_SHELL_BELL] = {gItemIcon_ShellBell, gItemIconPalette_Shell},
[ITEM_SEA_INCENSE] = {gItemIcon_SeaIncense, gItemIconPalette_SeaIncense},
[ITEM_LAX_INCENSE] = {gItemIcon_LaxIncense, gItemIconPalette_LaxIncense},
[ITEM_LUCKY_PUNCH] = {gItemIcon_LuckyPunch, gItemIconPalette_LuckyPunch},
[ITEM_METAL_POWDER] = {gItemIcon_MetalPowder, gItemIconPalette_MetalPowder},
[ITEM_THICK_CLUB] = {gItemIcon_ThickClub, gItemIconPalette_ThickClub},
[ITEM_STICK] = {gItemIcon_Stick, gItemIconPalette_Stick},
// ????????
[ITEM_0E2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0E3] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0E4] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0E5] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0E6] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0E7] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0E8] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0E9] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0EA] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0EB] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0EC] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0ED] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0EE] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0EF] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F0] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F1] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F2] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F3] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F4] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F5] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F6] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F7] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F8] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0F9] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0FA] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0FB] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0FC] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_0FD] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// Contest hold items
[ITEM_RED_SCARF] = {gItemIcon_Scarf, gItemIconPalette_RedScarf},
[ITEM_BLUE_SCARF] = {gItemIcon_Scarf, gItemIconPalette_BlueScarf},
[ITEM_PINK_SCARF] = {gItemIcon_Scarf, gItemIconPalette_PinkScarf},
[ITEM_GREEN_SCARF] = {gItemIcon_Scarf, gItemIconPalette_GreenScarf},
[ITEM_YELLOW_SCARF] = {gItemIcon_Scarf, gItemIconPalette_YellowScarf},
// Key items
[ITEM_MACH_BIKE] = {gItemIcon_MachBike, gItemIconPalette_MachBike},
[ITEM_COIN_CASE] = {gItemIcon_CoinCase, gItemIconPalette_CoinCase},
[ITEM_ITEMFINDER] = {gItemIcon_Itemfinder, gItemIconPalette_Itemfinder},
[ITEM_OLD_ROD] = {gItemIcon_OldRod, gItemIconPalette_OldRod},
[ITEM_GOOD_ROD] = {gItemIcon_GoodRod, gItemIconPalette_GoodRod},
[ITEM_SUPER_ROD] = {gItemIcon_SuperRod, gItemIconPalette_SuperRod},
[ITEM_SS_TICKET] = {gItemIcon_SSTicket, gItemIconPalette_SSTicket},
[ITEM_CONTEST_PASS] = {gItemIcon_ContestPass, gItemIconPalette_ContestPass},
[ITEM_10B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_WAILMER_PAIL] = {gItemIcon_WailmerPail, gItemIconPalette_WailmerPail},
[ITEM_DEVON_GOODS] = {gItemIcon_DevonGoods, gItemIconPalette_DevonGoods},
[ITEM_SOOT_SACK] = {gItemIcon_SootSack, gItemIconPalette_SootSack},
[ITEM_BASEMENT_KEY] = {gItemIcon_BasementKey, gItemIconPalette_OldKey},
[ITEM_ACRO_BIKE] = {gItemIcon_AcroBike, gItemIconPalette_AcroBike},
[ITEM_POKEBLOCK_CASE] = {gItemIcon_PokeblockCase, gItemIconPalette_PokeblockCase},
[ITEM_LETTER] = {gItemIcon_Letter, gItemIconPalette_LavaCookieAndLetter},
[ITEM_EON_TICKET] = {gItemIcon_EonTicket, gItemIconPalette_EonTicket},
[ITEM_RED_ORB] = {gItemIcon_Orb, gItemIconPalette_RedOrb},
[ITEM_BLUE_ORB] = {gItemIcon_Orb, gItemIconPalette_BlueOrb},
[ITEM_SCANNER] = {gItemIcon_Scanner, gItemIconPalette_Scanner},
[ITEM_GO_GOGGLES] = {gItemIcon_GoGoggles, gItemIconPalette_GoGoggles},
[ITEM_METEORITE] = {gItemIcon_Meteorite, gItemIconPalette_Meteorite},
[ITEM_ROOM_1_KEY] = {gItemIcon_Room1Key, gItemIconPalette_Key},
[ITEM_ROOM_2_KEY] = {gItemIcon_Room2Key, gItemIconPalette_Key},
[ITEM_ROOM_4_KEY] = {gItemIcon_Room4Key, gItemIconPalette_Key},
[ITEM_ROOM_6_KEY] = {gItemIcon_Room6Key, gItemIconPalette_Key},
[ITEM_STORAGE_KEY] = {gItemIcon_StorageKey, gItemIconPalette_OldKey},
[ITEM_ROOT_FOSSIL] = {gItemIcon_RootFossil, gItemIconPalette_HoennFossil},
[ITEM_CLAW_FOSSIL] = {gItemIcon_ClawFossil, gItemIconPalette_HoennFossil},
[ITEM_DEVON_SCOPE] = {gItemIcon_DevonScope, gItemIconPalette_DevonScope},
// TMs / HMs
[ITEM_TM01] = {gItemIcon_TMHM, gItemIconPalette_FightingTMHM},
[ITEM_TM02] = {gItemIcon_TMHM, gItemIconPalette_DragonTMHM},
[ITEM_TM03] = {gItemIcon_TMHM, gItemIconPalette_WaterTMHM},
[ITEM_TM04] = {gItemIcon_TMHM, gItemIconPalette_PsychicTMHM},
[ITEM_TM05] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM06] = {gItemIcon_TMHM, gItemIconPalette_PoisonTMHM},
[ITEM_TM07] = {gItemIcon_TMHM, gItemIconPalette_IceTMHM},
[ITEM_TM08] = {gItemIcon_TMHM, gItemIconPalette_FightingTMHM},
[ITEM_TM09] = {gItemIcon_TMHM, gItemIconPalette_GrassTMHM},
[ITEM_TM10] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM11] = {gItemIcon_TMHM, gItemIconPalette_FireTMHM},
[ITEM_TM12] = {gItemIcon_TMHM, gItemIconPalette_DarkTMHM},
[ITEM_TM13] = {gItemIcon_TMHM, gItemIconPalette_IceTMHM},
[ITEM_TM14] = {gItemIcon_TMHM, gItemIconPalette_IceTMHM},
[ITEM_TM15] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM16] = {gItemIcon_TMHM, gItemIconPalette_PsychicTMHM},
[ITEM_TM17] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM18] = {gItemIcon_TMHM, gItemIconPalette_WaterTMHM},
[ITEM_TM19] = {gItemIcon_TMHM, gItemIconPalette_GrassTMHM},
[ITEM_TM20] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM21] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM22] = {gItemIcon_TMHM, gItemIconPalette_GrassTMHM},
[ITEM_TM23] = {gItemIcon_TMHM, gItemIconPalette_SteelTMHM},
[ITEM_TM24] = {gItemIcon_TMHM, gItemIconPalette_ElectricTMHM},
[ITEM_TM25] = {gItemIcon_TMHM, gItemIconPalette_ElectricTMHM},
[ITEM_TM26] = {gItemIcon_TMHM, gItemIconPalette_GroundTMHM},
[ITEM_TM27] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM28] = {gItemIcon_TMHM, gItemIconPalette_GroundTMHM},
[ITEM_TM29] = {gItemIcon_TMHM, gItemIconPalette_PsychicTMHM},
[ITEM_TM30] = {gItemIcon_TMHM, gItemIconPalette_GhostTMHM},
[ITEM_TM31] = {gItemIcon_TMHM, gItemIconPalette_FightingTMHM},
[ITEM_TM32] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM33] = {gItemIcon_TMHM, gItemIconPalette_PsychicTMHM},
[ITEM_TM34] = {gItemIcon_TMHM, gItemIconPalette_ElectricTMHM},
[ITEM_TM35] = {gItemIcon_TMHM, gItemIconPalette_FireTMHM},
[ITEM_TM36] = {gItemIcon_TMHM, gItemIconPalette_PoisonTMHM},
[ITEM_TM37] = {gItemIcon_TMHM, gItemIconPalette_RockTMHM},
[ITEM_TM38] = {gItemIcon_TMHM, gItemIconPalette_FireTMHM},
[ITEM_TM39] = {gItemIcon_TMHM, gItemIconPalette_RockTMHM},
[ITEM_TM40] = {gItemIcon_TMHM, gItemIconPalette_FlyingTMHM},
[ITEM_TM41] = {gItemIcon_TMHM, gItemIconPalette_DarkTMHM},
[ITEM_TM42] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM43] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM44] = {gItemIcon_TMHM, gItemIconPalette_PsychicTMHM},
[ITEM_TM45] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_TM46] = {gItemIcon_TMHM, gItemIconPalette_DarkTMHM},
[ITEM_TM47] = {gItemIcon_TMHM, gItemIconPalette_SteelTMHM},
[ITEM_TM48] = {gItemIcon_TMHM, gItemIconPalette_PsychicTMHM},
[ITEM_TM49] = {gItemIcon_TMHM, gItemIconPalette_DarkTMHM},
[ITEM_TM50] = {gItemIcon_TMHM, gItemIconPalette_FireTMHM},
[ITEM_HM01] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_HM02] = {gItemIcon_TMHM, gItemIconPalette_FlyingTMHM},
[ITEM_HM03] = {gItemIcon_TMHM, gItemIconPalette_WaterTMHM},
[ITEM_HM04] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_HM05] = {gItemIcon_TMHM, gItemIconPalette_NormalTMHM},
[ITEM_HM06] = {gItemIcon_TMHM, gItemIconPalette_FightingTMHM},
[ITEM_HM07] = {gItemIcon_TMHM, gItemIconPalette_WaterTMHM},
[ITEM_HM08] = {gItemIcon_TMHM, gItemIconPalette_WaterTMHM},
// ????????
[ITEM_15B] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
[ITEM_15C] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
// FireRed/LeafGreen key items
[ITEM_OAKS_PARCEL] = {gItemIcon_OaksParcel, gItemIconPalette_OaksParcel},
[ITEM_POKE_FLUTE] = {gItemIcon_PokeFlute, gItemIconPalette_PokeFlute},
[ITEM_SECRET_KEY] = {gItemIcon_SecretKey, gItemIconPalette_SecretKey},
[ITEM_BIKE_VOUCHER] = {gItemIcon_BikeVoucher, gItemIconPalette_BikeVoucher},
[ITEM_GOLD_TEETH] = {gItemIcon_GoldTeeth, gItemIconPalette_GoldTeeth},
[ITEM_OLD_AMBER] = {gItemIcon_OldAmber, gItemIconPalette_OldAmber},
[ITEM_CARD_KEY] = {gItemIcon_CardKey, gItemIconPalette_CardKey},
[ITEM_LIFT_KEY] = {gItemIcon_LiftKey, gItemIconPalette_Key},
[ITEM_HELIX_FOSSIL] = {gItemIcon_HelixFossil, gItemIconPalette_KantoFossil},
[ITEM_DOME_FOSSIL] = {gItemIcon_DomeFossil, gItemIconPalette_KantoFossil},
[ITEM_SILPH_SCOPE] = {gItemIcon_SilphScope, gItemIconPalette_SilphScope},
[ITEM_BICYCLE] = {gItemIcon_Bicycle, gItemIconPalette_Bicycle},
[ITEM_TOWN_MAP] = {gItemIcon_TownMap, gItemIconPalette_TownMap},
[ITEM_VS_SEEKER] = {gItemIcon_VSSeeker, gItemIconPalette_VSSeeker},
[ITEM_FAME_CHECKER] = {gItemIcon_FameChecker, gItemIconPalette_FameChecker},
[ITEM_TM_CASE] = {gItemIcon_TMCase, gItemIconPalette_TMCase},
[ITEM_BERRY_POUCH] = {gItemIcon_BerryPouch, gItemIconPalette_BerryPouch},
[ITEM_TEACHY_TV] = {gItemIcon_TeachyTV, gItemIconPalette_TeachyTV},
[ITEM_TRI_PASS] = {gItemIcon_TriPass, gItemIconPalette_TriPass},
[ITEM_RAINBOW_PASS] = {gItemIcon_RainbowPass, gItemIconPalette_RainbowPass},
[ITEM_TEA] = {gItemIcon_Tea, gItemIconPalette_Tea},
[ITEM_MYSTIC_TICKET] = {gItemIcon_MysticTicket, gItemIconPalette_MysticTicket},
[ITEM_AURORA_TICKET] = {gItemIcon_AuroraTicket, gItemIconPalette_AuroraTicket},
[ITEM_POWDER_JAR] = {gItemIcon_PowderJar, gItemIconPalette_PowderJar},
[ITEM_RUBY] = {gItemIcon_Gem, gItemIconPalette_Ruby},
[ITEM_SAPPHIRE] = {gItemIcon_Gem, gItemIconPalette_Sapphire},
// Return to field arrow
[ITEMS_COUNT] = {gItemIcon_ReturnToFieldArrow, gItemIconPalette_ReturnToFieldArrow},
};
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -30,7 +30,7 @@ static const struct WindowTemplate sWindowTemplate_BButtonCancel = {
.tilemapTop = 0,
.width = 30,
.height = 2,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x008
};
+4 -4
View File
@@ -1810,7 +1810,7 @@ static void CB2_EggHatch_0(void)
case 2:
DecompressAndLoadBgGfxUsingHeap(0, gBattleInterface_Textbox_Gfx, 0, 0, 0);
CopyToBgTilemapBuffer(0, gBattleInterface_Textbox_Tilemap, 0, 0);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, 0, 0x20);
LoadCompressedPalette(gBattleInterface_Textbox_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
gMain.state++;
break;
case 3:
@@ -1834,7 +1834,7 @@ static void CB2_EggHatch_0(void)
break;
case 7:
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
LoadPalette(gTradeGba2_Pal, 0x10, 0xA0);
LoadPalette(gTradeGba2_Pal, BG_PLTT_ID(1), 5 * PLTT_SIZE_4BPP);
LoadBgTiles(1, gTradeGba_Gfx, 0x1420, 0);
CopyToBgTilemapBuffer(1, gTradeOrHatchMonShadowTilemap, 0x1000, 0);
CopyBgTilemapBufferToVram(1);
@@ -1948,8 +1948,8 @@ static void CB2_EggHatch_1(void)
case 9:
if (!IsTextPrinterActive(sEggHatchData->windowId))
{
LoadUserWindowGfx2(sEggHatchData->windowId, 0x140, 0xE0);
CreateYesNoMenu(&sYesNoWinTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x140, 0xE, 0);
LoadUserWindowGfx2(sEggHatchData->windowId, 0x140, BG_PLTT_ID(14));
CreateYesNoMenu(&sYesNoWinTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x140, 14, 0);
sEggHatchData->CB2_state++;
}
break;
+1 -1
View File
@@ -243,7 +243,7 @@ static bool8 DiplomaLoadGfx(void)
return FALSE;
break;
case 3:
LoadPalette(sDiplomaPal, 0, sizeof(sDiplomaPal));
LoadPalette(sDiplomaPal, BG_PLTT_ID(0), sizeof(sDiplomaPal));
// fallthrough
default:
// Finished
+6 -6
View File
@@ -3002,8 +3002,8 @@ static void PrintRecordsText(u8 windowId)
recordNums[1] = gSaveBlock2Ptr->berryPick.bestScore;
recordNums[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow;
LoadStdWindowGfx(windowId, 0x21D, 0xD0);
DrawTextBorderOuter(windowId, 0x21D, 0xD);
LoadStdWindowGfx(windowId, 0x21D, BG_PLTT_ID(13));
DrawTextBorderOuter(windowId, 0x21D, 13);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
AddTextPrinterParameterized(windowId, FONT_NORMAL, sRecordsTexts[0], 1, 1, TEXT_SKIP_DRAW, NULL);
for (i = 0; i < NUM_RECORD_TYPES; i++)
@@ -4161,12 +4161,12 @@ static void ResetBerryAndStatusBarSprites(void)
static void LoadWindowFrameGfx(u8 frameId)
{
LoadBgTiles(BG_INTERFACE, GetUserWindowGraphics(frameId)->tiles, 0x120, 1);
LoadPalette(GetUserWindowGraphics(frameId)->palette, 0xA0, 0x20);
LoadPalette(GetUserWindowGraphics(frameId)->palette, BG_PLTT_ID(10), PLTT_SIZE_4BPP);
}
static void DBP_LoadStdWindowGfx(void)
{
LoadStdWindowGfx(0, 0xA, 0xB0);
LoadStdWindowGfx(0, 0xA, BG_PLTT_ID(11));
}
static void ResetGfxState(void)
@@ -4926,7 +4926,7 @@ static bool32 LoadBgGfx(void)
switch (sGfx->loadState)
{
case 0:
LoadPalette(sBg_Pal, 0, sizeof(sBg_Pal));
LoadPalette(sBg_Pal, BG_PLTT_ID(0), sizeof(sBg_Pal));
break;
case 1:
ResetTempTileDataBuffers();
@@ -4942,7 +4942,7 @@ static bool32 LoadBgGfx(void)
return FALSE;
break;
case 5:
LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20);
LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(13), PLTT_SIZE_4BPP);
break;
default:
sGfx->loadState = 0;
+8 -8
View File
@@ -1319,13 +1319,13 @@ static void SetGpuRegsForEasyChatInit(void)
static void LoadEasyChatPals(void)
{
ResetPaletteFade();
LoadPalette(gEasyChatWindow_Pal, 0, 32);
LoadPalette(sTextInputFrameOrange_Pal, 1 * 16, 32);
LoadPalette(sTextInputFrameGreen_Pal, 4 * 16, 32);
LoadPalette(sTitleText_Pal, 10 * 16, 8);
LoadPalette(sText_Pal, 11 * 16, 10);
LoadPalette(sText_Pal, 15 * 16, 10);
LoadPalette(sText_Pal, 3 * 16, 10);
LoadPalette(gEasyChatWindow_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
LoadPalette(sTextInputFrameOrange_Pal, BG_PLTT_ID(1), sizeof(sTextInputFrameOrange_Pal));
LoadPalette(sTextInputFrameGreen_Pal, BG_PLTT_ID(4), sizeof(sTextInputFrameGreen_Pal));
LoadPalette(sTitleText_Pal, BG_PLTT_ID(10), sizeof(sTitleText_Pal));
LoadPalette(sText_Pal, BG_PLTT_ID(11), sizeof(sText_Pal));
LoadPalette(sText_Pal, BG_PLTT_ID(15), sizeof(sText_Pal));
LoadPalette(sText_Pal, BG_PLTT_ID(3), sizeof(sText_Pal));
}
static void PrintTitleText(void)
@@ -1363,7 +1363,7 @@ static void EC_AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *st
static void PrintECInstructionsText(void)
{
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17);
LoadUserWindowGfx(1, 1, 0xE0);
LoadUserWindowGfx(1, 1, BG_PLTT_ID(14));
DrawTextBorderOuter(1, 1, 14);
PrintECInterfaceTextById(0);
PutWindowTilemap(1);
+1 -1
View File
@@ -2175,7 +2175,7 @@ void PatchObjectPalette(u16 paletteTag, u8 paletteSlot)
{
u8 paletteIndex = FindObjectEventPaletteIndexByTag(paletteTag);
LoadPalette(sObjectEventSpritePalettes[paletteIndex].data, 16 * paletteSlot + 0x100, 0x20);
LoadPalette(sObjectEventSpritePalettes[paletteIndex].data, OBJ_PLTT_ID(paletteSlot), PLTT_SIZE_4BPP);
ApplyGlobalFieldPaletteTint(paletteSlot);
}
+4 -4
View File
@@ -397,7 +397,7 @@ static void EvoTask_PostEvoSparklesSet2Init(u8 taskId)
SetEvoSparklesMatrices();
gTasks[taskId].data[15] = 0;
IsMovingBackgroundTaskRunning();
CpuCopy16(&gPlttBufferFaded[32], &gPlttBufferUnfaded[32], 96);
CpuCopy16(&gPlttBufferFaded[BG_PLTT_ID(2)], &gPlttBufferUnfaded[BG_PLTT_ID(2)], 3 * PLTT_SIZE_4BPP);
BeginNormalPaletteFade(0xFFF90F1C, 0, 0, 16, RGB_WHITE);
gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet2;
PlaySE(SE_M_PETAL_DANCE);
@@ -448,7 +448,7 @@ static void EvoTask_PostEvoSparklesSet2TradeInit(u8 taskId)
SetEvoSparklesMatrices();
gTasks[taskId].data[15] = 0;
IsMovingBackgroundTaskRunning();
CpuCopy16(&gPlttBufferFaded[32], &gPlttBufferUnfaded[32], 96);
CpuCopy16(&gPlttBufferFaded[BG_PLTT_ID(2)], &gPlttBufferUnfaded[BG_PLTT_ID(2)], 3 * PLTT_SIZE_4BPP);
BeginNormalPaletteFade(0xFFF90F00, 0, 0, 16, RGB_WHITE);
gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet2Trade;
PlaySE(SE_M_PETAL_DANCE);
@@ -511,12 +511,12 @@ u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId)
gSprites[preEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[preEvoSpriteId].oam.matrixNum = 30;
gSprites[preEvoSpriteId].invisible = FALSE;
CpuCopy16(palette, &gPlttBufferFaded[256 + 16 * gSprites[preEvoSpriteId].oam.paletteNum], 32);
CpuCopy16(palette, &gPlttBufferFaded[OBJ_PLTT_ID(gSprites[preEvoSpriteId].oam.paletteNum)], PLTT_SIZE_4BPP);
gSprites[postEvoSpriteId].callback = SpriteCallbackDummy_MonSprites;
gSprites[postEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[postEvoSpriteId].oam.matrixNum = 31;
gSprites[postEvoSpriteId].invisible = FALSE;
CpuCopy16(palette, &gPlttBufferFaded[256 + 16 * gSprites[postEvoSpriteId].oam.paletteNum], 32);
CpuCopy16(palette, &gPlttBufferFaded[OBJ_PLTT_ID(gSprites[postEvoSpriteId].oam.paletteNum)], PLTT_SIZE_4BPP);
gTasks[taskId].EvoGraphicsTaskEvoStop = FALSE;
return taskId;
}
+15 -15
View File
@@ -264,7 +264,7 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u
gMonSpritesGfxPtr->sprites[B_POSITION_OPPONENT_LEFT],
currSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(currSpecies, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x110, 0x20);
LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(1), PLTT_SIZE_4BPP);
SetMultiuseSpriteTemplateToPokemon(currSpecies, B_POSITION_OPPONENT_LEFT);
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
@@ -279,7 +279,7 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u
gMonSpritesGfxPtr->sprites[B_POSITION_OPPONENT_RIGHT],
postEvoSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP);
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT);
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
@@ -299,7 +299,7 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u
gTasks[id].tEvoWasStopped = FALSE;
gTasks[id].tPartyId = partyId;
memcpy(&sEvoStructPtr->savedPalette, &gPlttBufferUnfaded[0x20], sizeof(sEvoStructPtr->savedPalette));
memcpy(&sEvoStructPtr->savedPalette, &gPlttBufferUnfaded[BG_PLTT_ID(2)], sizeof(sEvoStructPtr->savedPalette));
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP);
@@ -358,7 +358,7 @@ static void CB2_EvolutionSceneLoadGraphics(void)
postEvoSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP);
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT);
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
@@ -416,7 +416,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
gMain.state++;
break;
case 3:
FillBgTilemapBufferRect(1, 0, 0, 0, 0x20, 0x20, 0x11);
FillBgTilemapBufferRect(1, 0, 0, 0, 0x20, 0x20, 17);
CopyBgTilemapBufferToVram(1);
gMain.state++;
break;
@@ -429,7 +429,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
gMonSpritesGfxPtr->sprites[B_POSITION_OPPONENT_RIGHT],
postEvoSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP);
gMain.state++;
}
break;
@@ -494,7 +494,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, u8 preEvoSprit
postEvoSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP);
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_LEFT);
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
@@ -756,7 +756,7 @@ static void Task_EvolutionScene(u8 taskId)
if (IsSEPlaying())
{
m4aMPlayAllStop();
memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette));
memcpy(&gPlttBufferUnfaded[BG_PLTT_ID(2)], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette));
RestoreBgAfterAnim();
BeginNormalPaletteFade(0x1C, 0, 0x10, 0, RGB_BLACK);
gTasks[taskId].tState++;
@@ -1199,7 +1199,7 @@ static void Task_TradeEvolutionScene(u8 taskId)
{
// Free(sBgAnimPal);
PlayCry_Normal(gTasks[taskId].tPostEvoSpecies, 0);
memcpy(&gPlttBufferUnfaded[0x20], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette));
memcpy(&gPlttBufferUnfaded[BG_PLTT_ID(2)], sEvoStructPtr->savedPalette, sizeof(sEvoStructPtr->savedPalette));
gTasks[taskId].tState++;
}
break;
@@ -1331,8 +1331,8 @@ static void Task_TradeEvolutionScene(u8 taskId)
case T_MVSTATE_PRINT_YES_NO:
if (!IsTextPrinterActive(0) && !IsSEPlaying())
{
LoadUserWindowGfx2(0, 0xA8, 0xE0);
CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, FONT_NORMAL_COPY_2, 0, 2, 0xA8, 0xE, 0);
LoadUserWindowGfx2(0, 0xA8, BG_PLTT_ID(14));
CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, FONT_NORMAL_COPY_2, 0, 2, 0xA8, 14, 0);
sEvoCursorPos = 0;
gTasks[taskId].tLearnMoveState++;
sEvoCursorPos = 0;
@@ -1537,7 +1537,7 @@ static void Task_UpdateBgPalette(u8 taskId)
else
{
// Haven't reached final palette in current stage, load the current palette
LoadPalette(&sBgAnimPal[tPalStage * 16], 0xA0, 0x20);
LoadPalette(&sBgAnimPal[tPalStage * 16], BG_PLTT_ID(10), PLTT_SIZE_4BPP);
tCycleTimer = 0;
tPalStage++;
}
@@ -1635,7 +1635,7 @@ static void StartBgAnimation(bool8 isLink)
else
innerBgId = 1, outerBgId = 3;
LoadPalette(sBlackPalette, 0xA0, 0x20);
LoadPalette(sBlackPalette, BG_PLTT_ID(10), sizeof(sBlackPalette));
DecompressAndLoadBgGfxUsingHeap(1, sMovingBackgroundTiles, FALSE, 0, 0);
CopyToBgTilemapBuffer(1, sMovingBackgroundMap1, 0, 0);
@@ -1673,7 +1673,7 @@ void IsMovingBackgroundTaskRunning(void) // unused
if (taskId != TASK_NONE)
gTasks[taskId].tPaused = TRUE;
FillPalette(RGB_BLACK, 0xA0, 0x20);
FillPalette(RGB_BLACK, BG_PLTT_ID(10), PLTT_SIZE_4BPP);
}
#undef tPaused
@@ -1687,7 +1687,7 @@ static void StopBgAnimation(void)
if ((taskId = FindTaskIdByFunc(Task_AnimateBg)) != TASK_NONE)
DestroyTask(taskId);
FillPalette(RGB_BLACK, 0xA0, 0x20);
FillPalette(RGB_BLACK, BG_PLTT_ID(10), PLTT_SIZE_4BPP);
RestoreBgAfterAnim();
}
+21 -17
View File
@@ -663,11 +663,11 @@ static void MainCB2_LoadFameChecker(void)
case 3:
LoadBgTiles(3, gFameCheckerBgTiles, sizeof(gFameCheckerBgTiles), 0);
CopyToBgTilemapBufferRect(3, gFameCheckerBg3Tilemap, 0, 0, 32, 32);
LoadPalette(gFameCheckerBgPals + 0x00, 0x00, 0x40);
LoadPalette(gFameCheckerBgPals + 0x10, 0x10, 0x20);
LoadPalette(&gFameCheckerBgPals[0], BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP);
LoadPalette(&gFameCheckerBgPals[1], BG_PLTT_ID(1), PLTT_SIZE_4BPP);
CopyToBgTilemapBufferRect(2, gFameCheckerBg2Tilemap, 0, 0, 32, 32);
CopyToBgTilemapBufferRect_ChangePalette(1, sFameCheckerTilemap, 30, 0, 32, 32, 0x11);
LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20);
LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
gMain.state++;
break;
case 4:
@@ -1335,40 +1335,44 @@ static void SpriteCB_FCSpinningPokeball(struct Sprite *sprite)
}
}
#define PERSON_PAL_NUM 6
#define PERSON_X 148
#define PERSON_Y 66
static u8 CreatePersonPicSprite(u8 fcPersonIdx)
{
u8 spriteId;
if (fcPersonIdx == FAMECHECKER_DAISY)
{
spriteId = CreateSprite(&sDaisySpriteTemplate, 0x94, 0x42, 0);
LoadPalette(sDaisySpritePalette, 0x160, 0x20);
gSprites[spriteId].oam.paletteNum = 6;
spriteId = CreateSprite(&sDaisySpriteTemplate, PERSON_X, PERSON_Y, 0);
LoadPalette(sDaisySpritePalette, OBJ_PLTT_ID(PERSON_PAL_NUM), sizeof(sDaisySpritePalette));
gSprites[spriteId].oam.paletteNum = PERSON_PAL_NUM;
}
else if (fcPersonIdx == FAMECHECKER_MRFUJI)
{
spriteId = CreateSprite(&sFujiSpriteTemplate, 0x94, 0x42, 0);
LoadPalette(sFujiSpritePalette, 0x160, 0x20);
gSprites[spriteId].oam.paletteNum = 6;
spriteId = CreateSprite(&sFujiSpriteTemplate, PERSON_X, PERSON_Y, 0);
LoadPalette(sFujiSpritePalette, OBJ_PLTT_ID(PERSON_PAL_NUM), sizeof(sFujiSpritePalette));
gSprites[spriteId].oam.paletteNum = PERSON_PAL_NUM;
}
else if (fcPersonIdx == FAMECHECKER_OAK)
{
spriteId = CreateSprite(&sOakSpriteTemplate, 0x94, 0x42, 0);
LoadPalette(sOakSpritePalette, 0x160, 0x20);
gSprites[spriteId].oam.paletteNum = 6;
spriteId = CreateSprite(&sOakSpriteTemplate, PERSON_X, PERSON_Y, 0);
LoadPalette(sOakSpritePalette, OBJ_PLTT_ID(PERSON_PAL_NUM), sizeof(sOakSpritePalette));
gSprites[spriteId].oam.paletteNum = PERSON_PAL_NUM;
}
else if (fcPersonIdx == FAMECHECKER_BILL)
{
spriteId = CreateSprite(&sBillSpriteTemplate, 0x94, 0x42, 0);
LoadPalette(sBillSpritePalette, 0x160, 0x20);
gSprites[spriteId].oam.paletteNum = 6;
spriteId = CreateSprite(&sBillSpriteTemplate, PERSON_X, PERSON_Y, 0);
LoadPalette(sBillSpritePalette, OBJ_PLTT_ID(PERSON_PAL_NUM), sizeof(sBillSpritePalette));
gSprites[spriteId].oam.paletteNum = PERSON_PAL_NUM;
}
else
{
spriteId = CreateTrainerPicSprite(sFameCheckerTrainerPicIdxs[fcPersonIdx], 1, 0x94, 0x42, 6, 0xFFFF);
spriteId = CreateTrainerPicSprite(sFameCheckerTrainerPicIdxs[fcPersonIdx], TRUE, PERSON_X, PERSON_Y, PERSON_PAL_NUM, TAG_NONE);
}
gSprites[spriteId].callback = SpriteCB_FCSpinningPokeball;
if (gSaveBlock1Ptr->fameChecker[fcPersonIdx].pickState == FCPICKSTATE_SILHOUETTE)
LoadPalette(sSilhouettePalette, 0x160, 0x20);
LoadPalette(sSilhouettePalette, OBJ_PLTT_ID(PERSON_PAL_NUM), sizeof(sSilhouettePalette));
return spriteId;
}
+1 -1
View File
@@ -103,7 +103,7 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
}
if ((tileTransitionState == T_TILE_CENTER && forcedMove == FALSE) || tileTransitionState == T_NOT_MOVING)
{
if (GetPlayerSpeed() != 4)
if (GetPlayerSpeed() != PLAYER_SPEED_FASTEST)
{
if ((newKeys & START_BUTTON) && !(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED))
input->pressedStartButton = TRUE;
+23 -22
View File
@@ -106,7 +106,7 @@ static const struct OamData sNewGameOakOamAttributes = {
.size = SPRITE_SIZE(64x64),
.tileNum = 0x000,
.priority = 0,
.paletteNum = 0x0,
.paletteNum = 0,
.affineParam = 0
};
@@ -122,7 +122,7 @@ static const struct OamData sOamData_8x8 = {
.size = SPRITE_SIZE(8x8),
.tileNum = 0x000,
.priority = 0,
.paletteNum = 0x0,
.paletteNum = 0,
.affineParam = 0
};
@@ -138,7 +138,7 @@ static const struct OamData sOamData_16x16 = {
.size = SPRITE_SIZE(16x16),
.tileNum = 0x000,
.priority = 0,
.paletteNum = 0x0,
.paletteNum = 0,
.affineParam = 0
};
@@ -189,7 +189,7 @@ static const struct OamData sOamData_32x16 = {
.size = SPRITE_SIZE(32x16),
.tileNum = 0x000,
.priority = 0,
.paletteNum = 0x0,
.paletteNum = 0,
.affineParam = 0
};
@@ -442,19 +442,19 @@ void ApplyGlobalFieldPaletteTint(u8 paletteIdx)
case 0:
return;
case 1:
TintPalette_GrayScale(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], 0x10);
TintPalette_GrayScale(&gPlttBufferUnfaded[OBJ_PLTT_ID2(paletteIdx)], 16);
break;
case 2:
TintPalette_SepiaTone(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], 0x10);
TintPalette_SepiaTone(&gPlttBufferUnfaded[OBJ_PLTT_ID2(paletteIdx)], 16);
break;
case 3:
QuestLog_BackUpPalette((paletteIdx + 16) * 16, 0x10);
TintPalette_GrayScale(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], 0x10);
QuestLog_BackUpPalette(OBJ_PLTT_ID2(paletteIdx), 16);
TintPalette_GrayScale(&gPlttBufferUnfaded[OBJ_PLTT_ID2(paletteIdx)], 16);
break;
default:
return;
}
CpuFastCopy(&gPlttBufferUnfaded[(paletteIdx + 16) * 16], &gPlttBufferFaded[(paletteIdx + 16) * 16], 0x20);
CpuFastCopy(&gPlttBufferUnfaded[OBJ_PLTT_ID2(paletteIdx)], &gPlttBufferFaded[OBJ_PLTT_ID2(paletteIdx)], PLTT_SIZE_4BPP);
}
static void FieldEffectScript_LoadFadedPal(const u8 **script)
@@ -591,10 +591,11 @@ u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buf
return CreateSprite(&spriteTemplate, x, y, subpriority);
}
// Unused
static void LoadTrainerGfx_TrainerCard(u8 gender, u16 palOffset, u8 *dest)
{
LZDecompressVram(gTrainerFrontPicTable[gender].data, dest);
LoadCompressedPalette(gTrainerFrontPicPaletteTable[gender].data, palOffset, 0x20);
LoadCompressedPalette(gTrainerFrontPicPaletteTable[gender].data, palOffset, PLTT_SIZE_4BPP);
}
// Unused
@@ -945,14 +946,14 @@ static void PokeballGlowEffect_FlashFirstThree(struct Sprite *sprite)
sprite->sNumFlashed++;
}
phase = (sprite->sCounter + 3) & 3;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 8, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
phase = (sprite->sCounter + 2) & 3;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 6, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
phase = (sprite->sCounter + 1) & 3;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 2, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
phase = sprite->sCounter;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 5, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 3, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
if (sprite->sNumFlashed >= 3)
{
sprite->sState++;
@@ -976,11 +977,11 @@ static void PokeballGlowEffect_FlashLast(struct Sprite *sprite)
}
}
phase = sprite->sCounter;
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 8, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 6, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 2, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 5, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
MultiplyInvertedPaletteRGBComponents(OBJ_PLTT_ID(IndexOfSpritePaletteTag(0x1007)) + 3, sPokeballGlowReds[phase], sPokeballGlowGreens[phase], sPokeballGlowBlues[phase]);
}
static void PokeballGlowEffect_WaitAfterFlash(struct Sprite *sprite)
@@ -2625,7 +2626,7 @@ static void ShowMonEffect_Outdoors_2(struct Task *task)
u16 screenbase = ((GetGpuReg(REG_OFFSET_BG0CNT) >> 8) << 11);
CpuCopy16(sFieldMoveStreaksOutdoors_Gfx, (void *)(VRAM + charbase), 0x200);
CpuFill32(0, (void *)(VRAM + screenbase), 0x800);
LoadPalette(sFieldMoveStreaksOutdoors_Pal, 0xf0, 0x20);
LoadPalette(sFieldMoveStreaksOutdoors_Pal, BG_PLTT_ID(15), sizeof(sFieldMoveStreaksOutdoors_Pal));
LoadFieldMoveStreaksTilemapToVram(screenbase);
task->data[0]++;
}
@@ -2776,7 +2777,7 @@ static void ShowMonEffect_Indoors_2(struct Task *task)
task->data[12] = screenbase;
CpuCopy16(sFieldMoveStreaksIndoors_Gfx, (void *)(VRAM + charbase), 0x80);
CpuFill32(0, (void *)(VRAM + screenbase), 0x800);
LoadPalette(sFieldMoveStreaksIndoors_Pal, 0xf0, 0x20);
LoadPalette(sFieldMoveStreaksIndoors_Pal, BG_PLTT_ID(15), sizeof(sFieldMoveStreaksIndoors_Pal));
task->data[0]++;
}
+2 -8
View File
@@ -81,18 +81,12 @@ static void LoadObjectRegularReflectionPalette(struct ObjectEvent * objectEvent,
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
{
if (graphicsInfo->paletteSlot == 0)
{
if (graphicsInfo->paletteSlot == PALSLOT_PLAYER)
LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else if (graphicsInfo->paletteSlot == 10)
{
else if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL)
LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else
{
PatchObjectPalette(GetObjectPaletteTag(paletteIndex), paletteIndex);
}
UpdateSpritePaletteWithWeather(paletteIndex);
}
}
+2 -2
View File
@@ -43,12 +43,12 @@ static bool8 WaitStairExitMovementFinished(s16 *speedX, s16 *speedY, s16 *offset
void palette_bg_faded_fill_white(void)
{
CpuFastFill16(RGB_WHITE, gPlttBufferFaded, 0x400);
CpuFastFill16(RGB_WHITE, gPlttBufferFaded, PLTT_SIZE);
}
void palette_bg_faded_fill_black(void)
{
CpuFastFill16(RGB_BLACK, gPlttBufferFaded, 0x400);
CpuFastFill16(RGB_BLACK, gPlttBufferFaded, PLTT_SIZE);
}
void WarpFadeInScreen(void)
+1 -1
View File
@@ -394,7 +394,7 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId)
case 0:
windowId = AddWindow(&sWindowTemplate_WhiteoutText);
gTasks[taskId].tWindowId = windowId;
Menu_LoadStdPalAt(0xF0);
Menu_LoadStdPalAt(BG_PLTT_ID(15));
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
PutWindowTilemap(windowId);
CopyWindowToVram(windowId, COPYWIN_FULL);
+11 -15
View File
@@ -730,7 +730,7 @@ static const struct WindowTemplate sElevatorCurrentFloorWindowTemplate = {
.tilemapTop = 1,
.width = 7,
.height = 4,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x008
};
@@ -1100,8 +1100,8 @@ void DrawElevatorCurrentFloorWindow(void)
return;
sElevatorCurrentFloorWindowId = AddWindow(&sElevatorCurrentFloorWindowTemplate);
LoadStdWindowGfx(sElevatorCurrentFloorWindowId, 0x21D, 0xD0);
DrawStdFrameWithCustomTileAndPalette(sElevatorCurrentFloorWindowId, FALSE, 0x21D, 0xD);
LoadStdWindowGfx(sElevatorCurrentFloorWindowId, 0x21D, BG_PLTT_ID(13));
DrawStdFrameWithCustomTileAndPalette(sElevatorCurrentFloorWindowId, FALSE, 0x21D, 13);
AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, FONT_NORMAL, gText_NowOn, 0, 2, 0xFF, NULL);
floorname = sFloorNamePointers[gSpecialVar_0x8005];
strwidth = GetStringWidth(FONT_NORMAL, floorname, 0);
@@ -2144,13 +2144,13 @@ void DoPokemonLeagueLightingEffect(void)
{
data[0] = sChampionRoomLightingTimers[0];
data[2] = 8;
LoadPalette(sChampionRoomLightingPalettes[0], 0x70, 0x20);
LoadPalette(sChampionRoomLightingPalettes[0], BG_PLTT_ID(7), PLTT_SIZE_4BPP);
}
else
{
data[0] = sEliteFourLightingTimers[0];
data[2] = 11;
LoadPalette(sEliteFourLightingPalettes[0], 0x70, 0x20);
LoadPalette(sEliteFourLightingPalettes[0], BG_PLTT_ID(7), PLTT_SIZE_4BPP);
}
data[1] = 0;
ApplyGlobalTintToPaletteSlot(7, 1);
@@ -2173,12 +2173,12 @@ static void Task_RunPokemonLeagueLightingEffect(u8 taskId)
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(POKEMON_LEAGUE_CHAMPIONS_ROOM) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(POKEMON_LEAGUE_CHAMPIONS_ROOM))
{
data[0] = sChampionRoomLightingTimers[data[1]];
LoadPalette(sChampionRoomLightingPalettes[data[1]], 0x70, 0x20);
LoadPalette(sChampionRoomLightingPalettes[data[1]], BG_PLTT_ID(7), PLTT_SIZE_4BPP);
}
else
{
data[0] = sEliteFourLightingTimers[data[1]];
LoadPalette(sEliteFourLightingPalettes[data[1]], 0x70, 0x20);
LoadPalette(sEliteFourLightingPalettes[data[1]], BG_PLTT_ID(7), PLTT_SIZE_4BPP);
}
ApplyGlobalTintToPaletteSlot(7, 1);
}
@@ -2190,13 +2190,9 @@ static void Task_CancelPokemonLeagueLightingEffect(u8 taskId)
if (FlagGet(FLAG_TEMP_4) != FALSE)
{
if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(POKEMON_LEAGUE_CHAMPIONS_ROOM) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(POKEMON_LEAGUE_CHAMPIONS_ROOM))
{
LoadPalette(sChampionRoomLightingPalettes[8], 0x70, 0x20);
}
LoadPalette(sChampionRoomLightingPalettes[8], BG_PLTT_ID(7), PLTT_SIZE_4BPP);
else
{
LoadPalette(sEliteFourLightingPalettes[11], 0x70, 0x20);
}
LoadPalette(sEliteFourLightingPalettes[11], BG_PLTT_ID(7), PLTT_SIZE_4BPP);
ApplyGlobalTintToPaletteSlot(7, 1);
if (gPaletteFade.active)
{
@@ -2409,7 +2405,7 @@ static void Task_DoDeoxysTriangleInteraction(u8 taskId)
static void MoveDeoxysObject(u8 num)
{
u8 mapObjId;
LoadPalette(sDeoxysObjectPals[num], 0x1A0, 0x08);
LoadPalette(sDeoxysObjectPals[num], OBJ_PLTT_ID(10), PLTT_SIZEOF(4));
ApplyGlobalFieldPaletteTint(10);
TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjId);
if (num == 0)
@@ -2455,7 +2451,7 @@ void IncrementBirthIslandRockStepCount(void)
void SetDeoxysTrianglePalette(void)
{
u8 num = VarGet(VAR_DEOXYS_INTERACTION_NUM);
LoadPalette(sDeoxysObjectPals[num], 0x1A0, 0x08);
LoadPalette(sDeoxysObjectPals[num], OBJ_PLTT_ID(10), PLTT_SIZEOF(4));
ApplyGlobalFieldPaletteTint(10);
}
+166 -111
View File
@@ -15,7 +15,20 @@
#include "constants/metatile_labels.h"
#include "constants/songs.h"
// TODO: Metatile IDs in this file
/* This file handles some persistent tasks that run in the overworld.
* - Task_RunTimeBasedEvents: Triggers ambient cries. In RSE, this also periodically updates local time and RTC events.
* - Task_RunPerStepCallback: Calls one of the functions in sPerStepCallbacks, listed below...
* . DummyPerStepCallback: Default, does nothing. Includes functionality from RS that was removed.
* . AshGrassPerStepCallback: Leftover from RS. Removes the ash from ash-covered grass that the player steps on.
* . IcefallCaveIcePerStepCallback: Cracks/breaks ice in Icefall Cave that the player steps on.
* . CrackedFloorPerStepCallback: Leftover from RS. Breaks cracked floors that the player steps on.
*
* NOTE: "PerStep" is perhaps misleading. One function in sPerStepCallbacks is called
* every frame while in the overworld by Task_RunPerStepCallback regardless of
* whether or not steps are being taken. However, nearly all of the functions in
* the table check if the player has moved from their previous position before
* doing anything else.
*/
static void DummyPerStepCallback(u8 taskId);
static void AshGrassPerStepCallback(u8 taskId);
@@ -34,7 +47,8 @@ static const TaskFunc sPerStepCallbacks[] =
[STEP_CB_CRACKED_FLOOR] = CrackedFloorPerStepCallback
};
static const u8 sIcefallCaveIceTileCoords[][2] =
// The positions of each map space with crackable ice in Icefall Cave.
static const u8 sIcefallCaveIceCoords[][2] =
{
{ 8, 3 },
{ 10, 5 },
@@ -47,56 +61,53 @@ static const u8 sIcefallCaveIceTileCoords[][2] =
{ 8, 14 }
};
#define tCallbackId data[0]
static void Task_RunPerStepCallback(u8 taskId)
{
int idx = gTasks[taskId].data[0];
int idx = gTasks[taskId].tCallbackId;
sPerStepCallbacks[idx](taskId);
}
#define tAmbientCryState data[1]
#define tAmbientCryDelay data[2]
// RTC functionality from RS was removed here.
static void Task_RunTimeBasedEvents(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (!ArePlayerFieldControlsLocked())
{
if (!QL_IS_PLAYBACK_STATE)
{
UpdateAmbientCry(&data[1], &data[2]);
}
}
if (!ArePlayerFieldControlsLocked() && !QL_IS_PLAYBACK_STATE)
UpdateAmbientCry(&tAmbientCryState, &tAmbientCryDelay);
}
void SetUpFieldTasks(void)
{
if (!FuncIsActiveTask(Task_RunPerStepCallback))
{
u8 taskId = CreateTask(Task_RunPerStepCallback, 0x50);
gTasks[taskId].data[0] = 0;
u8 taskId = CreateTask(Task_RunPerStepCallback, 80);
gTasks[taskId].tCallbackId = STEP_CB_DUMMY;
}
if (!FuncIsActiveTask(Task_RunTimeBasedEvents))
CreateTask(Task_RunTimeBasedEvents, 0x50);
CreateTask(Task_RunTimeBasedEvents, 80);
}
void ActivatePerStepCallback(u8 callbackId)
{
u8 taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
if (taskId != 0xff)
if (taskId != TASK_NONE)
{
s32 i;
s16 *data = gTasks[taskId].data;
for (i = 0; i < 16; i++)
for (i = 0; i < NUM_TASK_DATA; i++)
data[i] = 0;
if (callbackId >= NELEMS(sPerStepCallbacks))
{
data[0] = 0;
}
if (callbackId >= ARRAY_COUNT(sPerStepCallbacks))
tCallbackId = STEP_CB_DUMMY;
else
{
data[0] = callbackId;
}
tCallbackId = callbackId;
}
}
@@ -106,29 +117,31 @@ void ResetFieldTasksArgs(void)
s16 *data;
taskId = FindTaskIdByFunc(Task_RunPerStepCallback);
if (taskId != 0xff)
{
if (taskId != TASK_NONE)
data = gTasks[taskId].data;
}
taskId = FindTaskIdByFunc(Task_RunTimeBasedEvents);
if (taskId != 0xff)
if (taskId != TASK_NONE)
{
data = gTasks[taskId].data;
data[1] = 0;
data[2] = 0;
tAmbientCryState = 0;
tAmbientCryDelay = 0;
}
}
#undef tAmbientCryState
#undef tAmbientCryDelay
static void DummyPerStepCallback(u8 taskId)
{
}
static void MarkIcefallCaveCoordVisited(s16 x, s16 y)
static void MarkIcePuzzleCoordVisited(s16 x, s16 y)
{
u8 i = 0;
for (; i < NELEMS(sIcefallCaveIceTileCoords); ++i)
u8 i;
for (i = 0; i < ARRAY_COUNT(sIcefallCaveIceCoords); i++)
{
if (sIcefallCaveIceTileCoords[i][0] + 7 == x && sIcefallCaveIceTileCoords[i][1] + 7 == y)
if (sIcefallCaveIceCoords[i][0] + MAP_OFFSET == x && sIcefallCaveIceCoords[i][1] + MAP_OFFSET == y)
{
FlagSet(i + 1);
break;
@@ -138,118 +151,156 @@ static void MarkIcefallCaveCoordVisited(s16 x, s16 y)
void SetIcefallCaveCrackedIceMetatiles(void)
{
u8 i = 0;
for (; i < NELEMS(sIcefallCaveIceTileCoords); ++i)
u8 i;
for (i = 0; i < ARRAY_COUNT(sIcefallCaveIceCoords); i++)
{
if (FlagGet(i + 1) == TRUE)
{
int x = sIcefallCaveIceTileCoords[i][0] + 7;
int y = sIcefallCaveIceTileCoords[i][1] + 7;
int x = sIcefallCaveIceCoords[i][0] + MAP_OFFSET;
int y = sIcefallCaveIceCoords[i][1] + MAP_OFFSET;
MapGridSetMetatileIdAt(x, y, METATILE_SeafoamIslands_CrackedIce);
}
}
}
#define tState data[1]
#define tPrevX data[2]
#define tPrevY data[3]
#define tIceX data[4]
#define tIceY data[5]
#define tDelay data[6]
static void IcefallCaveIcePerStepCallback(u8 taskId)
{
s16 x, y;
u8 tileBehavior;
u16 *iceStepCount;
s16 *data = gTasks[taskId].data;
switch (data[1])
switch (tState)
{
case 0:
PlayerGetDestCoords(&x, &y);
data[2] = x;
data[3] = y;
data[1] = 1;
tPrevX = x;
tPrevY = y;
tState = 1;
break;
case 1:
PlayerGetDestCoords(&x, &y);
if (x != data[2] || y != data[3])
// End if player hasn't moved
if (x == tPrevX && y == tPrevY)
return;
tPrevX = x;
tPrevY = y;
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
if (MetatileBehavior_IsThinIce(tileBehavior) == TRUE)
{
data[2] = x;
data[3] = y;
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
if (MetatileBehavior_IsThinIce(tileBehavior) == TRUE)
{
MarkIcefallCaveCoordVisited(x, y);
data[6] = 4;
data[1] = 2;
data[4] = x;
data[5] = y;
}
else if (MetatileBehavior_IsCrackedIce(tileBehavior) == TRUE)
{
data[6] = 4;
data[1] = 3;
data[4] = x;
data[5] = y;
}
// Thin ice, set it to cracked ice
MarkIcePuzzleCoordVisited(x, y);
tDelay = 4;
tState = 2;
tIceX = x;
tIceY = y;
}
else if (MetatileBehavior_IsCrackedIce(tileBehavior) == TRUE)
{
// Cracked ice, set it to broken ice
tDelay = 4;
tState = 3;
tIceX = x;
tIceY = y;
}
break;
case 2:
if (data[6] != 0)
if (tDelay != 0)
{
data[6]--;
tDelay--;
}
else
{
x = data[4];
y = data[5];
// Crack ice
x = tIceX;
y = tIceY;
PlaySE(SE_ICE_CRACK);
MapGridSetMetatileIdAt(x, y, METATILE_SeafoamIslands_CrackedIce);
CurrentMapDrawMetatileAt(x, y);
data[1] = 1;
tState = 1;
}
break;
case 3:
if (data[6] != 0)
if (tDelay != 0)
{
data[6]--;
tDelay--;
}
else
{
x = data[4];
y = data[5];
// Break ice
x = tIceX;
y = tIceY;
PlaySE(SE_ICE_BREAK);
MapGridSetMetatileIdAt(x, y, METATILE_SeafoamIslands_IceHole);
CurrentMapDrawMetatileAt(x, y);
VarSet(VAR_TEMP_1, 1);
data[1] = 1;
tState = 1;
}
break;
}
}
// This is leftover from pokeruby and effectively a no-op.
#undef tState
#undef tPrevX
#undef tPrevY
#undef tIceX
#undef tIceY
#undef tDelay
#define tPrevX data[1]
#define tPrevY data[2]
// Unused. For some reason this was not dummied out like the other RSE-exclusive step callbacks.
static void AshGrassPerStepCallback(u8 taskId)
{
s16 x, y;
u16 *ashGatherCount;
s16 *data = gTasks[taskId].data;
PlayerGetDestCoords(&x, &y);
if (x != data[1] || y != data[2])
// End if player hasn't moved
if (x == tPrevX && y == tPrevY)
return;
tPrevX = x;
tPrevY = y;
if (MetatileBehavior_IsAshGrass((u8)MapGridGetMetatileBehaviorAt(x, y)))
{
data[1] = x;
data[2] = y;
if (MetatileBehavior_IsAshGrass((u8)MapGridGetMetatileBehaviorAt(x, y)))
{
if (MapGridGetMetatileIdAt(x, y) == 0x20a)
StartAshFieldEffect(x, y, 0x212, 4);
else
StartAshFieldEffect(x, y, 0x206, 4);
}
// Remove ash from grass
if (MapGridGetMetatileIdAt(x, y) == METATILE_Fallarbor_AshGrass)
StartAshFieldEffect(x, y, METATILE_Fallarbor_NormalGrass, 4);
else
StartAshFieldEffect(x, y, METATILE_Lavaridge_NormalGrass, 4);
}
}
#undef tPrevX
#undef tPrevY
// Unused. For some reason these were not dummied out like the other RSE-exclusive step callbacks.
static void SetCrackedFloorHoleMetatile(s16 x, s16 y)
{
MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == 0x22f ? 0x206 : 0x237);
MapGridSetMetatileIdAt(x, y, MapGridGetMetatileIdAt(x, y) == METATILE_RSCave_CrackedFloor ? METATILE_RSCave_CrackedFloor_Hole : METATILE_Pacifidlog_SkyPillar_CrackedFloor_Hole);
CurrentMapDrawMetatileAt(x, y);
}
// This is leftover from pokeruby and effectively a no-op.
#define tPrevX data[2]
#define tPrevY data[3]
#define tFloor1Delay data[4]
#define tFloor1X data[5]
#define tFloor1Y data[6]
#define tFloor2Delay data[7]
#define tFloor2X data[8]
#define tFloor2Y data[9]
// Unused. See above.
static void CrackedFloorPerStepCallback(u8 taskId)
{
s16 x, y;
@@ -257,40 +308,44 @@ static void CrackedFloorPerStepCallback(u8 taskId)
s16 *data = gTasks[taskId].data;
PlayerGetDestCoords(&x, &y);
behavior = MapGridGetMetatileBehaviorAt(x, y);
if (data[4] != 0 && (--data[4]) == 0)
SetCrackedFloorHoleMetatile(data[5], data[6]);
if (data[7] != 0 && (--data[7]) == 0)
SetCrackedFloorHoleMetatile(data[8], data[9]);
// Update up to 2 previous cracked floor spaces
if (tFloor1Delay != 0 && (--tFloor1Delay) == 0)
SetCrackedFloorHoleMetatile(tFloor1X, tFloor1Y);
if (tFloor2Delay != 0 && (--tFloor2Delay) == 0)
SetCrackedFloorHoleMetatile(tFloor2X, tFloor2Y);
if ((x != data[2] || y != data[3]))
// End if player hasn't moved
if (x == tPrevX && y == tPrevY)
return;
tPrevX = x;
tPrevY = y;
if (MetatileBehavior_IsCrackedFloor(behavior))
{
data[2] = x;
data[3] = y;
if (MetatileBehavior_IsCrackedFloor(behavior))
{
if (GetPlayerSpeed() != 4)
VarSet(VAR_ICE_STEP_COUNT, 0);
if (GetPlayerSpeed() != PLAYER_SPEED_FASTEST)
VarSet(VAR_ICE_STEP_COUNT, 0); // this var does double duty
if (data[4] == 0)
{
data[4] = 3;
data[5] = x;
data[6] = y;
}
else if (data[7] == 0)
{
data[7] = 3;
data[8] = x;
data[9] = y;
}
if (tFloor1Delay == 0)
{
tFloor1Delay = 3;
tFloor1X = x;
tFloor1Y = y;
}
else if (tFloor2Delay == 0)
{
tFloor2Delay = 3;
tFloor2X = x;
tFloor2Y = y;
}
}
}
// Unused
static void SetHasPokedexAndPokemon(void)
{
FlagSet(FLAG_SYS_POKEDEX_GET);
FlagSet(FLAG_SYS_POKEMON_GET);
}
#undef tPrevX
#undef tPrevY
#undef tFloor1Delay
#undef tFloor1X
#undef tFloor1Y
#undef tFloor2Delay
#undef tFloor2X
#undef tFloor2Y
+14 -40
View File
@@ -146,7 +146,7 @@ void StartWeather(void)
if (!FuncIsActiveTask(Task_WeatherMain))
{
u8 index = AllocSpritePalette(0x1200);
CpuCopy32(gDefaultWeatherSpritePalette, &gPlttBufferUnfaded[0x100 + index * 16], 32);
CpuCopy32(gDefaultWeatherSpritePalette, &gPlttBufferUnfaded[OBJ_PLTT_ID(index)], PLTT_SIZE_4BPP);
ApplyGlobalFieldPaletteTint(index);
BuildGammaShiftTables();
gWeatherPtr->altGammaSpritePalIndex = index;
@@ -449,7 +449,7 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
if (gammaIndex > 0)
{
gammaIndex--;
palOffset = startPalIndex * 16;
palOffset = PLTT_ID(startPalIndex);
numPalettes += startPalIndex;
curPalIndex = startPalIndex;
@@ -459,7 +459,7 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
{
// No palette change.
CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
CpuFastCopy(&gPlttBufferUnfaded[palOffset], &gPlttBufferFaded[palOffset], PLTT_SIZE_4BPP);
palOffset += 16;
}
else
@@ -489,37 +489,11 @@ static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
{
// A negative gammIndex value means that the blending will come from the special Drought weather's palette tables.
// Dummied out in FRLG
// gammaIndex = -gammaIndex - 1;
// palOffset = startPalIndex * 16;
// numPalettes += startPalIndex;
// curPalIndex = startPalIndex;
//
// CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
// while (curPalIndex < numPalettes)
// {
// if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
// {
// // No palette change.
// palOffset += 16;
// }
// else
// {
//
// for (i = 0; i < 16; i++)
// {
// gPlttBufferFaded[palOffset] = sDroughtWeatherColors[gammaIndex][DROUGHT_COLOR_INDEX(gPlttBufferUnfaded[palOffset])];
// palOffset++;
// }
// }
//
// curPalIndex++;
// }
}
else
{
// No palette blending.
CpuFastCopy(gPlttBufferUnfaded + startPalIndex * 16, gPlttBufferFaded + startPalIndex * 16, numPalettes * 16 * sizeof(u16));
CpuFastCopy(&gPlttBufferUnfaded[PLTT_ID(startPalIndex)], &gPlttBufferFaded[PLTT_ID(startPalIndex)], numPalettes * PLTT_SIZE_4BPP);
}
}
@@ -533,7 +507,7 @@ static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaI
u8 gBlend = color.g;
u8 bBlend = color.b;
palOffset = startPalIndex * 16;
palOffset = PLTT_ID(startPalIndex);
numPalettes += startPalIndex;
gammaIndex--;
curPalIndex = startPalIndex;
@@ -641,8 +615,8 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor)
{
if (LightenSpritePaletteInFog(curPalIndex))
{
u16 palEnd = (curPalIndex + 1) * 16;
u16 palOffset = curPalIndex * 16;
u16 palEnd = PLTT_ID(curPalIndex + 1);
u16 palOffset = PLTT_ID(curPalIndex);
while (palOffset < palEnd)
{
@@ -665,7 +639,7 @@ static void ApplyFogBlend(u8 blendCoeff, u16 blendColor)
}
else
{
BlendPalette(curPalIndex * 16, 16, blendCoeff, blendColor);
BlendPalette(PLTT_ID(curPalIndex), 16, blendCoeff, blendColor);
}
}
}
@@ -829,7 +803,7 @@ void FadeSelectedPals(u8 mode, s8 delay, u32 selectedPalettes)
if (fadeOut)
{
if (useWeatherPal)
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_SIZE);
BeginNormalPaletteFade(selectedPalettes, delay, 0, 16, fadeColor);
gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
@@ -868,14 +842,14 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex)
{
if (gWeatherPtr->currWeather == WEATHER_FOG_HORIZONTAL)
MarkFogSpritePalToLighten(paletteIndex);
paletteIndex *= 16;
paletteIndex = PLTT_ID(paletteIndex);
for (i = 0; i < 16; i++)
gPlttBufferFaded[paletteIndex + i] = gWeatherPtr->fadeDestColor;
}
break;
case WEATHER_PAL_STATE_SCREEN_FADING_OUT:
paletteIndex *= 16;
CpuFastCopy(gPlttBufferFaded + paletteIndex, gPlttBufferUnfaded + paletteIndex, 32);
paletteIndex = PLTT_ID(paletteIndex);
CpuFastCopy(&gPlttBufferFaded[paletteIndex], &gPlttBufferUnfaded[paletteIndex], PLTT_SIZE_4BPP);
BlendPalette(paletteIndex, 16, gPaletteFade.y, gPaletteFade.blendColor);
break;
// WEATHER_PAL_STATE_CHANGING_WEATHER
@@ -887,7 +861,7 @@ void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex)
}
else
{
paletteIndex *= 16;
paletteIndex = PLTT_ID(paletteIndex);
BlendPalette(paletteIndex, 16, 12, RGB(28, 31, 28));
}
break;
@@ -909,7 +883,7 @@ static u8 IsWeatherFadingIn(void)
void LoadCustomWeatherSpritePalette(const u16 *palette)
{
LoadPalette(palette, 0x100 + gWeatherPtr->weatherPicSpritePalIndex * 16, 32);
LoadPalette(palette, OBJ_PLTT_ID(gWeatherPtr->weatherPicSpritePalIndex), PLTT_SIZE_4BPP);
UpdateSpritePaletteWithWeather(gWeatherPtr->weatherPicSpritePalIndex);
}
+13 -13
View File
@@ -845,19 +845,19 @@ static void ApplyGlobalTintToPaletteEntries(u16 offset, u16 size)
case QL_TINT_NONE:
return;
case QL_TINT_GRAYSCALE:
TintPalette_GrayScale(gPlttBufferUnfaded + offset, size);
TintPalette_GrayScale(&gPlttBufferUnfaded[offset], size);
break;
case QL_TINT_SEPIA:
TintPalette_SepiaTone(gPlttBufferUnfaded + offset, size);
TintPalette_SepiaTone(&gPlttBufferUnfaded[offset], size);
break;
case QL_TINT_BACKUP_GRAYSCALE:
QuestLog_BackUpPalette(offset, size);
TintPalette_GrayScale(gPlttBufferUnfaded + offset, size);
TintPalette_GrayScale(&gPlttBufferUnfaded[offset], size);
break;
default:
return;
}
CpuCopy16(gPlttBufferUnfaded + offset, gPlttBufferFaded + offset, size * sizeof(u16));
CpuCopy16(&gPlttBufferUnfaded[offset], &gPlttBufferFaded[offset], PLTT_SIZEOF(size));
}
void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count)
@@ -867,19 +867,19 @@ void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count)
case QL_TINT_NONE:
return;
case QL_TINT_GRAYSCALE:
TintPalette_GrayScale(gPlttBufferUnfaded + slot * 16, count * 16);
TintPalette_GrayScale(&gPlttBufferUnfaded[BG_PLTT_ID(slot)], count * 16);
break;
case QL_TINT_SEPIA:
TintPalette_SepiaTone(gPlttBufferUnfaded + slot * 16, count * 16);
TintPalette_SepiaTone(&gPlttBufferUnfaded[BG_PLTT_ID(slot)], count * 16);
break;
case QL_TINT_BACKUP_GRAYSCALE:
QuestLog_BackUpPalette(slot * 16, count * 16);
TintPalette_GrayScale(gPlttBufferUnfaded + slot * 16, count * 16);
QuestLog_BackUpPalette(BG_PLTT_ID(slot), count * 16);
TintPalette_GrayScale(&gPlttBufferUnfaded[BG_PLTT_ID(slot)], count * 16);
break;
default:
return;
}
CpuFastCopy(gPlttBufferUnfaded + slot * 16, gPlttBufferFaded + slot * 16, count * 16 * sizeof(u16));
CpuFastCopy(&gPlttBufferUnfaded[BG_PLTT_ID(slot)], &gPlttBufferFaded[BG_PLTT_ID(slot)], count * PLTT_SIZE_4BPP);
}
static void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u16 size)
@@ -890,8 +890,8 @@ static void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u1
{
if (tileset->isSecondary == FALSE)
{
LoadPalette(&black, destOffset, 2);
LoadPalette(tileset->palettes[0] + 1, destOffset + 1, size - 2);
LoadPalette(&black, destOffset, PLTT_SIZEOF(1));
LoadPalette(tileset->palettes[0] + 1, destOffset + 1, size - PLTT_SIZEOF(1));
ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1);
}
else if (tileset->isSecondary == TRUE)
@@ -924,12 +924,12 @@ void CopySecondaryTilesetToVramUsingHeap(const struct MapLayout *mapLayout)
static void LoadPrimaryTilesetPalette(const struct MapLayout *mapLayout)
{
LoadTilesetPalette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2);
LoadTilesetPalette(mapLayout->primaryTileset, BG_PLTT_ID(0), NUM_PALS_IN_PRIMARY * PLTT_SIZE_4BPP);
}
void LoadSecondaryTilesetPalette(const struct MapLayout *mapLayout)
{
LoadTilesetPalette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2);
LoadTilesetPalette(mapLayout->secondaryTileset, BG_PLTT_ID(NUM_PALS_IN_PRIMARY), (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * PLTT_SIZE_4BPP);
}
void CopyMapTilesetsToVram(struct MapLayout const *mapLayout)
+1 -1
View File
@@ -79,7 +79,7 @@ static const struct OamData sOamData_FldEff_CutGrass = {
.size = SPRITE_SIZE(8x8),
.tileNum = 0x001,
.priority = 1,
.paletteNum = 0x1,
.paletteNum = 1,
.affineParam = 0
};
+20 -19
View File
@@ -154,11 +154,13 @@ static const struct FlashStruct sTransitionTypes[] = {
}, {0}
};
static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/field_effects/flash_white.gbapal");
static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/field_effects/flash_black.gbapal");
static const u16 sCaveTransitionPalette_Gradient[] = INCBIN_U16("graphics/field_effects/flash_gradient.gbapal");
static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/field_effects/flash_effect_map.bin.lz");
static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/field_effects/flash_effect_tiles.4bpp.lz");
static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/cave_transition/white.gbapal");
static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/cave_transition/black.gbapal");
static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/cave_transition/enter.gbapal");
static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/cave_transition/exit.gbapal");
static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/cave_transition/tilemap.bin.lz");
static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/cave_transition/tiles.4bpp.lz");
bool8 SetUpFieldMove_Flash(void)
{
@@ -299,8 +301,8 @@ static void Task_FlashTransition_Exit_1(u8 taskId)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
LZ77UnCompVram(sCaveTransitionTiles, (void *)BG_CHAR_ADDR(3));
LZ77UnCompVram(sCaveTransitionTilemap, (void *)BG_SCREEN_ADDR(31));
LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20);
LoadPalette(sCaveTransitionPalette_Gradient + 8, 0xE0, 0x10);
LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_White));
LoadPalette(sCaveTransitionPalette_Exit, BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_Exit));
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);
@@ -328,17 +330,17 @@ static void Task_FlashTransition_Exit_2(u8 taskId)
static void Task_FlashTransition_Exit_3(u8 taskId)
{
u16 r4;
u16 count;
SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8) + 16);
r4 = gTasks[taskId].data[2];
if (r4 < 8)
count = gTasks[taskId].data[2];
if (count < 8)
{
gTasks[taskId].data[2]++;
LoadPalette(sCaveTransitionPalette_Gradient + 8 + r4, 0xE0, 0x10 - 2 * r4);
LoadPalette(&sCaveTransitionPalette_Exit[count], BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_Exit) - PLTT_SIZEOF(count));
}
else
{
LoadPalette(sCaveTransitionPalette_White, 0x00, 0x20);
LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(0), sizeof(sCaveTransitionPalette_White));
gTasks[taskId].func = Task_FlashTransition_Exit_4;
gTasks[taskId].data[2] = 8;
}
@@ -372,8 +374,8 @@ static void Task_FlashTransition_Enter_1(u8 taskId)
SetGpuReg(REG_OFFSET_BLDY, 0);
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(31));
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_OBJ_ON);
LoadPalette(sCaveTransitionPalette_White, 0xE0, 0x20);
LoadPalette(sCaveTransitionPalette_Black, 0, 0x20);
LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_White));
LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0), sizeof(sCaveTransitionPalette_Black));
gTasks[taskId].func = Task_FlashTransition_Enter_2;
gTasks[taskId].data[0] = 16;
gTasks[taskId].data[1] = 0;
@@ -382,13 +384,12 @@ static void Task_FlashTransition_Enter_1(u8 taskId)
static void Task_FlashTransition_Enter_2(u8 taskId)
{
u16 r4;
r4 = gTasks[taskId].data[2];
if (r4 < 16)
u16 count = gTasks[taskId].data[2];
if (count < 16)
{
gTasks[taskId].data[2]++;
gTasks[taskId].data[2]++;
LoadPalette(&sCaveTransitionPalette_Gradient[16 - (r4 + 1)], 0xE0, 2 * (r4 + 1));
LoadPalette(&sCaveTransitionPalette_Enter[15 - count], BG_PLTT_ID(14), PLTT_SIZEOF(count + 1));
}
else
{
@@ -408,7 +409,7 @@ static void Task_FlashTransition_Enter_3(u8 taskId)
}
else
{
LoadPalette(sCaveTransitionPalette_Black, 0x00, 0x20);
LoadPalette(sCaveTransitionPalette_Black, BG_PLTT_ID(0), sizeof(sCaveTransitionPalette_Black));
SetMainCallback2(gMain.savedCallback);
}
}
+10 -10
View File
@@ -1078,8 +1078,8 @@ const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapa
const u32 gBagBg_Gfx[] = INCBIN_U32("graphics/item_menu/bg.4bpp.lz");
const u32 gBagBg_Tilemap[] = INCBIN_U32("graphics/item_menu/bg.bin.lz");
const u32 gBagBg_ItemPC_Tilemap[] = INCBIN_U32("graphics/item_menu/bg_item_pc.bin.lz");
const u32 gBagBgPalette[] = INCBIN_U32("graphics/item_menu/bag_pal1.gbapal.lz"); // palette 1 (Boy + misc Pal)
const u32 gBagBgPalette_FemaleOverride[] = INCBIN_U32("graphics/item_menu/bag_pal2.gbapal.lz"); // palette 2 (Girl)
const u32 gBagBgPalette[] = INCBIN_U32("graphics/item_menu/bg.gbapal.lz"); // palette 1 (Boy + misc Pal)
const u32 gBagBgPalette_FemaleOverride[] = INCBIN_U32("graphics/item_menu/bg_female.gbapal.lz"); // palette 2 (Girl)
const u32 gBagMale_Gfx[] = INCBIN_U32("graphics/interface/bag_male.4bpp.lz");
const u32 gBagFemale_Gfx[] = INCBIN_U32("graphics/interface/bag_female.4bpp.lz");
@@ -1137,9 +1137,9 @@ const u32 gGhostFrontPic[] = INCBIN_U32("graphics/pokemon/ghost/front.4bpp.lz");
#include "data/graphics/mail.h"
const u16 gFireRedMenuElements1_Pal[] = INCBIN_U16("graphics/interface/dex_caught_pokeball.gbapal");
const u16 gFireRedMenuElements2_Pal[] = INCBIN_U16("graphics/interface/pokemon_types.gbapal");
const u8 gFireRedMenuElements_Gfx[] = INCBIN_U8("graphics/interface/dex_caught_pokeball_and_pokemon_types.4bpp");
const u16 gMenuInfoElements1_Pal[] = INCBIN_U16("graphics/interface/dex_caught_pokeball.gbapal");
const u16 gMenuInfoElements2_Pal[] = INCBIN_U16("graphics/interface/pokemon_types.gbapal");
const u8 gMenuInfoElements_Gfx[] = INCBIN_U8("graphics/interface/menu_info.4bpp");
const u16 gMoveRelearner_Pal[] = INCBIN_U16("graphics/interface/learn_move.gbapal");
const u32 gMoveRelearner_Gfx[] = INCBIN_U32("graphics/interface/learn_move.4bpp.lz");
@@ -1178,10 +1178,10 @@ const u32 gNamingScreenUnderscore_Gfx[] = INCBIN_U32("graphics/naming_screen
const u8 gTMCaseHM_Gfx[] = INCBIN_U8("graphics/tm_case/hm.4bpp");
const u16 gKantoTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star.gbapal");
const u32 gKantoTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card.4bpp.lz");
const u16 gHoennTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star_em.gbapal");
const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card_em.4bpp.lz");
const u16 gKantoTrainerCardBlue_Pal[] = INCBIN_U16("graphics/trainer_card/blue.gbapal");
const u32 gKantoTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/tiles.4bpp.lz");
const u16 gHoennTrainerCardGreen_Pal[] = INCBIN_U16("graphics/trainer_card/rse/green.gbapal");
const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/rse/tiles.4bpp.lz");
const u16 gEasyChatWindow_Pal[] = INCBIN_U16("graphics/easy_chat/window.gbapal");
const u32 gEasyChatWindow_Gfx[] = INCBIN_U32("graphics/easy_chat/window.4bpp.lz");
@@ -1227,7 +1227,7 @@ const u16 gTradeUnused_Tilemap[] = INCBIN_U16("graphics/trade/unused.bin");
const u16 gTradeMenu_Tilemap[] = INCBIN_U16("graphics/trade/menu.bin");
const u16 gTradeMenuMonBox_Tilemap[] = INCBIN_U16("graphics/trade/menu_mon_box.bin");
const u16 gFameCheckerBgPals[] = INCBIN_U16("graphics/fame_checker/bg.gbapal");
const u16 gFameCheckerBgPals[][16] = INCBIN_U16("graphics/fame_checker/bg.gbapal");
const u16 gFameCheckerBgTiles[] = INCBIN_U16("graphics/fame_checker/bg.4bpp");
const u16 gFameCheckerBg3Tilemap[] = INCBIN_U16("graphics/fame_checker/tilemap3.bin");
const u16 gFameCheckerBg2Tilemap[] = INCBIN_U16("graphics/fame_checker/tilemap2.bin");
+5 -5
View File
@@ -620,7 +620,7 @@ static void Task_Hof_SpawnPlayerPic(u8 taskId)
ShowBg(3);
gTasks[taskId].data[4] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender, TRUE), TRUE, 0x78, 0x48, 6, 0xFFFF);
AddWindow(&sWindowTemplate);
LoadStdWindowGfx(1, 0x21D, 0xD0);
LoadStdWindowGfx(1, 0x21D, BG_PLTT_ID(13));
gTasks[taskId].data[3] = 120;
gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo;
}
@@ -657,7 +657,7 @@ static void Task_Hof_ExitOnKeyPressed(u8 taskId)
static void Task_Hof_HandlePaletteOnExit(u8 taskId)
{
CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_BUFFER_SIZE * sizeof(u16));
CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_SIZE);
BeginNormalPaletteFade(PALETTES_ALL, 8, 0, 16, RGB_BLACK);
gTasks[taskId].func = Task_Hof_HandleExit;
}
@@ -938,7 +938,7 @@ static void Task_HofPC_HandlePaletteOnExit(u8 taskId)
{
struct HallofFameTeam* fameTeam;
CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
CpuCopy16(gPlttBufferFaded, gPlttBufferUnfaded, PLTT_SIZE);
BeginPCScreenEffect_TurnOff(0, 0, 0);
gTasks[taskId].func = Task_HofPC_HandleExit;
}
@@ -1085,7 +1085,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
FillWindowPixelBuffer(1, PIXEL_FILL(1));
PutWindowTilemap(1);
DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x21D, 0xD);
DrawStdFrameWithCustomTileAndPalette(1, FALSE, 0x21D, 13);
AddTextPrinterParameterized4(1, FONT_NORMAL, 4, 3, 0, 0, sTextColors[1], 0, gText_Name);
AddTextPrinterParameterized3(1, FONT_NORMAL, textWidth - GetStringWidth(FONT_NORMAL, gSaveBlock2Ptr->playerName, 0), 3, sTextColors[1], 0, gSaveBlock2Ptr->playerName);
@@ -1148,7 +1148,7 @@ static void ClearVramOamPltt_LoadHofPal(void)
DmaFill16(3, 0, plttOffset, plttSize);
ResetPaletteFade();
LoadPalette(sHallOfFame_Pal, 0, 0x20);
LoadPalette(sHallOfFame_Pal, BG_PLTT_ID(0), sizeof(sHallOfFame_Pal));
}
static void HofInit_ResetGpuBuffersAndLoadConfettiGfx(void)
+15 -15
View File
@@ -405,7 +405,7 @@ static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = {
.tilemapTop = 4,
.width = 18,
.height = 9,
.paletteNum = 0xD,
.paletteNum = 13,
.baseBlock = 0x000
},
[WIN_COUNT] = DUMMY_WIN_TEMPLATE
@@ -930,7 +930,7 @@ static bool8 SetUpCopyrightScreen(void)
DmaFill32(3, 0, OAM, OAM_SIZE);
DmaFill16(3, 0, PLTT + sizeof(vu16), PLTT_SIZE - sizeof(vu16));
ResetPaletteFade();
LoadCopyrightGraphics(0 * BG_CHAR_SIZE, 7 * BG_SCREEN_SIZE, 0);
LoadCopyrightGraphics(0 * BG_CHAR_SIZE, 7 * BG_SCREEN_SIZE, BG_PLTT_ID(0));
ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
@@ -1025,15 +1025,15 @@ static void CB2_SetUpIntro(void)
DmaFill16(3, 0, VRAM, VRAM_SIZE);
DmaFill32(3, 0, OAM, OAM_SIZE);
DmaFill16(3, 0, PLTT, PLTT_SIZE);
FillPalette(RGB_BLACK, 0, 0x400);
FillPalette(RGB_BLACK, 0, PLTT_SIZE);
ResetBgsAndClearDma3BusyFlags(FALSE);
InitBgsFromTemplates(0, sBgTemplates_GameFreakScene, ARRAY_COUNT(sBgTemplates_GameFreakScene));
break;
case 1:
LoadPalette(sGameFreakBg_Pal, 0x00, sizeof(sGameFreakBg_Pal));
LoadPalette(sGameFreakBg_Pal, BG_PLTT_ID(0), sizeof(sGameFreakBg_Pal));
DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Gfx, 0, 0, 0);
DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Map, 0, 0, 1);
LoadPalette(sGameFreakLogo_Pal, 0xD0, sizeof(sGameFreakLogo_Pal));
LoadPalette(sGameFreakLogo_Pal, BG_PLTT_ID(13), sizeof(sGameFreakLogo_Pal));
break;
case 2:
if (!FreeTempTileDataBuffersIfPossible())
@@ -1113,7 +1113,7 @@ static void IntroCB_Init(struct IntroSequenceData * this)
InitWindows(sWindowTemplates);
LZ77UnCompWram(sGameFreakText_Gfx, this->gameFreakTextGfx);
LZ77UnCompWram(sGameFreakLogo_Gfx, this->gameFreakLogoGfx);
FillBgTilemapBufferRect(BG_GF_TEXT_LOGO, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(BG_GF_TEXT_LOGO, 0x000, 0, 0, 32, 32, 17);
FillWindowPixelBuffer(WIN_GF_TEXT_LOGO, PIXEL_FILL(0));
BlitBitmapToWindow(WIN_GF_TEXT_LOGO, this->gameFreakTextGfx, 0, 40, 144, 16);
PutWindowTilemap(WIN_GF_TEXT_LOGO);
@@ -1293,8 +1293,8 @@ static void IntroCB_Scene1(struct IntroSequenceData * this)
{
case 0:
SetVBlankCallback(NULL);
LoadPalette(sScene1_Grass_Pal, 16 * PALSLOT_SCENE1_GRASS, sizeof(sScene1_Grass_Pal));
LoadPalette(sScene1_Bg_Pal, 16 * PALSLOT_SCENE1_BG, sizeof(sScene1_Bg_Pal));
LoadPalette(sScene1_Grass_Pal, BG_PLTT_ID(PALSLOT_SCENE1_GRASS), sizeof(sScene1_Grass_Pal));
LoadPalette(sScene1_Bg_Pal, BG_PLTT_ID(PALSLOT_SCENE1_BG), sizeof(sScene1_Bg_Pal));
BlendPalettes((1 << PALSLOT_SCENE1_GRASS) | (1 << PALSLOT_SCENE1_BG), 16, RGB_WHITE);
InitBgsFromTemplates(0, sBgTemplates_Scene1, ARRAY_COUNT(sBgTemplates_Scene1));
DecompressAndCopyTileDataToVram(BG_SCENE1_BACKGROUND, sScene1_Bg_Gfx, 0, 0, 0);
@@ -1439,9 +1439,9 @@ static void IntroCB_Scene2(struct IntroSequenceData * this)
if (!FreeTempTileDataBuffersIfPossible())
{
SetVBlankCallback(NULL);
LoadPalette(sScene2_Bg_Pal, 0x10, sizeof(sScene2_Bg_Pal));
LoadPalette(sGengar_Pal, 0x50, sizeof(sGengar_Pal));
LoadPalette(sScene2_NidorinoClose_Pal, 0x60, sizeof(sScene2_NidorinoClose_Pal));
LoadPalette(sScene2_Bg_Pal, BG_PLTT_ID(1), sizeof(sScene2_Bg_Pal));
LoadPalette(sGengar_Pal, BG_PLTT_ID(5), sizeof(sGengar_Pal));
LoadPalette(sScene2_NidorinoClose_Pal, BG_PLTT_ID(6), sizeof(sScene2_NidorinoClose_Pal));
BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE);
DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Gfx, 0, 0, 0);
DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Map, 0, 0, 1);
@@ -1553,8 +1553,8 @@ static void IntroCB_Scene3_Entrance(struct IntroSequenceData * this)
switch (this->state)
{
case 0:
LoadPalette(sScene3_Bg_Pal, 0x10, sizeof(sScene3_Bg_Pal));
LoadPalette(sGengar_Pal, 0x50, sizeof(sGengar_Pal));
LoadPalette(sScene3_Bg_Pal, BG_PLTT_ID(1), sizeof(sScene3_Bg_Pal));
LoadPalette(sGengar_Pal, BG_PLTT_ID(5), sizeof(sGengar_Pal));
BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE);
InitBgsFromTemplates(0, sBgTemplates_Scene3, ARRAY_COUNT(sBgTemplates_Scene3));
DecompressAndCopyTileDataToVram(BG_SCENE3_BACKGROUND, sScene3_Bg_Gfx, 0, 0, 0);
@@ -1831,7 +1831,7 @@ static void IntroCB_Scene3_Fight(struct IntroSequenceData * this)
case 13:
if (++this->timer > 8)
{
CpuFill16(RGB_WHITE, gPlttBufferUnfaded + 16, 64);
CpuFill16(RGB_WHITE, &gPlttBufferUnfaded[BG_PLTT_ID(1)], 2 * PLTT_SIZE_4BPP);
BeginNormalPaletteFade(PALETTES_ALL & ~1, -2, 0, 16, RGB_BLACK);
this->state++;
}
@@ -1916,7 +1916,7 @@ static void IntroCB_ExitToTitleScreen(struct IntroSequenceData * this)
switch (this->state)
{
case 0:
FillPalette(RGB_BLACK, 0, 0x400);
FillPalette(RGB_BLACK, 0, PLTT_SIZE);
this->state++;
break;
case 1:
+36 -40
View File
@@ -110,7 +110,7 @@ static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex);
static void Task_MoveItemInPocket_HandleInput(u8 taskId);
static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex);
static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex);
static void CopyBagListBgTileRowToTilemapBuffer(u8 a0);
static void DrawItemListRow(u8 row);
static void Task_ItemContext_FieldOrBattle(u8 taskId);
static void Task_FieldItemContextMenuHandleInput(u8 taskId);
static void Task_ItemMenuAction_Use(u8 taskId);
@@ -186,20 +186,10 @@ static const u8 *const sPocketNames[] = {
gText_PokeBalls2
};
static const u16 sBagListBgTiles[][18] = {
INCBIN_U16("graphics/item_menu/bagmap_0.bin"),
INCBIN_U16("graphics/item_menu/bagmap_1.bin"),
INCBIN_U16("graphics/item_menu/bagmap_2.bin"),
INCBIN_U16("graphics/item_menu/bagmap_3.bin"),
INCBIN_U16("graphics/item_menu/bagmap_4.bin"),
INCBIN_U16("graphics/item_menu/bagmap_5.bin"),
INCBIN_U16("graphics/item_menu/bagmap_6.bin"),
INCBIN_U16("graphics/item_menu/bagmap_7.bin"),
INCBIN_U16("graphics/item_menu/bagmap_8.bin"),
INCBIN_U16("graphics/item_menu/bagmap_9.bin"),
INCBIN_U16("graphics/item_menu/bagmap_A.bin"),
INCBIN_U16("graphics/item_menu/bagmap_B.bin")
};
#define LIST_TILES_WIDTH 18
#define LIST_TILES_HEIGHT 12
static const u16 sItemListTilemap[LIST_TILES_WIDTH * LIST_TILES_HEIGHT] = INCBIN_U16("graphics/item_menu/list.bin");
static const struct MenuAction sItemMenuContextActions[] = {
[ITEMMENUACTION_USE] = {gOtherText_Use, {.void_u8 = Task_ItemMenuAction_Use}},
@@ -310,6 +300,10 @@ static const struct ScrollArrowsTemplate sPocketSwitchArrowPairTemplate = {
static const u8 sBlit_SelectButton[] = INCBIN_U8("graphics/interface/select_button.4bpp");
#define tSwitchDir data[11]
#define tSwitchCounter data[12]
#define tSwitchState data[13]
void GoToBagMenu(u8 location, u8 pocket, MainCallback bagCallback)
{
u8 i;
@@ -328,8 +322,8 @@ void GoToBagMenu(u8 location, u8 pocket, MainCallback bagCallback)
sBagMenuDisplay->itemOriginalLocation = 0xFF;
sBagMenuDisplay->itemMenuIcon = 0;
sBagMenuDisplay->inhibitItemDescriptionPrint = FALSE;
sBagMenuDisplay->pocketScrollArrowsTask = 0xFF;
sBagMenuDisplay->pocketSwitchArrowsTask = 0xFF;
sBagMenuDisplay->pocketScrollArrowsTask = TASK_NONE;
sBagMenuDisplay->pocketSwitchArrowsTask = TASK_NONE;
if (location == ITEMMENULOCATION_ITEMPC)
sBagMenuDisplay->pocketSwitchMode = 1;
else if (location == ITEMMENULOCATION_OLD_MAN)
@@ -577,9 +571,9 @@ static bool8 DoLoadBagGraphics(void)
}
break;
case 2:
LoadCompressedPalette(gBagBgPalette, 0x00, 0x60);
LoadCompressedPalette(gBagBgPalette, BG_PLTT_ID(0), 3 * PLTT_SIZE_4BPP);
if (!BagIsTutorial() && gSaveBlock2Ptr->playerGender != MALE)
LoadCompressedPalette(gBagBgPalette_FemaleOverride, 0x00, 0x20);
LoadCompressedPalette(gBagBgPalette_FemaleOverride, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
sBagMenuDisplay->data[0]++;
break;
case 3:
@@ -923,20 +917,20 @@ static void ShowBagOrBeginWin0OpenTask(void)
u16 paldata = RGB_BLACK;
u8 taskId;
LoadPalette(&paldata, 0x00, 0x02);
SetBackdropFromPalette(&paldata);
SetGpuReg(REG_OFFSET_WININ, 0);
SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR);
BlendPalettes(PALETTES_ALL, 16, RGB_BLACK);
BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK);
if (gBagMenuState.bagOpen == TRUE)
{
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 0));
}
else
{
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160));
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, DISPLAY_HEIGHT));
taskId = CreateTask(Task_AnimateWin0v, 0);
gTasks[taskId].data[0] = 192;
gTasks[taskId].data[1] = -16;
@@ -1153,9 +1147,9 @@ static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId)
static void SwitchPockets(u8 taskId, s16 direction, bool16 a2)
{
s16 *data = gTasks[taskId].data;
data[13] = 0;
data[12] = 0;
data[11] = direction;
tSwitchState = 0;
tSwitchCounter = 0;
tSwitchDir = direction;
if (!a2)
{
ClearWindowTilemap(0);
@@ -1177,35 +1171,36 @@ static void Task_AnimateSwitchPockets(u8 taskId)
s16 *data = gTasks[taskId].data;
if (!MenuHelpers_IsLinkActive() && !BagIsTutorial())
{
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket + data[11]))
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket + tSwitchDir))
{
case 1:
gBagMenuState.pocket += data[11];
gBagMenuState.pocket += tSwitchDir;
SwitchTaskToFollowupFunc(taskId);
SwitchPockets(taskId, -1, TRUE);
return;
case 2:
gBagMenuState.pocket += data[11];
gBagMenuState.pocket += tSwitchDir;
SwitchTaskToFollowupFunc(taskId);
SwitchPockets(taskId, 1, TRUE);
return;
}
}
switch (data[13])
switch (tSwitchState)
{
case 0:
if (data[12] != 0x7FFF)
// Animate the item list being revealed from the bottom row up
if (tSwitchCounter != SHRT_MAX)
{
data[12]++;
CopyBagListBgTileRowToTilemapBuffer(data[12]);
if (data[12] == 12)
data[12] = 0x7FFF;
tSwitchCounter++;
DrawItemListRow(tSwitchCounter);
if (tSwitchCounter == LIST_TILES_HEIGHT)
tSwitchCounter = SHRT_MAX;
}
if (data[12] == 0x7FFF)
data[13]++;
if (tSwitchCounter == SHRT_MAX)
tSwitchState++;
break;
case 1:
gBagMenuState.pocket += data[11];
gBagMenuState.pocket += tSwitchDir;
PrintBagPocketName();
Bag_BuildListMenuTemplate(gBagMenuState.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]);
@@ -1333,9 +1328,10 @@ static void UpdateQuantityToTossOrDeposit(s16 value, u8 ndigits)
BagPrintTextOnWindow(r6, FONT_SMALL, gStringVar4, 4, 10, 1, 0, 0, 1);
}
static void CopyBagListBgTileRowToTilemapBuffer(u8 frame)
// row of 0 is the bottom row in the list, up to LIST_TILES_HEIGHT at the top
static void DrawItemListRow(u8 row)
{
CopyToBgTilemapBufferRect(1, sBagListBgTiles[12 - frame], 11, 13 - frame, 18, 1);
CopyToBgTilemapBufferRect(1, &sItemListTilemap[(LIST_TILES_HEIGHT - row) * LIST_TILES_WIDTH], 11, 1 + LIST_TILES_HEIGHT - row, LIST_TILES_WIDTH, 1);
ScheduleBgCopyTilemapToVram(1);
}
+6 -5
View File
@@ -327,14 +327,14 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
LZDecompressWram(GetItemIconGfxPtr(itemId, ITEMICON_TILES), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.data = GetItemIconGfxPtr(itemId, ITEMICON_PAL);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
@@ -358,14 +358,14 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT
if (!TryAllocItemIconTilesBuffers())
return MAX_SPRITES;
LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer);
LZDecompressWram(GetItemIconGfxPtr(itemId, ITEMICON_TILES), sItemIconTilesBuffer);
CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded);
spriteSheet.data = sItemIconTilesBufferPadded;
spriteSheet.size = 0x200;
spriteSheet.tag = tilesTag;
LoadSpriteSheet(&spriteSheet);
spritePalette.data = GetItemIconGfxPtr(itemId, 1);
spritePalette.data = GetItemIconGfxPtr(itemId, ITEMICON_PAL);
spritePalette.tag = paletteTag;
LoadCompressedSpritePalette(&spritePalette);
@@ -410,7 +410,8 @@ void DestroyItemMenuIcon(u8 idx)
}
}
const void *GetItemIconGfxPtr(u16 itemId, u8 attrId)
// attrId is either ITEMICON_TILES or ITEMICON_PAL
const u32 *GetItemIconGfxPtr(u16 itemId, u8 attrId)
{
if (itemId > ITEMS_COUNT)
itemId = ITEM_NONE;
+53 -53
View File
@@ -130,51 +130,51 @@ static const u8 sTextColors[][3] = {
static const struct WindowTemplate sWindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 0x07,
.tilemapTop = 0x01,
.width = 0x13,
.height = 0x0c,
.paletteNum = 0x0f,
.tilemapLeft = 7,
.tilemapTop = 1,
.width = 19,
.height = 12,
.paletteNum = 15,
.baseBlock = 0x02bf
}, {
.bg = 0,
.tilemapLeft = 0x05,
.tilemapTop = 0x0e,
.width = 0x19,
.height = 0x06,
.paletteNum = 0x0d,
.tilemapLeft = 5,
.tilemapTop = 14,
.width = 25,
.height = 6,
.paletteNum = 13,
.baseBlock = 0x0229
}, {
.bg = 0,
.tilemapLeft = 0x01,
.tilemapTop = 0x01,
.width = 0x05,
.height = 0x04,
.paletteNum = 0x0f,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 5,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x0215
}, {
.bg = 0,
.tilemapLeft = 0x18,
.tilemapTop = 0x0f,
.width = 0x05,
.height = 0x04,
.paletteNum = 0x0f,
.tilemapLeft = 24,
.tilemapTop = 15,
.width = 5,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x0201
}, {
.bg = 0,
.tilemapLeft = 0x16,
.tilemapTop = 0x0d,
.width = 0x07,
.height = 0x06,
.paletteNum = 0x0f,
.tilemapLeft = 22,
.tilemapTop = 13,
.width = 7,
.height = 6,
.paletteNum = 15,
.baseBlock = 0x01d7
}, {
.bg = 0,
.tilemapLeft = 0x02,
.tilemapTop = 0x0f,
.width = 0x1a,
.height = 0x04,
.paletteNum = 0x0b,
.tilemapLeft = 2,
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 11,
.baseBlock = 0x016f
}, DUMMY_WIN_TEMPLATE
};
@@ -182,27 +182,27 @@ static const struct WindowTemplate sWindowTemplates[] = {
static const struct WindowTemplate sSubwindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x0e,
.height = 0x04,
.paletteNum = 0x0c,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 14,
.height = 4,
.paletteNum = 12,
.baseBlock = 0x0137
}, {
.bg = 0,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x10,
.height = 0x04,
.paletteNum = 0x0c,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 16,
.height = 4,
.paletteNum = 12,
.baseBlock = 0x0137
}, {
.bg = 0,
.tilemapLeft = 0x06,
.tilemapTop = 0x0f,
.width = 0x17,
.height = 0x04,
.paletteNum = 0x0c,
.tilemapLeft = 6,
.tilemapTop = 15,
.width = 23,
.height = 4,
.paletteNum = 12,
.baseBlock = 0x009b
}
};
@@ -443,7 +443,7 @@ static bool8 ItemPc_LoadGraphics(void)
}
break;
case 2:
LoadCompressedPalette(gItemPcBgPals, 0x00, 0x60);
LoadCompressedPalette(gItemPcBgPals, BG_PLTT_ID(0), 3 * PLTT_SIZE_4BPP);
sStateDataPtr->data[0]++;
break;
case 3:
@@ -1069,11 +1069,11 @@ static void ItemPc_InitWindows(void)
InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
LoadUserWindowGfx(0, 0x3C0, 0xE0);
LoadStdWindowGfx(0, 0x3A3, 0xC0);
LoadMenuMessageWindowGfx(0, 0x3AC, 0xB0);
LoadPalette(GetTextWindowPalette(2), 0xD0, 0x20);
LoadPalette(gStandardMenuPalette, 0xF0, 0x20);
LoadUserWindowGfx(0, 0x3C0, BG_PLTT_ID(14));
LoadStdWindowGfx(0, 0x3A3, BG_PLTT_ID(12));
LoadMenuMessageWindowGfx(0, 0x3AC, BG_PLTT_ID(11));
LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(13), PLTT_SIZE_4BPP);
LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
for (i = 0; i < 3; i++)
{
FillWindowPixelBuffer(i, 0x00);
@@ -1111,7 +1111,7 @@ static void ItemPc_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8
static void ItemPc_SetBorderStyleOnWindow(u8 windowId)
{
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, 0x3C0, 0x0E);
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, 0x3C0, 14);
}
static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
@@ -1119,7 +1119,7 @@ static u8 ItemPc_GetOrCreateSubwindow(u8 idx)
if (sSubmenuWindowIds[idx] == 0xFF)
{
sSubmenuWindowIds[idx] = AddWindow(&sSubwindowTemplates[idx]);
DrawStdFrameWithCustomTileAndPalette(sSubmenuWindowIds[idx], TRUE, 0x3A3, 0x0C);
DrawStdFrameWithCustomTileAndPalette(sSubmenuWindowIds[idx], TRUE, 0x3A3, 12);
}
return sSubmenuWindowIds[idx];
+25 -25
View File
@@ -258,7 +258,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 0,
.width = 6,
.height = 7,
.paletteNum = 0x0d,
.paletteNum = 13,
.baseBlock = 0x014
},
{
@@ -267,7 +267,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 0,
.width = 5,
.height = 5,
.paletteNum = 0x0d,
.paletteNum = 13,
.baseBlock = 0x03e
},
{
@@ -276,7 +276,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 0,
.width = 5,
.height = 2,
.paletteNum = 0x0d,
.paletteNum = 13,
.baseBlock = 0x057
},
{
@@ -285,7 +285,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 0,
.width = 3,
.height = 5,
.paletteNum = 0x0f,
.paletteNum = 15,
.baseBlock = 0x061
},
{
@@ -294,7 +294,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 2,
.width = 3,
.height = 3,
.paletteNum = 0x0f,
.paletteNum = 15,
.baseBlock = 0x070
},
{
@@ -303,7 +303,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 6,
.width = 15,
.height = 8,
.paletteNum = 0x0f,
.paletteNum = 15,
.baseBlock = 0x079
},
{
@@ -312,7 +312,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 1,
.width = 10,
.height = 12,
.paletteNum = 0x0f,
.paletteNum = 15,
.baseBlock = 0x0f1
},
{
@@ -321,7 +321,7 @@ static const struct WindowTemplate sWindowTemplates[9] = {
.tilemapTop = 15,
.width = 26,
.height = 4,
.paletteNum = 0x0f,
.paletteNum = 15,
.baseBlock = 0x169
}, DUMMY_WIN_TEMPLATE
};
@@ -332,7 +332,7 @@ static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = {
.tilemapTop = 8,
.width = 6,
.height = 4,
.paletteNum = 0x0f,
.paletteNum = 15,
.baseBlock = 0x1d1
};
@@ -396,11 +396,11 @@ static void MoveRelearnerLoadBgGfx(void)
FillWindowPixelBuffer(i, PIXEL_FILL(0));
}
FillWindowPixelBuffer(7, PIXEL_FILL(1));
FillBgTilemapBufferRect(0, 0x000, 0, 0, 30, 20, 0xF);
FillBgTilemapBufferRect(0, 0x000, 0, 0, 30, 20, 15);
SetBgTilemapBuffer(1, sMoveRelearner->bg1TilemapBuffer);
LoadUserWindowGfx(0, 1, 0xE0);
ListMenuLoadStdPalAt(0xD0, 1);
LoadPalette(gMoveRelearner_Pal, 0x00, 0x20);
LoadUserWindowGfx(0, 1, BG_PLTT_ID(14));
ListMenuLoadStdPalAt(BG_PLTT_ID(13), 1);
LoadPalette(gMoveRelearner_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
DecompressAndLoadBgGfxUsingHeap(1, gMoveRelearner_Gfx, 0, 0, 0);
CopyToBgTilemapBuffer(1, gMoveRelearner_Tilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
@@ -442,7 +442,7 @@ static void CB2_MoveRelearner_Resume(void)
SetVBlankCallback(VBlankCB_MoveRelearner);
MoveRelearnerLoadBgGfx();
SpawnListMenuScrollIndicatorSprites();
FillPalette(RGB_BLACK, 0, 2);
SetBackdropFromColor(RGB_BLACK);
RunTasks();
AnimateSprites();
@@ -506,7 +506,7 @@ static void MoveRelearnerStateMachine(void)
MoveRelearnerMenuHandleInput();
break;
case MENU_STATE_PRINT_TEACH_MOVE_PROMPT:
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 0xE, 0);
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 14, 0);
sMoveRelearner->state++;
break;
case MENU_STATE_TEACH_MOVE_CONFIRM :
@@ -531,7 +531,7 @@ static void MoveRelearnerStateMachine(void)
}
break;
case MENU_STATE_PRINT_GIVE_UP_PROMPT:
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 0xE, 0);
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 14, 0);
sMoveRelearner->state++;
break;
case MENU_STATE_GIVE_UP_CONFIRM:
@@ -552,7 +552,7 @@ static void MoveRelearnerStateMachine(void)
sMoveRelearner->state++;
break;
case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN:
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 0xE, 0);
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 14, 0);
sMoveRelearner->state = 18;
break;
case MENU_STATE_CONFIRM_DELETE_OLD_MOVE:
@@ -573,7 +573,7 @@ static void MoveRelearnerStateMachine(void)
sMoveRelearner->state++;
break;
case MENU_STATE_WAIT_FOR_STOP_TEACHING:
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 0xE, 0);
CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_NORMAL_COPY_2, 0, 2, 0x001, 14, 0);
sMoveRelearner->state = 26;
break;
case MENU_STATE_CONFIRM_STOP_TEACHING:
@@ -680,7 +680,7 @@ static void DrawTextBorderOnWindows6and7(void)
{
int i;
for (i = 6; i < 8; i++)
DrawTextBorderOuter(i, 0x001, 0xE);
DrawTextBorderOuter(i, 0x001, 14);
}
static void PrintTeachWhichMoveToStrVar1(bool8 onInit)
@@ -816,7 +816,7 @@ static void MoveLearnerInitListMenu(void)
static void PrintMoveInfo(u16 move)
{
u8 buffer[50];
BlitMoveInfoIcon(2, gBattleMoves[move].type + 1, 1, 4);
BlitMenuInfoIcon(2, gBattleMoves[move].type + 1, 1, 4);
if (gBattleMoves[move].power < 2)
{
@@ -844,11 +844,11 @@ static void PrintMoveInfo(u16 move)
static void LoadMoveInfoUI(void)
{
BlitMoveInfoIcon(0, 19, 1, 4);
BlitMoveInfoIcon(1, 20, 0, 4);
BlitMoveInfoIcon(1, 21, 0, 19);
BlitMoveInfoIcon(0, 22, 1, 19);
BlitMoveInfoIcon(0, 23, 1, 34);
BlitMenuInfoIcon(0, MENU_INFO_ICON_TYPE, 1, 4);
BlitMenuInfoIcon(1, MENU_INFO_ICON_POWER, 0, 4);
BlitMenuInfoIcon(1, MENU_INFO_ICON_ACCURACY, 0, 19);
BlitMenuInfoIcon(0, MENU_INFO_ICON_PP, 1, 19);
BlitMenuInfoIcon(0, MENU_INFO_ICON_EFFECT, 1, 34);
PutWindowTilemap(0);
PutWindowTilemap(1);
PutWindowTilemap(4);
+5 -5
View File
@@ -242,7 +242,7 @@ void Task_DestroySelf(u8 taskId)
void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock, u16 baseChar)
{
LoadPalette(sLinkTestFontPal, paletteNum * 16, 0x20);
LoadPalette(sLinkTestFontPal, BG_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
DmaCopy16(3, sLinkTestFontGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock) + (16 * baseChar), sizeof sLinkTestFontGfx);
gLinkTestBGInfo.screenBaseBlock = screenBaseBlock;
gLinkTestBGInfo.paletteNum = paletteNum;
@@ -266,7 +266,7 @@ void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBloc
// Unused
static void LoadLinkTestBgGfx(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charBaseBlock)
{
LoadPalette(sLinkTestFontPal, paletteNum * 16, 0x20);
LoadPalette(sLinkTestFontPal, BG_PLTT_ID(paletteNum), PLTT_SIZE_4BPP);
DmaCopy16(3, sLinkTestFontGfx, (u16 *)BG_CHAR_ADDR(charBaseBlock), sizeof sLinkTestFontGfx);
gLinkTestBGInfo.screenBaseBlock = screenBaseBlock;
gLinkTestBGInfo.paletteNum = paletteNum;
@@ -1382,7 +1382,7 @@ void CB2_LinkError(void)
ResetSpriteData();
FreeAllSpritePalettes();
ResetPaletteFadeControl();
FillPalette(RGB_BLACK, 0, 2);
SetBackdropFromColor(RGB_BLACK);
ResetTasks();
ScanlineEffect_Stop();
if (gWirelessCommType)
@@ -1407,7 +1407,7 @@ void CB2_LinkError(void)
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
SetGpuReg(REG_OFFSET_BG1VOFS, 0);
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON);
LoadPalette(gStandardMenuPalette, 0xf0, 0x20);
LoadPalette(gStandardMenuPalette, BG_PLTT_ID(15), PLTT_SIZE_4BPP);
gSoftResetDisabled = FALSE;
CreateTask(Task_DestroySelf, 0);
StopMapMusic();
@@ -1425,7 +1425,7 @@ static void ErrorMsg_MoveCloserToPartner(void)
DecompressAndLoadBgGfxUsingHeap(1, sWirelessLinkDisplayGfx, FALSE, 0, 0);
CopyToBgTilemapBuffer(1, sWirelessLinkDisplayTilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
LoadPalette(sWirelessLinkDisplayPal, 0, 0x20);
LoadPalette(sWirelessLinkDisplayPal, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
FillWindowPixelBuffer(2, PIXEL_FILL(0));
AddTextPrinterParameterized3(0, FONT_NORMAL_COPY_2, 2, 5, sLinkErrorTextColor, 0, gText_CommErrorEllipsis);
+35 -35
View File
@@ -49,39 +49,39 @@ static void ListMenuDrawCursor(struct ListMenu *list);
static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 onInit);
static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind);
const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] =
{
{ 12, 12, 0x00 }, // Unused
{ 32, 12, 0x20 }, // Normal icon
{ 32, 12, 0x64 }, // Fight icon
{ 32, 12, 0x60 }, // Flying icon
{ 32, 12, 0x80 }, // Poison icon
{ 32, 12, 0x48 }, // Ground icon
{ 32, 12, 0x44 }, // Rock icon
{ 32, 12, 0x6C }, // Bug icon
{ 32, 12, 0x68 }, // Ghost icon
{ 32, 12, 0x88 }, // Steel icon
{ 32, 12, 0xA4 }, // ??? (Mystery) icon
{ 32, 12, 0x24 }, // Fire icon
{ 32, 12, 0x28 }, // Water icon
{ 32, 12, 0x2C }, // Grass icon
{ 32, 12, 0x40 }, // Electric icon
{ 32, 12, 0x84 }, // Psychic icon
{ 32, 12, 0x4C }, // Ice icon
{ 32, 12, 0xA0 }, // Dragon icon
{ 32, 12, 0x8C }, // Dark icon
{ 40, 12, 0xA8 }, // -Type- icon
{ 40, 12, 0xC0 }, // -Power- icon
{ 40, 12, 0xC8 }, // -Accuracy- icon
{ 40, 12, 0xE0 }, // -PP- icon
{ 40, 12, 0xE8 }, // -Effect- icon
static const struct MoveMenuInfoIcon sMenuInfoIcons[] =
{ // { width, height, offset }
[MENU_INFO_ICON_CAUGHT] = { 12, 12, 0x00 },
[TYPE_NORMAL + 1] = { 32, 12, 0x20 },
[TYPE_FIGHTING + 1] = { 32, 12, 0x64 },
[TYPE_FLYING + 1] = { 32, 12, 0x60 },
[TYPE_POISON + 1] = { 32, 12, 0x80 },
[TYPE_GROUND + 1] = { 32, 12, 0x48 },
[TYPE_ROCK + 1] = { 32, 12, 0x44 },
[TYPE_BUG + 1] = { 32, 12, 0x6C },
[TYPE_GHOST + 1] = { 32, 12, 0x68 },
[TYPE_STEEL + 1] = { 32, 12, 0x88 },
[TYPE_MYSTERY + 1] = { 32, 12, 0xA4 },
[TYPE_FIRE + 1] = { 32, 12, 0x24 },
[TYPE_WATER + 1] = { 32, 12, 0x28 },
[TYPE_GRASS + 1] = { 32, 12, 0x2C },
[TYPE_ELECTRIC + 1] = { 32, 12, 0x40 },
[TYPE_PSYCHIC + 1] = { 32, 12, 0x84 },
[TYPE_ICE + 1] = { 32, 12, 0x4C },
[TYPE_DRAGON + 1] = { 32, 12, 0xA0 },
[TYPE_DARK + 1] = { 32, 12, 0x8C },
[MENU_INFO_ICON_TYPE] = { 40, 12, 0xA8 },
[MENU_INFO_ICON_POWER] = { 40, 12, 0xC0 },
[MENU_INFO_ICON_ACCURACY] = { 40, 12, 0xC8 },
[MENU_INFO_ICON_PP] = { 40, 12, 0xE0 },
[MENU_INFO_ICON_EFFECT] = { 40, 12, 0xE8 },
};
static void ListMenuDummyTask(u8 taskId)
{
}
u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palOffset)
{
switch (sMysteryGiftLinkMenu.state)
{
@@ -91,9 +91,9 @@ u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str
switch (arg2)
{
case 2:
LoadUserWindowGfx(sMysteryGiftLinkMenu.windowId, tileNum, palNum);
LoadUserWindowGfx(sMysteryGiftLinkMenu.windowId, tileNum, palOffset);
case 1:
DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16);
DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palOffset / 16);
break;
}
gMultiuseListMenuTemplate = *listMenuTemplate;
@@ -727,7 +727,7 @@ void ListMenuSetTemplateField(u8 taskId, u8 field, s32 value)
void ListMenu_LoadMonIconPalette(u8 palOffset, u16 speciesId)
{
LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, 0x20);
LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, PLTT_SIZE_4BPP);
}
void ListMenu_DrawMonIconGraphics(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
@@ -743,16 +743,16 @@ void ListMenuLoadStdPalAt(u8 palOffset, u8 palId)
{
case 0:
default:
palette = gFireRedMenuElements1_Pal;
palette = gMenuInfoElements1_Pal;
break;
case 1:
palette = gFireRedMenuElements2_Pal;
palette = gMenuInfoElements2_Pal;
break;
}
LoadPalette(palette, palOffset, 0x20);
LoadPalette(palette, palOffset, PLTT_SIZE_4BPP);
}
void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y)
void BlitMenuInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y)
{
BlitBitmapRectToWindow(windowId, gFireRedMenuElements_Gfx + gMoveMenuInfoIcons[iconId].offset * 32, 0, 0, 128, 128, x, y, gMoveMenuInfoIcons[iconId].width, gMoveMenuInfoIcons[iconId].height);
BlitBitmapRectToWindow(windowId, &gMenuInfoElements_Gfx[sMenuInfoIcons[iconId].offset * TILE_SIZE_4BPP], 0, 0, 128, 128, x, y, sMenuInfoIcons[iconId].width, sMenuInfoIcons[iconId].height);
}
+11 -10
View File
@@ -560,16 +560,17 @@ static bool8 DoInitMailView(void)
CopyBgTilemapBufferToVram(2);
break;
case 12:
LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20);
gPlttBufferUnfaded[15 * 16 + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0];
gPlttBufferFaded[15 * 16 + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0];
gPlttBufferUnfaded[15 * 16 + 11] = sGfxHeaders[sMailViewResources->mailType].textpals[1];
gPlttBufferFaded[15 * 16 + 11] = sGfxHeaders[sMailViewResources->mailType].textpals[1];
LoadPalette(sGfxHeaders[sMailViewResources->mailType].pal, 0x00, 0x20);
gPlttBufferUnfaded[0 * 16 + 10] = sGenderPals[gSaveBlock2Ptr->playerGender][0];
gPlttBufferFaded[0 * 16 + 10] = sGenderPals[gSaveBlock2Ptr->playerGender][0];
gPlttBufferUnfaded[0 * 16 + 11] = sGenderPals[gSaveBlock2Ptr->playerGender][1];
gPlttBufferFaded[0 * 16 + 11] = sGenderPals[gSaveBlock2Ptr->playerGender][1];
LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
gPlttBufferUnfaded[BG_PLTT_ID(15) + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0];
gPlttBufferFaded[BG_PLTT_ID(15) + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0];
gPlttBufferUnfaded[BG_PLTT_ID(15) + 11] = sGfxHeaders[sMailViewResources->mailType].textpals[1];
gPlttBufferFaded[BG_PLTT_ID(15) + 11] = sGfxHeaders[sMailViewResources->mailType].textpals[1];
LoadPalette(sGfxHeaders[sMailViewResources->mailType].pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
gPlttBufferUnfaded[BG_PLTT_ID(0) + 10] = sGenderPals[gSaveBlock2Ptr->playerGender][0];
gPlttBufferFaded[BG_PLTT_ID(0) + 10] = sGenderPals[gSaveBlock2Ptr->playerGender][0];
gPlttBufferUnfaded[BG_PLTT_ID(0) + 11] = sGenderPals[gSaveBlock2Ptr->playerGender][1];
gPlttBufferFaded[BG_PLTT_ID(0) + 11] = sGenderPals[gSaveBlock2Ptr->playerGender][1];
break;
case 13:
if (sMailViewResources->messageExists)
+5 -5
View File
@@ -196,8 +196,8 @@ static bool32 MainMenuGpuInit(u8 a0)
ChangeBgY(2, 0, 0);
InitWindows(sWindowTemplate);
DeactivateAllTextPrinters();
LoadPalette(sBg_Pal, 0x00, 0x20);
LoadPalette(sTextbox_Pal, 0xF0, 0x20);
LoadPalette(sBg_Pal, BG_PLTT_ID(0), sizeof(sBg_Pal));
LoadPalette(sTextbox_Pal, BG_PLTT_ID(15), sizeof(sTextbox_Pal));
SetGpuReg(REG_OFFSET_WIN0H, 0);
SetGpuReg(REG_OFFSET_WIN0V, 0);
SetGpuReg(REG_OFFSET_WININ, 0);
@@ -343,7 +343,7 @@ static void Task_PrintMainMenuText(u8 taskId)
pal = RGB(4, 16, 31);
else
pal = RGB(31, 3, 21);
LoadPalette(&pal, 0xF1, 2);
LoadPalette(&pal, BG_PLTT_ID(15) + 1, PLTT_SIZEOF(1));
switch (gTasks[taskId].tMenuType)
{
case MAIN_MENU_NEWGAME:
@@ -678,13 +678,13 @@ static void PrintBadgeCount(void)
static void LoadUserFrameToBg(u8 bgId)
{
LoadBgTiles(bgId, GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1);
LoadPalette(GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20);
LoadPalette(GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType)->palette, BG_PLTT_ID(2), PLTT_SIZE_4BPP);
MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]);
}
static void SetStdFrame0OnBg(u8 bgId)
{
LoadStdWindowGfx(MAIN_MENU_WINDOW_NEWGAME_ONLY, 0x1B1, 0x20);
LoadStdWindowGfx(MAIN_MENU_WINDOW_NEWGAME_ONLY, 0x1B1, BG_PLTT_ID(2));
MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]);
}
+18 -18
View File
@@ -7,6 +7,8 @@
#include "region_map.h"
#include "strings.h"
#define FLOOR_ROOFTOP 127
static void Task_MapNamePopup(u8 taskId);
static u16 MapNamePopupCreateWindow(bool32 palIntoFadedBuffer);
static void MapNamePopupPrintMapNameOnWindow(u16 windowId);
@@ -28,7 +30,7 @@ void ShowMapNamePopup(bool32 palIntoFadedBuffer)
if (FlagGet(FLAG_DONT_SHOW_MAP_NAME_POPUP) != TRUE && !QL_IS_PLAYBACK_STATE)
{
taskId = FindTaskIdByFunc(Task_MapNamePopup);
if (taskId == 0xFF)
if (taskId == TASK_NONE)
{
taskId = CreateTask(Task_MapNamePopup, 90);
ChangeBgX(0, 0x0000, 0);
@@ -129,7 +131,7 @@ void DismissMapNamePopup(void)
u8 taskId;
s16 *data;
taskId = FindTaskIdByFunc(Task_MapNamePopup);
if (taskId != 0xFF)
if (taskId != TASK_NONE)
{
data = gTasks[taskId].data;
if (tState < 6)
@@ -139,9 +141,11 @@ void DismissMapNamePopup(void)
bool32 IsMapNamePopupTaskActive(void)
{
return FindTaskIdByFunc(Task_MapNamePopup) != 0xFF ? TRUE : FALSE;
return FindTaskIdByFunc(Task_MapNamePopup) != TASK_NONE ? TRUE : FALSE;
}
#define WIN_PAL_NUM 13
static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer)
{
struct WindowTemplate windowTemplate = {
@@ -150,36 +154,32 @@ static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer)
.tilemapTop = 29,
.width = 14,
.height = 2,
.paletteNum = 0xD,
.paletteNum = WIN_PAL_NUM,
.baseBlock = 0x001
};
u16 windowId;
u16 r6 = 0x01D;
u16 tileNum = 0x01D;
if (gMapHeader.floorNum != 0)
{
if (gMapHeader.floorNum != 0x7F)
if (gMapHeader.floorNum != FLOOR_ROOFTOP)
{
windowTemplate.width += 5;
r6 = 0x027;
tileNum = 0x027;
}
else
{
// ROOFTOP
windowTemplate.width += 8;
r6 = 0x02D;
tileNum = 0x02D;
}
}
windowId = AddWindow(&windowTemplate);
if (palintoFadedBuffer)
{
LoadPalette(GetTextWindowPalette(3), 0xd0, 0x20);
}
LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(WIN_PAL_NUM), PLTT_SIZE_4BPP);
else
{
CpuCopy16(GetTextWindowPalette(3), &gPlttBufferUnfaded[0xd0], 0x20);
}
LoadStdWindowTiles(windowId, r6);
DrawTextBorderOuter(windowId, r6, 0xD);
CpuCopy16(GetTextWindowPalette(3), &gPlttBufferUnfaded[BG_PLTT_ID(WIN_PAL_NUM)], PLTT_SIZE_4BPP);
LoadStdWindowTiles(windowId, tileNum);
DrawTextBorderOuter(windowId, tileNum, WIN_PAL_NUM);
PutWindowTilemap(windowId);
MapNamePopupPrintMapNameOnWindow(windowId);
CopyWindowToVram(windowId, COPYWIN_FULL);
@@ -195,7 +195,7 @@ static void MapNamePopupPrintMapNameOnWindow(u16 windowId)
if (gMapHeader.floorNum != 0)
{
ptr = MapNamePopupAppendFloorNum(ptr, gMapHeader.floorNum);
maxWidth = gMapHeader.floorNum != 0x7F ? 152 : 176;
maxWidth = gMapHeader.floorNum != FLOOR_ROOFTOP ? 152 : 176;
}
xpos = (maxWidth - GetStringWidth(FONT_NORMAL, mapName, -1)) / 2;
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
@@ -207,7 +207,7 @@ static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 floorNum)
if (floorNum == 0)
return dest;
*dest++ = CHAR_SPACE;
if (floorNum == 0x7F)
if (floorNum == FLOOR_ROOFTOP)
return StringCopy(dest, gText_Rooftop2);
if (floorNum < 0)
{
+1 -1
View File
@@ -386,7 +386,7 @@ void MapPreview_LoadGfx(u8 mapsec)
if (idx != MPS_COUNT)
{
ResetTempTileDataBuffers();
LoadPalette(sMapPreviewScreenData[idx].palptr, 0xD0, 0x60);
LoadPalette(sMapPreviewScreenData[idx].palptr, BG_PLTT_ID(13), 3 * PLTT_SIZE_4BPP);
DecompressAndCopyTileDataToVram(0, sMapPreviewScreenData[idx].tilesptr, 0, 0, 0);
if (GetBgTilemapBuffer(0) == NULL)
{
+3 -3
View File
@@ -177,10 +177,10 @@ u8 CreateTopBarWindowLoadPalette(u8 bg, u8 width, u8 yPos, u8 palette, u16 baseT
window.baseBlock = baseTile;
sTopBarWindowId = AddWindow(&window);
if (palette > 15)
palette = 15 * 16;
palette = BG_PLTT_ID(15);
else
palette *= 16;
LoadPalette(GetTextWindowPalette(2), palette, 0x20);
palette = BG_PLTT_ID(palette);
LoadPalette(GetTextWindowPalette(2), palette, PLTT_SIZE_4BPP);
return sTopBarWindowId;
}
+3 -3
View File
@@ -333,7 +333,7 @@ u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16
LoadCompressedSpriteSheet(&spriteSheet);
if (arrowInfo->palTag == TAG_NONE)
{
LoadPalette(sRedArrowPal, (16 * arrowInfo->palNum) + 0x100, 0x20);
LoadPalette(sRedArrowPal, OBJ_PLTT_ID(arrowInfo->palNum), sizeof(sRedArrowPal));
}
else
{
@@ -539,7 +539,7 @@ u8 ListMenuAddRedOutlineCursorObject(const struct CursorStruct *cursor)
LoadCompressedSpriteSheet(&spriteSheet);
if (cursor->palTag == TAG_NONE)
{
LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20);
LoadPalette(sRedArrowPal, OBJ_PLTT_ID(cursor->palNum), sizeof(sRedArrowPal));
}
else
{
@@ -612,7 +612,7 @@ static u8 ListMenuAddRedArrowCursorObject(const struct CursorStruct *cursor)
LoadCompressedSpriteSheet(&spriteSheet);
if (cursor->palTag == TAG_NONE)
{
LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20);
LoadPalette(sRedArrowPal, OBJ_PLTT_ID(cursor->palNum), sizeof(sRedArrowPal));
}
else
{
+3 -3
View File
@@ -104,9 +104,9 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed)
AddTextPrinterParameterized(windowId, FONT_SMALL, gStringVar4, x, y, speed, NULL);
}
void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount)
void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 paletteNum, int amount)
{
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, pallete);
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, paletteNum);
AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_TrainerCardMoney, 0, 0, 0xFF, 0);
PrintMoneyAmountInMoneyBox(windowId, amount, 0);
}
@@ -124,7 +124,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y)
sMoneyBoxWindowId = AddWindow(&template);
FillWindowPixelBuffer(sMoneyBoxWindowId, 0);
PutWindowTilemap(sMoneyBoxWindowId);
LoadStdWindowGfx(sMoneyBoxWindowId, 0x21D, 0xD0);
LoadStdWindowGfx(sMoneyBoxWindowId, 0x21D, BG_PLTT_ID(13));
PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x21D, 13, amount);
}
+87 -87
View File
@@ -87,110 +87,110 @@ static const struct BgTemplate sBGTemplates[] = {
static const struct WindowTemplate sMainWindows[] = {
{
.bg = 0x00,
.tilemapLeft = 0x00,
.tilemapTop = 0x00,
.width = 0x1e,
.height = 0x02,
.paletteNum = 0x0f,
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 0,
.width = 30,
.height = 2,
.paletteNum = 15,
.baseBlock = 0x0013
}, {
.bg = 0x00,
.tilemapLeft = 0x01,
.tilemapTop = 0x0f,
.width = 0x1c,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 15,
.width = 28,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x004f
}, {
.bg = 0x00,
.tilemapLeft = 0x00,
.tilemapTop = 0x0f,
.width = 0x1e,
.height = 0x05,
.paletteNum = 0x0d,
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 15,
.width = 30,
.height = 5,
.paletteNum = 13,
.baseBlock = 0x004f
},
DUMMY_WIN_TEMPLATE
};
static const struct WindowTemplate sWindowTemplate_YesNoMsg_Wide = {
.bg = 0x00,
.tilemapLeft = 0x01,
.tilemapTop = 0x0f,
.width = 0x1c,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 15,
.width = 28,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x00e5
};
static const struct WindowTemplate sWindowTemplate_YesNoMsg = {
.bg = 0x00,
.tilemapLeft = 0x01,
.tilemapTop = 0x0f,
.width = 0x14,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 15,
.width = 20,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x00e5
};
static const struct WindowTemplate sWindowTemplate_GiftSelect = {
.bg = 0x00,
.tilemapLeft = 0x01,
.tilemapTop = 0x0f,
.width = 0x13,
.height = 0x04,
.paletteNum = 0x0f,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 15,
.width = 19,
.height = 4,
.paletteNum = 15,
.baseBlock = 0x00e5
};
static const struct WindowTemplate sWindowTemplate_ThreeOptions = {
.bg = 0x00,
.tilemapLeft = 0x08,
.tilemapTop = 0x05,
.width = 0x0e,
.height = 0x05,
.paletteNum = 0x0e,
.bg = 0,
.tilemapLeft = 8,
.tilemapTop = 5,
.width = 14,
.height = 5,
.paletteNum = 14,
.baseBlock = 0x0155
};
static const struct WindowTemplate sWindowTemplate_YesNoBox = {
.bg = 0x00,
.tilemapLeft = 0x17,
.tilemapTop = 0x0f,
.width = 0x06,
.height = 0x04,
.paletteNum = 0x0e,
.bg = 0,
.tilemapLeft = 23,
.tilemapTop = 15,
.width = 6,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x0155
};
static const struct WindowTemplate sWindowTemplate_GiftSelect_3Options = {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0c,
.width = 0x07,
.height = 0x07,
.paletteNum = 0x0e,
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 12,
.width = 7,
.height = 7,
.paletteNum = 14,
.baseBlock = 0x0155
};
static const struct WindowTemplate sWindowTemplate_GiftSelect_2Options = {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0e,
.width = 0x07,
.height = 0x05,
.paletteNum = 0x0e,
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 14,
.width = 7,
.height = 5,
.paletteNum = 14,
.baseBlock = 0x0155
};
static const struct WindowTemplate sWindowTemplate_GiftSelect_1Option = {
.bg = 0x00,
.tilemapLeft = 0x16,
.tilemapTop = 0x0f,
.width = 0x07,
.height = 0x04,
.paletteNum = 0x0e,
.bg = 0,
.tilemapLeft = 22,
.tilemapTop = 15,
.width = 7,
.height = 4,
.paletteNum = 14,
.baseBlock = 0x0155
};
@@ -392,8 +392,8 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 isEReader)
SetBgTilemapBuffer(1, Alloc(BG_SCREEN_SIZE));
SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE));
LoadUserWindowGfx2(0, 10, 0xE0);
LoadStdWindowGfxOnBg(0, 1, 0xF0);
LoadUserWindowGfx2(0, 10, BG_PLTT_ID(14));
LoadStdWindowGfxOnBg(0, 1, BG_PLTT_ID(15));
DecompressAndLoadBgGfxUsingHeap(3, sTextboxBorder_Gfx, 0x100, 0, 0);
InitWindows(sMainWindows);
DeactivateAllTextPrinters();
@@ -404,11 +404,11 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 isEReader)
gMain.state++;
break;
case 1:
LoadPalette(sTextboxBorder_Pal, 0, 0x20);
LoadPalette(GetTextWindowPalette(2), 0xd0, 0x20);
FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11);
LoadPalette(sTextboxBorder_Pal, BG_PLTT_ID(0), sizeof(sTextboxBorder_Pal));
LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(13), PLTT_SIZE_4BPP);
FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 17);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 17);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 17);
MG_DrawCheckerboardPattern();
PrintMysteryGiftOrEReaderTopMenu(isEReader, FALSE);
gMain.state++;
@@ -486,23 +486,23 @@ void PrintMysteryGiftOrEReaderTopMenu(bool8 isEReader, bool32 useCancel)
void MG_DrawTextBorder(u8 windowId)
{
DrawTextBorderOuter(windowId, 0x01, 0xF);
DrawTextBorderOuter(windowId, 0x01, 15);
}
void MG_DrawCheckerboardPattern(void)
{
s32 i = 0, j;
FillBgTilemapBufferRect(3, 0x003, 0, 0, 32, 2, 0x11);
FillBgTilemapBufferRect(3, 0x003, 0, 0, 32, 2, 17);
for (i = 0; i < 18; i++)
{
for (j = 0; j < 32; j++)
{
if ((i & 1) != (j & 1))
FillBgTilemapBufferRect(3, 1, j, i + 2, 1, 1, 0x11);
FillBgTilemapBufferRect(3, 1, j, i + 2, 1, 1, 17);
else
FillBgTilemapBufferRect(3, 2, j, i + 2, 1, 1, 0x11);
FillBgTilemapBufferRect(3, 2, j, i + 2, 1, 1, 17);
}
}
}
@@ -512,10 +512,10 @@ void ClearScreenInBg0(bool32 ignoreTopTwoRows)
switch (ignoreTopTwoRows)
{
case 0:
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 17);
break;
case 1:
FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 0x11);
FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 17);
break;
}
CopyBgTilemapBufferToVram(0);
@@ -526,7 +526,7 @@ void AddTextPrinterToWindow1(const u8 *str)
StringExpandPlaceholders(gStringVar4, str);
FillWindowPixelBuffer(1, 0x11);
AddTextPrinterParameterized4(1, FONT_NORMAL, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(1, 0x001, 0xF);
DrawTextBorderOuter(1, 0x001, 15);
PutWindowTilemap(1);
CopyWindowToVram(1, COPYWIN_FULL);
}
@@ -637,7 +637,7 @@ static u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whi
finalWidth = (((width + 9) / 8) + 2) & ~1;
windowTemplate.width = finalWidth;
windowTemplate.tilemapLeft = (30 - finalWidth) / 2;
response = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, 0xE0);
response = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, BG_PLTT_ID(14));
if (response != LIST_NOTHING_CHOSEN)
{
ClearWindowTilemap(2);
@@ -662,7 +662,7 @@ s8 DoMysteryGiftYesNo(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, c
*windowId = AddWindow(&sWindowTemplate_YesNoMsg);
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, FONT_NORMAL, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
DrawTextBorderOuter(*windowId, 0x001, 15);
CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId);
(*textState)++;
@@ -719,7 +719,7 @@ static s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cann
*windowId = AddWindow(&sWindowTemplate_GiftSelect);
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParameterized4(*windowId, FONT_NORMAL, 0, 2, 0, 2, sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
DrawTextBorderOuter(*windowId, 0x001, 15);
CopyWindowToVram(*windowId, COPYWIN_GFX);
PutWindowTilemap(*windowId);
(*textState)++;
@@ -729,16 +729,16 @@ static s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cann
if (cannotSend)
{
if (!cannotToss)
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_2Options, &sListMenu_ReceiveToss, 1, 0x00A, 0xE0);
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_2Options, &sListMenu_ReceiveToss, 1, 0x00A, BG_PLTT_ID(14));
else
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_1Option, &sListMenu_Receive, 1, 0x00A, 0xE0);
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_1Option, &sListMenu_Receive, 1, 0x00A, BG_PLTT_ID(14));
}
else
{
if (!cannotToss)
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_3Options, &sListMenu_ReceiveSendToss, 1, 0x00A, 0xE0);
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_3Options, &sListMenu_ReceiveSendToss, 1, 0x00A, BG_PLTT_ID(14));
else
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_2Options, &sListMenu_ReceiveSend, 1, 0x00A, 0xE0);
input = DoMysteryGiftListMenu(&sWindowTemplate_GiftSelect_2Options, &sListMenu_ReceiveSend, 1, 0x00A, BG_PLTT_ID(14));
}
if (input != LIST_NOTHING_CHOSEN)
{
+1 -1
View File
@@ -215,7 +215,7 @@ s32 WonderCard_Enter(void)
if (FreeTempTileDataBuffersIfPossible())
return 0;
gPaletteFade.bufferTransferDisabled = TRUE;
LoadPalette(sWonderCardData->gfx->pal, 0x10, 0x20);
LoadPalette(sWonderCardData->gfx->pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP);
LZ77UnCompWram(sWonderCardData->gfx->map, sWonderCardData->bgTilemapBuffer);
CopyRectToBgTilemapBufferRect(2, sWonderCardData->bgTilemapBuffer, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0);
CopyBgTilemapBufferToVram(2);
+1 -1
View File
@@ -171,7 +171,7 @@ s32 WonderNews_Enter(void)
if (FreeTempTileDataBuffersIfPossible())
return 0;
gPaletteFade.bufferTransferDisabled = TRUE;
LoadPalette(sWonderNewsData->gfx->pal, 0x10, 0x20);
LoadPalette(sWonderNewsData->gfx->pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP);
LZ77UnCompWram(sWonderNewsData->gfx->map, sWonderNewsData->bgTilemapBuffer);
CopyRectToBgTilemapBufferRect(1, sWonderNewsData->bgTilemapBuffer, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0);
CopyRectToBgTilemapBufferRect(3, sWonderNewsData->bgTilemapBuffer, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0);
+8 -8
View File
@@ -978,10 +978,10 @@ static u16 GetButtonPalOffset(u8 button)
{
const u16 palOffsets[BUTTON_COUNT + 1] =
{
[BUTTON_PAGE] = IndexOfSpritePaletteTag(PALTAG_PAGE_SWAP) * 16 + 0x10E,
[BUTTON_BACK] = IndexOfSpritePaletteTag(PALTAG_BACK_BUTTON) * 16 + 0x10E,
[BUTTON_OK] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x10E,
[BUTTON_COUNT] = IndexOfSpritePaletteTag(PALTAG_OK_BUTTON) * 16 + 0x101,
[BUTTON_PAGE] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_PAGE_SWAP)) + 14,
[BUTTON_BACK] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_BACK_BUTTON)) + 14,
[BUTTON_OK] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_OK_BUTTON)) + 14,
[BUTTON_COUNT] = OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_OK_BUTTON)) + 1,
};
return palOffsets[button];
@@ -1060,7 +1060,7 @@ static void SpriteCB_Cursor(struct Sprite *sprite)
{
s8 gb = sprite->sColor;
s8 r = sprite->sColor >> 1;
u16 index = IndexOfSpritePaletteTag(PALTAG_CURSOR) * 16 + 0x0101;
u16 index = OBJ_PLTT_ID(IndexOfSpritePaletteTag(PALTAG_CURSOR)) + 1;
MultiplyInvertedPaletteRGBComponents(index, r, gb, gb);
}
@@ -1872,9 +1872,9 @@ static void CreateHelperTasks(void)
static void LoadPalettes(void)
{
LoadPalette(gNamingScreenMenu_Pal, 0, sizeof(gNamingScreenMenu_Pal));
LoadPalette(gNamingScreenKeyboard_Pal, 0xA0, 0x20);
LoadPalette(GetTextWindowPalette(2), 0xB0, 0x20);
LoadPalette(gNamingScreenMenu_Pal, BG_PLTT_ID(0), sizeof(gNamingScreenMenu_Pal));
LoadPalette(gNamingScreenKeyboard_Pal, BG_PLTT_ID(10), PLTT_SIZE_4BPP);
LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(11), PLTT_SIZE_4BPP);
}
static void DecompressToBgTilemapBuffer(u8 bg, const u32 *src)
+10 -10
View File
@@ -457,9 +457,9 @@ void LoadStdWindowFrameGfx(void)
else
{
Menu_LoadStdPal();
LoadMenuMessageWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
LoadMenuMessageWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(DLG_WINDOW_PALETTE_NUM));
}
LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10);
LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(STD_WINDOW_PALETTE_NUM));
}
void DrawDialogueFrame(u8 windowId, bool8 copyToVram)
@@ -591,7 +591,7 @@ static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilem
void EraseFieldMessageBox(bool8 copyToVram)
{
FillBgTilemapBufferRect(0, 0, 0, 0, 0x20, 0x20, 0x11);
FillBgTilemapBufferRect(0, 0, 0, 0, 0x20, 0x20, 17);
if (copyToVram == TRUE)
CopyBgTilemapBufferToVram(0);
}
@@ -610,19 +610,19 @@ void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram)
}
else
{
LoadMenuMessageWindowGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
LoadMenuMessageWindowGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(DLG_WINDOW_PALETTE_NUM));
}
DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM);
}
void Menu_LoadStdPal(void)
{
LoadPalette(gStandardMenuPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14);
LoadPalette(gStandardMenuPalette, BG_PLTT_ID(STD_WINDOW_PALETTE_NUM), PLTT_SIZEOF(10));
}
void Menu_LoadStdPalAt(u16 offset)
{
LoadPalette(gStandardMenuPalette, offset, 0x14);
LoadPalette(gStandardMenuPalette, offset, PLTT_SIZEOF(10));
}
// Unused
@@ -633,7 +633,7 @@ static const u16 *GetStdMenuPalette(void)
static u16 GetStdPalColor(u8 colorNum)
{
if (colorNum > 0xF)
if (colorNum > 15)
colorNum = 0;
return gStandardMenuPalette[colorNum];
}
@@ -700,7 +700,7 @@ u16 GetStdWindowBaseTileNum(void)
void DrawHelpMessageWindowWithText(const u8 * text)
{
LoadHelpMessageWindowGfx(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
LoadHelpMessageWindowGfx(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(DLG_WINDOW_PALETTE_NUM));
PrintTextOnHelpMessageWindow(text, 2);
}
@@ -712,8 +712,8 @@ void DestroyHelpMessageWindow_(void)
void LoadSignpostWindowFrameGfx(void)
{
Menu_LoadStdPal();
LoadSignpostWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM);
LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, 0x10 * STD_WINDOW_PALETTE_NUM);
LoadSignpostWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(DLG_WINDOW_PALETTE_NUM));
LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, BG_PLTT_ID(STD_WINDOW_PALETTE_NUM));
}
void SetDefaultFontsPointer(void)
+24 -16
View File
@@ -17,6 +17,8 @@
#include "data.h"
#include "constants/songs.h"
#define INTRO_SPECIES SPECIES_NIDORAN_F
enum
{
WIN_INTRO_TEXTBOX,
@@ -751,9 +753,9 @@ static void Task_NewGameScene(u8 taskId)
gPaletteFade.bufferTransferDisabled = TRUE;
InitStandardTextBoxWindows();
InitTextBoxGfxAndPrinters();
Menu_LoadStdPalAt(0xD0);
LoadPalette(sOakSpeech_Background_Pals, 0, 0x80);
LoadPalette(GetTextWindowPalette(2) + 15, 0, 2);
Menu_LoadStdPalAt(BG_PLTT_ID(13));
LoadPalette(sOakSpeech_Background_Pals, BG_PLTT_ID(0), sizeof(sOakSpeech_Background_Pals));
LoadPalette(GetTextWindowPalette(2) + 15, BG_PLTT_ID(0), PLTT_SIZEOF(1));
break;
case 5:
sOakSpeechResources->textSpeed = GetTextSpeedSetting();
@@ -919,7 +921,7 @@ static void Task_ControlsGuide_Clear(u8 taskId)
CopyBgTilemapBufferToVram(1);
DestroyTextCursorSprite(gTasks[taskId].tTextCursorSpriteId);
sOakSpeechResources->windowIds[0] = RGB_BLACK;
LoadPalette(sOakSpeechResources->windowIds, 0, 2);
LoadPalette(sOakSpeechResources->windowIds, BG_PLTT_ID(0), PLTT_SIZEOF(1));
gTasks[taskId].tTimer = 32;
gTasks[taskId].func = Task_PikachuIntro_LoadPage1;
}
@@ -1191,7 +1193,7 @@ static void Task_OakSpeech_IsInhabitedFarAndWide(u8 taskId)
if (gTasks[taskId].tTimer == 32)
{
OakSpeechPrintMessage(gOakSpeech_Text_IsInhabitedFarAndWide, sOakSpeechResources->textSpeed);
PlayCry_Normal(SPECIES_NIDORAN_F, 0);
PlayCry_Normal(INTRO_SPECIES, 0);
}
}
}
@@ -1737,7 +1739,7 @@ static void Task_OakSpeech_FadePlayerPicWhite(u8 taskId)
{
if (tUnderflowingTimer <= 0 && tSecondaryTimer != 0)
tSecondaryTimer--;
BlendPalette(0x40, 0x20, tBlendCoefficient, RGB_WHITE);
BlendPalette(BG_PLTT_ID(4), 0x20, tBlendCoefficient, RGB_WHITE);
tBlendCoefficient++;
tUnderflowingTimer--;
tPlayerPicFadeWhiteTimer = tSecondaryTimer;
@@ -1745,8 +1747,8 @@ static void Task_OakSpeech_FadePlayerPicWhite(u8 taskId)
{
for (i = 0; i < 32; i++)
{
gPlttBufferFaded[i + 0x40] = RGB_WHITE;
gPlttBufferUnfaded[i + 0x40] = RGB_WHITE;
gPlttBufferFaded[i + BG_PLTT_ID(4)] = RGB_WHITE;
gPlttBufferUnfaded[i + BG_PLTT_ID(4)] = RGB_WHITE;
}
DestroyTask(taskId);
}
@@ -1823,7 +1825,13 @@ static void CB2_ReturnFromNamingScreen(void)
FreeAllWindowBuffers();
InitStandardTextBoxWindows();
InitTextBoxGfxAndPrinters();
LoadPalette(sOakSpeech_Background_Pals, 0, 0xE0);
// Below is reading 48 colors beyond the background palette (into the tiles that follow it).
// This color range is used by the player and rival pic, which will overwrite them with the correct colors.
#ifdef BUGFIX
LoadPalette(sOakSpeech_Background_Pals, BG_PLTT_ID(0), sizeof(sOakSpeech_Background_Pals));
#else
LoadPalette(sOakSpeech_Background_Pals, BG_PLTT_ID(0), sizeof(sOakSpeech_Background_Pals) + PLTT_SIZEOF(48));
#endif
break;
case 4:
DecompressAndCopyTileDataToVram(1, sOakSpeech_Background_Tiles, 0, 0, 0);
@@ -1876,9 +1884,9 @@ static void CreateNidoranFSprite(u8 taskId)
{
u8 spriteId;
DecompressPicFromTable(&gMonFrontPicTable[SPECIES_NIDORAN_F], MonSpritesGfxManager_GetSpritePtr(0), SPECIES_NIDORAN_F);
LoadCompressedSpritePaletteUsingHeap(&gMonPaletteTable[SPECIES_NIDORAN_F]);
SetMultiuseSpriteTemplateToPokemon(SPECIES_NIDORAN_F, 0);
DecompressPicFromTable(&gMonFrontPicTable[INTRO_SPECIES], MonSpritesGfxManager_GetSpritePtr(0), INTRO_SPECIES);
LoadCompressedSpritePaletteUsingHeap(&gMonPaletteTable[INTRO_SPECIES]);
SetMultiuseSpriteTemplateToPokemon(INTRO_SPECIES, 0);
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 96, 96, 1);
gSprites[spriteId].callback = SpriteCallbackDummy;
gSprites[spriteId].oam.priority = 1;
@@ -1962,19 +1970,19 @@ static void LoadTrainerPic(u16 whichPic, u16 tileOffset)
switch (whichPic)
{
case MALE_PLAYER_PIC:
LoadPalette(sOakSpeech_Red_Pal, 0x40, 0x40);
LoadPalette(sOakSpeech_Red_Pal, BG_PLTT_ID(4), sizeof(sOakSpeech_Red_Pal));
LZ77UnCompVram(sOakSpeech_Red_Tiles, (void *)VRAM + 0x600 + tileOffset);
break;
case FEMALE_PLAYER_PIC:
LoadPalette(sOakSpeech_Leaf_Pal, 0x40, 0x40);
LoadPalette(sOakSpeech_Leaf_Pal, BG_PLTT_ID(4), sizeof(sOakSpeech_Leaf_Pal));
LZ77UnCompVram(sOakSpeech_Leaf_Tiles, (void *)VRAM + 0x600 + tileOffset);
break;
case RIVAL_PIC:
LoadPalette(sOakSpeech_Rival_Pal, 0x60, 0x40);
LoadPalette(sOakSpeech_Rival_Pal, BG_PLTT_ID(6), sizeof(sOakSpeech_Rival_Pal));
LZ77UnCompVram(sOakSpeech_Rival_Tiles, (void *)VRAM + 0x600 + tileOffset);
break;
case OAK_PIC:
LoadPalette(sOakSpeech_Oak_Pal, 0x60, 0x40);
LoadPalette(sOakSpeech_Oak_Pal, BG_PLTT_ID(6), sizeof(sOakSpeech_Oak_Pal));
LZ77UnCompVram(sOakSpeech_Oak_Tiles, (void *)VRAM + 0x600 + tileOffset);
break;
default:
+6 -6
View File
@@ -93,7 +93,7 @@ static const struct WindowTemplate sOptionMenuWinTemplates[] =
.tilemapTop = 0,
.width = 30,
.height = 2,
.paletteNum = 0xF,
.paletteNum = 15,
.baseBlock = 0x16e
},
DUMMY_WIN_TEMPLATE
@@ -340,14 +340,14 @@ static bool8 LoadOptionMenuPalette(void)
LoadBgTiles(1, GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
break;
case 1:
LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, BG_PLTT_ID(2), PLTT_SIZE_4BPP);
break;
case 2:
LoadPalette(sOptionMenuPalette, 0x10, 0x20);
LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20);
LoadPalette(sOptionMenuPalette, BG_PLTT_ID(1), sizeof(sOptionMenuPalette));
LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
break;
case 3:
LoadStdWindowGfxOnBg(1, 0x1B3, 0x30);
LoadStdWindowGfxOnBg(1, 0x1B3, BG_PLTT_ID(3));
break;
default:
return TRUE;
@@ -382,7 +382,7 @@ static void Task_OptionMenu(u8 taskId)
break;
case 2:
LoadBgTiles(1, GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, BG_PLTT_ID(2), PLTT_SIZE_4BPP);
BufferOptionMenuString(sOptionMenuPtr->cursorPos);
break;
case 3:
+7 -7
View File
@@ -59,7 +59,7 @@ ALIGNED(4) EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0};
static EWRAM_DATA struct PaletteStruct sPaletteStructs[NUM_PALETTE_STRUCTS] = {0};
EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0};
static EWRAM_DATA u32 sPlttBufferTransferPending = 0;
EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0};
EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_SIZE] = {0};
static const struct PaletteStructTemplate sDummyPaletteStructTemplate =
{
@@ -141,7 +141,7 @@ void ReadPlttIntoBuffers(void)
u16 i;
u16 *pltt = (u16 *)PLTT;
for (i = 0; i < PLTT_SIZE / 2; ++i)
for (i = 0; i < PLTT_BUFFER_SIZE; ++i)
{
gPlttBufferUnfaded[i] = pltt[i];
gPlttBufferFaded[i] = pltt[i];
@@ -420,7 +420,7 @@ static u8 UpdateNormalPaletteFade(void)
else
{
selectedPalettes = gPaletteFade_selectedPalettes >> 16;
paletteOffset = 256;
paletteOffset = OBJ_PLTT_OFFSET;
}
while (selectedPalettes)
{
@@ -559,13 +559,13 @@ static u8 UpdateFastPaletteFade(void)
return gPaletteFade.active ? PALETTE_FADE_STATUS_ACTIVE : PALETTE_FADE_STATUS_DONE;
if (gPaletteFade.objPaletteToggle)
{
paletteOffsetStart = 256;
paletteOffsetEnd = 512;
paletteOffsetStart = OBJ_PLTT_OFFSET;
paletteOffsetEnd = PLTT_BUFFER_SIZE;
}
else
{
paletteOffsetStart = 0;
paletteOffsetEnd = 256;
paletteOffsetEnd = OBJ_PLTT_OFFSET;
}
switch (gPaletteFade_submode)
{
@@ -791,7 +791,7 @@ void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color)
void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color)
{
// This copy is done via DMA in both RUBY and EMERALD
CpuFastCopy(gPlttBufferUnfaded, gPlttBufferFaded, 0x400);
CpuFastCopy(gPlttBufferUnfaded, gPlttBufferFaded, PLTT_SIZE);
BlendPalettes(selectedPalettes, coeff, color);
}
+34 -34
View File
@@ -670,8 +670,8 @@ static bool8 AllocPartyMenuBgGfx(void)
}
break;
case 2:
LoadCompressedPalette(gPartyMenuBg_Pal, 0, 0x160);
CpuCopy16(gPlttBufferUnfaded, sPartyMenuInternal->palBuffer, 0x160);
LoadCompressedPalette(gPartyMenuBg_Pal, BG_PLTT_ID(0), 11 * PLTT_SIZE_4BPP);
CpuCopy16(gPlttBufferUnfaded, sPartyMenuInternal->palBuffer, 11 * PLTT_SIZE_4BPP);
++sPartyMenuInternal->data[0];
break;
case 3:
@@ -702,9 +702,9 @@ static bool8 AllocPartyMenuBgGfx(void)
static void PartyPaletteBufferCopy(u8 offset)
{
offset *= 16;
CpuCopy16(&gPlttBufferUnfaded[0x30], &gPlttBufferUnfaded[offset], 32);
CpuCopy16(&gPlttBufferUnfaded[0x30], &gPlttBufferFaded[offset], 32);
offset = PLTT_ID(offset);
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(3)], &gPlttBufferUnfaded[offset], PLTT_SIZE_4BPP);
CpuCopy16(&gPlttBufferUnfaded[BG_PLTT_ID(3)], &gPlttBufferFaded[offset], PLTT_SIZE_4BPP);
}
static void FreePartyPointers(void)
@@ -2006,8 +2006,8 @@ static void Task_FirstBattleEnterParty_WaitFadeNormal(u8 taskId)
{
if (!gPaletteFade.active)
{
LoadUserWindowGfx(0, 0x4F, 0xD0);
LoadStdWindowGfx(0, 0x58, 0xF0);
LoadUserWindowGfx(0, 0x4F, BG_PLTT_ID(13));
LoadStdWindowGfx(0, 0x58, BG_PLTT_ID(15));
if (gPartyMenu.action == PARTY_ACTION_USE_ITEM)
DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON);
else
@@ -2117,10 +2117,10 @@ static void InitPartyMenuWindows(u8 layout)
DeactivateAllTextPrinters();
for (i = 0; i < PARTY_SIZE; ++i)
FillWindowPixelBuffer(i, PIXEL_FILL(0));
LoadUserWindowGfx(0, 0x4F, 0xD0);
LoadStdWindowGfx(0, 0x58, 0xF0);
LoadPalette(GetTextWindowPalette(2), 0xC0, 0x20);
LoadPalette(GetTextWindowPalette(0), 0xE0, 0x20);
LoadUserWindowGfx(0, 0x4F, BG_PLTT_ID(13));
LoadStdWindowGfx(0, 0x58, BG_PLTT_ID(15));
LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(12), PLTT_SIZE_4BPP);
LoadPalette(GetTextWindowPalette(0), BG_PLTT_ID(14), PLTT_SIZE_4BPP);
}
static void CreateCancelConfirmWindows(bool8 chooseMultiple)
@@ -2215,16 +2215,16 @@ static void DrawEmptySlot(u8 windowId)
BlitBitmapToPartyWindow(windowId, sSlotTilemap_WideEmpty, 18, 0, 0, 18, 3);
}
#define LOAD_PARTY_BOX_PAL(paletteIds, paletteOffsets) \
{ \
LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[0]), paletteOffsets[0] + palNum, 2); \
LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[1]), paletteOffsets[1] + palNum, 2); \
LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[2]), paletteOffsets[2] + palNum, 2); \
#define LOAD_PARTY_BOX_PAL(paletteIds, paletteOffsets) \
{ \
LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[0]), paletteOffsets[0] + palOffset, PLTT_SIZEOF(1)); \
LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[1]), paletteOffsets[1] + palOffset, PLTT_SIZEOF(1)); \
LoadPalette(GetPartyMenuPalBufferPtr(paletteIds[2]), paletteOffsets[2] + palOffset, PLTT_SIZEOF(1)); \
}
static void LoadPartyBoxPalette(struct PartyMenuBox *menuBox, u8 palFlags)
{
u8 palNum = GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM) * 16;
u8 palOffset = BG_PLTT_ID(GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM));
if (palFlags & PARTY_PAL_TO_SOFTBOIL)
{
@@ -2349,7 +2349,7 @@ static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct Pa
static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox)
{
u8 palNum = GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM) * 16;
u8 palOffset = BG_PLTT_ID(GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM));
if (species == SPECIES_NONE)
return;
@@ -2358,13 +2358,13 @@ static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, stru
switch (gender)
{
case MON_MALE:
LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[0]), sGenderPalOffsets[0] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[1]), sGenderPalOffsets[1] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[0]), sGenderPalOffsets[0] + palOffset, PLTT_SIZEOF(1));
LoadPalette(GetPartyMenuPalBufferPtr(sGenderMalePalIds[1]), sGenderPalOffsets[1] + palOffset, PLTT_SIZEOF(1));
DisplayPartyPokemonBarDetail(menuBox->windowId, gText_MaleSymbol, 2, &menuBox->infoRects->dimensions[8]);
break;
case MON_FEMALE:
LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[0]), sGenderPalOffsets[0] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[1]), sGenderPalOffsets[1] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[0]), sGenderPalOffsets[0] + palOffset, PLTT_SIZEOF(1));
LoadPalette(GetPartyMenuPalBufferPtr(sGenderFemalePalIds[1]), sGenderPalOffsets[1] + palOffset, PLTT_SIZEOF(1));
DisplayPartyPokemonBarDetail(menuBox->windowId, gText_FemaleSymbol, 2, &menuBox->infoRects->dimensions[8]);
break;
}
@@ -2417,23 +2417,23 @@ static void DisplayPartyPokemonHPBarCheck(struct Pokemon *mon, struct PartyMenuB
static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *menuBox)
{
u8 palNum = GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM) * 16;
u8 palOffset = BG_PLTT_ID(GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM));
u8 hpFraction;
switch (GetHPBarLevel(hp, maxhp))
{
case HP_BAR_GREEN:
case HP_BAR_FULL:
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[0]), sHPBarPalOffsets[0] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[1]), sHPBarPalOffsets[1] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[0]), sHPBarPalOffsets[0] + palOffset, PLTT_SIZEOF(1));
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarGreenPalIds[1]), sHPBarPalOffsets[1] + palOffset, PLTT_SIZEOF(1));
break;
case HP_BAR_YELLOW:
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[0]), sHPBarPalOffsets[0] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[1]), sHPBarPalOffsets[1] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[0]), sHPBarPalOffsets[0] + palOffset, PLTT_SIZEOF(1));
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarYellowPalIds[1]), sHPBarPalOffsets[1] + palOffset, PLTT_SIZEOF(1));
break;
default:
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[0]), sHPBarPalOffsets[0] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[1]), sHPBarPalOffsets[1] + palNum, 2);
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[0]), sHPBarPalOffsets[0] + palOffset, PLTT_SIZEOF(1));
LoadPalette(GetPartyMenuPalBufferPtr(sHPBarRedPalIds[1]), sHPBarPalOffsets[1] + palOffset, PLTT_SIZEOF(1));
break;
}
hpFraction = GetScaledHPFraction(hp, maxhp, menuBox->infoRects->dimensions[22]);
@@ -2503,7 +2503,7 @@ void DisplayPartyMenuStdMessage(u32 stringId)
else if (!ShouldUseChooseMonText())
stringId = PARTY_MSG_CHOOSE_MON_OR_CANCEL;
}
DrawStdFrameWithCustomTileAndPalette(*windowPtr, FALSE, 0x58, 0xF);
DrawStdFrameWithCustomTileAndPalette(*windowPtr, FALSE, 0x58, 15);
StringExpandPlaceholders(gStringVar4, sActionStringTable[stringId]);
AddTextPrinterParameterized(*windowPtr, FONT_NORMAL, gStringVar4, 0, 2, 0, 0);
ScheduleBgCopyTilemapToVram(2);
@@ -2603,7 +2603,7 @@ static bool8 FirstBattleEnterParty_CreateWindowAndMsg1Printer(void)
{
u8 windowId = AddWindow(&sWindowTemplate_FirstBattleOakVoiceover);
LoadMenuMessageWindowGfx(windowId, 0x4F, 0xE0);
LoadMenuMessageWindowGfx(windowId, 0x4F, BG_PLTT_ID(14));
DrawDialogFrameWithCustomTileAndPalette(windowId, 1, 0x4F, 0xE);
PartyMenu_Oak_PrintText(windowId, gText_OakImportantToGetToKnowPokemonThroughly);
return windowId;
@@ -4285,7 +4285,7 @@ static void CB2_UseItem(void)
{
GiveMoveToMon(&gPlayerParty[gPartyMenu.slotId], ItemIdToBattleMoveId(gSpecialVar_ItemId));
AdjustFriendship(&gPlayerParty[gPartyMenu.slotId], FRIENDSHIP_EVENT_LEARN_TMHM);
if (gSpecialVar_ItemId <= ITEM_TM50)
if (gSpecialVar_ItemId < ITEM_HM01)
RemoveBagItem(gSpecialVar_ItemId, 1);
SetMainCallback2(gPartyMenu.exitCallback);
}
@@ -4305,7 +4305,7 @@ static void CB2_UseTMHMAfterForgettingMove(void)
SetMonMoveSlot(mon, ItemIdToBattleMoveId(gSpecialVar_ItemId), moveIdx);
AdjustFriendship(mon, FRIENDSHIP_EVENT_LEARN_TMHM);
ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, move);
if (gSpecialVar_ItemId <= ITEM_TM50)
if (gSpecialVar_ItemId < ITEM_HM01)
RemoveBagItem(gSpecialVar_ItemId, 1);
SetMainCallback2(gPartyMenu.exitCallback);
}
@@ -4809,7 +4809,7 @@ static void Task_LearnedMove(u8 taskId)
if (learnMoveMethod == LEARN_VIA_TMHM)
{
AdjustFriendship(mon, FRIENDSHIP_EVENT_LEARN_TMHM);
if (item <= ITEM_TM50)
if (item < ITEM_HM01)
RemoveBagItem(item, 1);
}
GetMonNickname(mon, gStringVar1);
+3 -3
View File
@@ -83,7 +83,7 @@ static void Task_PCScreenEffect_TurnOn(u8 taskId)
SetGpuReg(REG_OFFSET_BLDY, 0);
SetGpuReg(REG_OFFSET_BLDCNT, task->tBldCntBak);
BlendPalettes(PALETTES_ALL, 0, RGB_BLACK);
gPlttBufferFaded[0] = 0;
gPlttBufferFaded[BG_PLTT_ID(0)] = 0;
}
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWin0Left, task->tWin0Right));
if (task->tWin0Left)
@@ -117,7 +117,7 @@ static void Task_PCScreenEffect_TurnOff(u8 taskId)
switch (task->tState)
{
case 0:
gPlttBufferFaded[0] = 0;
gPlttBufferFaded[BG_PLTT_ID(0)] = 0;
break;
case 1:
task->tWin0Left = 0;
@@ -152,7 +152,7 @@ static void Task_PCScreenEffect_TurnOff(u8 taskId)
task->tWin0Left = 120;
task->tWin0Right = 120;
BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK);
gPlttBufferFaded[0] = 0;
gPlttBufferFaded[BG_PLTT_ID(0)] = 0;
}
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(task->tWin0Left, task->tWin0Right));
if (task->tWin0Left != 120)
+1 -1
View File
@@ -201,7 +201,7 @@ u8 CreatePokedexAreaMarkers(u16 species, u16 tilesTag, u8 palIdx, u8 y)
spriteSheet.size = 0x4A0;
spriteSheet.tag = tilesTag;
LoadCompressedSpriteSheet(&spriteSheet);
LoadPalette(sMarkerPal, 0x100 + 16 * palIdx, 0x20);
LoadPalette(sMarkerPal, OBJ_PLTT_ID(palIdx), sizeof(sMarkerPal));
// Get marker subsprites
taskId = CreateTask(Task_ShowAreaMarkers, 0);
+37 -37
View File
@@ -922,15 +922,15 @@ void DexScreen_LoadResources(void)
ChangeBgY(3, 0, 0);
gPaletteFade.bufferTransferDisabled = TRUE;
if (natDex)
LoadPalette(sNationalDexPalette, 0, 0x200);
LoadPalette(sNationalDexPalette, BG_PLTT_ID(0), sizeof(sNationalDexPalette));
else
LoadPalette(sKantoDexPalette, 0, 0x200);
FillBgTilemapBufferRect(3, 0x001, 0, 0, 32, 32, 0x00);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(0, 0x003, 0, 0, 32, 2, 0x0F);
FillBgTilemapBufferRect(0, 0x000, 0, 2, 32, 16, 0x11);
FillBgTilemapBufferRect(0, 0x003, 0, 18, 32, 2, 0x0F);
LoadPalette(sKantoDexPalette, BG_PLTT_ID(0), sizeof(sKantoDexPalette));
FillBgTilemapBufferRect(3, 0x001, 0, 0, 32, 32, 0);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 17);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 17);
FillBgTilemapBufferRect(0, 0x003, 0, 0, 32, 2, 15);
FillBgTilemapBufferRect(0, 0x000, 0, 2, 32, 16, 17);
FillBgTilemapBufferRect(0, 0x003, 0, 18, 32, 2, 15);
}
void CB2_OpenPokedexFromStartMenu(void)
@@ -1124,9 +1124,9 @@ static void Task_PokedexScreen(u8 taskId)
static void DexScreen_InitGfxForTopMenu(void)
{
struct ListMenuTemplate listMenuTemplate;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 30, 20, 0x11);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 30, 20, 0x11);
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 30, 20, 17);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 30, 20, 17);
sPokedexScreenData->modeSelectWindowId = AddWindow(&sWindowTemplate_ModeSelect);
sPokedexScreenData->selectionIconWindowId = AddWindow(&sWindowTemplate_SelectionIcon);
sPokedexScreenData->dexCountsWindowId = AddWindow(&sWindowTemplate_DexCounts);
@@ -1177,12 +1177,12 @@ static void MoveCursorFunc_DexModeSelect(s32 itemIndex, bool8 onInit, struct Lis
if (itemIndex == LIST_CANCEL)
{
CopyToWindowPixelBuffer(sPokedexScreenData->selectionIconWindowId, sTopMenuSelectionIconTiles_Cancel, 0x000, 0x000);
LoadPalette(sTopMenuSelectionIconPals_Cancel, 0x10, 0x20);
LoadPalette(sTopMenuSelectionIconPals_Cancel, BG_PLTT_ID(1), PLTT_SIZE_4BPP);
}
else
{
CopyToWindowPixelBuffer(sPokedexScreenData->selectionIconWindowId, sTopMenuSelectionIconGfxPtrs[itemIndex].tiles, 0x000, 0x000);
LoadPalette(sTopMenuSelectionIconGfxPtrs[itemIndex].pal, 0x10, 0x20);
LoadPalette(sTopMenuSelectionIconGfxPtrs[itemIndex].pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP);
}
PutWindowTilemap(sPokedexScreenData->selectionIconWindowId);
CopyWindowToVram(sPokedexScreenData->selectionIconWindowId, COPYWIN_GFX);
@@ -1201,8 +1201,8 @@ static void Task_DexScreen_NumericalOrder(u8 taskId)
switch (sPokedexScreenData->state)
{
case 0:
ListMenuLoadStdPalAt(0x10, 0);
ListMenuLoadStdPalAt(0x20, 1);
ListMenuLoadStdPalAt(BG_PLTT_ID(1), 0);
ListMenuLoadStdPalAt(BG_PLTT_ID(2), 1);
sPokedexScreenData->orderedDexCount = DexScreen_CountMonsInOrderedList(sPokedexScreenData->dexOrderId);
sPokedexScreenData->state = 2;
break;
@@ -1266,8 +1266,8 @@ static void Task_DexScreen_NumericalOrder(u8 taskId)
static void DexScreen_InitGfxForNumericalOrderList(void)
{
struct ListMenuTemplate template;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 17);
sPokedexScreenData->numericalOrderWindowId = AddWindow(&sWindowTemplate_OrderedListMenu);
template = sListMenuTemplate_OrderedListMenu;
template.items = sPokedexScreenData->listItems;
@@ -1287,8 +1287,8 @@ static void Task_DexScreen_CharacteristicOrder(u8 taskId)
switch (sPokedexScreenData->state)
{
case 0:
ListMenuLoadStdPalAt(0x10, 0);
ListMenuLoadStdPalAt(0x20, 1);
ListMenuLoadStdPalAt(BG_PLTT_ID(1), 0);
ListMenuLoadStdPalAt(BG_PLTT_ID(2), 1);
sPokedexScreenData->orderedDexCount = DexScreen_CountMonsInOrderedList(sPokedexScreenData->dexOrderId);
sPokedexScreenData->state = 2;
break;
@@ -1352,8 +1352,8 @@ static void Task_DexScreen_CharacteristicOrder(u8 taskId)
static void DexScreen_CreateCharacteristicListMenu(void)
{
struct ListMenuTemplate template;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 17);
sPokedexScreenData->numericalOrderWindowId = AddWindow(&sWindowTemplate_OrderedListMenu);
template = sListMenuTemplate_OrderedListMenu;
template.items = sPokedexScreenData->listItems;
@@ -1554,11 +1554,11 @@ static void ItemPrintFunc_OrderedListMenu(u8 windowId, u32 itemId, u8 y)
DexScreen_PrintMonDexNo(sPokedexScreenData->numericalOrderWindowId, FONT_SMALL, species, 12, y);
if (caught)
{
BlitMoveInfoIcon(sPokedexScreenData->numericalOrderWindowId, 0, 0x28, y);
BlitMenuInfoIcon(sPokedexScreenData->numericalOrderWindowId, MENU_INFO_ICON_CAUGHT, 0x28, y);
type1 = gSpeciesInfo[species].types[0];
BlitMoveInfoIcon(sPokedexScreenData->numericalOrderWindowId, type1 + 1, 0x78, y);
BlitMenuInfoIcon(sPokedexScreenData->numericalOrderWindowId, type1 + 1, 0x78, y);
if (type1 != gSpeciesInfo[species].types[1])
BlitMoveInfoIcon(sPokedexScreenData->numericalOrderWindowId, gSpeciesInfo[species].types[1] + 1, 0x98, y);
BlitMenuInfoIcon(sPokedexScreenData->numericalOrderWindowId, gSpeciesInfo[species].types[1] + 1, 0x98, y);
}
}
@@ -2405,10 +2405,10 @@ static void DexScreen_CreateCategoryPageSelectionCursor(u8 cursorPos)
{
for (i = 0; i < 4; i++)
{
LoadPalette(&sDexScreen_CategoryCursorPals[0], 0x52 + 0x10 * i, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[1], 0x58 + 0x10 * i, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[0], PLTT_ID(i) + PLTT_ID(5) + 2 + BG_PLTT_OFFSET, PLTT_SIZEOF(1));
LoadPalette(&sDexScreen_CategoryCursorPals[1], PLTT_ID(i) + PLTT_ID(5) + 8 + BG_PLTT_OFFSET, PLTT_SIZEOF(1));
}
LoadPalette(&sDexScreen_CategoryCursorPals[0], 0x141, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[0], 0x141, PLTT_SIZEOF(1));
sPokedexScreenData->categoryPageSelectionCursorTimer = 0;
}
else
@@ -2421,16 +2421,16 @@ static void DexScreen_CreateCategoryPageSelectionCursor(u8 cursorPos)
{
if (i == cursorPos)
{
LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 2], 0x52 + 0x10 * i, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 3], 0x58 + 0x10 * i, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 2], PLTT_ID(i) + PLTT_ID(5) + 2 + BG_PLTT_OFFSET, PLTT_SIZEOF(1));
LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 3], PLTT_ID(i) + PLTT_ID(5) + 8 + BG_PLTT_OFFSET, PLTT_SIZEOF(1));
}
else
{
LoadPalette(&sDexScreen_CategoryCursorPals[0], 0x52 + 0x10 * i, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[1], 0x58 + 0x10 * i, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[0], PLTT_ID(i) + PLTT_ID(5) + 2 + BG_PLTT_OFFSET, PLTT_SIZEOF(1));
LoadPalette(&sDexScreen_CategoryCursorPals[1], PLTT_ID(i) + PLTT_ID(5) + 8 + BG_PLTT_OFFSET, PLTT_SIZEOF(1));
}
}
LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 2], 0x141, 2);
LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 2], OBJ_PLTT_ID(4) + 1, PLTT_SIZEOF(1));
}
}
@@ -3054,7 +3054,7 @@ u8 DexScreen_DrawMonAreaPage(void)
// Draw the mon icon
FillWindowPixelBuffer(sPokedexScreenData->windowIds[11], PIXEL_FILL(0));
ListMenu_LoadMonIconPalette(160, species);
ListMenu_LoadMonIconPalette(BG_PLTT_ID(10), species);
ListMenu_DrawMonIconGraphics(sPokedexScreenData->windowIds[11], species, DexScreen_GetDefaultPersonality(species), 0, 0);
PutWindowTilemap(sPokedexScreenData->windowIds[11]);
CopyWindowToVram(sPokedexScreenData->windowIds[11], COPYWIN_GFX);
@@ -3087,20 +3087,20 @@ u8 DexScreen_DrawMonAreaPage(void)
// Type icons
FillWindowPixelBuffer(sPokedexScreenData->windowIds[12], PIXEL_FILL(0));
ListMenuLoadStdPalAt(176, 1);
ListMenuLoadStdPalAt(BG_PLTT_ID(11), 1);
if (monIsCaught)
{
BlitMoveInfoIcon(sPokedexScreenData->windowIds[12], 1 + gSpeciesInfo[species].types[0], 0, 1);
BlitMenuInfoIcon(sPokedexScreenData->windowIds[12], 1 + gSpeciesInfo[species].types[0], 0, 1);
if (gSpeciesInfo[species].types[0] != gSpeciesInfo[species].types[1])
BlitMoveInfoIcon(sPokedexScreenData->windowIds[12], 1 + gSpeciesInfo[species].types[1], 32, 1);
BlitMenuInfoIcon(sPokedexScreenData->windowIds[12], 1 + gSpeciesInfo[species].types[1], 32, 1);
}
PutWindowTilemap(sPokedexScreenData->windowIds[12]);
CopyWindowToVram(sPokedexScreenData->windowIds[12], COPYWIN_GFX);
// Show size comparison
ResetAllPicSprites();
LoadPalette(sPalette_Silhouette, 288, 32);
LoadPalette(sPalette_Silhouette, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP);
if (monIsCaught)
{
+6 -6
View File
@@ -1126,7 +1126,7 @@ void DestroyMonIcon(struct Sprite *sprite)
void LoadMonIconPalettes(void)
{
u8 i;
for (i = 0; i < NELEMS(gMonIconPaletteTable); i++)
for (i = 0; i < ARRAY_COUNT(gMonIconPaletteTable); i++)
LoadSpritePalette(&gMonIconPaletteTable[i]);
}
@@ -1151,7 +1151,7 @@ void LoadMonIconPalette(u16 species)
void FreeMonIconPalettes(void)
{
u8 i;
for (i = 0; i < 6; i++)
for (i = 0; i < ARRAY_COUNT(gMonIconPaletteTable); i++)
FreeSpritePaletteByTag(gMonIconPaletteTable[i].tag);
}
@@ -1179,12 +1179,12 @@ void SpriteCB_MonIcon(struct Sprite *sprite)
void LoadMonIconPalettesAt(u16 offset)
{
int i;
if (offset <= 0x100 - 0x60)
if (offset <= BG_PLTT_ID(16 - ARRAY_COUNT(gMonIconPaletteTable)))
{
for (i = 0; i < (int)NELEMS(gMonIconPaletteTable); i++)
for (i = 0; i < (int)ARRAY_COUNT(gMonIconPaletteTable); i++)
{
LoadPalette(gMonIconPaletteTable[i].data, offset, 0x20);
offset += 0x10;
LoadPalette(gMonIconPaletteTable[i].data, offset, PLTT_SIZE_4BPP);
offset += 16;
}
}
}
+10 -10
View File
@@ -3039,22 +3039,22 @@ static void LoadPokeJumpGfx(void)
ResetTempTileDataBuffers();
LoadSpriteSheetsAndPalettes(sPokemonJumpGfx);
InitDigitPrinters();
LoadPalette(sBg_Pal, 0, 0x20);
LoadPalette(sBg_Pal, BG_PLTT_ID(0), sizeof(sBg_Pal));
DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Gfx, 0, 0, 0);
DecompressAndCopyTileDataToVram(BG_SCENERY, sBg_Tilemap, 0, 0, 1);
LoadPalette(sVenusaur_Pal, 0x30, 0x20);
LoadPalette(sVenusaur_Pal, BG_PLTT_ID(3), sizeof(sVenusaur_Pal));
DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Gfx, 0, 0, 0);
DecompressAndCopyTileDataToVram(BG_VENUSAUR, sVenusaur_Tilemap, 0, 0, 1);
LoadPalette(sBonuses_Pal, 0x10, 0x20);
LoadPalette(sBonuses_Pal, BG_PLTT_ID(1), sizeof(sBonuses_Pal));
DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Gfx, 0, 0, 0);
DecompressAndCopyTileDataToVram(BG_BONUSES, sBonuses_Tilemap, 0, 0, 1);
LoadPalette(sInterface_Pal, 0x20, 0x20);
LoadPalette(sInterface_Pal, BG_PLTT_ID(2), sizeof(sInterface_Pal));
SetBgTilemapBuffer(BG_INTERFACE, sPokemonJumpGfx->tilemapBuffer);
FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 0x20, 0x20);
PrintScoreSuffixes();
PrintScore(0);
LoadStdWindowGfxOnBg(0, 1, 0xE0);
LoadUserWindowGfx2(0, 0x00A, 0xD0);
LoadStdWindowGfxOnBg(0, 1, BG_PLTT_ID(14));
LoadUserWindowGfx2(0, 0x00A, BG_PLTT_ID(13));
CopyBgTilemapBufferToVram(BG_INTERFACE);
CopyBgTilemapBufferToVram(BG_VENUSAUR);
CopyBgTilemapBufferToVram(BG_BONUSES);
@@ -3472,7 +3472,7 @@ static u32 AddMessageWindow(u32 left, u32 top, u32 width, u32 height)
window.tilemapTop = top;
window.width = width;
window.height = height;
window.paletteNum = 0xF;
window.paletteNum = 15;
window.baseBlock = 0x43;
windowId = AddWindow(&window);
@@ -3493,7 +3493,7 @@ static void CreatePokeJumpYesNoMenu(u16 left, u16 top, u8 cursorPos)
window.paletteNum = 2;
window.baseBlock = 0x2B;
CreateYesNoMenu(&window, FONT_NORMAL, 0, 2, 0x00a, 0xD, a);
CreateYesNoMenu(&window, FONT_NORMAL, 0, 2, 0x00a, 13, a);
}
// "Points" for jump score and "times" for number of jumps in a row
@@ -4554,8 +4554,8 @@ static void PrintRecordsText(u16 windowId)
recordNums[1] = records->bestJumpScore;
recordNums[2] = records->excellentsInRow;
LoadStdWindowGfx(windowId, 0x21D, 0xD0);
DrawTextBorderOuter(windowId, 0x21D, 0xD);
LoadStdWindowGfx(windowId, 0x21D, BG_PLTT_ID(13));
DrawTextBorderOuter(windowId, 0x21D, 13);
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
AddTextPrinterParameterized5(windowId, FONT_NORMAL, gText_PkmnJumpRecords, 0, 0, TEXT_SKIP_DRAW, NULL, 1, 0);
for (i = 0; i < ARRAY_COUNT(sRecordsTexts); i++)
+5 -5
View File
@@ -341,7 +341,7 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32);
LoadBgGfxByAnimType(animType);
FillWindowPixelBuffer(0, PIXEL_FILL(0));
LoadUserWindowGfx(0, 0x000, 0xe0);
LoadUserWindowGfx(0, 0x000, BG_PLTT_ID(14));
CopyWindowToVram(0, COPYWIN_FULL);
ShowBg(0);
ShowBg(3);
@@ -370,7 +370,7 @@ void PSA_ShowMessageWindow(void)
{
PutWindowTilemap(0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
DrawTextBorderOuter(0, 0x001, 0xE);
DrawTextBorderOuter(0, 0x001, 14);
CopyWindowToVram(0, COPYWIN_FULL);
}
@@ -612,7 +612,7 @@ bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void)
// Unused
void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter)
{
DrawTextBorderOuter(1, 0x001, 0xE);
DrawTextBorderOuter(1, 0x001, 14);
DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
PutWindowTilemap(1);
CopyWindowToVram(1, COPYWIN_FULL);
@@ -636,9 +636,9 @@ static void LoadBgGfxByAnimType(u16 animType)
CopyToBgTilemapBuffer(3, sBg_Tilemap, 0, 0x000);
DecompressAndCopyTileDataToVram(3, sBg_Gfx, 0, 0x000, 0);
if (animType != 4)
LoadPalette(sBg_Pal, 0x00, 0x20);
LoadPalette(sBg_Pal, BG_PLTT_ID(0), sizeof(sBg_Pal));
else
LoadPalette(sBg_TmHm_Pal, 0x00, 0x20);
LoadPalette(sBg_TmHm_Pal, BG_PLTT_ID(0), sizeof(sBg_TmHm_Pal));
}
void PSA_CreateMonSpriteAtCloseness(u8 closeness)
+8 -8
View File
@@ -1205,9 +1205,9 @@ static void LoadWallpaperGfx(u8 boxId, s8 direction)
DrawWallpaper(gStorage->wallpaperBgTilemapBuffer, gStorage->wallpaperTilemap, gStorage->wallpaperLoadDir, gStorage->wallpaperOffset);
if (gStorage->wallpaperLoadDir != 0)
LoadPalette(wallpaper->palettes, (gStorage->wallpaperOffset * 32) + 0x40, 0x40);
LoadPalette(wallpaper->palettes, BG_PLTT_ID(4) + BG_PLTT_ID(gStorage->wallpaperOffset * 2), 2 * PLTT_SIZE_4BPP);
else
CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[(gStorage->wallpaperOffset * 32) + 0x40], 0x40);
CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[BG_PLTT_ID(4) + BG_PLTT_ID(gStorage->wallpaperOffset * 2)], 2 * PLTT_SIZE_4BPP);
DecompressAndLoadBgGfxUsingHeap(2, wallpaper->tiles, 0, 256 * gStorage->wallpaperOffset, 0);
@@ -1281,12 +1281,12 @@ static void InitBoxTitle(u8 boxId)
gStorage->wallpaperPalBits = 0x3F0;
tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE);
gStorage->boxTitlePalOffset = 0x10e + 16 * tagIndex;
gStorage->wallpaperPalBits |= 0x10000 << tagIndex;
gStorage->boxTitlePalOffset = OBJ_PLTT_ID(tagIndex) + 14;
gStorage->wallpaperPalBits |= (1 << 16) << tagIndex;
tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE);
gStorage->boxTitleAltPalOffset = 0x10e + 16 * tagIndex;
gStorage->wallpaperPalBits |= 0x10000 << tagIndex;
gStorage->boxTitleAltPalOffset = OBJ_PLTT_ID(tagIndex) + 14;
gStorage->wallpaperPalBits |= (1 << 16) << tagIndex;
StringCopyPadded(gStorage->boxTitleText, GetBoxNamePtr(boxId), 0, 8);
DrawTextWindowAndBufferTiles(gStorage->boxTitleText, gStorage->boxTitleTiles, 0, 0, gStorage->boxTitleUnused, 2);
@@ -1387,9 +1387,9 @@ static void CycleBoxTitleColor(void)
u8 boxId = StorageGetCurrentBox();
u8 wallpaperId = GetBoxWallpaper(boxId);
if (gStorage->boxTitleCycleId == 0)
CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gStorage->boxTitlePalOffset, 4);
CpuCopy16(sBoxTitleColors[wallpaperId], &gPlttBufferUnfaded[gStorage->boxTitlePalOffset], PLTT_SIZEOF(2));
else
CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gStorage->boxTitleAltPalOffset, 4);
CpuCopy16(sBoxTitleColors[wallpaperId], &gPlttBufferUnfaded[gStorage->boxTitleAltPalOffset], PLTT_SIZEOF(2));
}
static s16 GetBoxTitleBaseX(const u8 *string)
+7 -8
View File
@@ -118,7 +118,7 @@ static bool8 MultiMove_Function_Start(void)
{
case 0:
HideBg(0);
LoadMonIconPalettesAt(0x80);
LoadMonIconPalettesAt(BG_PLTT_ID(8));
sMultiMove->state++;
break;
case 1:
@@ -167,7 +167,7 @@ static bool8 MultiMove_Function_Single(void)
if (!IsDma3ManagerBusyWithBgCopy())
{
SetCursorPriorityTo1();
LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20);
LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(13), PLTT_SIZE_4BPP);
ShowBg(0);
return FALSE;
}
@@ -273,7 +273,7 @@ static bool8 MultiMove_Function_PlaceMons(void)
case 3:
if (!IsDma3ManagerBusyWithBgCopy())
{
LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20);
LoadPalette(GetTextWindowPalette(3), BG_PLTT_ID(13), PLTT_SIZE_4BPP);
SetCursorPriorityTo1();
ShowBg(0);
return FALSE;
@@ -703,8 +703,7 @@ void CreateItemIconSprites(void)
LoadCompressedSpriteSheet(&spriteSheet);
gStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void *)(OBJ_VRAM0);
gStorage->itemIcons[i].palIndex = AllocSpritePalette(PALTAG_ITEM_ICON_0 + i);
gStorage->itemIcons[i].palIndex *= 16;
gStorage->itemIcons[i].palIndex += 0x100;
gStorage->itemIcons[i].palIndex = OBJ_PLTT_ID(gStorage->itemIcons[i].palIndex);
spriteTemplate.tileTag = GFXTAG_ITEM_ICON_0 + i;
spriteTemplate.paletteTag = PALTAG_ITEM_ICON_0 + i;
spriteId = CreateSprite(&spriteTemplate, 0, 0, 11);
@@ -1060,7 +1059,7 @@ static void LoadItemIconGfx(u8 id, const u32 *itemTiles, const u32 *itemPal)
CpuFastCopy(gStorage->itemIconBuffer, gStorage->itemIcons[id].tiles, 0x200);
LZ77UnCompWram(itemPal, gStorage->itemIconBuffer);
LoadPalette(gStorage->itemIconBuffer, gStorage->itemIcons[id].palIndex, 0x20);
LoadPalette(gStorage->itemIconBuffer, gStorage->itemIcons[id].palIndex, PLTT_SIZE_4BPP);
}
static void SetItemIconAffineAnim(u8 id, u8 animNum)
@@ -1129,12 +1128,12 @@ static void SetItemIconActive(u8 id, bool8 show)
static const u32 *GetItemIconPic(u16 itemId)
{
return GetItemIconGfxPtr(itemId, 0);
return GetItemIconGfxPtr(itemId, ITEMICON_TILES);
}
static const u32 *GetItemIconPalette(u16 itemId)
{
return GetItemIconGfxPtr(itemId, 1);
return GetItemIconGfxPtr(itemId, ITEMICON_PAL);
}
void PrintItemDescription(void)
+10 -10
View File
@@ -534,7 +534,7 @@ static void Task_InitPokeStorage(u8 taskId)
PutWindowTilemap(0);
ClearWindowTilemap(1);
CpuFill32(0, (void *)VRAM, 0x200);
LoadUserWindowGfx(1, 0xB, 0xE0);
LoadUserWindowGfx(1, 0xB, BG_PLTT_ID(14));
break;
case 3:
ResetAllBgCoords();
@@ -2147,13 +2147,13 @@ static void LoadsMiscSpritePalette(void)
static void InitPalettesAndSprites(void)
{
LoadPalette(gPokeStorageInterface_Pal, 0, 0x20);
LoadPalette(gPokeStorageInterface_NoDisplayMon_Pal, 0x20, 0x20);
LoadPalette(sItemInfoFrame_Pal, 0xF0, 0x20);
LoadPalette(gPokeStorageInterface_Pal, BG_PLTT_ID(0), PLTT_SIZE_4BPP);
LoadPalette(gPokeStorageInterface_NoDisplayMon_Pal, BG_PLTT_ID(2), PLTT_SIZE_4BPP);
LoadPalette(sItemInfoFrame_Pal, BG_PLTT_ID(15), sizeof(sItemInfoFrame_Pal));
if (gStorage->boxOption != OPTION_MOVE_ITEMS)
LoadPalette(sScrollingBg_Pal, 0x30, sizeof(sScrollingBg_Pal));
LoadPalette(sScrollingBg_Pal, BG_PLTT_ID(3), sizeof(sScrollingBg_Pal));
else
LoadPalette(sScrollingBgMoveItems_Pal, 0x30, sizeof(sScrollingBgMoveItems_Pal));
LoadPalette(sScrollingBgMoveItems_Pal, BG_PLTT_ID(3), sizeof(sScrollingBgMoveItems_Pal));
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30));
CreateDisplayMonSprite();
@@ -2256,7 +2256,7 @@ static void CreateDisplayMonSprite(void)
break;
gStorage->displayMonSprite = &gSprites[spriteId];
gStorage->displayMonPalOffset = palSlot * 16 + 0x100;
gStorage->displayMonPalOffset = OBJ_PLTT_ID(palSlot);
gStorage->displayMonTilePtr = (void *)OBJ_VRAM0 + tileStart * 32;
} while (FALSE);
@@ -2277,7 +2277,7 @@ static void LoadDisplayMonGfx(u16 species, u32 personality)
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gStorage->tileBuffer, species, personality);
LZ77UnCompWram(gStorage->displayMonPalette, gStorage->displayMonPalBuffer);
CpuCopy32(gStorage->tileBuffer, gStorage->displayMonTilePtr, 0x800);
LoadPalette(gStorage->displayMonPalBuffer, gStorage->displayMonPalOffset, 0x20);
LoadPalette(gStorage->displayMonPalBuffer, gStorage->displayMonPalOffset, PLTT_SIZE_4BPP);
gStorage->displayMonSprite->invisible = FALSE;
}
else
@@ -2337,7 +2337,7 @@ static void UpdateWaveformAnimation(void)
static void InitSupplementalTilemaps(void)
{
LZ77UnCompWram(gPokeStoragePartyMenu_Tilemap, gStorage->partyMenuTilemapBuffer);
LoadPalette(gPokeStoragePartyMenu_Pal, 0x10, 0x20);
LoadPalette(gPokeStoragePartyMenu_Pal, BG_PLTT_ID(1), PLTT_SIZE_4BPP);
TilemapUtil_SetTilemap(TILEMAP_PARTY_MENU, 1, gStorage->partyMenuTilemapBuffer, 12, 22);
TilemapUtil_SetTilemap(TILEMAP_CLOSE_BUTTON, 1, sCloseBoxButton_Tilemap, 9, 4);
TilemapUtil_SetPos(TILEMAP_PARTY_MENU, 10, 0);
@@ -2545,7 +2545,7 @@ static bool8 DoShowPartyMenu(void)
static void InitPokeStorageBg0(void)
{
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29));
LoadStdWindowGfx(1, 2, 0xD0);
LoadStdWindowGfx(1, 2, BG_PLTT_ID(13));
FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17);
CopyBgTilemapBufferToVram(0);
}
+18 -18
View File
@@ -2006,22 +2006,22 @@ static u8 PokeSum_HandleLoadBgGfx(void)
switch (sMonSummaryScreen->loadBgGfxStep)
{
case 0:
LoadPalette(gSummaryScreen_Bg_Pal, 0, 0x20 * 5);
LoadPalette(gSummaryScreen_Bg_Pal, BG_PLTT_ID(0), 5 * PLTT_SIZE_4BPP);
if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
{
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 6], 0, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 5], 0x10, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 6], BG_PLTT_ID(0), PLTT_SIZE_4BPP);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 5], BG_PLTT_ID(1), PLTT_SIZE_4BPP);
}
else
{
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 0], 0, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 1], 0x10, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 0], BG_PLTT_ID(0), PLTT_SIZE_4BPP);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 1], BG_PLTT_ID(1), PLTT_SIZE_4BPP);
}
break;
case 1:
ListMenuLoadStdPalAt(0x60, 1);
LoadPalette(sTextHeaderPalette, 0x70, 0x20);
ListMenuLoadStdPalAt(BG_PLTT_ID(6), 1);
LoadPalette(sTextHeaderPalette, BG_PLTT_ID(7), PLTT_SIZE_4BPP);
break;
case 2:
ResetTempTileDataBuffers();
@@ -2039,7 +2039,7 @@ static u8 PokeSum_HandleLoadBgGfx(void)
break;
default:
LoadPalette(sTextMovesPalette, 0x80, 0x20);
LoadPalette(sTextMovesPalette, BG_PLTT_ID(8), PLTT_SIZE_4BPP);
return TRUE;
}
@@ -2919,11 +2919,11 @@ static void PokeSum_DrawMoveTypeIcons(void)
if (sMonSummaryScreen->moveIds[i] == MOVE_NONE)
continue;
BlitMoveInfoIcon(sMonSummaryScreen->windowIds[5], sMonSummaryScreen->moveTypes[i] + 1, 3, GetMoveNamePrinterYpos(i));
BlitMenuInfoIcon(sMonSummaryScreen->windowIds[5], sMonSummaryScreen->moveTypes[i] + 1, 3, GetMoveNamePrinterYpos(i));
}
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
BlitMoveInfoIcon(sMonSummaryScreen->windowIds[5], sMonSummaryScreen->moveTypes[4] + 1, 3, GetMoveNamePrinterYpos(4));
BlitMenuInfoIcon(sMonSummaryScreen->windowIds[5], sMonSummaryScreen->moveTypes[4] + 1, 3, GetMoveNamePrinterYpos(4));
}
static void PokeSum_PrintPageHeaderText(u8 curPageIndex)
@@ -3362,10 +3362,10 @@ static void PokeSum_PrintMonTypeIcons(void)
case PSS_PAGE_INFO:
if (!sMonSummaryScreen->isEgg)
{
BlitMoveInfoIcon(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], sMonSummaryScreen->monTypes[0] + 1, 47, 35);
BlitMenuInfoIcon(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], sMonSummaryScreen->monTypes[0] + 1, 47, 35);
if (sMonSummaryScreen->monTypes[0] != sMonSummaryScreen->monTypes[1])
BlitMoveInfoIcon(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], sMonSummaryScreen->monTypes[1] + 1, 83, 35);
BlitMenuInfoIcon(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], sMonSummaryScreen->monTypes[1] + 1, 83, 35);
}
break;
case PSS_PAGE_SKILLS:
@@ -3374,10 +3374,10 @@ static void PokeSum_PrintMonTypeIcons(void)
break;
case PSS_PAGE_MOVES_INFO:
FillWindowPixelBuffer(sMonSummaryScreen->windowIds[6], 0);
BlitMoveInfoIcon(sMonSummaryScreen->windowIds[6], sMonSummaryScreen->monTypes[0] + 1, 0, 3);
BlitMenuInfoIcon(sMonSummaryScreen->windowIds[6], sMonSummaryScreen->monTypes[0] + 1, 0, 3);
if (sMonSummaryScreen->monTypes[0] != sMonSummaryScreen->monTypes[1])
BlitMoveInfoIcon(sMonSummaryScreen->windowIds[6], sMonSummaryScreen->monTypes[1] + 1, 36, 3);
BlitMenuInfoIcon(sMonSummaryScreen->windowIds[6], sMonSummaryScreen->monTypes[1] + 1, 36, 3);
PutWindowTilemap(sMonSummaryScreen->windowIds[6]);
break;
@@ -5078,13 +5078,13 @@ static void Task_PokeSum_SwitchDisplayedPokemon(u8 taskId)
if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
{
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 6], 0, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 5], 0x10, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 6], BG_PLTT_ID(0), PLTT_SIZE_4BPP);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 5], BG_PLTT_ID(1), PLTT_SIZE_4BPP);
}
else
{
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 0], 0, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 1], 0x10, 0x20);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 0], BG_PLTT_ID(0), PLTT_SIZE_4BPP);
LoadPalette(&gSummaryScreen_Bg_Pal[16 * 1], BG_PLTT_ID(1), PLTT_SIZE_4BPP);
}
sMonSummaryScreen->switchMonTaskState++;
+10 -11
View File
@@ -512,7 +512,7 @@ void sub_8110FCC(void)
static bool8 FieldCB2_QuestLogStartPlaybackWithWarpExit(void)
{
LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20);
LoadPalette(GetTextWindowPalette(4), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
SetQuestLogState(QL_STATE_PLAYBACK);
FieldCB_DefaultWarpExit();
sPlaybackControl = (struct PlaybackControl){};
@@ -522,7 +522,7 @@ static bool8 FieldCB2_QuestLogStartPlaybackWithWarpExit(void)
static bool8 FieldCB2_QuestLogStartPlaybackStandingInPlace(void)
{
LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20);
LoadPalette(GetTextWindowPalette(4), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
SetQuestLogState(QL_STATE_PLAYBACK);
FieldCB_WarpExitFadeFromBlack();
sPlaybackControl = (struct PlaybackControl){};
@@ -1133,12 +1133,12 @@ void QuestLog_InitPalettesBackup(void)
void QuestLog_BackUpPalette(u16 offset, u16 size)
{
CpuCopy16(gPlttBufferUnfaded + offset, sPalettesBackup + offset, size * 2);
CpuCopy16(&gPlttBufferUnfaded[offset], &sPalettesBackup[offset], PLTT_SIZEOF(size));
}
static bool8 FieldCB2_FinalScene(void)
{
LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20);
LoadPalette(GetTextWindowPalette(4), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
DrawPreviouslyOnQuestHeader(0);
FieldCB_WarpExitFadeFromBlack();
CreateTask(Task_FinalScene_WaitFade, 0xFF);
@@ -1264,13 +1264,12 @@ static bool8 sub_81121D8(u8 taskId)
if (data[1] > 15)
return TRUE;
CopyPaletteInvertedTint(gPlttBufferUnfaded + 0x01, gPlttBufferFaded + 0x01, 0xDF, 0x0F - data[1]);
CopyPaletteInvertedTint(gPlttBufferUnfaded + 0x100, gPlttBufferFaded + 0x100, 0x100, 0x0F - data[1]);
CopyPaletteInvertedTint(&gPlttBufferUnfaded[BG_PLTT_ID(0) + 1], &gPlttBufferFaded[BG_PLTT_ID(0) + 1], 0xDF, 0x0F - data[1]);
CopyPaletteInvertedTint(&gPlttBufferUnfaded[OBJ_PLTT_ID(0)], &gPlttBufferFaded[OBJ_PLTT_ID(0)], 0x100, 0x0F - data[1]);
FillWindowPixelRect(sWindowIds[WIN_TOP_BAR],
0x00, 0,
sWindowTemplates[WIN_TOP_BAR].height * 8 - 1 - data[1],
sWindowTemplates[WIN_TOP_BAR].width * 8,
1);
sWindowTemplates[WIN_TOP_BAR].width * 8, 1);
FillWindowPixelRect(sWindowIds[WIN_BOTTOM_BAR],
0x00, 0,
data[1],
@@ -1286,9 +1285,9 @@ static void QL_SlightlyDarkenSomePals(void)
u16 *buffer = Alloc(PLTT_SIZE);
CpuCopy16(sPalettesBackup, buffer, PLTT_SIZE);
SlightlyDarkenPalsInWeather(sPalettesBackup, sPalettesBackup, 13 * 16);
SlightlyDarkenPalsInWeather(sPalettesBackup + 17 * 16, sPalettesBackup + 17 * 16, 1 * 16);
SlightlyDarkenPalsInWeather(sPalettesBackup + 22 * 16, sPalettesBackup + 22 * 16, 4 * 16);
SlightlyDarkenPalsInWeather(sPalettesBackup + 27 * 16, sPalettesBackup + 27 * 16, 5 * 16);
SlightlyDarkenPalsInWeather(&sPalettesBackup[OBJ_PLTT_ID(1)], &sPalettesBackup[OBJ_PLTT_ID(1)], 1 * 16);
SlightlyDarkenPalsInWeather(&sPalettesBackup[OBJ_PLTT_ID(6)], &sPalettesBackup[OBJ_PLTT_ID(6)], 4 * 16);
SlightlyDarkenPalsInWeather(&sPalettesBackup[OBJ_PLTT_ID(11)], &sPalettesBackup[OBJ_PLTT_ID(11)], 5 * 16);
CpuCopy16(sPalettesBackup, gPlttBufferUnfaded, PLTT_SIZE);
CpuCopy16(buffer, sPalettesBackup, PLTT_SIZE);
Free(buffer);
+21 -21
View File
@@ -961,8 +961,8 @@ static void TintMapEdgesPalette(void)
u16 mapEdgesPal[16];
CpuCopy16(&sRegionMap_Pal[0x20], mapEdgesPal, sizeof(mapEdgesPal));
RegionMap_DarkenPalette(mapEdgesPal, NELEMS(mapEdgesPal), 95);
LoadPalette(mapEdgesPal, 0x20, sizeof(mapEdgesPal));
LoadPalette(&sRegionMap_Pal[0x2F], 0x2F, sizeof(sRegionMap_Pal[0x2F]));
LoadPalette(mapEdgesPal, BG_PLTT_ID(2), sizeof(mapEdgesPal));
LoadPalette(&sRegionMap_Pal[0x2F], BG_PLTT_ID(2) + 15, PLTT_SIZEOF(1));
}
static void InitRegionMap(u8 type)
@@ -1105,18 +1105,18 @@ static bool8 LoadRegionMapGfx(void)
switch (sRegionMap->loadGfxState)
{
case 0:
LoadPalette(sTopBar_Pal, 0xC0, sizeof(sTopBar_Pal));
LoadPalette(sTopBar_Pal, BG_PLTT_ID(12), sizeof(sTopBar_Pal));
break;
case 1:
LoadPalette(sRegionMap_Pal, 0, sizeof(sRegionMap_Pal));
TintMapEdgesPalette();
if (sRegionMap->type != REGIONMAP_TYPE_NORMAL)
{
LoadPalette(&sTopBar_Pal[15], 16 * 0, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 1, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 2, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 3, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 4, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(0), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(1), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(2), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(3), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(4), sizeof(sTopBar_Pal[15]));
}
break;
case 2:
@@ -1972,7 +1972,7 @@ static bool8 LoadMapPreviewGfx(void)
LoadBgTiles(2, sDungeonMapPreview->tiles, sizeof(sDungeonMapPreview->tiles), 0);
break;
case 3:
LoadPalette(sDungeonMapPreview->mapPreviewInfo->palptr, 0xD0, 0x60);
LoadPalette(sDungeonMapPreview->mapPreviewInfo->palptr, BG_PLTT_ID(13), 3 * PLTT_SIZE_4BPP);
break;
default:
return TRUE;
@@ -2073,7 +2073,7 @@ static void Task_DrawDungeonMapPreviewFlavorText(u8 taskId)
sDungeonMapPreview->blue -= 5;
CpuCopy16(sDungeonMapPreview->mapPreviewInfo->palptr, sDungeonMapPreview->palette, 0x60);
TintPalette_CustomTone(sDungeonMapPreview->palette, 48, sDungeonMapPreview->red, sDungeonMapPreview->green, sDungeonMapPreview->blue);
LoadPalette(sDungeonMapPreview->palette, 0xD0, sizeof(sDungeonMapPreview->palette));
LoadPalette(sDungeonMapPreview->palette, BG_PLTT_ID(13), sizeof(sDungeonMapPreview->palette));
}
sDungeonMapPreview->timer++;
break;
@@ -2416,19 +2416,19 @@ static void Task_MapOpenAnim(u8 taskId)
sMapOpenCloseAnim->openState++;
break;
case 10:
LoadPalette(&sTopBar_Pal[15], 16 * 0, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 1, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 2, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 3, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], 16 * 4, sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(0), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(1), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(2), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(3), sizeof(sTopBar_Pal[15]));
LoadPalette(&sTopBar_Pal[15], BG_PLTT_ID(4), sizeof(sTopBar_Pal[15]));
sMapOpenCloseAnim->openState++;
break;
case 11:
FillBgTilemapBufferRect(1, 0x002, 0, 1, 1, 1, 0x2);
FillBgTilemapBufferRect(1, 0x003, 1, 1, 1, 1, 0x2);
FillBgTilemapBufferRect(1, 0x03E, 28, 1, 1, 1, 0x2);
FillBgTilemapBufferRect(1, 0x03F, 29, 1, 1, 1, 0x2);
FillBgTilemapBufferRect(1, 0x03D, 2, 1, 26, 1, 0x2);
FillBgTilemapBufferRect(1, 0x002, 0, 1, 1, 1, 2);
FillBgTilemapBufferRect(1, 0x003, 1, 1, 1, 1, 2);
FillBgTilemapBufferRect(1, 0x03E, 28, 1, 1, 1, 2);
FillBgTilemapBufferRect(1, 0x03F, 29, 1, 1, 1, 2);
FillBgTilemapBufferRect(1, 0x03D, 2, 1, 26, 1, 2);
CopyBgTilemapBufferToVram(1);
m4aSongNumStop(SE_CARD_OPEN);
PlaySE(SE_ROTATING_GATE);
@@ -2569,7 +2569,7 @@ static void Task_MapCloseAnim(u8 taskId)
sMapOpenCloseAnim->closeState++;
break;
case 2:
LoadPalette(sRegionMap_Pal, 0, sizeof(sRegionMap_Pal));
LoadPalette(sRegionMap_Pal, BG_PLTT_ID(0), sizeof(sRegionMap_Pal));
sMapOpenCloseAnim->closeState++;
break;
case 3:
+5 -3
View File
@@ -1140,6 +1140,8 @@ void Task_WaitMuseumFossilPic(u8 taskId)
}
}
#define FOSSIL_PIC_PAL_NUM 13
bool8 OpenMuseumFossilPic(void)
{
u8 spriteId;
@@ -1151,19 +1153,19 @@ bool8 OpenMuseumFossilPic(void)
if (gSpecialVar_0x8004 == SPECIES_KABUTOPS)
{
LoadSpriteSheets(sMuseumKabutopsSprSheets);
LoadPalette(sMuseumKabutopsSprPalette, 0x1D0, 0x20);
LoadPalette(sMuseumKabutopsSprPalette, OBJ_PLTT_ID(FOSSIL_PIC_PAL_NUM), sizeof(sMuseumKabutopsSprPalette));
}
else if (gSpecialVar_0x8004 == SPECIES_AERODACTYL)
{
LoadSpriteSheets(sMuseumAerodactylSprSheets);
LoadPalette(sMuseumAerodactylSprPalette, 0x1D0, 0x20);
LoadPalette(sMuseumAerodactylSprPalette, OBJ_PLTT_ID(FOSSIL_PIC_PAL_NUM), sizeof(sMuseumAerodactylSprPalette));
}
else
{
return FALSE;
}
spriteId = CreateSprite(&sMuseumFossilSprTemplate, gSpecialVar_0x8005 * 8 + 40, gSpecialVar_0x8006 * 8 + 40, 0);
gSprites[spriteId].oam.paletteNum = 13;
gSprites[spriteId].oam.paletteNum = FOSSIL_PIC_PAL_NUM;
taskId = CreateTask(Task_WaitMuseumFossilPic, 80);
gTasks[taskId].tWindowId = CreateWindowFromRect(gSpecialVar_0x8005, gSpecialVar_0x8006, 8, 8);
gTasks[taskId].tState = 0;
+2 -6
View File
@@ -204,15 +204,11 @@ static void CB2_SetUpSeagallopScene(void)
case 3:
LoadBgTiles(3, sWaterTiles, sizeof(sWaterTiles), 0);
if (GetDirectionOfTravel() == DIRN_EASTBOUND)
{
CopyToBgTilemapBufferRect(3, sWaterTilemap_EB, 0, 0, 32, 32);
}
else
{
CopyToBgTilemapBufferRect(3, sWaterTilemap_WB, 0, 0, 32, 32);
}
LoadPalette(sWaterPal, 0x40, 0x20);
LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20);
LoadPalette(sWaterPal, BG_PLTT_ID(4), sizeof(sWaterPal));
LoadPalette(GetTextWindowPalette(2), BG_PLTT_ID(15), PLTT_SIZE_4BPP);
gMain.state++;
break;
case 4:

Some files were not shown because too many files have changed in this diff Show More