summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-10 16:32:26 -0400
committerscnorton <scnorton@biociphers.org>2017-09-10 16:32:26 -0400
commit4dfae8b9e450467942b227895853c37043bee401 (patch)
treeb3e248893b4a681b65a7c5f2ec0f45293c6fc7d5
parentc7b1a8c3daa5183f8e522d6d6fcba1ffea79e72f (diff)
FindCameraObject
-rw-r--r--asm/field_map_obj.s40
-rw-r--r--src/field_map_obj.c14
2 files changed, 14 insertions, 40 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 38b328cdc..912d28077 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,46 +5,6 @@
.text
- thumb_func_start FindCameraObject
-@ struct obj *FindCameraObject()
-FindCameraObject: @ 808EE44
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, =gSprites
- adds r5, r4, 0
- adds r5, 0x1C
-_0808EE4E:
- lsls r0, r3, 4
- adds r0, r3
- lsls r1, r0, 2
- adds r2, r1, r4
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0808EE78
- adds r0, r1, r5
- ldr r1, [r0]
- ldr r0, =ObjectCB_CameraObject
- cmp r1, r0
- bne _0808EE78
- adds r0, r2, 0
- b _0808EE84
- .pool
-_0808EE78:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3F
- bls _0808EE4E
- movs r0, 0
-_0808EE84:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FindCameraObject
-
thumb_func_start CameraObjectReset1
@ void CameraObjectReset1()
CameraObjectReset1: @ 808EE8C
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 3fc962336..f600db934 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -1387,3 +1387,17 @@ void ObjectCB_CameraObject(struct Sprite *sprite)
sprite->data2 = 0;
sprite->data3 = 0;
}
+
+/*static*/ struct Sprite *FindCameraObject(void)
+{
+ u8 spriteId;
+
+ for (spriteId = 0; spriteId < MAX_SPRITES; spriteId ++)
+ {
+ if (gSprites[spriteId].inUse && gSprites[spriteId].callback == ObjectCB_CameraObject)
+ {
+ return &gSprites[spriteId];
+ }
+ }
+ return NULL;
+}