diff --git a/graphics/object_events/palettes/npc_1.pal b/graphics/object_events/palettes/npc_1.pal new file mode 100644 index 000000000..7bb5bd9ed --- /dev/null +++ b/graphics/object_events/palettes/npc_1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +255 197 148 +222 148 115 +123 65 65 +255 164 180 +213 106 123 +139 65 82 +148 197 246 +90 139 189 +16 49 82 +180 164 98 +123 115 65 +57 57 24 +255 255 255 +0 0 0 diff --git a/graphics/object_events/palettes/npc_1_reflection.pal b/graphics/object_events/palettes/npc_1_reflection.pal new file mode 100644 index 000000000..82c5ff3a1 --- /dev/null +++ b/graphics/object_events/palettes/npc_1_reflection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 172 238 +255 255 255 +255 255 230 +255 230 197 +205 148 148 +255 222 238 +255 197 213 +255 164 180 +205 255 255 +180 230 255 +148 197 246 +213 197 131 +197 180 123 +180 172 123 +255 255 255 +115 131 148 diff --git a/graphics/object_events/palettes/npc_2.pal b/graphics/object_events/palettes/npc_2.pal new file mode 100644 index 000000000..558095bda --- /dev/null +++ b/graphics/object_events/palettes/npc_2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +255 197 148 +222 148 115 +123 65 65 +255 213 32 +222 156 16 +106 57 8 +230 82 98 +197 0 49 +98 0 24 +156 98 74 +106 49 49 +49 0 24 +255 255 255 +0 0 0 diff --git a/graphics/object_events/palettes/npc_2_reflection.pal b/graphics/object_events/palettes/npc_2_reflection.pal new file mode 100644 index 000000000..72ae3cefb --- /dev/null +++ b/graphics/object_events/palettes/npc_2_reflection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 172 238 +255 255 255 +255 255 230 +255 230 197 +205 148 148 +255 255 90 +255 238 65 +213 197 57 +255 139 156 +246 115 131 +230 82 98 +213 156 131 +189 131 106 +156 98 74 +255 255 255 +115 131 148 diff --git a/graphics/object_events/palettes/npc_4.pal b/graphics/object_events/palettes/npc_4.pal new file mode 100644 index 000000000..6c53450ba --- /dev/null +++ b/graphics/object_events/palettes/npc_4.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 213 180 +255 197 148 +222 148 115 +123 65 65 +106 139 172 +57 74 98 +8 16 32 +213 115 164 +164 65 115 +82 32 65 +213 213 213 +139 139 148 +65 65 82 +255 255 255 +0 0 0 diff --git a/graphics/object_events/palettes/npc_4_reflection.pal b/graphics/object_events/palettes/npc_4_reflection.pal new file mode 100644 index 000000000..0e604b73c --- /dev/null +++ b/graphics/object_events/palettes/npc_4_reflection.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 172 238 +255 255 255 +255 255 230 +255 230 197 +205 148 148 +156 172 222 +139 156 197 +123 139 172 +255 156 213 +230 131 189 +213 115 164 +189 189 189 +164 164 164 +139 139 148 +255 255 255 +115 131 148 diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 2ff23dbd4..101d4d592 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -259,8 +259,11 @@ #define OBJ_EVENT_PAL_TAG_RS_GROUDON 0x1119 #define OBJ_EVENT_PAL_TAG_RS_GROUDON_REFLECTION 0x111A #define OBJ_EVENT_PAL_TAG_RS_SUBMARINE_SHADOW 0x111B -#define OBJ_EVENT_PAL_TAG_NPC_3 0x111C // pokeball from expansion -#define OBJ_EVENT_PAL_TAG_DYNAMIC 0x111D +#define OBJ_EVENT_PAL_TAG_NPC_1 0x111C // emerald +#define OBJ_EVENT_PAL_TAG_NPC_2 0x111D // emerald +#define OBJ_EVENT_PAL_TAG_NPC_3 0x111E // emerald +#define OBJ_EVENT_PAL_TAG_NPC_4 0x111F // emerald +#define OBJ_EVENT_PAL_TAG_DYNAMIC 0x1120 #if OW_FOLLOWERS_POKEBALLS // Vanilla diff --git a/include/field_effect.h b/include/field_effect.h index a7641f5dc..4a845626a 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -43,7 +43,7 @@ extern const struct SpriteTemplate gFieldEffectObjectTemplate_UnusedSand; extern const struct SpriteTemplate gFieldEffectObjectTemplate_WaterSurfacing; extern const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion; extern const struct SpriteTemplate gFieldEffectObjectTemplate_DeepSandFootprints; -/*extern const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle;*/ +extern const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle; extern const struct SpriteTemplate gFieldEffectObjectTemplate_TreeDisguise; extern const struct SpriteTemplate gFieldEffectObjectTemplate_MountainDisguise; extern const struct SpriteTemplate gFieldEffectObjectTemplate_Bird; diff --git a/src/data/field_effects/field_effect_objects.h b/src/data/field_effects/field_effect_objects.h index aa4e327fc..61fdc197f 100644 --- a/src/data/field_effects/field_effect_objects.h +++ b/src/data/field_effects/field_effect_objects.h @@ -1060,7 +1060,6 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_ReflectionDistortion = .callback = SpriteCallbackDummy, }; -/* static const struct SpriteFrameImage sPicTable_Sparkle[] = { overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 0), overworld_frame(gFieldEffectObjectPic_Sparkle, 2, 2, 1), @@ -1101,15 +1100,14 @@ static const union AnimCmd *const sAnimTable_Sparkle[] = }; const struct SpriteTemplate gFieldEffectObjectTemplate_Sparkle = { - .tileTag = 0xFFFF, - .paletteTag = 0xFFFF, + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_2, .oam = &gObjectEventBaseOam_16x16, .anims = sAnimTable_Sparkle, .images = sPicTable_Sparkle, .affineAnims = gDummySpriteAffineAnimTable, .callback = WaitFieldEffectSpriteAnim, }; -*/ static const struct SpriteFrameImage sPicTable_TreeDisguise[] = { diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index cdbd4e633..35f72f7bd 100644 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -49,6 +49,10 @@ const u16 gObjectEventPal_NpcBlue[] = INCBIN_U16("graphics/object_events/palette const u16 gObjectEventPal_NpcPink[] = INCBIN_U16("graphics/object_events/palettes/npc_pink.gbapal"); const u16 gObjectEventPal_NpcGreen[] = INCBIN_U16("graphics/object_events/palettes/npc_green.gbapal"); const u16 gObjectEventPal_NpcWhite[] = INCBIN_U16("graphics/object_events/palettes/npc_white.gbapal"); +const u16 gObjectEventPal_Npc1[] = INCBIN_U16("graphics/object_events/palettes/npc_1.gbapal"); +const u16 gObjectEventPal_Npc2[] = INCBIN_U16("graphics/object_events/palettes/npc_2.gbapal"); +const u16 gObjectEventPal_Npc3[] = INCBIN_U16("graphics/object_events/palettes/npc_3.gbapal"); +const u16 gObjectEventPal_Npc4[] = INCBIN_U16("graphics/object_events/palettes/npc_4.gbapal"); const u16 gObjectEventPal_NpcBlueReflection[] = INCBIN_U16("graphics/object_events/palettes/npc_blue_reflection.gbapal"); const u16 gObjectEventPal_NpcPinkReflection[] = INCBIN_U16("graphics/object_events/palettes/npc_pink_reflection.gbapal"); const u16 gObjectEventPal_NpcGreenReflection[] = INCBIN_U16("graphics/object_events/palettes/npc_green_reflection.gbapal"); @@ -245,7 +249,6 @@ const u16 gFieldEffectObjectPic_Bird[] = INCBIN_U16("graphics/field_effects/pics const u16 gObjectEventPal_Substitute[] = INCBIN_U16("graphics/pokemon/question_mark/overworld.gbapal"); const u16 gObjectEventPaletteEmotes[] = INCBIN_U16("graphics/misc/emotes.gbapal"); -const u16 gObjectEventPal_Npc3[] = INCBIN_U16("graphics/object_events/palettes/npc_3.gbapal"); // berry trees const u32 gFieldEffectObjectPic_Sparkle[] = INCBIN_U32("graphics/field_effects/pics/sparkle.4bpp"); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 0b5e793f3..9d8cb9a63 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -484,6 +484,10 @@ static const u8 gInitialMovementTypeFacingDirections[MOVEMENT_TYPES_COUNT] = { #include "data/object_events/object_event_graphics_info_followers.h" static const struct SpritePalette sObjectEventSpritePalettes[] = { + {gObjectEventPal_Npc1, OBJ_EVENT_PAL_TAG_NPC_1}, + {gObjectEventPal_Npc2, OBJ_EVENT_PAL_TAG_NPC_2}, + {gObjectEventPal_Npc3, OBJ_EVENT_PAL_TAG_NPC_3}, + {gObjectEventPal_Npc4, OBJ_EVENT_PAL_TAG_NPC_4}, {gObjectEventPal_NpcBlue, OBJ_EVENT_PAL_TAG_NPC_BLUE}, {gObjectEventPal_NpcPink, OBJ_EVENT_PAL_TAG_NPC_PINK}, {gObjectEventPal_NpcGreen, OBJ_EVENT_PAL_TAG_NPC_GREEN}, @@ -536,7 +540,6 @@ static const struct SpritePalette sObjectEventSpritePalettes[] = { #endif //OW_FOLLOWERS_POKEBALLS {gObjectEventPal_Substitute, OBJ_EVENT_PAL_TAG_SUBSTITUTE}, {gObjectEventPaletteEmotes, OBJ_EVENT_PAL_TAG_EMOTES}, - {gObjectEventPal_Npc3, OBJ_EVENT_PAL_TAG_NPC_3}, #ifdef BUGFIX {NULL, OBJ_EVENT_PAL_TAG_NONE}, #else diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 3a2fb36d4..3274166cb 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -1508,19 +1508,18 @@ void UpdateBubblesFieldEffect(struct Sprite *sprite) u32 FldEff_BerryTreeGrowthSparkle(void) { - /*u8 spriteId; - struct Sprite *sprite; + u8 spriteId; SetSpritePosToOffsetMapCoords((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4); spriteId = CreateSpriteAtEnd(&gFieldEffectObjectTemplate_Sparkle, gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); if (spriteId != MAX_SPRITES) { - sprite = &gSprites[spriteId]; + struct Sprite *sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gFieldEffectArguments[3]; - sprite->oam.paletteNum = 5; - sprite->data[0] = FLDEFF_BERRY_TREE_GROWTH_SPARKLE; - }*/ + UpdateSpritePaletteByTemplate(&gFieldEffectObjectTemplate_Sparkle, sprite); + sprite->sWaitFldEff = FLDEFF_BERRY_TREE_GROWTH_SPARKLE; + } return 0; }