Merge pull request #385 from hatal175/PlayerBounceUpdate

This commit is contained in:
notyourav 2022-02-17 00:09:03 -08:00 committed by GitHub
commit 2c39b8ccf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 92 deletions

View File

@ -1,87 +0,0 @@
.syntax unified
push {r4, r5, r6, lr}
adds r4, r0, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl sub_080085B0
bl UpdatePlayerMovement
bl UpdateFloorType
bl RunQueuedAction
cmp r0, #0
bne _08070E76
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl GravityUpdate
cmp r0, #0
bne _08070E76
ldr r6, _08070E18 @ =gPlayerState
strb r0, [r6, #2]
bl RunQueuedAction
adds r5, r0, #0
cmp r5, #0
bne _08070E76
bl sub_08079D48
cmp r0, #0
bne _08070E10
adds r0, r6, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08070E1C
_08070E10:
strb r5, [r6, #2]
bl ResetPlayerAnimationAndAction
b _08070E76
.align 2, 0
_08070E18: .4byte gPlayerState
_08070E1C:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08070E32
movs r0, #0x80
lsls r0, r0, #9
str r0, [r4, #0x20]
b _08070E76
_08070E32:
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r0, [r6, #0x14]
cmp r0, #0
bne _08070E56
bl sub_08008B22
cmp r0, #0
beq _08070E56
movs r0, #7
strb r0, [r6, #0x11]
bl ResolvePlayerAnimation
bl SetPlayerActionNormal
b _08070E76
_08070E56:
movs r0, #1
strh r0, [r4, #0x12]
movs r0, #8
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldr r2, _08070E78 @ =gPlayerState
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08070E76
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r2, #8]
_08070E76:
pop {r4, r5, r6, pc}
.align 2, 0
_08070E78: .4byte gPlayerState
.syntax divided

View File

@ -700,8 +700,7 @@ static void PlayerBounceInit(Entity* this) {
ResetPlayerVelocity();
}
// minor regalloc
static NONMATCH("asm/non_matching/player/PlayerBounceUpdate.inc", void PlayerBounceUpdate(Entity* this)) {
static void PlayerBounceUpdate(Entity* this) {
UpdateAnimationSingleFrame(this);
sub_080085B0(this);
UpdatePlayerMovement();
@ -712,10 +711,10 @@ static NONMATCH("asm/non_matching/player/PlayerBounceUpdate.inc", void PlayerBou
gPlayerState.jump_status = 0;
if (RunQueuedAction() || sub_08079D48())
if (RunQueuedAction())
return;
if (gPlayerState.swim_state != 0) {
if (sub_08079D48() || gPlayerState.swim_state != 0) {
gPlayerState.jump_status = 0;
ResetPlayerAnimationAndAction();
return;
@ -742,7 +741,6 @@ static NONMATCH("asm/non_matching/player/PlayerBounceUpdate.inc", void PlayerBou
if ((gPlayerState.flags & PL_MINISH) == 0)
gPlayerState.animation = DEFAULT_ANIM;
}
END_NONMATCH
static void sub_08070E7C(Entity* this) {
if (--this->actionDelay == 0) {