Three more running-past-facing-direction callbacks
This commit is contained in:
parent
a04666e2d3
commit
6b906d95b9
2 changed files with 72 additions and 150 deletions
|
@ -5,156 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_808F6B8
|
||||
sub_808F6B8: @ 808F6B8
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
lsls r1, 16
|
||||
asrs r5, r1, 16
|
||||
lsls r2, 16
|
||||
asrs r6, r2, 16
|
||||
lsls r3, 16
|
||||
asrs r7, r3, 16
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetRegularRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0808F6F4
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetEastWestRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x3
|
||||
bne _0808F70E
|
||||
b _0808F70C
|
||||
_0808F6F4:
|
||||
cmp r0, 0x3
|
||||
bne _0808F70E
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetNorthSouthRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0808F70E
|
||||
_0808F70C:
|
||||
movs r0, 0x2
|
||||
_0808F70E:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_808F6B8
|
||||
|
||||
thumb_func_start sub_808F714
|
||||
sub_808F714: @ 808F714
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
lsls r1, 16
|
||||
asrs r5, r1, 16
|
||||
lsls r2, 16
|
||||
asrs r6, r2, 16
|
||||
lsls r3, 16
|
||||
asrs r7, r3, 16
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetRegularRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
bne _0808F750
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetEastWestRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x4
|
||||
bne _0808F76A
|
||||
b _0808F768
|
||||
_0808F750:
|
||||
cmp r0, 0x4
|
||||
bne _0808F76A
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetNorthSouthRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
bne _0808F76A
|
||||
_0808F768:
|
||||
movs r0, 0x1
|
||||
_0808F76A:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_808F714
|
||||
|
||||
thumb_func_start sub_808F770
|
||||
sub_808F770: @ 808F770
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
lsls r1, 16
|
||||
asrs r5, r1, 16
|
||||
lsls r2, 16
|
||||
asrs r6, r2, 16
|
||||
lsls r3, 16
|
||||
asrs r7, r3, 16
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetRegularRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
bne _0808F7AC
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetEastWestRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x3
|
||||
bne _0808F7C6
|
||||
b _0808F7C4
|
||||
_0808F7AC:
|
||||
cmp r0, 0x3
|
||||
bne _0808F7C6
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r2, r6, 0
|
||||
adds r3, r7, 0
|
||||
bl GetNorthSouthRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
bne _0808F7C6
|
||||
_0808F7C4:
|
||||
movs r0, 0x1
|
||||
_0808F7C6:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_808F770
|
||||
|
||||
thumb_func_start sub_808F7CC
|
||||
sub_808F7CC: @ 808F7CC
|
||||
push {r4-r7,lr}
|
||||
|
|
|
@ -1903,3 +1903,75 @@ u8 GetNorthEastRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
|
|||
}
|
||||
return direction;
|
||||
}
|
||||
|
||||
u8 GetNorthWestRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
|
||||
{
|
||||
u8 direction;
|
||||
|
||||
direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_SOUTH)
|
||||
{
|
||||
direction = GetEastWestRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_WEST)
|
||||
{
|
||||
direction = DIR_NORTH;
|
||||
}
|
||||
}
|
||||
else if (direction == DIR_WEST)
|
||||
{
|
||||
direction = GetNorthSouthRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_SOUTH)
|
||||
{
|
||||
direction = DIR_NORTH;
|
||||
}
|
||||
}
|
||||
return direction;
|
||||
}
|
||||
|
||||
u8 GetSouthEastRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
|
||||
{
|
||||
u8 direction;
|
||||
|
||||
direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_NORTH)
|
||||
{
|
||||
direction = GetEastWestRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_EAST)
|
||||
{
|
||||
direction = DIR_SOUTH;
|
||||
}
|
||||
}
|
||||
else if (direction == DIR_EAST)
|
||||
{
|
||||
direction = GetNorthSouthRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_NORTH)
|
||||
{
|
||||
direction = DIR_SOUTH;
|
||||
}
|
||||
}
|
||||
return direction;
|
||||
}
|
||||
|
||||
u8 GetSouthWestRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
|
||||
{
|
||||
u8 direction;
|
||||
|
||||
direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_NORTH)
|
||||
{
|
||||
direction = GetEastWestRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_WEST)
|
||||
{
|
||||
direction = DIR_SOUTH;
|
||||
}
|
||||
}
|
||||
else if (direction == DIR_WEST)
|
||||
{
|
||||
direction = GetNorthSouthRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_NORTH)
|
||||
{
|
||||
direction = DIR_SOUTH;
|
||||
}
|
||||
}
|
||||
return direction;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue