diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-06 22:00:51 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-06 22:00:51 -0400 |
commit | 22c836795669b9c7d2d244dc4f0becaabfe6a198 (patch) | |
tree | 48805093417827882ed2bfe332a10ff99b109443 | |
parent | bd4b3c4c6da148415e8c5ebeb8c72455776a5f19 (diff) |
SpawnSpecialFieldObject
-rw-r--r-- | asm/field_map_obj.s | 32 | ||||
-rw-r--r-- | src/field_map_obj.c | 10 |
2 files changed, 10 insertions, 32 deletions
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s index 600997c7f..213af130e 100644 --- a/asm/field_map_obj.s +++ b/asm/field_map_obj.s @@ -5,38 +5,6 @@ .text - thumb_func_start SpawnSpecialFieldObject -@ u8 SpawnSpecialFieldObject(struct FieldObjectTemplate *romFieldObject) -SpawnSpecialFieldObject: @ 808DC08 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl GetFieldObjectMovingCameraOffset - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - add r0, sp, 0x4 - movs r6, 0 - ldrsh r3, [r0, r6] - movs r6, 0 - ldrsh r0, [r4, r6] - str r0, [sp] - adds r0, r5, 0 - bl SpawnFieldObject - lsls r0, 24 - lsrs r0, 24 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end SpawnSpecialFieldObject - thumb_func_start SpawnSpecialFieldObjectParametrized @ u8 SpawnSpecialFieldObjectParametrized(u8 graphicsId, u8 movementBehavior, u8 localId, u16 x, u16 y, u8 z) SpawnSpecialFieldObjectParametrized: @ 808DC44 diff --git a/src/field_map_obj.c b/src/field_map_obj.c index 8b78a54a1..9c25e148a 100644 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -26,6 +26,7 @@ static void RemoveFieldObjectInternal (struct MapObject *); /*static*/ const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8); void sub_8096518(struct MapObject *, struct Sprite *); /*static*/ void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *, struct SpriteTemplate *, const struct SubspriteTable **); +/*static*/ void GetFieldObjectMovingCameraOffset(s16 *, s16 *); // ROM data @@ -545,3 +546,12 @@ u8 SpawnFieldObject(struct MapObjectTemplate *mapObjectTemplate, u8 mapNum, u8 m } return mapObjectId; } + +u8 SpawnSpecialFieldObject(struct MapObjectTemplate *mapObjectTemplate) +{ + s16 cameraX; + s16 cameraY; + + GetFieldObjectMovingCameraOffset(&cameraX, &cameraY); + return SpawnFieldObject(mapObjectTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); +} |