diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 6316bd0b7..b6ce802ff 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -5,35 +5,6 @@ .text - thumb_func_start pal_patch_for_npc -@ void pal_patch_for_npc(u16 tag, u8 slot) -pal_patch_for_npc: @ 808E91C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - bl FindFieldObjectPaletteIndexByTag - lsls r0, 24 - ldr r1, =gUnknown_0850BBC8 - lsrs r0, 21 - adds r0, r1 - ldr r0, [r0] - lsls r4, 20 - movs r1, 0x80 - lsls r1, 17 - adds r4, r1 - lsrs r4, 16 - adds r1, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end pal_patch_for_npc - thumb_func_start pal_patch_for_npc_range @ void pal_patch_for_npc_range(u16 *tags, u8 minSlot, u8 maxSlot) pal_patch_for_npc_range: @ 808E954 diff --git a/src/field_map_obj.c b/src/field_map_obj.c index ccc88db15..c8d147e6d 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -6,6 +6,7 @@ #include "rom4.h" #include "data3.h" #include "berry.h" +#include "palette.h" #include "field_player_avatar.h" #include "event_data.h" #include "rom_818CFC8.h" @@ -1144,3 +1145,11 @@ u8 sub_808E8F4(const struct SpritePalette *spritePalette) } return LoadSpritePalette(spritePalette); } + +void pal_patch_for_npc(u16 paletteTag, u8 paletteSlot) +{ + u8 paletteIdx; + + paletteIdx = FindFieldObjectPaletteIndexByTag(paletteTag); + LoadPalette(gUnknown_0850BBC8[paletteIdx].data, 16 * paletteSlot + 256, 0x20); +}