Table of Contents
- 1. include/event_object_movement.h
- 2. include/field_effect_helpers.h
- 3. include/field_weather.h
- 4. src/data/field_effects/field_effect_objects.h
- 5. src/field_effect.c
- 6. src\field_weather.c
- 7 . src/field_weather_effect.c
- 8. src/overworld.c
- 9. src/rotating_gate.c
- 10. src/trainer_see.c
- 11. src/field_effect_helpers.c
- 12. src/data/object_events/berry_tree_graphics_tables.h
- 13. src\event_object_movement.c
Goal: To replace the static overworld palettes with a dynamic system that loads the correct palette slot when you are playing the game, versus the palette slots being hardcoded when the game begins.
This is an updated guide from ExpoSeed's original branch. That was out of date and wouldn't compile if merged into Pret's latest repo (as of 07/05/2026).
This guide also includes a line change based on "Remove Expensive and Redundant 'BuildColorMaps()' Function" at https://github.com/pret/pokeemerald/wiki/Optimization-%E2%80%90-Remove-Expensive-and-Redundant-%60BuildColorMaps()%60-Function
If you find it easier, pull and merge ExpoSeed's branch into your repo and use the edits listed below to fix the conflicts.
git remote add ExpoSeed https://github.com/ExpoSeed/pokeemerald
git pull ExpoSeed dynamic-ow-pals
- Delete these lines
+ Add these lines
1. include/event_object_movement.h
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
- extern const u8 gReflectionEffectPaletteMap[];
extern const u16 *const gBerryTreeObjectEventGraphicsIdTablePointers[];
extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[];
- extern const u8 *const gBerryTreePaletteSlotTablePointers[];
+ extern const u16 *const gBerryTreePaletteSlotTablePointers[];
void ResetObjectEvents(void);
void CameraObjectFreeze(void);
+ void LoadObjectEventPalette(u16 paletteTag);
u8 GetObjectEventBerryTreeId(u8 objectEventId);
2. include/field_effect_helpers.h
Add this line to the end of the file:
+ void LoadFieldEffectPalette(u8 fieldEffect);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
3. include/field_weather.h
extern const u16 gFogPalette[];
+ enum
+ {
+ GAMMA_NONE,
+ GAMMA_NORMAL,
+ GAMMA_ALT,
+ };
+
+ void UpdatePaletteGammaType(u8 index, u8 gammaType);
+
// field_weather_effect.c
extern const u8 gWeatherFogHorizontalTiles[];
void ApplyWeatherColorMapToPal(u8 paletteIndex);
- void LoadCustomWeatherSpritePalette(const u16 *palette);
+ void LoadCustomWeatherSpritePalette(const struct SpritePalette *palette);
void ResetDroughtWeatherPaletteLoading(void);
4. src/data/field_effects/field_effect_objects.h
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_BRENDAN,
.oam = &gObjectEventBaseOam_8x8,
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_BRENDAN,
.oam = &gObjectEventBaseOam_16x8,
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_BRENDAN,
.oam = &gObjectEventBaseOam_32x8,
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_BRENDAN,
.oam = &gObjectEventBaseOam_64x32,
const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_BRENDAN,
.oam = &gObjectEventBaseOam_16x16,
const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_NPC_2,
.oam = &gObjectEventBaseOam_16x16,
const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_NPC_3,
.oam = &gObjectEventBaseOam_16x32,
const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_NPC_2,
.oam = &gObjectEventBaseOam_16x32,
const struct SpriteTemplate gFieldEffectObjectTemplate_SandDisguisePlaceholder = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_NPC_1,
.oam = &gObjectEventBaseOam_16x32,
const struct SpriteTemplate gFieldEffectObjectTemplate_Bird = {
.tileTag = TAG_NONE,
- .paletteTag = TAG_NONE,
+ .paletteTag = OBJ_EVENT_PAL_TAG_BRENDAN,
.oam = &gObjectEventBaseOam_32x32,
5. src/field_effect.c
EWRAM_DATA s32 gFieldEffectArguments[8] = {0};
+ EWRAM_DATA u16 gReflectionPaletteBuffer[0x10] = {0};
// Static type declarations
in section: void FieldEffectScript_LoadFadedPalette(u8 **script)
struct SpritePalette *palette = (struct SpritePalette *)FieldEffectScript_ReadWord(script);
LoadSpritePalette(palette);
+ UpdatePaletteGammaType(IndexOfSpritePaletteTag(palette->tag), GAMMA_NORMAL);
UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(palette->tag));
u8 FldEff_NPCFlyOut(void)
{
- u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1);
- struct Sprite *sprite = &gSprites[spriteId];
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ LoadFieldEffectPalette(FLDEFFOBJ_BIRD);
+ spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1);
+ sprite = &gSprites[spriteId];
sprite->oam.paletteNum = 0;
sprite->oam.priority = 1;
in section: `static u8 CreateFlyBirdSprite(void)'
{
u8 spriteId;
struct Sprite *sprite;
+
+ LoadFieldEffectPalette(FLDEFFOBJ_BIRD);
spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0xff, 0xb4, 0x1);
sprite = &gSprites[spriteId];
- sprite->oam.paletteNum = 0;
sprite->oam.priority = 1;
6. src\field_weather.c
in section: void (*const gWeatherPalStateFuncs[])(void) =
// This table specifies which of the color maps should be
// applied to each of the background and sprite palettes.
- static const u8 ALIGNED(2) sBasePaletteColorMapTypes[32] =
+ EWRAM_DATA u8 ALIGNED(2) sBasePaletteGammaTypes[32] =
{
// background palettes
void StartWeather(void)
{
+ u16 i;
if (!FuncIsActiveTask(Task_WeatherMain))
{
- u8 index = AllocSpritePalette(PALTAG_WEATHER);
+ u8 index = 15;
CpuCopy32(gFogPalette, &gPlttBufferUnfaded[OBJ_PLTT_ID(index)], PLTT_SIZE_4BPP);
- sPaletteColorMapTypes = sBasePaletteColorMapTypes;
+ for (i = 0; i < 13; i++)
+ sBasePaletteGammaTypes[i] = GAMMA_NORMAL;
+ sPaletteColorMapTypes = sBasePaletteGammaTypes;
gWeatherPtr->contrastColorMapSpritePalIndex = index;
- gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(PALTAG_WEATHER_2);
gWeatherPtr->rainSpriteCount = 0;
in section: static bool8 UNUSED IsFirstFrameOfWeatherFadeIn(void)
return FALSE;
}
- void LoadCustomWeatherSpritePalette(const u16 *palette)
+ void LoadCustomWeatherSpritePalette(const struct SpritePalette *palette)
{
- LoadPalette(palette, OBJ_PLTT_ID(gWeatherPtr->weatherPicSpritePalIndex), PLTT_SIZE_4BPP);
- UpdateSpritePaletteWithWeather(gWeatherPtr->weatherPicSpritePalIndex);
+ LoadSpritePalette(palette);
+ UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(palette->tag));
}
static void LoadDroughtWeatherPalette(u8 *palsIndex, u8 *palsOffset)
in section: void SetWeatherPalStateIdle(void)
void PreservePaletteInWeather(u8 preservedPalIndex)
{
- CpuCopy16(sBasePaletteColorMapTypes, sFieldEffectPaletteColorMapTypes, 32);
- sFieldEffectPaletteColorMapTypes[preservedPalIndex] = COLOR_MAP_NONE;
+ CpuCopy16(sBasePaletteGammaTypes, sFieldEffectPaletteColorMapTypes, 32);
+ sFieldEffectPaletteColorMapTypes[preservedPalIndex] = GAMMA_NONE;
sPaletteColorMapTypes = sFieldEffectPaletteColorMapTypes;
}
void ResetPreservedPalettesInWeather(void)
{
- sPaletteColorMapTypes = sBasePaletteColorMapTypes;
+ sPaletteColorMapTypes = sBasePaletteGammaTypes;
+ }
+ void UpdatePaletteGammaType(u8 index, u8 gammaType)
+ {
+ if (index != 0xFF)
+ sBasePaletteGammaTypes[index + 16] = gammaType;
}
7 . src/field_weather_effect.c
const u8 gWeatherSandstormTiles[] = INCGFX_U8("graphics/weather/sandstorm.png", ".4bpp");
+ const struct SpritePalette sFogSpritePalette = {gFogPalette, 0x1201};
+ const struct SpritePalette sCloudsSpritePalette = {gCloudsWeatherPalette, 0x1207};
+ const struct SpritePalette sSandstormSpritePalette = {gSandstormWeatherPalette, 0x1204};
+
//------------------------------------------------------------------------------
// WEATHER_SUNNY_CLOUDS
static const struct SpriteTemplate sCloudSpriteTemplate =
{
.tileTag = GFXTAG_CLOUD,
- .paletteTag = PALTAG_WEATHER_2,
+ .paletteTag = 0x1207,
.oam = &sCloudSpriteOamData,
in section: static void CreateCloudSprites(void)
LoadSpriteSheet(&sCloudSpriteSheet);
- LoadCustomWeatherSpritePalette(gCloudsWeatherPalette);
+ LoadCustomWeatherSpritePalette(&sCloudsSpritePalette);
for (i = 0; i < NUM_CLOUD_SPRITES; i++)
in section: static void DestroyCloudSprites(void)
DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]);
}
- FreeSpriteTilesByTag(GFXTAG_CLOUD);
+ FreeSpriteTilesByTag(0x1207);
gWeatherPtr->cloudSpritesCreated = FALSE;
in section: static void CreateFogHorizontalSprites(void)
gWeatherPtr->sprites.s2.fogHSprites[i] = sprite;
+ sprite->oam.paletteNum = gWeatherPtr->contrastColorMapSpritePalIndex;
}
else
static const struct SpriteTemplate sAshSpriteTemplate =
{
.tileTag = GFXTAG_ASH,
- .paletteTag = PALTAG_WEATHER,
+ .paletteTag = 0x1201,
.oam = &sAshSpriteOamData,
in section: static void CreateAshSprites(void)
if (!gWeatherPtr->ashSpritesCreated)
{
+ LoadCustomWeatherSpritePalette(&sFogSpritePalette);
for (i = 0; i < NUM_ASH_SPRITES; i++)
{
spriteId = CreateSpriteAtEnd(&sAshSpriteTemplate, 0, 0, 0x4E);
static const struct SpriteTemplate sFogDiagonalSpriteTemplate =
{
.tileTag = GFXTAG_FOG_D,
- .paletteTag = PALTAG_WEATHER,
+ .paletteTag = 0x1201,
.oam = &sFogDiagonalSpriteOamData,
static const struct SpriteTemplate sSandstormSpriteTemplate =
{
.tileTag = GFXTAG_SANDSTORM,
- .paletteTag = PALTAG_WEATHER_2,
+ .paletteTag = 0x1204,
.oam = &sSandstormSpriteOamData,
in section: static void CreateSandstormSprites(void)
if (!gWeatherPtr->sandstormSpritesCreated)
{
LoadSpriteSheet(&sSandstormSpriteSheet);
- LoadCustomWeatherSpritePalette(gSandstormWeatherPalette);
+ LoadCustomWeatherSpritePalette(&sSandstormSpritePalette);
for (i = 0; i < NUM_SANDSTORM_SPRITES; i++)
8. src/overworld.c
in section: static void ResumeMap(bool32 a1)
InstallCameraPanAheadCallback();
- if (!a1)
- InitObjectEventPalettes(0);
- else
- InitObjectEventPalettes(1);
+ FreeAllSpritePalettes();
FieldEffectActiveListClear();
9. src/rotating_gate.c
#include "fieldmap.h"
+ #include "field_weather.h"
#include "rotating_gate.h"
in section: static const struct OamData sOamData_RotatingGateLarge =
.priority = 2,
- .paletteNum = 2,
.affineParam = 0;
in section: static const struct OamData sOamData_RotatingGateRegular =
.priority = 2,
- .paletteNum = 2,
.affineParam = 0,
static const struct SpriteTemplate sSpriteTemplate_RotatingGateLarge =
{
.tileTag = ROTATING_GATE_TILE_TAG,
- .paletteTag = TAG_NONE,
+ .paletteTag = 0x1103, // OBJ_EVENT_PAL_TAG_NPC_1
.oam = &sOamData_RotatingGateLarge,
static const struct SpriteTemplate sSpriteTemplate_RotatingGateRegular =
{
.tileTag = ROTATING_GATE_TILE_TAG,
- .paletteTag = TAG_NONE,
+ .paletteTag = 0x1103, // OBJ_EVENT_PAL_TAG_NPC_1
.oam = &sOamData_RotatingGateRegular,
in section: static u8 RotatingGate_CreateGate(u8 gateId, s16 deltaX, s16 deltaY)
y = gate->y + MAP_OFFSET;
+ if (template.paletteTag != 0xFFFF)
+ {
+ LoadObjectEventPalette(template.paletteTag);
+ UpdatePaletteGammaType(IndexOfSpritePaletteTag(template.paletteTag), GAMMA_ALT);
+ }
+
+
sprite = &gSprites[spriteId];
sprite->data[0] = gateId;
sprite->coordOffsetEnabled = 1;
+ sprite->oam.paletteNum = IndexOfSpritePaletteTag(template.paletteTag);
GetMapCoordsFromSpritePos(x + deltaX, y + deltaY, &sprite->x, &sprite->y);
10. src/trainer_see.c
#include "field_player_avatar.h"
+ #include "field_weather.h"
#include "pokemon.h"
#include "constants/trainer_types.h"
+ extern const struct SpritePalette sObjectEventSpritePalettes[];
+ extern const struct SpritePalette gObjectEventPal_Npc1;
// this file's functions
static u8 CheckTrainer(u8 objectEventId);
11. src/field_effect_helpers.c
#include "fieldmap.h"
#include "gpu_regs.h"
#include "metatile_behavior.h"
+ #include "palette.h"
#include "sound.h"
#include "sprite.h"
#include "trig.h"
#include "constants/field_effects.h"
#include "constants/songs.h"
+ #include "constants/rgb.h"
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF // duplicate of define in event_object_movement.c
static void UpdateObjectReflectionSprite(struct Sprite *);
static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+ static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *, u8);
+ static void LoadObjectRegularReflectionPalette(struct ObjectEvent *, u8);
static void UpdateGrassFieldEffectSubpriority(struct Sprite *, u8, u8);
in section: static void SynchronizeSurfAnim(struct ObjectEvent *, struct Sprite *);
static void SpriteCB_UnderwaterSurfBlob(struct Sprite *);
- static u32 ShowDisguiseFieldEffect(u8, u8, u8);
+ static u32 ShowDisguiseFieldEffect(u8, u8);
+ static void LoadFieldEffectPalette_(u8 fieldEffect, bool8 updateGammaType);
+
+ void LoadSpecialReflectionPalette(struct Sprite *sprite);
+ extern u16 gReflectionPaletteBuffer[];
// Data used by all the field effects that share UpdateJumpImpactEffect
#define sJumpElevation data[0]
in section: void SetUpReflection(struct ObjectEvent *objectEvent, struct Sprite *sprite, boo
reflectionSprite->oam.priority = 3;
- reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[reflectionSprite->oam.paletteNum];
reflectionSprite->usingSheet = TRUE;
in section: static s16 GetReflectionVerticalOffset(struct ObjectEvent *objectEvent)
return GetObjectEventGraphicsInfo(objectEvent->graphicsId)->height - 2;
}
+ #define OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION 0x1102
+
static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct Sprite *reflectionSprite)
in section: static void LoadObjectReflectionPalette(struct ObjectEvent *objectEvent, struct
|| (bridgeType = MetatileBehavior_GetBridgeType(objectEvent->currentMetatileBehavior))))
{
+ // When walking on a bridge high above water (Route 120), the reflection is a solid dark blue color.
+ // This is so the sprite blends in with the dark water metatile underneath the bridge.
reflectionSprite->sReflectionVerticalOffset = bridgeReflectionVerticalOffsets[bridgeType - 1];
- LoadObjectHighBridgeReflectionPalette(objectEvent, reflectionSprite->oam.paletteNum);
+ LoadObjectEventPalette(OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION);
+ reflectionSprite->oam.paletteNum = IndexOfSpritePaletteTag(OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION);
+ UpdatePaletteGammaType(reflectionSprite->oam.paletteNum, GAMMA_NORMAL);
+ UpdateSpritePaletteWithWeather(reflectionSprite->oam.paletteNum);
}
else
{
- LoadObjectRegularReflectionPalette(objectEvent, reflectionSprite->oam.paletteNum);
+ LoadSpecialReflectionPalette(reflectionSprite);
}
}
- static void LoadObjectRegularReflectionPalette(struct ObjectEvent *objectEvent, u8 paletteIndex)
+ void LoadSpecialReflectionPalette(struct Sprite *sprite)
{
- const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
- {
- if (graphicsInfo->paletteSlot == PALSLOT_PLAYER)
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
- else if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL)
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
- else
- PatchObjectPalette(GetObjectPaletteTag(paletteIndex), paletteIndex);
- UpdateSpritePaletteWithWeather(paletteIndex);
- }
- }
+ u32 R, G, B, i;
+ u16 color;
+ u16* pal;
+ struct SpritePalette reflectionPalette;
- // When walking on a bridge high above water (Route 120), the reflection is a solid dark blue color.
- // This is so the sprite blends in with the dark water metatile underneath the bridge.
static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *objectEvent, u8 paletteNum)
- {
- const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
- {
- PatchObjectPalette(graphicsInfo->reflectionPaletteTag, paletteNum);
- UpdateSpritePaletteWithWeather(paletteNum);
- }
+ CpuCopy16(&gPlttBufferUnfaded[0x100 + sprite->oam.paletteNum * 16], gReflectionPaletteBuffer, 32);
+ pal = gReflectionPaletteBuffer;
+ for (i = 0; i < 16; ++i)
+ {
+ color = pal[i];
+ R = GET_R(color) + 8;
+ G = GET_G(color) + 8;
+ B = GET_B(color) + 16;
+ if (R > 31) R = 31;
+ if (G > 31) G = 31;
+ if (B > 31) B = 31;
+ pal[i] = RGB(R, G, B);
+ }
+ reflectionPalette.data = gReflectionPaletteBuffer;
+ reflectionPalette.tag = GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum) + 0x1000;
+ LoadSpritePalette(&reflectionPalette);
+ sprite->oam.paletteNum = IndexOfSpritePaletteTag(reflectionPalette.tag);
+ UpdatePaletteGammaType(sprite->oam.paletteNum, GAMMA_ALT);
+ UpdateSpritePaletteWithWeather(sprite->oam.paletteNum);
}
static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
in section: static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
}
else
{
- reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[mainSprite->oam.paletteNum];
reflectionSprite->oam.shape = mainSprite->oam.shape;
u8 CreateWarpArrowSprite(void)
{
- u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 82);
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ LoadFieldEffectPalette_(FLDEFFOBJ_ARROW, FALSE);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52);
if (spriteId != MAX_SPRITES)
u32 FldEff_Shadow(void)
{
- u8 objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
- const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId);
- u8 spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 148);
+ u8 objectEventId;
+ const struct ObjectEventGraphicsInfo *graphicsInfo;
+ u8 spriteId;
+ objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[objectEventId].graphicsId);
+ LoadFieldEffectPalette_(sShadowEffectTemplateIds[graphicsInfo->shadowSize], FALSE);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[sShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 148);
if (spriteId != MAX_SPRITES)
in section: u32 FldEff_JumpLongGrass(void)
u8 spriteId;
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
+ LoadFieldEffectPalette(FLDEFFOBJ_SURF_BLOB);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
in section: u32 FldEff_SurfBlob(void)
sprite->coordOffsetEnabled = TRUE;
- sprite->oam.paletteNum = 0;
sprite->sPlayerObjId = gFieldEffectArguments[2];
in section: u32 FldEff_BerryTreeGrowthSparkle(void)
SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4);
+ LoadFieldEffectPalette(FLDEFFOBJ_SPARKLE);
spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled = TRUE;
sprite->oam.priority = gFieldEffectArguments[3];
- sprite->oam.paletteNum = 5;
sprite->sWaitFldEff = FLDEFF_BERRY_TREE_GROWTH_SPARKLE;
u32 ShowTreeDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4);
+ return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE);
}
u32 ShowMountainDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE, 3);
+ return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE);
}
u32 ShowSandDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE, 2);
+ return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE);
}
- static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum)
+ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx)
{
u8 spriteId;
in section: static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum)
return MAX_SPRITES;
}
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[fldEffObj], 0, 0, 0);
+ LoadFieldEffectPalette(templateIdx);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[templateIdx], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[spriteId];
sprite->coordOffsetEnabled ++;
- sprite->oam.paletteNum = paletteNum;
sprite->sFldEff = fldEff;
in section: static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 elevatio
}
}
+ static void LoadFieldEffectPalette_(u8 fieldEffect, bool8 updateGammaType)
+ {
+ const struct SpriteTemplate *spriteTemplate;
+ spriteTemplate = gFieldEffectObjectTemplatePointers[fieldEffect];
+ if (spriteTemplate->paletteTag != 0xffff)
+ {
+ LoadObjectEventPalette(spriteTemplate->paletteTag);
+ if (updateGammaType)
+ UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate->paletteTag), GAMMA_NORMAL);
+ }
+ }
+ void LoadFieldEffectPalette(u8 fieldEffect)
+ {
+ LoadFieldEffectPalette_(fieldEffect, TRUE);
+ }
// Unused, duplicates of data in event_object_movement.c
static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = {
12. src/data/object_events/berry_tree_graphics_tables.h
DELETE EVERYTHING IN THIS FILE AND REPLACE WITH THE BELOW
This should be 866 lines
static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_CheriBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_CheriBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_CheriBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_CheriBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_CheriBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_CheriBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Cheri[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Chesto[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Pecha[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RawstBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RawstBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RawstBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RawstBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RawstBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RawstBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Rawst[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Aspear[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Leppa[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_OranBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_OranBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_OranBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_OranBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_OranBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_OranBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_OranBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Oran[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PersimBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PersimBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PersimBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PersimBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PersimBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PersimBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Persim[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Lum[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_SitrusBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_SitrusBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_SitrusBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_SitrusBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_SitrusBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_SitrusBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Sitrus[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Figy[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Wiki[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Mago[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Aguav[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Iapapa[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Razz[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Wepear[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Pomeg[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Kelpsy[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Hondew[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4};
static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Grepa[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Tamato[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_CornnBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_CornnBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_CornnBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_CornnBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_CornnBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_CornnBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Cornn[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Rabuta[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Nomel[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Spelon[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Pamtre[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_DurinBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_DurinBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_DurinBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_DurinBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_DurinBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_DurinBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Durin[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
static const struct SpriteFrameImage sPicTable_OccaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_OccaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_OccaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_OccaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_OccaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_OccaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_OccaBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Occa[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_YacheBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_YacheBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_YacheBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_YacheBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_YacheBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_YacheBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_YacheBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Yache[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_ChopleBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_ChopleBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_ChopleBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_ChopleBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_ChopleBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_ChopleBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_ChopleBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Chople[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_KebiaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_KebiaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_KebiaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_KebiaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_KebiaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_KebiaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_KebiaBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Kebia[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_ShucaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_ShucaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_ShucaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_ShucaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_ShucaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_ShucaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_ShucaBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Shuca[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4};
static const struct SpriteFrameImage sPicTable_PayapaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PayapaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PayapaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PayapaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PayapaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PayapaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PayapaBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Payapa[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4};
static const struct SpriteFrameImage sPicTable_TangaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_TangaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_TangaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_TangaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_TangaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_TangaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_TangaBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Tanga[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_KasibBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_KasibBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_KasibBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_KasibBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_KasibBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_KasibBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_KasibBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Kasib[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_HabanBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_HabanBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_HabanBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_HabanBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_HabanBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_HabanBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_HabanBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Haban[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_2};
static const struct SpriteFrameImage sPicTable_ColburBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_ColburBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_ColburBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_ColburBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_ColburBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_ColburBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_ColburBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Colbur[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4};
static const struct SpriteFrameImage sPicTable_RoseliBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RoseliBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RoseliBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RoseliBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RoseliBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RoseliBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RoseliBerryTree, 2, 4, 5)
};
const u16 gBerryTreePaletteTagTable_Roseli[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
#endif
static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Liechi[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Lansat[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NPC_1};
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
const struct SpriteFrameImage sPicTable_MicleBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Micle[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_3};
const struct SpriteFrameImage sPicTable_CustapBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Custap[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4};
const struct SpriteFrameImage sPicTable_JabocaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Jaboca[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4};
const struct SpriteFrameImage sPicTable_RowapBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 5),
};
const u16 gBerryTreePaletteTagTable_Rowap[] = {OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NPC_4};
#endif
const u16 gDeadBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES};
const u16 gBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES};
const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = {
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = sPicTable_CheriBerryTree,
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = sPicTable_ChestoBerryTree,
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PechaBerryTree,
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = sPicTable_RawstBerryTree,
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_AspearBerryTree,
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_LeppaBerryTree,
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_OranBerryTree,
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = sPicTable_PersimBerryTree,
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = sPicTable_LumBerryTree,
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = sPicTable_SitrusBerryTree,
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = sPicTable_FigyBerryTree,
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = sPicTable_WikiBerryTree,
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree,
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree,
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree,
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree,
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree,
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree,
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = sPicTable_KelpsyBerryTree,
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree,
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = sPicTable_TamatoBerryTree,
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree,
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_NomelBerryTree,
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = sPicTable_SpelonBerryTree,
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = sPicTable_PamtreBerryTree,
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree,
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] = sPicTable_OccaBerryTree,
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] = sPicTable_TamatoBerryTree,
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] = sPicTable_YacheBerryTree,
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] = sPicTable_ChopleBerryTree,
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] = sPicTable_KebiaBerryTree,
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] = sPicTable_ShucaBerryTree,
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] = sPicTable_RawstBerryTree,
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PayapaBerryTree,
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] = sPicTable_TangaBerryTree,
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LansatBerryTree,
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] = sPicTable_KasibBerryTree,
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_HabanBerryTree,
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] = sPicTable_ColburBerryTree,
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LiechiBerryTree,
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = sPicTable_RoseliBerryTree,
#endif
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LiechiBerryTree,
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree,
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = sPicTable_LansatBerryTree,
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = sPicTable_MicleBerryTree,
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_CustapBerryTree,
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = sPicTable_JabocaBerryTree,
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_RowapBerryTree,
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = sPicTable_PechaBerryTree,
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = sPicTable_OccaBerryTree,
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
#else
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
#endif
};
const u16 *const gBerryTreePaletteTagTablePointers[] = {
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Cheri,
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Chesto,
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Pecha,
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Rawst,
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Aspear,
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Leppa,
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Oran,
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Persim,
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Lum,
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Sitrus,
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Figy,
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Wiki,
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Mago,
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Aguav,
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Iapapa,
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Razz,
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Razz,
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Mago,
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Wepear,
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Iapapa,
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Pomeg,
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Kelpsy,
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Wepear,
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Hondew,
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Grepa,
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Tamato,
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Cornn,
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Pomeg,
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Rabuta,
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Nomel,
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Spelon,
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Pamtre,
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Rabuta,
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Durin,
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Hondew,
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Grepa,
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Occa,
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Cornn,
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Razz,
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Tamato,
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Yache,
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Chople,
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Kebia,
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Shuca,
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Rawst,
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Payapa,
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Tanga,
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Lansat,
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Kasib,
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Haban,
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Colbur,
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Liechi,
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Roseli,
#endif
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Liechi,
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Hondew,
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Aguav,
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Pomeg,
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Grepa,
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Lansat,
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Cornn,
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Micle,
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Custap,
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Jaboca,
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Rowap,
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Pecha,
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Occa,
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Durin,
#else
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteTagTable_Durin,
#endif
};
const u16 *const gBerryTreeObjectEventGraphicsIdTablePointers[] = {
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
#endif
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
#if defined(RHH_EXPANSION) || defined(ITEM_EXPANSION)
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
#else
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
#endif
};
13. src\event_object_movement.c
#include "field_player_avatar.h"
+ #include "field_weather.h"
#include "fieldmap.h"
- static EWRAM_DATA u8 sCurrentReflectionType = 0;
- static EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0;
static EWRAM_DATA struct LockedAnimObjectEvents *sLockedAnimObjectEvents = {0};
const struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
- static void LoadObjectEventPalette(u16);
static void RemoveObjectEventIfOutsideView(struct ObjectEvent *);
DELETE ENTIRE SECTION
- const u8 gReflectionEffectPaletteMap[16] = {
- [PALSLOT_PLAYER] = PALSLOT_PLAYER_REFLECTION,
- [PALSLOT_PLAYER_REFLECTION] = PALSLOT_PLAYER_REFLECTION,
- [PALSLOT_NPC_1] = PALSLOT_NPC_1_REFLECTION,
- [PALSLOT_NPC_2] = PALSLOT_NPC_2_REFLECTION,
- [PALSLOT_NPC_3] = PALSLOT_NPC_3_REFLECTION,
- [PALSLOT_NPC_4] = PALSLOT_NPC_4_REFLECTION,
- [PALSLOT_NPC_1_REFLECTION] = PALSLOT_NPC_1_REFLECTION,
- [PALSLOT_NPC_2_REFLECTION] = PALSLOT_NPC_2_REFLECTION,
- [PALSLOT_NPC_3_REFLECTION] = PALSLOT_NPC_3_REFLECTION,
- [PALSLOT_NPC_4_REFLECTION] = PALSLOT_NPC_4_REFLECTION,
- [PALSLOT_NPC_SPECIAL] = PALSLOT_NPC_SPECIAL_REFLECTION,
- [PALSLOT_NPC_SPECIAL_REFLECTION] = PALSLOT_NPC_SPECIAL_REFLECTION
-};
-
after
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
- #include "data/object_events/object_event_graphics_info_pointers.h"
#include "data/field_effects/field_effect_object_template_pointers.h"
#include "data/object_events/object_event_pic_tables.h"
#include "data/object_events/object_event_anims.h"
#include "data/object_events/base_oam.h"
#include "data/object_events/object_event_subsprites.h"
#include "data/object_events/object_event_graphics_info.h"
+ #include "data/object_events/object_event_graphics_info_pointers.h"
DELETE WHOLE SECTIONS FOR THE FOLLOWING:
- static const u16 sReflectionPaletteTags_Brendan[] = {
- static const u16 sReflectionPaletteTags_May[] = {
- static const u16 sReflectionPaletteTags_PlayerUnderwater[] = {
- static const struct PairedPalettes sPlayerReflectionPaletteSets[] = {
- static const u16 sReflectionPaletteTags_QuintyPlump[] = {
- static const u16 sReflectionPaletteTags_Truck[] = {
- static const u16 sReflectionPaletteTags_VigorothMover[] = {
- static const u16 sReflectionPaletteTags_MovingBox[] = {
- static const u16 sReflectionPaletteTags_CableCar[] = {
- static const u16 sReflectionPaletteTags_SSTidal[] = {
- static const u16 sReflectionPaletteTags_SubmarineShadow[] = {
- static const u16 sReflectionPaletteTags_Kyogre[] = {
- static const u16 sReflectionPaletteTags_Groudon[] = {
- static const u16 sReflectionPaletteTags_Npc3[] = { // Only used by the Route 120 bridge Kecleon
- static const u16 sReflectionPaletteTags_RedLeaf[] = {
- static const struct PairedPalettes sSpecialObjectReflectionPaletteSets[] = {
- static const u16 sObjectPaletteTags0[] = {
- static const u16 sObjectPaletteTags1[] = {
- static const u16 sObjectPaletteTags2[] = {
- static const u16 sObjectPaletteTags3[] = {
- static const u16 *const sObjectPaletteTagSets[] = {
static void RemoveObjectEventInternal(struct ObjectEvent *objectEvent)
{
+ u8 paletteNum;
+
struct SpriteFrameImage image;
image.size = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->size;
gSprites[objectEvent->spriteId].images = ℑ
+ paletteNum = gSprites[objectEvent->spriteId].oam.paletteNum;
DestroySprite(&gSprites[objectEvent->spriteId]);
+ FieldEffectFreePaletteIfUnused(paletteNum);
}
in section: static u8 TrySetupObjectEventSprite(const struct ObjectEventTemplate *objectEven
objectEvent = &gObjectEvents[objectEventId];
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
paletteSlot = graphicsInfo->paletteSlot;
- if (paletteSlot == PALSLOT_PLAYER)
- {
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteSlot);
- }
- else if (paletteSlot == PALSLOT_NPC_SPECIAL)
+ if (spriteTemplate->paletteTag != 0xFFFF)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteSlot);
- }
- else if (paletteSlot >= 16)
- {
- paletteSlot -= 16;
- _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot);
+ LoadObjectEventPalette(spriteTemplate->paletteTag);
+ UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate->paletteTag), GAMMA_ALT);
}
if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE)
objectEvent->invisible = TRUE;
- *(u16 *)&spriteTemplate->paletteTag = TAG_NONE;
spriteId = CreateSprite(spriteTemplate, 0, 0, 0);
if (spriteId == MAX_SPRITES)
{
gObjectEvents[objectEventId].active = FALSE;
return OBJECT_EVENTS_COUNT;
}
sprite = &gSprites[spriteId];
GetMapCoordsFromSpritePos(objectEvent->currentCoords.x + cameraX, objectEvent->currentCoords.y + cameraY, &sprite->x, &sprite->y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
sprite->x += 8;
sprite->y += 16 + sprite->centerToCornerVecY;
- sprite->oam.paletteNum = paletteSlot;
+ sprite->oam.paletteNum = IndexOfSpritePaletteTag(spriteTemplate->paletteTag);
sprite->coordOffsetEnabled = TRUE;
in section: CreateVirtualObject(u16 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevati
CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, SpriteCB_VirtualObject, &spriteTemplate, &subspriteTables);
- *(u16 *)&spriteTemplate.paletteTag = TAG_NONE;
+ if (spriteTemplate.paletteTag != 0xFFFF)
+ {
+ LoadObjectEventPalette(spriteTemplate.paletteTag);
+ UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate.paletteTag), GAMMA_ALT);
+ }
x += MAP_OFFSET;
y += MAP_OFFSET;
SetSpritePosToOffsetMapCoords(&x, &y, 8, 16);
spriteId = CreateSpriteAtEnd(&spriteTemplate, x, y, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
sprite->y += sprite->centerToCornerVecY;
- sprite->oam.paletteNum = graphicsInfo->paletteSlot;
- if (sprite->oam.paletteNum >= 16)
- sprite->oam.paletteNum -= 16;
-
+ sprite->oam.paletteNum = IndexOfSpritePaletteTag(spriteTemplate.paletteTag);
sprite->coordOffsetEnabled = TRUE;
sprite->sVirtualObjId = virtualObjId;
sprite->sVirtualObjElev = elevation;
- if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL)
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
- else if (graphicsInfo->paletteSlot >= 16)
- _PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot | 0xf0);
-
if (subspriteTables != NULL)
in section: static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y)
spriteFrameImage.size = graphicsInfo->size;
CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables);
spriteTemplate.images = &spriteFrameImage;
-
- *(u16 *)&spriteTemplate.paletteTag = TAG_NONE;
- paletteSlot = graphicsInfo->paletteSlot;
- if (paletteSlot == PALSLOT_PLAYER)
+ if (spriteTemplate.paletteTag != 0xFFFF)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
+ LoadObjectEventPalette(spriteTemplate.paletteTag);
+ UpdatePaletteGammaType(IndexOfSpritePaletteTag(spriteTemplate.paletteTag), GAMMA_ALT);
}
- else if (paletteSlot == PALSLOT_NPC_SPECIAL)
- {
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
- }
- else if (paletteSlot >= 16)
- {
- paletteSlot -= 16;
- _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot);
- }
- *(u16 *)&spriteTemplate.paletteTag = TAG_NONE;
i = CreateSprite(&spriteTemplate, 0, 0, 0);
if (i != MAX_SPRITES)
{
sprite = &gSprites[i];
GetMapCoordsFromSpritePos(x + objectEvent->currentCoords.x, y + objectEvent->currentCoords.y, &sprite->x, &sprite->y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
sprite->x += 8;
sprite->y += 16 + sprite->centerToCornerVecY;
sprite->images = graphicsInfo->images;
if (objectEvent->movementType == MOVEMENT_TYPE_PLAYER)
{
SetPlayerAvatarObjectEventIdAndObjectId(objectEventId, i);
objectEvent->warpArrowSpriteId = CreateWarpArrowSprite();
}
if (subspriteTables != NULL)
SetSubspriteTables(sprite, subspriteTables);
- sprite->oam.paletteNum = paletteSlot;
+ sprite->oam.paletteNum = IndexOfSpritePaletteTag(spriteTemplate.paletteTag);
sprite->coordOffsetEnabled = TRUE;
____________________
in section: `void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u16 graphicsId)`
sprite = &gSprites[objectEvent->spriteId];
- paletteSlot = graphicsInfo->paletteSlot;
- if (paletteSlot == PALSLOT_PLAYER)
- {
-
PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - }
- else if (paletteSlot == PALSLOT_NPC_SPECIAL)
- {
-
LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - }
- else if (paletteSlot >= 16)
- if (graphicsInfo->paletteTag != 0xFFFF) {
-
paletteSlot -= 16; -
_PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot);
-
LoadObjectEventPalette(graphicsInfo->paletteTag); -
} sprite->oam.shape = graphicsInfo->oam->shape; sprite->oam.size = graphicsInfo->oam->size; sprite->images = graphicsInfo->images; sprite->anims = graphicsInfo->anims; sprite->subspriteTables = graphicsInfo->subspriteTables;UpdatePaletteGammaType(IndexOfSpritePaletteTag(graphicsInfo->paletteTag), GAMMA_ALT);
- sprite->oam.paletteNum = paletteSlot;
- sprite->oam.paletteNum = IndexOfSpritePaletteTag(graphicsInfo->paletteTag); objectEvent->inanimate = graphicsInfo->inanimate;
____________________
in section: `static void SetBerryTreeGraphics(struct ObjectEvent *objectEvent, struct Sprite`
if (berryId > ITEM_TO_BERRY(LAST_BERRY_INDEX))
berryId = 0;
-
LoadObjectEventPalette(gBerryTreePaletteTagTablePointers[berryId][berryStage]); ObjectEventSetGraphicsId(objectEvent, gBerryTreeObjectEventGraphicsIdTablePointers[berryId][berryStage]); sprite->images = gBerryTreePicTablePointers[berryId];
-
sprite->oam.paletteNum = gBerryTreePaletteSlotTablePointers[berryId][berryStage];
-
sprite->oam.paletteNum = IndexOfSpritePaletteTag(gBerryTreePaletteTagTablePointers[berryId][berryStage]); -
UpdatePaletteGammaType(sprite->oam.paletteNum, GAMMA_ALT); StartSpriteAnim(sprite, berryStage);
____________________
in section: `void FreeAndReserveObjectSpritePalettes(void)`
gReservedSpritePaletteCount = OBJ_PALSLOT_COUNT;
}
- static void LoadObjectEventPalette(u16 paletteTag)
- void LoadObjectEventPalette(u16 paletteTag) { u16 i = FindObjectEventPaletteIndexByTag(paletteTag);
____________________
in section: `static u8 FindObjectEventPaletteIndexByTag(u16 tag)`
DELETE WHOLE SECTION FOR THESE TWO
- void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot)
- void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot)
static void _PatchObjectPalette(u16 tag, u8 slot)
____________________
in section: `void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup`
DELETE WHOLE SECTION FOR THESE TWO
- void InitObjectEventPalettes(u8 reflectionType)
- u16 GetObjectPaletteTag(u8 palSlot)
movement_type_empty_callback(MovementType_None) movement_type_def(MovementType_WanderAround, gMovementTypeFuncs_WanderAround)