Fix GI overruling link size over anything else (#2424)

This commit is contained in:
aMannus 2023-01-31 13:21:16 +01:00 committed by GitHub
parent 612700c2ab
commit e14fcf92d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 8 deletions

View File

@ -233,7 +233,7 @@ namespace GameInteractionEffect {
GameInteractor::State::LinkSize = (GILinkSize)parameter; GameInteractor::State::LinkSize = (GILinkSize)parameter;
} }
void ModifyLinkSize::_Remove() { void ModifyLinkSize::_Remove() {
GameInteractor::State::LinkSize = GI_LINK_SIZE_NORMAL; GameInteractor::State::LinkSize = GI_LINK_SIZE_RESET;
} }
// MARK: - InvisibleLink // MARK: - InvisibleLink

View File

@ -10,6 +10,7 @@ typedef enum {
/* 0x01 */ GI_LINK_SIZE_GIANT, /* 0x01 */ GI_LINK_SIZE_GIANT,
/* 0x02 */ GI_LINK_SIZE_MINISH, /* 0x02 */ GI_LINK_SIZE_MINISH,
/* 0x03 */ GI_LINK_SIZE_PAPER, /* 0x03 */ GI_LINK_SIZE_PAPER,
/* 0x04 */ GI_LINK_SIZE_RESET
} GILinkSize; } GILinkSize;
typedef enum { typedef enum {
@ -22,9 +23,9 @@ typedef enum {
extern "C" { extern "C" {
#endif #endif
uint8_t GameInteractor_NoUIActive(); uint8_t GameInteractor_NoUIActive();
GILinkSize GameInteractor_LinkSize(); GILinkSize GameInteractor_GetLinkSize();
void GameInteractor_SetLinkSize(GILinkSize size);
uint8_t GameInteractor_InvisibleLinkActive(); uint8_t GameInteractor_InvisibleLinkActive();
uint8_t GameInteractor_ResetLinkScale();
uint8_t GameInteractor_OneHitKOActive(); uint8_t GameInteractor_OneHitKOActive();
uint8_t GameInteractor_PacifistModeActive(); uint8_t GameInteractor_PacifistModeActive();
uint8_t GameInteractor_DisableZTargetingActive(); uint8_t GameInteractor_DisableZTargetingActive();

View File

@ -27,10 +27,15 @@ uint8_t GameInteractor_NoUIActive() {
} }
// MARK: - GameInteractor::State::LinkSize // MARK: - GameInteractor::State::LinkSize
GILinkSize GameInteractor_LinkSize() { GILinkSize GameInteractor_GetLinkSize() {
return GameInteractor::State::LinkSize; return GameInteractor::State::LinkSize;
} }
// MARK: - GameInteractor::State::LinkSize
void GameInteractor_SetLinkSize(GILinkSize size) {
GameInteractor::State::LinkSize = size;
}
// MARK: - GameInteractor::State::InvisibleLinkActive // MARK: - GameInteractor::State::InvisibleLinkActive
uint8_t GameInteractor_InvisibleLinkActive() { uint8_t GameInteractor_InvisibleLinkActive() {
return GameInteractor::State::InvisibleLinkActive; return GameInteractor::State::InvisibleLinkActive;

View File

@ -10995,7 +10995,13 @@ void Player_Update(Actor* thisx, PlayState* play) {
MREG(54) = this->actor.world.pos.z; MREG(54) = this->actor.world.pos.z;
MREG(55) = this->actor.world.rot.y; MREG(55) = this->actor.world.rot.y;
switch (GameInteractor_LinkSize()) { switch (GameInteractor_GetLinkSize()) {
case GI_LINK_SIZE_RESET:
this->actor.scale.x = 0.01f;
this->actor.scale.y = 0.01f;
this->actor.scale.z = 0.01f;
GameInteractor_SetLinkSize(GI_LINK_SIZE_NORMAL);
break;
case GI_LINK_SIZE_GIANT: case GI_LINK_SIZE_GIANT:
this->actor.scale.x = 0.02f; this->actor.scale.x = 0.02f;
this->actor.scale.y = 0.02f; this->actor.scale.y = 0.02f;
@ -11013,9 +11019,6 @@ void Player_Update(Actor* thisx, PlayState* play) {
break; break;
case GI_LINK_SIZE_NORMAL: case GI_LINK_SIZE_NORMAL:
default: default:
this->actor.scale.x = 0.01f;
this->actor.scale.y = 0.01f;
this->actor.scale.z = 0.01f;
break; break;
} }