Merge db677ec700
into 897d3efbd0
This commit is contained in:
commit
5f455bfa03
|
@ -231,6 +231,8 @@ const std::vector<const char*> enhancementsCvars = {
|
|||
"gAuthenticLogo",
|
||||
"gPauseLiveLinkRotationSpeed",
|
||||
"gBowReticle",
|
||||
"gBoomerangFirstPerson",
|
||||
"gBoomerangReticle",
|
||||
"gFixTexturesOOB",
|
||||
"gIvanCoopModeEnabled",
|
||||
"gEnemySpawnsOverWaterboxes",
|
||||
|
|
|
@ -708,6 +708,17 @@ void DrawEnhancementsMenu() {
|
|||
UIWidgets::Tooltip("Prevent bombchus from forcing the camera into first-person mode when released.");
|
||||
UIWidgets::PaddedEnhancementCheckbox("Aiming reticle for the bow/slingshot", "gBowReticle", true, false);
|
||||
UIWidgets::Tooltip("Aiming with a bow or slingshot will display a reticle as with the hookshot when the projectile is ready to fire.");
|
||||
if (UIWidgets::PaddedEnhancementCheckbox("Aim boomerang in first-person mode", "gBoomerangFirstPerson", true, false)) {
|
||||
if (CVarGetInteger("gBoomerangFirstPerson", 0) == 0) {
|
||||
CVarSetInteger("gBoomerangReticle", 0);
|
||||
}
|
||||
}
|
||||
UIWidgets::Tooltip(
|
||||
"Change aiming for the boomerang from third person to first person to see past Link's head");
|
||||
if (CVarGetInteger("gBoomerangFirstPerson", 0) == 1) {
|
||||
UIWidgets::PaddedEnhancementCheckbox("Aiming reticle for boomerang", "gBoomerangReticle", true, false);
|
||||
UIWidgets::Tooltip("Aiming with the boomerang will display a reticle as with the hookshot");
|
||||
}
|
||||
if (UIWidgets::PaddedEnhancementCheckbox("Allow strength equipment to be toggled", "gToggleStrength", true, false)) {
|
||||
if (!CVarGetInteger("gToggleStrength", 0)) {
|
||||
CVarSetInteger("gStrengthDisabled", 0);
|
||||
|
|
|
@ -858,6 +858,16 @@ s32 Player_HoldsSlingshot(Player* this) {
|
|||
return this->heldItemAction == PLAYER_IA_SLINGSHOT;
|
||||
}
|
||||
|
||||
// #region SOH [Enhancement]
|
||||
s32 Player_HoldsBoomerang(Player* this) {
|
||||
return this->heldItemAction == PLAYER_IA_BOOMERANG;
|
||||
}
|
||||
|
||||
s32 Player_AimsBoomerang(Player* this) {
|
||||
return Player_HoldsBoomerang(this) && (this->unk_834 != 0);
|
||||
}
|
||||
// #endregion
|
||||
|
||||
s32 func_8008F128(Player* this) {
|
||||
return Player_HoldsHookshot(this) && (this->heldActor == NULL);
|
||||
}
|
||||
|
@ -1917,6 +1927,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
play, this, ((this->heldItemAction == PLAYER_IA_HOOKSHOT) ? 38600.0f : 77600.0f) * CVarGetFloat("gCheatHookshotReachMultiplier", 1.0f));
|
||||
}
|
||||
}
|
||||
// #region SOH [Enhancement]
|
||||
} else if (CVarGetInteger("gBowReticle", 0) && (
|
||||
(this->heldItemAction == PLAYER_IA_BOW_FIRE) ||
|
||||
(this->heldItemAction == PLAYER_IA_BOW_ICE) ||
|
||||
|
@ -1935,6 +1946,24 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
|
|||
Player_DrawHookshotReticle(play, this, RETICLE_MAX);
|
||||
}
|
||||
}
|
||||
} else if (CVarGetInteger("gBoomerangReticle", 0) && (this->heldItemAction == PLAYER_IA_BOOMERANG)) {
|
||||
if (Player_HoldsBoomerang(this) != 0) {
|
||||
MtxF sp44;
|
||||
s32 pad;
|
||||
|
||||
if (LINK_AGE_IN_YEARS == YEARS_ADULT) {
|
||||
Matrix_RotateZYX(-31200, -9200, 17000, MTXMODE_APPLY);
|
||||
} else {
|
||||
Matrix_RotateZYX(-31200, -8700, 17000, MTXMODE_APPLY);
|
||||
}
|
||||
Matrix_Get(&sp44);
|
||||
|
||||
if (Player_AimsBoomerang(this) != 0) {
|
||||
Matrix_Translate(500.0f, 300.0f, 0.0f, MTXMODE_APPLY);
|
||||
Player_DrawHookshotReticle(play, this, 37000.0f);
|
||||
}
|
||||
}
|
||||
// #endregion
|
||||
}
|
||||
|
||||
if ((this->unk_862 != 0) || ((func_8002DD6C(this) == 0) && (heldActor != NULL))) {
|
||||
|
|
|
@ -2977,7 +2977,14 @@ s32 func_808358F0(Player* this, PlayState* play) {
|
|||
AnimationContext_SetCopyAll(play, this->skelAnime.limbCount, this->upperSkelAnime.jointTable,
|
||||
this->skelAnime.jointTable);
|
||||
} else {
|
||||
LinkAnimation_Update(play, &this->upperSkelAnime);
|
||||
// #region SOH [Enhancement]
|
||||
if (CVarGetInteger("gBoomerangReticle", 0) == 1) {
|
||||
// don't play animation
|
||||
// #endregion
|
||||
}
|
||||
else {
|
||||
LinkAnimation_Update(play, &this->upperSkelAnime);
|
||||
}
|
||||
}
|
||||
|
||||
func_80834EB8(this, play);
|
||||
|
@ -5361,7 +5368,13 @@ s32 func_8083AD4C(PlayState* play, Player* this) {
|
|||
|
||||
cameraMode = shouldUseBowCamera ? CAM_MODE_BOWARROW : CAM_MODE_SLINGSHOT;
|
||||
} else {
|
||||
cameraMode = CAM_MODE_BOOMERANG;
|
||||
// #region SOH [Enhancement]
|
||||
if (CVarGetInteger("gBoomerangFirstPerson", 0)) {
|
||||
cameraMode = CAM_MODE_FIRSTPERSON;
|
||||
// #endregion
|
||||
} else {
|
||||
cameraMode = CAM_MODE_BOOMERANG;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
cameraMode = CAM_MODE_FIRSTPERSON;
|
||||
|
@ -10861,7 +10874,13 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
|
|||
camMode = CAM_MODE_TALK;
|
||||
} else if (this->stateFlags1 & PLAYER_STATE1_TARGET_LOCKED) {
|
||||
if (this->stateFlags1 & PLAYER_STATE1_THREW_BOOMERANG) {
|
||||
camMode = CAM_MODE_FOLLOWBOOMERANG;
|
||||
// #region SOH [Enhancement]
|
||||
if (CVarGetInteger("gBoomerangFirstPerson", 0) == 1) {
|
||||
camMode = CAM_MODE_TARGET;
|
||||
// #endregion
|
||||
} else {
|
||||
camMode = CAM_MODE_FOLLOWBOOMERANG;
|
||||
}
|
||||
} else {
|
||||
camMode = CAM_MODE_FOLLOWTARGET;
|
||||
}
|
||||
|
@ -10872,8 +10891,15 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) {
|
|||
} else if (this->stateFlags1 & PLAYER_STATE1_CHARGING_SPIN_ATTACK) {
|
||||
camMode = CAM_MODE_CHARGE;
|
||||
} else if (this->stateFlags1 & PLAYER_STATE1_THREW_BOOMERANG) {
|
||||
camMode = CAM_MODE_FOLLOWBOOMERANG;
|
||||
Camera_SetParam(Play_GetCamera(play, 0), 8, this->boomerangActor);
|
||||
// #region SOH [Enhancement]
|
||||
if (CVarGetInteger("gBoomerangFirstPerson", 0)) {
|
||||
camMode = CAM_MODE_TARGET;
|
||||
Camera_SetParam(Play_GetCamera(play, 0), 8, this->boomerangActor);
|
||||
// #endregion
|
||||
} else {
|
||||
camMode = CAM_MODE_FOLLOWBOOMERANG;
|
||||
Camera_SetParam(Play_GetCamera(play, 0), 8, this->boomerangActor);
|
||||
}
|
||||
} else if (this->stateFlags1 & (PLAYER_STATE1_HANGING_OFF_LEDGE | PLAYER_STATE1_CLIMBING_LEDGE)) {
|
||||
if (func_80833B2C(this)) {
|
||||
camMode = CAM_MODE_HANGZ;
|
||||
|
|
Loading…
Reference in New Issue