<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Shipwright/soh/src/code/z_sram.c, branch 7.0.1</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>Move Game Saving to Separate Thread (#2820)</title>
<updated>2023-05-05T21:20:34+00:00</updated>
<author>
<name>Malkierian</name>
<email>malkierian@live.com</email>
</author>
<published>2023-05-05T21:20:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=778f548b0139d86889b5c6e2455adf30ca849e64'/>
<id>778f548b0139d86889b5c6e2455adf30ca849e64</id>
<content type='text'>
* Refactor `Vec2f`, `Vec3f`, `Vec3s` in `z64math` to avoid reserved identifiers.

* Include `z64save` in SaveManager, which requires encapsulating `#include gameplaystats.h` and `InitStatTracker` in the cpp to fix compile issues.

Adds SaveContext reference parameters to SaveFunc and existing implementations in preparation for threaded saves.

* Threaded saves fully implemented.

Platform-specific save code removed.

Thread safety added. Will wait for thread pool tasks to finish before resetting or closing.

* Converted gSaveContext copy for save threads to the heap with `new`, deleted at the end of the threaded function to prevent possible issues with the stack.

* Turns out leaving the call to `ThreadPoolWait` in a `GameInteractor::OnExitGame` hook seems to be just fine.

* Removed unnecessary references to `SaveManager::ThreadPoolWait()`, game hooks are the only places it's called now.

* Re-added WiiU/Switch performance save code.

* Added call to `SaveManager::ThreadPoolWait` in `Sram_InitSave` to prevent trying to load a newly "created" save before the save file was actually written.

---------

Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Refactor `Vec2f`, `Vec3f`, `Vec3s` in `z64math` to avoid reserved identifiers.

* Include `z64save` in SaveManager, which requires encapsulating `#include gameplaystats.h` and `InitStatTracker` in the cpp to fix compile issues.

Adds SaveContext reference parameters to SaveFunc and existing implementations in preparation for threaded saves.

* Threaded saves fully implemented.

Platform-specific save code removed.

Thread safety added. Will wait for thread pool tasks to finish before resetting or closing.

* Converted gSaveContext copy for save threads to the heap with `new`, deleted at the end of the threaded function to prevent possible issues with the stack.

* Turns out leaving the call to `ThreadPoolWait` in a `GameInteractor::OnExitGame` hook seems to be just fine.

* Removed unnecessary references to `SaveManager::ThreadPoolWait()`, game hooks are the only places it's called now.

* Re-added WiiU/Switch performance save code.

* Added call to `SaveManager::ThreadPoolWait` in `Sram_InitSave` to prevent trying to load a newly "created" save before the save file was actually written.

---------

Co-authored-by: Christopher Leggett &lt;chris@leggett.dev&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>chore: move rando savefile setup and document flags (#2697)</title>
<updated>2023-04-11T22:27:51+00:00</updated>
<author>
<name>Adam Bird</name>
<email>Archez@users.noreply.github.com</email>
</author>
<published>2023-04-11T22:27:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=059df8187ef4ad070e315920f532f3dcc57ad5e6'/>
<id>059df8187ef4ad070e315920f532f3dcc57ad5e6</id>
<content type='text'>
* remove rando save init from sram

* move rando savefile init logic and set more flags

* document flags for rando save creation</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* remove rando save init from sram

* move rando savefile init logic and set more flags

* document flags for rando save creation</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'hm/develop-khan' into khan-to-dev</title>
<updated>2023-03-14T04:29:30+00:00</updated>
<author>
<name>briaguya</name>
<email>briaguya@alice</email>
</author>
<published>2023-03-14T04:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=2bd8316d5492521711be7f10d54e174c3371c06d'/>
<id>2bd8316d5492521711be7f10d54e174c3371c06d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[GI] Item_Give and OnReceiveItem updates (#2580)</title>
<updated>2023-03-12T07:00:03+00:00</updated>
<author>
<name>Malkierian</name>
<email>malkierian@gmail.com</email>
</author>
<published>2023-03-12T07:00:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=73052617eda789f957040f98d9368d9cf453a123'/>
<id>73052617eda789f957040f98d9368d9cf453a123</id>
<content type='text'>
* Changed OnReceiveItem hook to pass GetItemEntry, which required the following changes:

Reworked the references to it in `z_parameter` to call a single function with the item return and hook call in it for ease of editing.

Modified the pendingSale functionality to set and pass a modIndex value as well, as mod items (like randomizer) in shops still use the vanilla sale path.

* Missed some files for the pendingSale changes.

Also added Randomizer_Item_Give to the OnReceiveItem system.

* Ice traps now trigger OnReceiveItem.

* All ice traps truly do work now.

As a side effect, item autosave doesn't work for shop/scrub/merchant transactions, requires new OnSaleEnded hook that can also call the autosave.

* Removed unnecessary calls to ItemTable_RetrieveEntry where GetItemEntry properties were being used to call it.  General code cleanup.

* Added OnSaleEnd hook for when rupees are finished deducting after a sale.

Migrated AutoSave to its own function, registered AutoSave function to OnReceiveItem and OnSaleEnd hooks to help with autsaving after buying items.

Some futureproofing for AutoSave function with parameters for skipping autosave, for when transition end is migrated to AutoSave function (whether through direct call or through a hook).

* Renamed hook paramaters, and registered hook function parameters, to a more descriptive alternative.

* Missed a couple, fixed a typo.

* One more missed paramater name refactor.

Refactored all references to OnReceiveItem to OnItemReceive to mirror upcoming full hook refactor for name ordering conventions.

Up-to-date with develop.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Changed OnReceiveItem hook to pass GetItemEntry, which required the following changes:

Reworked the references to it in `z_parameter` to call a single function with the item return and hook call in it for ease of editing.

Modified the pendingSale functionality to set and pass a modIndex value as well, as mod items (like randomizer) in shops still use the vanilla sale path.

* Missed some files for the pendingSale changes.

Also added Randomizer_Item_Give to the OnReceiveItem system.

* Ice traps now trigger OnReceiveItem.

* All ice traps truly do work now.

As a side effect, item autosave doesn't work for shop/scrub/merchant transactions, requires new OnSaleEnded hook that can also call the autosave.

* Removed unnecessary calls to ItemTable_RetrieveEntry where GetItemEntry properties were being used to call it.  General code cleanup.

* Added OnSaleEnd hook for when rupees are finished deducting after a sale.

Migrated AutoSave to its own function, registered AutoSave function to OnReceiveItem and OnSaleEnd hooks to help with autsaving after buying items.

Some futureproofing for AutoSave function with parameters for skipping autosave, for when transition end is migrated to AutoSave function (whether through direct call or through a hook).

* Renamed hook paramaters, and registered hook function parameters, to a more descriptive alternative.

* Missed a couple, fixed a typo.

* One more missed paramater name refactor.

Refactored all references to OnReceiveItem to OnItemReceive to mirror upcoming full hook refactor for name ordering conventions.

Up-to-date with develop.</pre>
</div>
</content>
</entry>
<entry>
<title>fix rando quest selection falling back to vanilla saves (#2599)</title>
<updated>2023-03-08T18:09:22+00:00</updated>
<author>
<name>Adam Bird</name>
<email>Archez@users.noreply.github.com</email>
</author>
<published>2023-03-08T18:09:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=7c558ae089d17259c41dafff12ef21b1a99d63fa'/>
<id>7c558ae089d17259c41dafff12ef21b1a99d63fa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Game Interactor] Add LoadGame and ExitGame hooks (#2542)</title>
<updated>2023-02-27T04:04:57+00:00</updated>
<author>
<name>Adam Bird</name>
<email>Archez@users.noreply.github.com</email>
</author>
<published>2023-02-27T04:04:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=f7bb80794017d1f8a21e93be3f8f4c155f037ebf'/>
<id>f7bb80794017d1f8a21e93be3f8f4c155f037ebf</id>
<content type='text'>
* add loadgame/exitgame GI hooks

* implement loadgame/exitgame hooks in game code

* move entrance tracker data lifecycle to hooks

* update cosmetic editor to update onloadgame hook</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* add loadgame/exitgame GI hooks

* implement loadgame/exitgame hooks in game code

* move entrance tracker data lifecycle to hooks

* update cosmetic editor to update onloadgame hook</pre>
</div>
</content>
</entry>
<entry>
<title>Fix: Rando settings not being initialized in time (#2461)</title>
<updated>2023-02-13T07:00:59+00:00</updated>
<author>
<name>Adam Bird</name>
<email>Archez@users.noreply.github.com</email>
</author>
<published>2023-02-13T07:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=67421179e4ebd97d62a2d6ae6a0227765579f538'/>
<id>67421179e4ebd97d62a2d6ae6a0227765579f538</id>
<content type='text'>
* fix entrance init and entrance tracker not working properly when no spoiler log is loaded

* fix rando adult trade spoilable items reverting when no spoiler log loaded</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fix entrance init and entrance tracker not working properly when no spoiler log is loaded

* fix rando adult trade spoilable items reverting when no spoiler log loaded</pre>
</div>
</content>
</entry>
<entry>
<title>fix mido spawn for dungeon entrance rando (#2384)</title>
<updated>2023-01-23T19:08:16+00:00</updated>
<author>
<name>Adam Bird</name>
<email>Archez@users.noreply.github.com</email>
</author>
<published>2023-01-23T19:08:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=cb5faa1ac83d94682815020affa792529aff9e2b'/>
<id>cb5faa1ac83d94682815020affa792529aff9e2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Full health spawn (#2377)</title>
<updated>2023-01-21T14:36:35+00:00</updated>
<author>
<name>briaguya</name>
<email>70942617+briaguya-ai@users.noreply.github.com</email>
</author>
<published>2023-01-21T14:36:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=a9e7faa180db8e877e69a8b97ca37feb104b48ec'/>
<id>a9e7faa180db8e877e69a8b97ca37feb104b48ec</id>
<content type='text'>
* full health spawn

Co-authored-by: MoriyaFaith &lt;46070717+MoriyaFaith@users.noreply.github.com&gt;

* add enahancement to gamemenubar, update to use new cvar method names, simplify save loading logic so loading a save with less than 3 hearts spawns with full hearts with enhancement enabled instead of spawing with 3

* formatting

Co-authored-by: MoriyaFaith &lt;46070717+MoriyaFaith@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* full health spawn

Co-authored-by: MoriyaFaith &lt;46070717+MoriyaFaith@users.noreply.github.com&gt;

* add enahancement to gamemenubar, update to use new cvar method names, simplify save loading logic so loading a save with less than 3 hearts spawns with full hearts with enhancement enabled instead of spawing with 3

* formatting

Co-authored-by: MoriyaFaith &lt;46070717+MoriyaFaith@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Add Starting Songs Option (#2221)</title>
<updated>2023-01-19T09:54:29+00:00</updated>
<author>
<name>Patrick12115</name>
<email>115201185+Patrick12115@users.noreply.github.com</email>
</author>
<published>2023-01-19T09:54:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/Shipwright/commit/?id=c0ad43e50939fd57710c1b3c9cc85675a5091c26'/>
<id>c0ad43e50939fd57710c1b3c9cc85675a5091c26</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
