Three-direction get-running-past-facing callbacks
This commit is contained in:
parent
6b906d95b9
commit
c1f5183f40
2 changed files with 48 additions and 132 deletions
|
@ -5,138 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_808F7CC
|
||||
sub_808F7CC: @ 808F7CC
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 16
|
||||
asrs r6, r1, 16
|
||||
lsls r2, 16
|
||||
asrs r5, r2, 16
|
||||
lsls r3, 16
|
||||
asrs r4, r3, 16
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetRegularRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x4
|
||||
bne _0808F802
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetNorthSouthRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_0808F802:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_808F7CC
|
||||
|
||||
thumb_func_start sub_808F808
|
||||
sub_808F808: @ 808F808
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 16
|
||||
asrs r6, r1, 16
|
||||
lsls r2, 16
|
||||
asrs r5, r2, 16
|
||||
lsls r3, 16
|
||||
asrs r4, r3, 16
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetRegularRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x3
|
||||
bne _0808F83E
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetNorthSouthRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_0808F83E:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_808F808
|
||||
|
||||
thumb_func_start sub_808F844
|
||||
sub_808F844: @ 808F844
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 16
|
||||
asrs r6, r1, 16
|
||||
lsls r2, 16
|
||||
asrs r5, r2, 16
|
||||
lsls r3, 16
|
||||
asrs r4, r3, 16
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetRegularRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0808F87A
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetEastWestRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_0808F87A:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_808F844
|
||||
|
||||
thumb_func_start sub_808F880
|
||||
sub_808F880: @ 808F880
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r7, r0, 16
|
||||
lsls r1, 16
|
||||
asrs r6, r1, 16
|
||||
lsls r2, 16
|
||||
asrs r5, r2, 16
|
||||
lsls r3, 16
|
||||
asrs r4, r3, 16
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetRegularRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
bne _0808F8B6
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl GetEastWestRunningPastFacingDirection
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_0808F8B6:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_808F880
|
||||
|
||||
thumb_func_start sub_808F8BC
|
||||
sub_808F8BC: @ 808F8BC
|
||||
push {r4-r6,lr}
|
||||
|
|
|
@ -1975,3 +1975,51 @@ u8 GetSouthWestRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
|
|||
}
|
||||
return direction;
|
||||
}
|
||||
|
||||
u8 GetNonEastRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
|
||||
{
|
||||
u8 direction;
|
||||
|
||||
direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_EAST)
|
||||
{
|
||||
direction = GetNorthSouthRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
}
|
||||
return direction;
|
||||
}
|
||||
|
||||
u8 GetNonWestRunningPastFacingDirection(s16 dx1, s16 dy1, s16 dx2, s16 dy2)
|
||||
{
|
||||
u8 direction;
|
||||
|
||||
direction = GetRegularRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
if (direction == DIR_WEST)
|
||||
{
|
||||
direction = GetNorthSouthRunningPastFacingDirection(dx1, dy1, dx2, dy2);
|
||||
}
|
||||
return direction;
|
||||
}
|
||||
|
||||
u8 GetNonSouthRunningPastFacingDirection(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);
|
||||
}
|
||||
return direction;
|
||||
}
|
||||
|
||||
u8 GetNonNorthRunningPastFacingDirection(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);
|
||||
}
|
||||
return direction;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue