diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index e7740b66c..34578ec5c 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -5,24 +5,6 @@ .text - thumb_func_start MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex -@ void MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables) -MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex: @ 808DD30 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - ldr r4, =gUnknown_08505438 - lsrs r1, 14 - adds r1, r4 - ldr r1, [r1] - bl MakeObjectTemplateFromFieldObjectGraphicsInfo - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex - thumb_func_start MakeObjectTemplateFromFieldObjectTemplate @ void MakeObjectTemplateFromFieldObjectTemplate(struct FieldObjectTemplate *fieldObjectTemplate, struct objtemplate *objectTemplate, SpriteOamTable **spriteOamTables) MakeObjectTemplateFromFieldObjectTemplate: @ 808DD50 diff --git a/data/data3.s b/data/data3.s index ee1ad294a..01f23aa12 100644 --- a/data/data3.s +++ b/data/data3.s @@ -642,6 +642,8 @@ gUnknown_084975B0:: @ 84975B0 gUnknown_084975BC:: @ 84975BC .incbin "baserom.gba", 0x4975bc, 0x8 +// data/field_map_obj.s + gUnknown_084975C4:: @ 84975C4 .incbin "baserom.gba", 0x4975c4, 0x10 @@ -661,8 +663,9 @@ gUnknown_0850557C:: @ 850557C .incbin "baserom.gba", 0x50557c, 0x51 gUnknown_085055CD:: @ 85055CD - .incbin "baserom.gba", 0x5055cd, 0x53 + .incbin "baserom.gba", 0x5055cd, 0x51 + .align 2, 0 @ 8505620 .include "data/graphics/field_objects/field_object_graphics_info_pointers.inc" @@ -1136,6 +1139,8 @@ gUnknown_0850DFBC:: @ 850DFBC gUnknown_0850DFC2:: @ 850DFC2 .incbin "baserom.gba", 0x50dfc2, 0x61a +// end data/field_map_obj.s + gUnknown_0850E5DC:: @ 850E5DC .incbin "baserom.gba", 0x50e5dc, 0x8 diff --git a/src/field_map_obj.c b/src/field_map_obj.c index e6376d156..e3e0b7158 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -10,6 +10,8 @@ #include "field_ground_effect.h" #include "field_map_obj.h" +#define NUM_FIELD_MAP_OBJECT_TEMPLATES 0x51 + // Static struct declarations // Static RAM declarations @@ -31,8 +33,9 @@ void sub_8096518(struct MapObject *, struct Sprite *); // ROM data -const u8 gUnknown_085055CD[0x53]; -const u8 gUnknown_0850557C[0x51]; +void (*const gUnknown_08505438[NUM_FIELD_MAP_OBJECT_TEMPLATES])(struct Sprite *); +const u8 gUnknown_0850557C[NUM_FIELD_MAP_OBJECT_TEMPLATES]; +const u8 gUnknown_085055CD[NUM_FIELD_MAP_OBJECT_TEMPLATES]; // Code @@ -605,3 +608,8 @@ void MakeObjectTemplateFromFieldObjectGraphicsInfo(u16 graphicsId, void (*callba sprTemplate->callback = callback; *subspriteTables = gfxInfo->subspriteTables; } + +void MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables) +{ + MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, gUnknown_08505438[callbackIndex], sprTemplate, subspriteTables); +}