FieldObjectSetDirection

This commit is contained in:
scnorton 2017-09-10 17:04:37 -04:00
parent 69a1ff984d
commit b263dcc7cf
2 changed files with 12 additions and 39 deletions

View file

@ -5,45 +5,6 @@
.text
thumb_func_start FieldObjectSetDirection
@ void FieldObjectSetDirection(struct npc_state *fieldObject, u8 direction)
FieldObjectSetDirection: @ 808EFC0
push {r4,lr}
adds r3, r0, 0
lsls r1, 24
lsrs r2, r1, 24
adds r4, r2, 0
ldrb r0, [r3, 0x18]
lsls r0, 28
lsrs r0, 28
adds r1, r3, 0
adds r1, 0x20
strb r0, [r1]
ldrb r0, [r3, 0x1]
lsls r0, 30
cmp r0, 0
blt _0808EFF0
movs r0, 0xF
adds r1, r2, 0
ands r1, r0
ldrb r2, [r3, 0x18]
movs r0, 0x10
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3, 0x18]
_0808EFF0:
lsls r2, r4, 4
ldrb r1, [r3, 0x18]
movs r0, 0xF
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x18]
pop {r4}
pop {r0}
bx r0
thumb_func_end FieldObjectSetDirection
thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap
@ u32 GetFieldObjectScriptPointerByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
GetFieldObjectScriptPointerByLocalIdAndMap: @ 808F004

View file

@ -1478,3 +1478,15 @@ u8 obj_unfreeze(struct Sprite *sprite, s16 x, s16 y, u8 subpriority)
}
return MAX_SPRITES;
}
void FieldObjectSetDirection(struct MapObject *mapObject, u8 direction)
{
s8 d2;
mapObject->mapobj_unk_20 = mapObject->mapobj_unk_18;
if (!mapObject->mapobj_bit_9)
{
d2 = direction;
mapObject->mapobj_unk_18 = d2;
}
mapObject->placeholder18 = direction;
}