mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-03-19 03:58:33 +01:00
RemoveFieldObjectIfOutsideView
This commit is contained in:
parent
341a4735bc
commit
44be18e1df
@ -5,75 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start RemoveFieldObjectIfOutsideView
|
|
||||||
@ void RemoveFieldObjectIfOutsideView(npc_state *fieldObject)
|
|
||||||
RemoveFieldObjectIfOutsideView: @ 808E0EC
|
|
||||||
push {r4-r7,lr}
|
|
||||||
adds r3, r0, 0
|
|
||||||
ldr r0, =gSaveBlock1Ptr
|
|
||||||
ldr r2, [r0]
|
|
||||||
ldrh r0, [r2]
|
|
||||||
subs r1, r0, 0x2
|
|
||||||
lsls r1, 16
|
|
||||||
adds r0, 0x11
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r5, r0, 16
|
|
||||||
ldrh r4, [r2, 0x2]
|
|
||||||
adds r0, r4, 0
|
|
||||||
adds r0, 0x10
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r6, r0, 16
|
|
||||||
movs r0, 0x10
|
|
||||||
ldrsh r2, [r3, r0]
|
|
||||||
lsrs r7, r1, 16
|
|
||||||
asrs r1, 16
|
|
||||||
cmp r2, r1
|
|
||||||
blt _0808E132
|
|
||||||
lsls r0, r5, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r2, r0
|
|
||||||
bgt _0808E132
|
|
||||||
movs r0, 0x12
|
|
||||||
ldrsh r1, [r3, r0]
|
|
||||||
lsls r0, r4, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r1, r0
|
|
||||||
blt _0808E132
|
|
||||||
lsls r0, r6, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r1, r0
|
|
||||||
ble _0808E160
|
|
||||||
_0808E132:
|
|
||||||
movs r0, 0xC
|
|
||||||
ldrsh r1, [r3, r0]
|
|
||||||
lsls r0, r7, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r1, r0
|
|
||||||
blt _0808E15A
|
|
||||||
lsls r0, r5, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r1, r0
|
|
||||||
bgt _0808E15A
|
|
||||||
movs r0, 0xE
|
|
||||||
ldrsh r1, [r3, r0]
|
|
||||||
lsls r0, r4, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r1, r0
|
|
||||||
blt _0808E15A
|
|
||||||
lsls r0, r6, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r1, r0
|
|
||||||
ble _0808E160
|
|
||||||
_0808E15A:
|
|
||||||
adds r0, r3, 0
|
|
||||||
bl RemoveFieldObject
|
|
||||||
_0808E160:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end RemoveFieldObjectIfOutsideView
|
|
||||||
|
|
||||||
thumb_func_start sub_808E16C
|
thumb_func_start sub_808E16C
|
||||||
sub_808E16C: @ 808E16C
|
sub_808E16C: @ 808E16C
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
|
@ -764,3 +764,24 @@ void RemoveFieldObjectsOutsideView(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RemoveFieldObjectIfOutsideView(struct MapObject *mapObject)
|
||||||
|
{
|
||||||
|
s16 left;
|
||||||
|
s16 right;
|
||||||
|
s16 top;
|
||||||
|
s16 bottom;
|
||||||
|
|
||||||
|
left = gSaveBlock1Ptr->pos.x - 2;
|
||||||
|
right = gSaveBlock1Ptr->pos.x + 17;
|
||||||
|
top = gSaveBlock1Ptr->pos.y;
|
||||||
|
bottom = gSaveBlock1Ptr->pos.y + 16;
|
||||||
|
|
||||||
|
if (mapObject->coords2.x >= left && mapObject->coords2.x <= right
|
||||||
|
&& mapObject->coords2.y >= top && mapObject->coords2.y <= bottom)
|
||||||
|
return;
|
||||||
|
if (mapObject->coords1.x >= left && mapObject->coords1.x <= right
|
||||||
|
&& mapObject->coords1.y >= top && mapObject->coords1.y <= bottom)
|
||||||
|
return;
|
||||||
|
RemoveFieldObject(mapObject);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user