Skip to content

Bugfix, child Hookshot first person in Hylia lab#6847

Open
djevangelia wants to merge 1 commit into
HarbourMasters:developfrom
djevangelia:labhook
Open

Bugfix, child Hookshot first person in Hylia lab#6847
djevangelia wants to merge 1 commit into
HarbourMasters:developfrom
djevangelia:labhook

Conversation

@djevangelia

@djevangelia djevangelia commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Fixes #2975.
CAM_MODE_AIM_CHILD is invalid in Lakeside Laboratory water for some reason. So just use CAM_MODE_AIM_ADULT instead. I didn't dig into why this could be, but my old notes on ranged first person check function say:
"CAM_MODE_AIM_CHILD and CAM_MODE_AIM_BOOMERANG are valid for all camera settings where CAM_MODE_AIM_ADULT is valid (except Normal 3 which seems to be underwater + horse where child can't aim), so only check for adult."

If there are more places where child cannot enter first person with Hookshot it might be worth going into the camera settings but if lab is the odd one out this is ok I think.

Before and after: https://www.youtube.com/watch?v=kgfZAiaHGBA

Build Artifacts

Comment on lines 5840 to +5852
bool shouldUseBowCamera = LINK_IS_ADULT;

if (CVarGetInteger(CVAR_ENHANCEMENT("BowSlingshotAmmoFix"), 0) ||
CVarGetInteger(CVAR_ENHANCEMENT("EquipmentAlwaysVisible"), 0)) {
shouldUseBowCamera = this->heldItemAction != PLAYER_IA_SLINGSHOT;
}

camMode = shouldUseBowCamera ? CAM_MODE_BOWARROW : CAM_MODE_SLINGSHOT;

// Fix child Hookshot first person in lab (CAM_MODE_SLINGSHOT is invalid there)
if (play->sceneNum == SCENE_LAKESIDE_LABORATORY && CVarGetInteger(CVAR_CHEAT("TimelessEquipment"), false)) {
camMode = CAM_MODE_BOWARROW;
}

@serprex serprex Jul 2, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

            bool shouldUseBowCamera = GameInteractor_Should(VB_USE_BOW_CAMERA, LINK_IS_ADULT, this);

            camMode = shouldUseBowCamera ? CAM_MODE_BOWARROW : CAM_MODE_SLINGSHOT;

maybe VB has better name, but would prefer to see this logic extracted to hook

original: https://github.com/zeldaret/oot/blob/269d03016cd0e3d7a0b8925e02b97a319c1d0e8d/src/overlays/actors/ovl_player_actor/z_player.c#L5899

maybe need to update some code with upstream? seeing as this isn't CAM_MODE_AIM_ADULT/CAM_MODE_AIM_CHILD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Child Link Hookshot not going into FPS mode in Lake Hylia Lab

2 participants