summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-08 15:08:10 -0400
committerscnorton <scnorton@biociphers.org>2017-09-08 15:08:10 -0400
commitd3edf5642ed0f76f678bb4c566a7c96eaf793fdd (patch)
tree0c92526c4f16ccd8169ba150dbfc7ea5b566daec
parent8ef5d059550cb5d6d21639992e6ce67a9dd327f0 (diff)
sub_808E82C
-rw-r--r--asm/field_map_obj.s43
-rw-r--r--src/field_map_obj.c13
2 files changed, 13 insertions, 43 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 6375fd2a3..bf6d371e8 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,49 +5,6 @@
.text
- thumb_func_start sub_808E82C
-sub_808E82C: @ 808E82C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r4, 16
- lsrs r4, 16
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0808E870
- ldr r2, =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r4, [r0, 0x26]
-_0808E870:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_808E82C
-
thumb_func_start gpu_pal_allocator_reset__manage_upper_four
gpu_pal_allocator_reset__manage_upper_four: @ 808E880
push {lr}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 910a58ffb..5a31881ad 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1092,3 +1092,16 @@ void sub_808E7E4(u8 localId, u8 mapNum, u8 mapGroup)
mapObject->mapobj_bit_2 = TRUE;
}
}
+
+void sub_808E82C(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
+{
+ u8 mapObjectId;
+ struct Sprite *sprite;
+
+ if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
+ {
+ sprite = &gSprites[gMapObjects[mapObjectId].spriteId];
+ sprite->pos2.x = x;
+ sprite->pos2.y = y;
+ }
+}