mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-06 15:38:11 +01:00
FindFieldObjectPaletteIndexByTag
This commit is contained in:
parent
07b1668623
commit
5a020a47f3
@ -5,47 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start FindFieldObjectPaletteIndexByTag
|
|
||||||
@ u8 FindFieldObjectPaletteIndexByTag(u16 tag)
|
|
||||||
FindFieldObjectPaletteIndexByTag: @ 808E980
|
|
||||||
push {r4-r6,lr}
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r5, r0, 16
|
|
||||||
movs r2, 0
|
|
||||||
ldr r0, =gUnknown_0850BBC8
|
|
||||||
ldrh r1, [r0, 0x4]
|
|
||||||
ldr r3, =0x000011ff
|
|
||||||
adds r4, r0, 0
|
|
||||||
cmp r1, r3
|
|
||||||
beq _0808E9C0
|
|
||||||
adds r6, r4, 0
|
|
||||||
adds r1, r3, 0
|
|
||||||
_0808E998:
|
|
||||||
lsls r0, r2, 3
|
|
||||||
adds r0, r6
|
|
||||||
ldrh r0, [r0, 0x4]
|
|
||||||
cmp r0, r5
|
|
||||||
bne _0808E9B0
|
|
||||||
adds r0, r2, 0
|
|
||||||
b _0808E9C2
|
|
||||||
.pool
|
|
||||||
_0808E9B0:
|
|
||||||
adds r0, r2, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
lsls r0, r2, 3
|
|
||||||
adds r0, r4
|
|
||||||
ldrh r0, [r0, 0x4]
|
|
||||||
cmp r0, r1
|
|
||||||
bne _0808E998
|
|
||||||
_0808E9C0:
|
|
||||||
movs r0, 0xFF
|
|
||||||
_0808E9C2:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end FindFieldObjectPaletteIndexByTag
|
|
||||||
|
|
||||||
thumb_func_start npc_load_two_palettes__no_record
|
thumb_func_start npc_load_two_palettes__no_record
|
||||||
@ void npc_load_two_palettes__no_record(u16 tag, u8 slot)
|
@ void npc_load_two_palettes__no_record(u16 tag, u8 slot)
|
||||||
npc_load_two_palettes__no_record: @ 808E9C8
|
npc_load_two_palettes__no_record: @ 808E9C8
|
||||||
|
@ -39,6 +39,12 @@ void FieldObjectTurn(struct MapObject *, u8);
|
|||||||
void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
|
void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
|
||||||
const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
|
const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
|
||||||
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
|
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
|
||||||
|
void gpu_pal_allocator_reset__manage_upper_four(void);
|
||||||
|
void sub_808E82C(u8, u8, u8, s16, s16);
|
||||||
|
void sub_808E7E4(u8, u8, u8);
|
||||||
|
void sub_808E78C(u8, u8, u8, u8);
|
||||||
|
void sub_808E75C(s16, s16);
|
||||||
|
void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
|
||||||
|
|
||||||
// Exported data declarations
|
// Exported data declarations
|
||||||
|
|
||||||
|
@ -41,8 +41,8 @@ static void RemoveFieldObjectIfOutsideView(struct MapObject *);
|
|||||||
static void sub_808E1B8(u8, s16, s16);
|
static void sub_808E1B8(u8, s16, s16);
|
||||||
static void SetPlayerAvatarFieldObjectIdAndObjectId(u8, u8);
|
static void SetPlayerAvatarFieldObjectIdAndObjectId(u8, u8);
|
||||||
/*static*/ void sub_808E38C(struct MapObject *);
|
/*static*/ void sub_808E38C(struct MapObject *);
|
||||||
/*static*/ u8 sub_808E8F4(const struct SpritePalette *);
|
static u8 sub_808E8F4(const struct SpritePalette *);
|
||||||
/*static*/ u16 FindFieldObjectPaletteIndexByTag(u16);
|
static u8 FindFieldObjectPaletteIndexByTag(u16);
|
||||||
|
|
||||||
// ROM data
|
// ROM data
|
||||||
|
|
||||||
@ -1120,7 +1120,7 @@ static void sub_808E894(u16 paletteTag)
|
|||||||
{
|
{
|
||||||
u16 paletteSlot;
|
u16 paletteSlot;
|
||||||
|
|
||||||
paletteSlot = (u8)FindFieldObjectPaletteIndexByTag(paletteTag);
|
paletteSlot = FindFieldObjectPaletteIndexByTag(paletteTag);
|
||||||
if (paletteSlot != 0x11ff) // always true
|
if (paletteSlot != 0x11ff) // always true
|
||||||
{
|
{
|
||||||
sub_808E8F4(&gUnknown_0850BBC8[paletteSlot]);
|
sub_808E8F4(&gUnknown_0850BBC8[paletteSlot]);
|
||||||
@ -1137,7 +1137,7 @@ void sub_808E8C0(u16 *paletteTags)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_808E8F4(const struct SpritePalette *spritePalette)
|
static u8 sub_808E8F4(const struct SpritePalette *spritePalette)
|
||||||
{
|
{
|
||||||
if (IndexOfSpritePaletteTag(spritePalette->tag) != 0xff)
|
if (IndexOfSpritePaletteTag(spritePalette->tag) != 0xff)
|
||||||
{
|
{
|
||||||
@ -1148,7 +1148,7 @@ u8 sub_808E8F4(const struct SpritePalette *spritePalette)
|
|||||||
|
|
||||||
void pal_patch_for_npc(u16 paletteTag, u8 paletteSlot)
|
void pal_patch_for_npc(u16 paletteTag, u8 paletteSlot)
|
||||||
{
|
{
|
||||||
u8 paletteIdx;
|
u16 paletteIdx;
|
||||||
|
|
||||||
paletteIdx = FindFieldObjectPaletteIndexByTag(paletteTag);
|
paletteIdx = FindFieldObjectPaletteIndexByTag(paletteTag);
|
||||||
LoadPalette(gUnknown_0850BBC8[paletteIdx].data, 16 * paletteSlot + 256, 0x20);
|
LoadPalette(gUnknown_0850BBC8[paletteIdx].data, 16 * paletteSlot + 256, 0x20);
|
||||||
@ -1163,3 +1163,17 @@ void pal_patch_for_npc_range(u16 *paletteTags, u8 minSlot, u8 maxSlot)
|
|||||||
minSlot ++;
|
minSlot ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static u8 FindFieldObjectPaletteIndexByTag(u16 tag)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
|
||||||
|
for (i = 0; gUnknown_0850BBC8[i].tag != 0x11ff; i ++)
|
||||||
|
{
|
||||||
|
if (gUnknown_0850BBC8[i].tag == tag)
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0xff;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user