summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/field_map_obj.s44
-rw-r--r--src/field_map_obj.c15
2 files changed, 15 insertions, 44 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 27e136350..2eac13c30 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,50 +5,6 @@
.text
- thumb_func_start sub_808E78C
-sub_808E78C: @ 808E78C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E7D2
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- ldr r0, =gMapObjects
- adds r2, r0
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrb r1, [r2, 0x3]
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x3]
- adds r0, 0x43
- strb r4, [r0]
-_0808E7D2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E78C
-
thumb_func_start sub_808E7E4
sub_808E7E4: @ 808E7E4
push {lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index ac4f85a47..a4d7e4097 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1064,3 +1064,18 @@ void sub_808E75C(s16 x, s16 y)
mapObject->mapobj_bit_2 = TRUE;
}
}
+
+void sub_808E78C(u8 localId, u8 mapNum, u8 mapGroup, u8 subpriority)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ struct Sprite *sprite;
+
+ if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
+ {
+ mapObject = &gMapObjects[mapObjectId];
+ sprite = &gSprites[mapObject->spriteId];
+ mapObject->mapobj_bit_26 = TRUE;
+ sprite->subpriority = subpriority;
+ }
+}