<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Shipwright/soh/include/global.h, 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>Cleanup unused includes &amp; remove remaining LUS umbrella includes (#6813)</title>
<updated>2026-06-27T00:20:03+00:00</updated>
<author>
<name>Tim Schneeberger</name>
<email>tim.schneeberger@outlook.de</email>
</author>
<published>2026-06-27T00:20:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=633e92096964ce036e7c18426c98a4835e1aace5'/>
<id>633e92096964ce036e7c18426c98a4835e1aace5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce LUS header bloat &amp; improve build speed (#6802)</title>
<updated>2026-06-23T05:09:25+00:00</updated>
<author>
<name>Tim Schneeberger</name>
<email>tim.schneeberger@outlook.de</email>
</author>
<published>2026-06-23T05:09:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=0d2346d322b00df45470338406ef290d210ac92e'/>
<id>0d2346d322b00df45470338406ef290d210ac92e</id>
<content type='text'>
* Avoid `randomizer_check_tracker.h` in widely used `randomizer.h` due to transitive `libultraship.h`/`UIWidgets.hpp` inclusion

* Avoid `libultraship.h` inclusion in heavily used `GameInteractor.h` header

* Remove unused libultraship includes

* Break huge unneeded transitive include chain (via UIWidgets.hpp)

This avoids that changing just UIWidgets.hpp, for example, would retrigger a rebuild of like half the project.

There were a huge transitive include chains, mostly via MenuTypes.h and UIWidgets.hpp. Because of that, I'm splitting UIWidgets into a second header file UIWidgetOptions.hpp, which can be consumed by MenuTypes.h. MenuTypes.h is split into BackendTypes.h to avoid pulling in Fast3D/Windowing/GUI stuff into unrelated code.

Example chain, one of many:
libultraship.h &lt;- UIWidgets.hpp &lt;- MenuTypes.hpp &lt;- randomizer/option.h &lt;- randomizer/item_location.h &lt;- trial.h &lt;- static_data.h &lt;- SeedContext &lt;- (basically all randomizer related sources, lots of other sources in Enhancement, more...)

* Avoid libultraship.h in Notification.h and ObjectExtension.h; these headers are also heavily used

* Add missing include

* Remove unused libultraship includes

* Include only ship/window/GuiWindow.h in GUI-related headers instead of libultraship.h

* Cleanup ConfigUpdater.h and playthrough.cpp

* Remove libultraship.h from Anchor.h and fix transitive dependencies in OTRGlobals.cpp

* Remove unused libultraship.h includes in Anchor code</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Avoid `randomizer_check_tracker.h` in widely used `randomizer.h` due to transitive `libultraship.h`/`UIWidgets.hpp` inclusion

* Avoid `libultraship.h` inclusion in heavily used `GameInteractor.h` header

* Remove unused libultraship includes

* Break huge unneeded transitive include chain (via UIWidgets.hpp)

This avoids that changing just UIWidgets.hpp, for example, would retrigger a rebuild of like half the project.

There were a huge transitive include chains, mostly via MenuTypes.h and UIWidgets.hpp. Because of that, I'm splitting UIWidgets into a second header file UIWidgetOptions.hpp, which can be consumed by MenuTypes.h. MenuTypes.h is split into BackendTypes.h to avoid pulling in Fast3D/Windowing/GUI stuff into unrelated code.

Example chain, one of many:
libultraship.h &lt;- UIWidgets.hpp &lt;- MenuTypes.hpp &lt;- randomizer/option.h &lt;- randomizer/item_location.h &lt;- trial.h &lt;- static_data.h &lt;- SeedContext &lt;- (basically all randomizer related sources, lots of other sources in Enhancement, more...)

* Avoid libultraship.h in Notification.h and ObjectExtension.h; these headers are also heavily used

* Add missing include

* Remove unused libultraship includes

* Include only ship/window/GuiWindow.h in GUI-related headers instead of libultraship.h

* Cleanup ConfigUpdater.h and playthrough.cpp

* Remove libultraship.h from Anchor.h and fix transitive dependencies in OTRGlobals.cpp

* Remove unused libultraship.h includes in Anchor code</pre>
</div>
</content>
</entry>
<entry>
<title>OTRGlobals cleanup (#4251)</title>
<updated>2024-11-19T16:44:44+00:00</updated>
<author>
<name>Pepe20129</name>
<email>72659707+Pepe20129@users.noreply.github.com</email>
</author>
<published>2024-11-19T16:44:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=9bed5af33b920cc0d44b410dce152de784ce56b3'/>
<id>9bed5af33b920cc0d44b410dce152de784ce56b3</id>
<content type='text'>
* Remove unused headers

* Move all "ResourceMgr_" functions to a new file

* Don't transitively include SaveManager

* Move cvar prefixes to a new header

* Add missing includes

* Update OTRGlobals.cpp

* Fix build

* Address review

* Fix some of the errors

* Update gameplaystats.h

* Update z_en_in.c

* Hopefully fix the linux issues

* Fix Linux issues for real this time, I checked

* Update ResourceManagerHelpers.cpp

* Update z_obj_mure2.c

* Post-merge fixes

* Fix build (hopefully)

* Post-merge fixes

* Update z_file_nameset_PAL.c

* cleanup some unnecessary headers (#7)

---------

Co-authored-by: Archez &lt;Archez@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Remove unused headers

* Move all "ResourceMgr_" functions to a new file

* Don't transitively include SaveManager

* Move cvar prefixes to a new header

* Add missing includes

* Update OTRGlobals.cpp

* Fix build

* Address review

* Fix some of the errors

* Update gameplaystats.h

* Update z_en_in.c

* Hopefully fix the linux issues

* Fix Linux issues for real this time, I checked

* Update ResourceManagerHelpers.cpp

* Update z_obj_mure2.c

* Post-merge fixes

* Fix build (hopefully)

* Post-merge fixes

* Update z_file_nameset_PAL.c

* cleanup some unnecessary headers (#7)

---------

Co-authored-by: Archez &lt;Archez@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Dynamic Actor IDs (#1729)</title>
<updated>2023-06-02T01:39:50+00:00</updated>
<author>
<name>Rozelette</name>
<email>Rozelette@users.noreply.github.com</email>
</author>
<published>2023-06-02T01:39:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=fdf9086b2a900e0539f68952f01cc81fd7c6cd86'/>
<id>fdf9086b2a900e0539f68952f01cc81fd7c6cd86</id>
<content type='text'>
* Add dynamic actor IDs

* Convert Ivan to use new actor system

* attempt to fix linux build

* attempt to fix linux build

* merge

* Cleanup

* Fix missing math functions on Windows.

* Removes a stubbed function to fix non-windows builds.

* Update soh/soh/ActorDB.cpp

Co-authored-by: Adam Bird &lt;Archez@users.noreply.github.com&gt;

---------

Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;
Co-authored-by: Adam Bird &lt;Archez@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add dynamic actor IDs

* Convert Ivan to use new actor system

* attempt to fix linux build

* attempt to fix linux build

* merge

* Cleanup

* Fix missing math functions on Windows.

* Removes a stubbed function to fix non-windows builds.

* Update soh/soh/ActorDB.cpp

Co-authored-by: Adam Bird &lt;Archez@users.noreply.github.com&gt;

---------

Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;
Co-authored-by: Adam Bird &lt;Archez@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: use LUS 1.0 RC</title>
<updated>2023-01-17T05:33:56+00:00</updated>
<author>
<name>briaguya</name>
<email>70942617+briaguya-ai@users.noreply.github.com</email>
</author>
<published>2023-01-17T05:17:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=ba13e6b2c40d17adef064c2022ceeef260622981'/>
<id>ba13e6b2c40d17adef064c2022ceeef260622981</id>
<content type='text'>
Co-authored-by: kenix3 &lt;kenixwhisperwind@gmail.com&gt;
Co-authored-by: David Chavez &lt;david@dcvz.io&gt;
Co-authored-by: KiritoDv &lt;kiritodev01@gmail.com&gt;
Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: kenix3 &lt;kenixwhisperwind@gmail.com&gt;
Co-authored-by: David Chavez &lt;david@dcvz.io&gt;
Co-authored-by: KiritoDv &lt;kiritodev01@gmail.com&gt;
Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[Feature] Rando: Enemy Randomizer V1 (#1781)</title>
<updated>2022-12-06T09:33:50+00:00</updated>
<author>
<name>aMannus</name>
<email>mannusmenting@gmail.com</email>
</author>
<published>2022-12-06T09:33:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=598cac725e580b8acdf18f91263efa4d484231c9'/>
<id>598cac725e580b8acdf18f91263efa4d484231c9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Gameplay Stat Tracker V1 (#1986)</title>
<updated>2022-11-23T01:04:40+00:00</updated>
<author>
<name>Sarge-117</name>
<email>108380086+Sarge-117@users.noreply.github.com</email>
</author>
<published>2022-11-23T01:04:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=9c162fc0ecd4c2f4b7ad23bb311cd06496da9ca1'/>
<id>9c162fc0ecd4c2f4b7ad23bb311cd06496da9ca1</id>
<content type='text'>
* First test of gathering some gameplay stats

* timer changes and other stuff

* Move code to new files + rename

* Name change - gamePlayStats

* Finish rename, remove n64ddFlag checks

* Improve item get times

* Better time tracking, more stats,

* Put button under Enhancements

* Fix merge conflict

* Add pauseCount, fix bug with rando items

* Adjust inits/declarations

* step counter

* Name change: "itemGetTime" to "timestamp"

* Tidying + CI test

* Set up array for stat counts

* Macro

#define GAMEPLAYSTAT_TOTAL_TIME (gSaveContext.gameplayStats.playTimer / 2 + gSaveContext.gameplayStats.pauseTimer / 3)

* Add boss defeat timestamps

* Add sword swings, pots broken, bushes cut

* fix int type

* Add counts for enemies defeated

Broken down by enemy, with a total

* Add ammo used

* Hide breakdowns until count &gt; 0

* Forgot Big Octo

* Count chests opened

* Update after LUS submodule

* Enemy count spacing

* Comments

* Count 3 mini Floormasters as 1 Floormaster

+ some cleanup

* Comments

* Colour coding for timestamps on quest items

i.e. medallions/stones/songs

* Move stat into the sohStats struct

+ rearrange the counts enum for easier addition of future counts

* Some documentation + count button presses

* Stop counting button presses when Ganon defeated

* Couple bugfixes

Add count for Gerudo Thief, fix step counter counting in some situations where it shouldn't

* Fix comment</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* First test of gathering some gameplay stats

* timer changes and other stuff

* Move code to new files + rename

* Name change - gamePlayStats

* Finish rename, remove n64ddFlag checks

* Improve item get times

* Better time tracking, more stats,

* Put button under Enhancements

* Fix merge conflict

* Add pauseCount, fix bug with rando items

* Adjust inits/declarations

* step counter

* Name change: "itemGetTime" to "timestamp"

* Tidying + CI test

* Set up array for stat counts

* Macro

#define GAMEPLAYSTAT_TOTAL_TIME (gSaveContext.gameplayStats.playTimer / 2 + gSaveContext.gameplayStats.pauseTimer / 3)

* Add boss defeat timestamps

* Add sword swings, pots broken, bushes cut

* fix int type

* Add counts for enemies defeated

Broken down by enemy, with a total

* Add ammo used

* Hide breakdowns until count &gt; 0

* Forgot Big Octo

* Count chests opened

* Update after LUS submodule

* Enemy count spacing

* Comments

* Count 3 mini Floormasters as 1 Floormaster

+ some cleanup

* Comments

* Colour coding for timestamps on quest items

i.e. medallions/stones/songs

* Move stat into the sohStats struct

+ rearrange the counts enum for easier addition of future counts

* Some documentation + count button presses

* Stop counting button presses when Ganon defeated

* Couple bugfixes

Add count for Gerudo Thief, fix step counter counting in some situations where it shouldn't

* Fix comment</pre>
</div>
</content>
</entry>
<entry>
<title>Import libultraship as a submodule (#1943)</title>
<updated>2022-11-14T10:22:34+00:00</updated>
<author>
<name>briaguya</name>
<email>70942617+briaguya-ai@users.noreply.github.com</email>
</author>
<published>2022-11-14T10:22:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=3914781ebfd5cb22717cc207cb3d37d8754d0eb7'/>
<id>3914781ebfd5cb22717cc207cb3d37d8754d0eb7</id>
<content type='text'>
Co-authored-by: briaguya &lt;briaguya&gt;
Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;
Co-authored-by: David Chavez &lt;davi@dcvz.io&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: briaguya &lt;briaguya&gt;
Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;
Co-authored-by: David Chavez &lt;davi@dcvz.io&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Phase 1: Separate ImGui Drawing From LUS (#1310)</title>
<updated>2022-09-03T04:00:04+00:00</updated>
<author>
<name>David Chavez</name>
<email>david@dcvz.io</email>
</author>
<published>2022-09-03T04:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=0ce0ab1260dd24ac6168d1cdd28d60f21554cd86'/>
<id>0ce0ab1260dd24ac6168d1cdd28d60f21554cd86</id>
<content type='text'>
* Update LUS imported paths

* Introduce GameMenuBar

* Fix imports after LUS import paths change

* Move Randomizer

* Replace needs_save

* Migrate Developer Tools

* Migrate Cheats

* Migrate Enhancements

* Separate UIWidgets

* Add missing Hooks.cpp file

* Migrate Settings

* Remove UI methods from LUS

* Cleanup imports and exposed properties

* Cleanup more methods

* Fix project generation

* Fix CI compilation

* Remove resolved TODO</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Update LUS imported paths

* Introduce GameMenuBar

* Fix imports after LUS import paths change

* Move Randomizer

* Replace needs_save

* Migrate Developer Tools

* Migrate Cheats

* Migrate Enhancements

* Separate UIWidgets

* Add missing Hooks.cpp file

* Migrate Settings

* Remove UI methods from LUS

* Cleanup imports and exposed properties

* Cleanup more methods

* Fix project generation

* Fix CI compilation

* Remove resolved TODO</pre>
</div>
</content>
</entry>
<entry>
<title>Audio support nearly complete.</title>
<updated>2022-06-17T00:35:52+00:00</updated>
<author>
<name>Nicholas Estelami</name>
<email>NEstelami@users.noreply.github.com</email>
</author>
<published>2022-06-10T17:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=c49cee352111acc5f2a831ba2f7a46a627785eff'/>
<id>c49cee352111acc5f2a831ba2f7a46a627785eff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
