True match sub_080784E4

This commit is contained in:
KEKW555 2024-01-03 21:36:51 +05:30 committed by GitHub
parent 6fb8b41a8e
commit 12f51699d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 20 deletions

View File

@ -1158,9 +1158,29 @@ void ResetPossibleInteraction(void) {
gPossibleInteraction.currentObject = (InteractableObject*)&gNoInteraction;
}
static inline bool32 InlinePlayerStateCheck() {
u8 frameState;
if ((gPlayerState.field_0x27[0] | gPlayerState.swim_state) != 0) {
return TRUE;
}
if (gPlayerState.framestate == 0) {
frameState = gPlayerState.framestate_last;
} else {
frameState = gPlayerState.framestate;
}
switch (frameState) {
case PL_STATE_SWORD:
case PL_STATE_GUSTJAR:
case PL_STATE_DIE:
case PL_STATE_ITEMGET:
case PL_STATE_DROWN:
return TRUE;
}
return FALSE;
}
// determines which (if any) object the player is currently able to interact with
InteractableObject* sub_080784E4(void) {
u8 frameState;
PlayerFlags r7;
s32 r3;
PlayerFlags PVar4;
@ -1177,26 +1197,12 @@ InteractableObject* sub_080784E4(void) {
if (gPossibleInteraction.isUpdated != 0) {
return gPossibleInteraction.currentObject;
}
if ((gPlayerState.field_0x27[0] | gPlayerState.swim_state) != 0) {
goto l;
}
if (gPlayerState.framestate == 0) {
frameState = gPlayerState.framestate_last;
} else {
frameState = gPlayerState.framestate;
}
switch (frameState) {
case PL_STATE_SWORD:
case PL_STATE_GUSTJAR:
case PL_STATE_DIE:
case PL_STATE_ITEMGET:
case PL_STATE_DROWN:
l:
gPossibleInteraction.currentIndex = 0xFF;
gPossibleInteraction.currentObject = (InteractableObject*)&gNoInteraction;
gPossibleInteraction.isUpdated = 1;
return gPossibleInteraction.currentObject;
if (InlinePlayerStateCheck()) {
gPossibleInteraction.currentIndex = 0xFF;
gPossibleInteraction.currentObject = (InteractableObject*)&gNoInteraction;
gPossibleInteraction.isUpdated = 1;
return gPossibleInteraction.currentObject;
}
if (!(gPlayerState.flags & PL_MINISH)) {