<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Shipwright/soh/src/code/z_camera.c, branch develop</title>
<subtitle>Ship of Harkinian: Ocarina of Time PC port</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/'/>
<entry>
<title>Decomp, naming (OnePointCS, itemAction, blure, wall/floor types) (#7007)</title>
<updated>2026-07-31T16:56:30+00:00</updated>
<author>
<name>djevangelia</name>
<email>263709373+djevangelia@users.noreply.github.com</email>
</author>
<published>2026-07-31T16:56:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=5a57a0cbc3b644660852e95358737a9520f749f5'/>
<id>5a57a0cbc3b644660852e95358737a9520f749f5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't point free cam at sky coming out of crawlspace (#6920)</title>
<updated>2026-07-13T04:56:00+00:00</updated>
<author>
<name>Philip Dubé</name>
<email>159546+serprex@users.noreply.github.com</email>
</author>
<published>2026-07-13T04:56:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=ff7eb482d4c8b2cab93b2123e231bcb64f285160'/>
<id>ff7eb482d4c8b2cab93b2123e231bcb64f285160</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>wire decomp static savestates with macros (#6904)</title>
<updated>2026-07-12T15:09:47+00:00</updated>
<author>
<name>Philip Dubé</name>
<email>159546+serprex@users.noreply.github.com</email>
</author>
<published>2026-07-12T15:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=c94ae8ccf379267946568ca2c448ba4fad25987a'/>
<id>c94ae8ccf379267946568ca2c448ba4fad25987a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Decomp pull, some `z_player` and global changes (#6908)</title>
<updated>2026-07-12T14:59:10+00:00</updated>
<author>
<name>djevangelia</name>
<email>263709373+djevangelia@users.noreply.github.com</email>
</author>
<published>2026-07-12T14:59:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=1003c462a886e6046071865d2091c6e742a2f4b7'/>
<id>1003c462a886e6046071865d2091c6e742a2f4b7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bugfix, child Hookshot first person in Hylia lab (#6847)</title>
<updated>2026-07-08T19:58:24+00:00</updated>
<author>
<name>djevangelia</name>
<email>263709373+djevangelia@users.noreply.github.com</email>
</author>
<published>2026-07-08T19:58:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=73df35c6ab50d5fbec57ae2fb154eb89c7bc7ff1'/>
<id>73df35c6ab50d5fbec57ae2fb154eb89c7bc7ff1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>pull decomp changes: actor functions, z_en_horse.c (#6877)</title>
<updated>2026-07-07T01:51:44+00:00</updated>
<author>
<name>Philip Dubé</name>
<email>159546+serprex@users.noreply.github.com</email>
</author>
<published>2026-07-07T01:51:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=5cf03a4cdadefe31d81cd324299ff5e0dc436748'/>
<id>5cf03a4cdadefe31d81cd324299ff5e0dc436748</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: free look continues from forced view when leaving a fixed camera (#4953) (#6808)</title>
<updated>2026-06-24T16:24:19+00:00</updated>
<author>
<name>David Racine</name>
<email>bass_dr@hotmail.com</email>
</author>
<published>2026-06-24T16:24:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=8cf4ff5f141c78910f64d49213125fd661a559d2'/>
<id>8cf4ff5f141c78910f64d49213125fd661a559d2</id>
<content type='text'>
When a scene-forced/fixed camera (e.g. the Spirit Temple boulder-room
alcoves, CAM_SET_PREREND_FIXED / Camera_Fixed3) drives the view, the Free
Look angles in play-&gt;camX/camY are left untouched while manualCamera stays
set. On exit, Camera_Free resumed from those stale pre-alcove angles, so
the camera snapped/reversed instead of following the player out.

This does NOT change the forced-camera behavior: the alcove still clamps
exactly as the game intends. It only fixes the hand-off back to Free Look:
when Camera_Free resumes after another camera function drove the previous
frame (detected via a frame-number gap), the free-look yaw/pitch are
re-seeded from the camera's current orientation so the view continues from
where it was left.

Co-authored-by: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a scene-forced/fixed camera (e.g. the Spirit Temple boulder-room
alcoves, CAM_SET_PREREND_FIXED / Camera_Fixed3) drives the view, the Free
Look angles in play-&gt;camX/camY are left untouched while manualCamera stays
set. On exit, Camera_Free resumed from those stale pre-alcove angles, so
the camera snapped/reversed instead of following the player out.

This does NOT change the forced-camera behavior: the alcove still clamps
exactly as the game intends. It only fixes the hand-off back to Free Look:
when Camera_Free resumes after another camera function drove the previous
frame (detected via a frame-number gap), the free-look yaw/pitch are
re-seeded from the camera's current orientation so the view continues from
where it was left.

Co-authored-by: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>fix: free look releases the door peek camera (#6756)</title>
<updated>2026-06-19T13:58:12+00:00</updated>
<author>
<name>David Racine</name>
<email>bass_dr@hotmail.com</email>
</author>
<published>2026-06-19T13:58:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=497d34570b16e195665dcdf626cf187f0a705708'/>
<id>497d34570b16e195665dcdf626cf187f0a705708</id>
<content type='text'>
* fix(camera): let free look release the door peek camera

After walking through a door, the door camera (CAM_SET_DOORC) held the view and
only handed control back once the player moved or pressed a button, so the right
stick did nothing until then. With free look the camera appeared frozen after
every door.

Treat right-stick movement as a release condition too, using the same stick
threshold as free-look activation.

* refactor(camera): move door-cam free-look release to a VB_SHOULD hook

Reimplements the door peek camera free-look release as a vanilla-behavior
hook instead of inline logic in z_camera.c, keeping the decomp file close
to upstream.

- Add VB_RELEASE_DOORC_CAMERA wrapping the existing Camera_Special9 release
  condition; the vanilla button/xzSpeed expression is left untouched.
- Move the right-stick / free-look threshold logic into a new enhancement,
  FreeLookDoorCamRelease.cpp, registered with COND_VB_SHOULD and gated on
  FreeLook.Enabled so the hook only exists while Free Look is on.

Behavior is unchanged from the previous fix; this only relocates the logic.

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fix(camera): let free look release the door peek camera

After walking through a door, the door camera (CAM_SET_DOORC) held the view and
only handed control back once the player moved or pressed a button, so the right
stick did nothing until then. With free look the camera appeared frozen after
every door.

Treat right-stick movement as a release condition too, using the same stick
threshold as free-look activation.

* refactor(camera): move door-cam free-look release to a VB_SHOULD hook

Reimplements the door peek camera free-look release as a vanilla-behavior
hook instead of inline logic in z_camera.c, keeping the decomp file close
to upstream.

- Add VB_RELEASE_DOORC_CAMERA wrapping the existing Camera_Special9 release
  condition; the vanilla button/xzSpeed expression is left untouched.
- Move the right-stick / free-look threshold logic into a new enhancement,
  FreeLookDoorCamRelease.cpp, registered with COND_VB_SHOULD and gated on
  FreeLook.Enabled so the hook only exists while Free Look is on.

Behavior is unchanged from the previous fix; this only relocates the logic.

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>feat(camera): option for free look to follow the default camera distance (#6757)</title>
<updated>2026-06-18T13:34:29+00:00</updated>
<author>
<name>David Racine</name>
<email>bass_dr@hotmail.com</email>
</author>
<published>2026-06-18T13:34:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=100bae3b9fb7f4b6807dc1899a3179cf314c9371'/>
<id>100bae3b9fb7f4b6807dc1899a3179cf314c9371</id>
<content type='text'>
Free Look pinned the camera to the fixed "Camera Distance" setting, so it never
pulled in or out the way the vanilla camera does for the current situation.

Add an opt-in "Follow Default Camera Distance" setting (FreeLook.UseGameDistance)
that uses the game's per-mode default distance instead. The fixed distance slider
is hidden while it is enabled.

Closes #4050

Co-authored-by: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Free Look pinned the camera to the fixed "Camera Distance" setting, so it never
pulled in or out the way the vanilla camera does for the current situation.

Add an opt-in "Follow Default Camera Distance" setting (FreeLook.UseGameDistance)
that uses the game's per-mode default distance instead. The fixed distance slider
is hidden while it is enabled.

Closes #4050

Co-authored-by: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>uncomment code in z_camera.c (#6709)</title>
<updated>2026-06-09T16:17:22+00:00</updated>
<author>
<name>Philip Dubé</name>
<email>159546+serprex@users.noreply.github.com</email>
</author>
<published>2026-06-09T16:17:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=3e1318edc067f67bce751fed4b62c2a7916f776e'/>
<id>3e1318edc067f67bce751fed4b62c2a7916f776e</id>
<content type='text'>
pointed out by Evangelia, cause of discrepancy in crawlspace glitch
* [Console](https://www.youtube.com/watch?v=2_tFHeEvXI0)
* [SoH](https://www.youtube.com/watch?v=-u3TzbdUr3c)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pointed out by Evangelia, cause of discrepancy in crawlspace glitch
* [Console](https://www.youtube.com/watch?v=2_tFHeEvXI0)
* [SoH](https://www.youtube.com/watch?v=-u3TzbdUr3c)</pre>
</div>
</content>
</entry>
</feed>
