mirror of https://github.com/zeldaret/tmc.git
Name all possible R button actions
This commit is contained in:
parent
985eeb67a1
commit
06c0f111e7
|
@ -452,6 +452,22 @@ typedef enum {
|
||||||
INTERACTION_NULL = 0xFF,
|
INTERACTION_NULL = 0xFF,
|
||||||
} InteractionType;
|
} InteractionType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
R_ACTION_NONE,
|
||||||
|
R_ACTION_CANCEL,
|
||||||
|
R_ACTION_DROP,
|
||||||
|
R_ACTION_THROW,
|
||||||
|
R_ACTION_READ,
|
||||||
|
R_ACTION_CHECK,
|
||||||
|
R_ACTION_OPEN,
|
||||||
|
R_ACTION_SPEAK,
|
||||||
|
R_ACTION_GRAB,
|
||||||
|
R_ACTION_LIFT,
|
||||||
|
R_ACTION_GROW,
|
||||||
|
R_ACTION_SHRINK,
|
||||||
|
R_ACTION_ROLL,
|
||||||
|
} ActionRButton;
|
||||||
|
|
||||||
// playerUtils.c
|
// playerUtils.c
|
||||||
void DeleteClones(void);
|
void DeleteClones(void);
|
||||||
void CreateItemEquippedAtSlot(/*EquipSlot*/ u32 equipSlot);
|
void CreateItemEquippedAtSlot(/*EquipSlot*/ u32 equipSlot);
|
||||||
|
|
|
@ -310,7 +310,7 @@ u32 UpdatePlayerCollision(void) {
|
||||||
if (gPlayerEntity.animationState != 0) {
|
if (gPlayerEntity.animationState != 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
gUnk_0200AF00.rActionInteractTile = 4;
|
gUnk_0200AF00.rActionInteractTile = R_ACTION_READ;
|
||||||
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_40)) == 0) {
|
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_40)) == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -324,7 +324,7 @@ u32 UpdatePlayerCollision(void) {
|
||||||
if ((gPlayerState.flags & 0x4080) != 0) {
|
if ((gPlayerState.flags & 0x4080) != 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
gUnk_0200AF00.rActionInteractTile = 6;
|
gUnk_0200AF00.rActionInteractTile = R_ACTION_OPEN;
|
||||||
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_8)) == 0) {
|
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_8)) == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -335,7 +335,7 @@ u32 UpdatePlayerCollision(void) {
|
||||||
if (HasDungeonSmallKey() == 0) {
|
if (HasDungeonSmallKey() == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
gUnk_0200AF00.rActionInteractTile = 6;
|
gUnk_0200AF00.rActionInteractTile = R_ACTION_OPEN;
|
||||||
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_8)) == 0) {
|
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_8)) == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -225,9 +225,9 @@ void PlayerUpdate(Entity* this) {
|
||||||
static void HandlePlayerLife(Entity* this) {
|
static void HandlePlayerLife(Entity* this) {
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|
||||||
gUnk_0200AF00.rActionPlayerState = 0;
|
gUnk_0200AF00.rActionPlayerState = R_ACTION_NONE;
|
||||||
gUnk_0200AF00.rActionInteractTile = 0;
|
gUnk_0200AF00.rActionInteractTile = R_ACTION_NONE;
|
||||||
gUnk_0200AF00.rActionGrabbing = 0;
|
gUnk_0200AF00.rActionGrabbing = R_ACTION_NONE;
|
||||||
|
|
||||||
if ((gPlayerEntity.contactFlags & 0x80) && (gPlayerEntity.iframes > 0))
|
if ((gPlayerEntity.contactFlags & 0x80) && (gPlayerEntity.iframes > 0))
|
||||||
SoundReq(SFX_86);
|
SoundReq(SFX_86);
|
||||||
|
@ -323,7 +323,7 @@ static void sub_080171F0(void) {
|
||||||
sub_080028E0(&gPlayerEntity);
|
sub_080028E0(&gPlayerEntity);
|
||||||
|
|
||||||
if (gPlayerState.flags & PL_CLONING)
|
if (gPlayerState.flags & PL_CLONING)
|
||||||
gUnk_0200AF00.rActionPlayerState = 1;
|
gUnk_0200AF00.rActionPlayerState = R_ACTION_CANCEL;
|
||||||
|
|
||||||
sub_08078180();
|
sub_08078180();
|
||||||
gPlayerState.field_0x7 &= ~0x80;
|
gPlayerState.field_0x7 &= ~0x80;
|
||||||
|
|
|
@ -95,7 +95,7 @@ void ItemPickupCheck(ItemBehavior* this, u32 index) {
|
||||||
carried->subAction = 5;
|
carried->subAction = 5;
|
||||||
gPlayerState.framestate = PL_STATE_THROW;
|
gPlayerState.framestate = PL_STATE_THROW;
|
||||||
sub_080762C4(this, carried, 2, index);
|
sub_080762C4(this, carried, 2, index);
|
||||||
gUnk_0200AF00.rActionGrabbing = 8;
|
gUnk_0200AF00.rActionGrabbing = R_ACTION_GRAB;
|
||||||
SoundReq(SFX_102);
|
SoundReq(SFX_102);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -172,9 +172,9 @@ void CrenelBeanSprout_Action1(CrenelBeanSproutEntity* this) {
|
||||||
this->unk_70 = ((super->x.HALF.HI + (s8)gUnk_08123184[tmp]) & -0x10) | 8;
|
this->unk_70 = ((super->x.HALF.HI + (s8)gUnk_08123184[tmp]) & -0x10) | 8;
|
||||||
this->unk_72 = ((super->y.HALF.HI + (s8)gUnk_08123184[(tmp) + 1]) & -0x10) | 8;
|
this->unk_72 = ((super->y.HALF.HI + (s8)gUnk_08123184[(tmp) + 1]) & -0x10) | 8;
|
||||||
if (sub_080B1AB4(this->unk_70, this->unk_72, super->collisionLayer) == 0x19) {
|
if (sub_080B1AB4(this->unk_70, this->unk_72, super->collisionLayer) == 0x19) {
|
||||||
gUnk_0200AF00.rActionPlayerState = 3;
|
gUnk_0200AF00.rActionPlayerState = R_ACTION_THROW;
|
||||||
} else {
|
} else {
|
||||||
gUnk_0200AF00.rActionPlayerState = 0;
|
gUnk_0200AF00.rActionPlayerState = R_ACTION_NONE;
|
||||||
}
|
}
|
||||||
PositionRelative(&gPlayerEntity, super, 0, 0x10000);
|
PositionRelative(&gPlayerEntity, super, 0, 0x10000);
|
||||||
if (GetTileUnderEntity(super) == 0x19) {
|
if (GetTileUnderEntity(super) == 0x19) {
|
||||||
|
@ -184,7 +184,7 @@ void CrenelBeanSprout_Action1(CrenelBeanSproutEntity* this) {
|
||||||
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_40)) == 0) {
|
if ((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_40)) == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (gUnk_0200AF00.rActionPlayerState != 3) {
|
if (gUnk_0200AF00.rActionPlayerState != R_ACTION_THROW) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gPlayerState.heldObject = 0;
|
gPlayerState.heldObject = 0;
|
||||||
|
|
|
@ -102,7 +102,7 @@ void ItemForSale_Action1(ItemForSaleEntity* this) {
|
||||||
ResetActiveItems();
|
ResetActiveItems();
|
||||||
gPlayerState.heldObject = 4;
|
gPlayerState.heldObject = 4;
|
||||||
gNewPlayerEntity.unk_74 = super;
|
gNewPlayerEntity.unk_74 = super;
|
||||||
gUnk_0200AF00.rActionPlayerState = 2;
|
gUnk_0200AF00.rActionPlayerState = R_ACTION_DROP;
|
||||||
MessageClose();
|
MessageClose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -112,14 +112,14 @@ void ItemForSale_Action1(ItemForSaleEntity* this) {
|
||||||
void ItemForSale_Action2(ItemForSaleEntity* this) {
|
void ItemForSale_Action2(ItemForSaleEntity* this) {
|
||||||
void* ptr;
|
void* ptr;
|
||||||
|
|
||||||
gUnk_0200AF00.rActionPlayerState = 2;
|
gUnk_0200AF00.rActionPlayerState = R_ACTION_DROP;
|
||||||
super->spriteSettings.draw = gPlayerEntity.spriteSettings.draw;
|
super->spriteSettings.draw = gPlayerEntity.spriteSettings.draw;
|
||||||
if ((gPlayerState.heldObject == 0) || (super != gNewPlayerEntity.unk_74)) {
|
if ((gPlayerState.heldObject == 0) || (super != gNewPlayerEntity.unk_74)) {
|
||||||
sub_080819B4(this);
|
sub_080819B4(this);
|
||||||
} else {
|
} else {
|
||||||
ptr = sub_080784E4();
|
ptr = sub_080784E4();
|
||||||
if (((*(int*)(ptr + 8) == 0) ||
|
if (((*(int*)(ptr + 8) == 0) ||
|
||||||
((*(u8*)(ptr + 1) != 1 || (gUnk_0200AF00.rActionPlayerState = 7, (gPlayerState.playerInput.newInput &
|
((*(u8*)(ptr + 1) != 1 || (gUnk_0200AF00.rActionPlayerState = R_ACTION_SPEAK, (gPlayerState.playerInput.newInput &
|
||||||
(PLAYER_INPUT_80 | PLAYER_INPUT_8)) == 0)))) &&
|
(PLAYER_INPUT_80 | PLAYER_INPUT_8)) == 0)))) &&
|
||||||
((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_10 | PLAYER_INPUT_8)) != 0)) {
|
((gPlayerState.playerInput.newInput & (PLAYER_INPUT_80 | PLAYER_INPUT_10 | PLAYER_INPUT_8)) != 0)) {
|
||||||
sub_080819B4(this);
|
sub_080819B4(this);
|
||||||
|
@ -142,8 +142,8 @@ void sub_080819B4(ItemForSaleEntity* this) {
|
||||||
gNewPlayerEntity.unk_74 = 0;
|
gNewPlayerEntity.unk_74 = 0;
|
||||||
ptr = &gUnk_0200AF00;
|
ptr = &gUnk_0200AF00;
|
||||||
gRoomVars.shopItemType = 0;
|
gRoomVars.shopItemType = 0;
|
||||||
ptr->rActionInteractObject = 0;
|
ptr->rActionInteractObject = R_ACTION_NONE;
|
||||||
ptr->rActionPlayerState = 0;
|
ptr->rActionPlayerState = R_ACTION_NONE;
|
||||||
gRoomVars.shopItemType2 = 0;
|
gRoomVars.shopItemType2 = 0;
|
||||||
super->x.HALF.HI = this->unk_80 + gRoomControls.origin_x;
|
super->x.HALF.HI = this->unk_80 + gRoomControls.origin_x;
|
||||||
super->y.HALF.HI = this->unk_82 + gRoomControls.origin_y;
|
super->y.HALF.HI = this->unk_82 + gRoomControls.origin_y;
|
||||||
|
|
|
@ -1830,7 +1830,7 @@ static void PlayerPull(Entity* this) {
|
||||||
|
|
||||||
gPlayerState.framestate = PL_STATE_PULL;
|
gPlayerState.framestate = PL_STATE_PULL;
|
||||||
sPlayerPullStates[this->subAction](this);
|
sPlayerPullStates[this->subAction](this);
|
||||||
gUnk_0200AF00.rActionGrabbing = 8;
|
gUnk_0200AF00.rActionGrabbing = R_ACTION_GRAB;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sub_08072214(Entity* this) {
|
static void sub_08072214(Entity* this) {
|
||||||
|
@ -2756,7 +2756,7 @@ static void sub_08073584(Entity* this) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gUnk_0200AF00.rActionPlayerState = 1;
|
gUnk_0200AF00.rActionPlayerState = R_ACTION_CANCEL;
|
||||||
if (sub_0807A2F8(0)) {
|
if (sub_0807A2F8(0)) {
|
||||||
this->subAction++;
|
this->subAction++;
|
||||||
this->direction = 4 * (this->animationState & 6);
|
this->direction = 4 * (this->animationState & 6);
|
||||||
|
|
|
@ -211,7 +211,7 @@ bool32 IsPreventedFromUsingItem(void) {
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
default:
|
default:
|
||||||
if ((((gUnk_0200AF00.rActionInteractObject == 0xc) && (gPlayerState.field_0x1c == 0)) &&
|
if ((((gUnk_0200AF00.rActionInteractObject == R_ACTION_ROLL) && (gPlayerState.field_0x1c == 0)) &&
|
||||||
(gPlayerState.floor_type != SURFACE_SWAMP)) &&
|
(gPlayerState.floor_type != SURFACE_SWAMP)) &&
|
||||||
((((gPlayerState.playerInput.heldInput & PLAYER_INPUT_ANY_DIRECTION) != 0 &&
|
((((gPlayerState.playerInput.heldInput & PLAYER_INPUT_ANY_DIRECTION) != 0 &&
|
||||||
((gPlayerState.flags & (PL_BURNING | PL_ROLLING)) == 0)) &&
|
((gPlayerState.flags & (PL_BURNING | PL_ROLLING)) == 0)) &&
|
||||||
|
@ -972,49 +972,48 @@ void ForceSetPlayerState(u32 framestate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_08078180(void) {
|
void sub_08078180(void) {
|
||||||
u8 uVar1;
|
u8 rAction;
|
||||||
u8 uVar3;
|
InteractableObject* interaction;
|
||||||
InteractableObject* ptr;
|
|
||||||
|
|
||||||
if (gUnk_0200AF00.rActionPlayerState != 0)
|
if (gUnk_0200AF00.rActionPlayerState != R_ACTION_NONE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uVar1 = 0;
|
rAction = R_ACTION_NONE;
|
||||||
if ((gPlayerState.jump_status == 0) &&
|
if ((gPlayerState.jump_status == 0) &&
|
||||||
((gPlayerState.flags & (PL_IN_HOLE | PL_FROZEN | PL_BURNING | PL_DISABLE_ITEMS | PL_DRUGGED)) == 0)) {
|
((gPlayerState.flags & (PL_IN_HOLE | PL_FROZEN | PL_BURNING | PL_DISABLE_ITEMS | PL_DRUGGED)) == 0)) {
|
||||||
if ((u8)(gPlayerState.heldObject - 1) < 4) {
|
if ((u8)(gPlayerState.heldObject - 1) < 4) {
|
||||||
if (gUnk_0200AF00.rActionGrabbing != 0) {
|
if (gUnk_0200AF00.rActionGrabbing != R_ACTION_NONE) {
|
||||||
uVar1 = gUnk_0200AF00.rActionGrabbing;
|
rAction = gUnk_0200AF00.rActionGrabbing;
|
||||||
} else {
|
} else {
|
||||||
uVar1 = 3;
|
rAction = R_ACTION_THROW;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (gUnk_0200AF00.rActionInteractTile != 0) {
|
if (gUnk_0200AF00.rActionInteractTile != R_ACTION_NONE) {
|
||||||
uVar1 = gUnk_0200AF00.rActionInteractTile;
|
rAction = gUnk_0200AF00.rActionInteractTile;
|
||||||
} else {
|
} else {
|
||||||
ptr = sub_080784E4();
|
interaction = sub_080784E4();
|
||||||
if (ptr->entity->interactType == 0) {
|
if (interaction->entity->interactType == 0) {
|
||||||
|
|
||||||
switch (ptr->type) {
|
switch (interaction->type) {
|
||||||
case INTERACTION_TALK:
|
case INTERACTION_TALK:
|
||||||
case INTERACTION_TALK_MINISH:
|
case INTERACTION_TALK_MINISH:
|
||||||
uVar1 = 7;
|
rAction = R_ACTION_SPEAK;
|
||||||
break;
|
break;
|
||||||
case INTERACTION_LIFT_SHOP_ITEM:
|
case INTERACTION_LIFT_SHOP_ITEM:
|
||||||
if (gRoomVars.shopItemType == ITEM_NONE) {
|
if (gRoomVars.shopItemType == ITEM_NONE) {
|
||||||
uVar1 = 9;
|
rAction = R_ACTION_LIFT;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case INTERACTION_OPEN_CHEST:
|
case INTERACTION_OPEN_CHEST:
|
||||||
case INTERACTION_USE_SMALL_KEY:
|
case INTERACTION_USE_SMALL_KEY:
|
||||||
case INTERACTION_USE_BIG_KEY:
|
case INTERACTION_USE_BIG_KEY:
|
||||||
uVar1 = 6;
|
rAction = R_ACTION_OPEN;
|
||||||
break;
|
break;
|
||||||
case INTERACTION_CHECK:
|
case INTERACTION_CHECK:
|
||||||
uVar1 = 5;
|
rAction = R_ACTION_CHECK;
|
||||||
break;
|
break;
|
||||||
case INTERACTION_DROP_PEDESTAL:
|
case INTERACTION_DROP_PEDESTAL:
|
||||||
uVar1 = 2;
|
rAction = R_ACTION_DROP;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -1022,25 +1021,25 @@ void sub_08078180(void) {
|
||||||
if (((gPlayerState.framestate != PL_STATE_USEPORTAL))) {
|
if (((gPlayerState.framestate != PL_STATE_USEPORTAL))) {
|
||||||
|
|
||||||
if ((gCarriedEntity.unk_1 == 2) && ((gCarriedEntity.unk_8)->carryFlags == 1)) {
|
if ((gCarriedEntity.unk_1 == 2) && ((gCarriedEntity.unk_8)->carryFlags == 1)) {
|
||||||
uVar1 = 8;
|
rAction = R_ACTION_GRAB;
|
||||||
} else {
|
} else {
|
||||||
uVar1 = 9;
|
rAction = R_ACTION_LIFT;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ((gPlayerState.framestate == PL_STATE_WALK) && (gPlayerState.mobility == 0)) {
|
if ((gPlayerState.framestate == PL_STATE_WALK) && (gPlayerState.mobility == 0)) {
|
||||||
uVar1 = 0xc;
|
rAction = R_ACTION_ROLL;
|
||||||
} else {
|
} else {
|
||||||
uVar1 = 0;
|
rAction = R_ACTION_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gUnk_0200AF00.rActionInteractObject = uVar1;
|
gUnk_0200AF00.rActionInteractObject = rAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 sub_080782C0(void) {
|
bool32 sub_080782C0(void) {
|
||||||
|
|
6
src/ui.c
6
src/ui.c
|
@ -743,13 +743,13 @@ void TextUIElement(UIElement* element) {
|
||||||
|
|
||||||
if (element->type2 == 9) {
|
if (element->type2 == 9) {
|
||||||
frameIndex = gUnk_0200AF00.rActionPlayerState;
|
frameIndex = gUnk_0200AF00.rActionPlayerState;
|
||||||
if (frameIndex == 0) {
|
if (frameIndex == R_ACTION_NONE) {
|
||||||
switch (gArea.portal_mode) {
|
switch (gArea.portal_mode) {
|
||||||
case 2:
|
case 2:
|
||||||
frameIndex = 0xb;
|
frameIndex = R_ACTION_SHRINK;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
frameIndex = 0xa;
|
frameIndex = R_ACTION_GROW;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
frameIndex = gUnk_0200AF00.rActionInteractObject;
|
frameIndex = gUnk_0200AF00.rActionInteractObject;
|
||||||
|
|
Loading…
Reference in New Issue