summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/field_map_obj.s18
-rw-r--r--data/data3.s7
-rw-r--r--src/field_map_obj.c12
3 files changed, 16 insertions, 21 deletions
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);
+}