<feed xmlns='http://www.w3.org/2005/Atom'>
<title>SpaghettiKart/src/port/Game.h, branch main</title>
<subtitle>SpaghettiKart: Mario Kart 64 PC port</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/'/>
<entry>
<title>Fix the reset button doing nothing or looping the start screen when pressed repeatedly (#719)</title>
<updated>2026-07-23T18:21:36+00:00</updated>
<author>
<name>quarrel07</name>
<email>178681861+quarrel07@users.noreply.github.com</email>
</author>
<published>2026-07-23T18:21:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=78a012ce06b8756870e18230c3957c00cc2a66da'/>
<id>78a012ce06b8756870e18230c3957c00cc2a66da</id>
<content type='text'>
* Make the reset button reliable from any screen

Pressing reset repeatedly near app start could do nothing, fade the music
with no reset, or bounce the press-start screen back to itself. Three
defects in the old handler:

- It ran from the ImGui widget, racing the menu state machine; a press
  landing mid-fade was re-advanced by the in-flight transition (the
  press-start loop).
- It always wrote gGamestateNext = MAIN_MENU_FROM_QUIT; once the game was
  already in that state a repeat write is swallowed by the != guard in
  main.c, so nothing happened.
- CM_ResetAudio ran unconditionally, so the music faded even when the
  reset was swallowed.

The widget now only sets an atomic request flag; ApplyPendingReset (top of
push_frame, on the game loop) performs the reset. It alternates between
the two identical FROM_QUIT gamestates so every press trips the gamestate
switch, and re-enters the menus through the intro's own transition
protocol (FADE_MODE_LOGO -&gt; setup_menus rebuild + fresh fade-in), which
replaces any in-flight transition. Audio only fades when a reset actually
executes. The dead gSkipIntro switch in the old handler (an unconditional
override below it always won) is gone; behavior is unchanged: reset lands
on the logo intro, or the start menu in debug mode.

Play-verified: hammering reset during the splash screens restarts the
logo every press; reset mid-fade after press-start no longer loops back;
resets from the main menu and mid-race work as before.

* Honor gSkipIntro when picking the post-reset screen

Review feedback on #719: restore the gSkipIntro switch from the old
handler instead of hard-coding the logo intro, keeping the debug-mode
override on top (no else), matching the boot-time logic in main().

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Co-authored-by: MegaMech &lt;MegaMech@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Make the reset button reliable from any screen

Pressing reset repeatedly near app start could do nothing, fade the music
with no reset, or bounce the press-start screen back to itself. Three
defects in the old handler:

- It ran from the ImGui widget, racing the menu state machine; a press
  landing mid-fade was re-advanced by the in-flight transition (the
  press-start loop).
- It always wrote gGamestateNext = MAIN_MENU_FROM_QUIT; once the game was
  already in that state a repeat write is swallowed by the != guard in
  main.c, so nothing happened.
- CM_ResetAudio ran unconditionally, so the music faded even when the
  reset was swallowed.

The widget now only sets an atomic request flag; ApplyPendingReset (top of
push_frame, on the game loop) performs the reset. It alternates between
the two identical FROM_QUIT gamestates so every press trips the gamestate
switch, and re-enters the menus through the intro's own transition
protocol (FADE_MODE_LOGO -&gt; setup_menus rebuild + fresh fade-in), which
replaces any in-flight transition. Audio only fades when a reset actually
executes. The dead gSkipIntro switch in the old handler (an unconditional
override below it always won) is gone; behavior is unchanged: reset lands
on the logo intro, or the start menu in debug mode.

Play-verified: hammering reset during the splash screens restarts the
logo every press; reset mid-fade after press-start no longer loops back;
resets from the main menu and mid-race work as before.

* Honor gSkipIntro when picking the post-reset screen

Review feedback on #719: restore the gSkipIntro switch from the old
handler instead of hard-coding the logo intro, keeping the debug-mode
override on top (no else), matching the boot-time logic in main().

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: Claude Fable 5 &lt;noreply@anthropic.com&gt;
Co-authored-by: MegaMech &lt;MegaMech@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor cmake (#721)</title>
<updated>2026-07-23T00:02:58+00:00</updated>
<author>
<name>coco875</name>
<email>59367621+coco875@users.noreply.github.com</email>
</author>
<published>2026-07-23T00:02:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=4c24ae2bc2294c96a81d296a68b6d404f34358e7'/>
<id>4c24ae2bc2294c96a81d296a68b6d404f34358e7</id>
<content type='text'>
* some start of refactor

* Update SetFlags.cmake

* Update SetCmakeVar.cmake

* Update SetFlags.cmake

* Fix error int-convertion

* more refactor

* clean up include and source file

* fix link of lib

* fix a warning

* fix include in src/actors

* fix include in src/debug

* fix include in src/ending

* fix include in src/engine/actors

* fix include in src/engine/cameras

* fix include in src/engine/editor

* fix include in src/engine/objects

* fix include in src/engine/tracks

* fix include in src/port/ui

* fix include in src/racing

* fix include in src/engine/vehicles

* fix include in subfolder of src/engine

* fix include in src/engine

* fix include in src/enhancements

* fix include in src

* fix switch

* invert common and findlib

* Update SetFlags.cmake

* clean up some workflow

* some splification

* Update build.sh

* Update Game.h

* add header back

* Delete test_check.cmake

* continue

* Update common.cmake</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* some start of refactor

* Update SetFlags.cmake

* Update SetCmakeVar.cmake

* Update SetFlags.cmake

* Fix error int-convertion

* more refactor

* clean up include and source file

* fix link of lib

* fix a warning

* fix include in src/actors

* fix include in src/debug

* fix include in src/ending

* fix include in src/engine/actors

* fix include in src/engine/cameras

* fix include in src/engine/editor

* fix include in src/engine/objects

* fix include in src/engine/tracks

* fix include in src/port/ui

* fix include in src/racing

* fix include in src/engine/vehicles

* fix include in subfolder of src/engine

* fix include in src/engine

* fix include in src/enhancements

* fix include in src

* fix switch

* invert common and findlib

* Update SetFlags.cmake

* clean up some workflow

* some splification

* Update build.sh

* Update Game.h

* add header back

* Delete test_check.cmake

* continue

* Update common.cmake</pre>
</div>
</content>
</entry>
<entry>
<title>Fix warnings regarding ambigious typings (#715)</title>
<updated>2026-07-20T10:14:56+00:00</updated>
<author>
<name>Lucas</name>
<email>dracc@dracc.se</email>
</author>
<published>2026-07-20T10:14:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=4c03712561beb7434dcaf814a021579c6a011fa2'/>
<id>4c03712561beb7434dcaf814a021579c6a011fa2</id>
<content type='text'>
* Fix warnings regarding ambigious typings

* Revert struct Collision name change</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix warnings regarding ambigious typings

* Revert struct Collision name change</pre>
</div>
</content>
</entry>
<entry>
<title>Impl Sky and SkyActors (#630)</title>
<updated>2026-02-24T21:51:25+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2026-02-24T21:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=548ccf0063f6c4d6608cf87f46a347c71079c0bd'/>
<id>548ccf0063f6c4d6608cf87f46a347c71079c0bd</id>
<content type='text'>
* Create Cloud.cpp

* Create Cloud.h

* Fix the cloud

* Cleanup

* More cleanup

* Update Track.h

* Refactor SkyboxCloud position calculations

* Update SkyboxStar.cpp

* Update SkyboxStar.cpp

* Refactor SkyboxStar.cpp by removing redundant code

* Update SkyboxCloud.cpp

* Refactor SkyboxSnow.cpp by reordering includes

* Update SkyboxCloud.h

* Refactor SkyboxStar.h for improved formatting

* Impl skyboxcloud

* Update comment

* update comment

* Work now

* Fully impl Sky

* Fix define

* Fix args</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Create Cloud.cpp

* Create Cloud.h

* Fix the cloud

* Cleanup

* More cleanup

* Update Track.h

* Refactor SkyboxCloud position calculations

* Update SkyboxStar.cpp

* Update SkyboxStar.cpp

* Refactor SkyboxStar.cpp by removing redundant code

* Update SkyboxCloud.cpp

* Refactor SkyboxSnow.cpp by reordering includes

* Update SkyboxCloud.h

* Refactor SkyboxStar.h for improved formatting

* Impl skyboxcloud

* Update comment

* update comment

* Work now

* Fully impl Sky

* Fix define

* Fix args</pre>
</div>
</content>
</entry>
<entry>
<title>Attempt At Fixing Clang (#647)</title>
<updated>2026-02-08T20:50:22+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2026-02-08T20:50:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=3aa2c9662aa811023ca6730e7f4815ae61886691'/>
<id>3aa2c9662aa811023ca6730e7f4815ae61886691</id>
<content type='text'>
* Update Game.h

* Update Game.h

* Update macros.h</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Update Game.h

* Update Game.h

* Update macros.h</pre>
</div>
</content>
</entry>
<entry>
<title>fix build on OpenBSD (#621)</title>
<updated>2026-01-01T20:06:40+00:00</updated>
<author>
<name>Fabien Romano</name>
<email>fabienromano@gmail.com</email>
</author>
<published>2026-01-01T20:06:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=a4c01b784b8e65f416a007b06caa8eb8a4c3dd12'/>
<id>a4c01b784b8e65f416a007b06caa8eb8a4c3dd12</id>
<content type='text'>
* fix build on OpenBSD

* Update src/port/Game.cpp

* Update ceremony_and_credits.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fix build on OpenBSD

* Update src/port/Game.cpp

* Update ceremony_and_credits.c
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor Track to CustomTrack Class, impl render layers (#606)</title>
<updated>2025-12-29T22:51:12+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2025-12-29T22:51:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=81d200e74b6fc245424d13631836e7d1c77ba953'/>
<id>81d200e74b6fc245424d13631836e7d1c77ba953</id>
<content type='text'>
* impl Custom track transparency and clip

* Rename DrawWater to DrawTransparency

* Impl z-sorting for transparent mesh

* Interp work

* rename track function

* cleanup

* Revert texture interp

* Further revert

* Update Harbour

* Impl custom track path select

* Add check

* Fix compile

* Fix function extern

---------

Co-authored-by: MegaMech &lt;7255464+MegaMech@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* impl Custom track transparency and clip

* Rename DrawWater to DrawTransparency

* Impl z-sorting for transparent mesh

* Interp work

* rename track function

* cleanup

* Revert texture interp

* Further revert

* Update Harbour

* Impl custom track path select

* Add check

* Fix compile

* Fix function extern

---------

Co-authored-by: MegaMech &lt;7255464+MegaMech@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Camera nullptr (#599)</title>
<updated>2025-12-19T02:03:43+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2025-12-19T02:03:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=7d64601d85f4b3cf19baf6504dea0476725f184f'/>
<id>7d64601d85f4b3cf19baf6504dea0476725f184f</id>
<content type='text'>
* Update spawn_players.c

* Update spawn_players.c

* Update code_80280000.c

* Update Game.cpp

* Add CM_ThrowRuntimeError function declaration

* Update spawn_players.c

* Modify CM_ThrowRuntimeError for improved error handling

Increased the buffer size for error messages and added a crash description.

* Update Game.cpp

* Update Game.cpp

* Update Game.h

* Update Game.h

* Update Game.h</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Update spawn_players.c

* Update spawn_players.c

* Update code_80280000.c

* Update Game.cpp

* Add CM_ThrowRuntimeError function declaration

* Update spawn_players.c

* Modify CM_ThrowRuntimeError for improved error handling

Increased the buffer size for error messages and added a crash description.

* Update Game.cpp

* Update Game.cpp

* Update Game.h

* Update Game.h

* Update Game.h</pre>
</div>
</content>
</entry>
<entry>
<title>Impl RandomItemTable class (#598)</title>
<updated>2025-12-18T18:24:38+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2025-12-18T18:24:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=f0c2cea0eec6c49a335e9c044fcc28218e1ab749'/>
<id>f0c2cea0eec6c49a335e9c044fcc28218e1ab749</id>
<content type='text'>
* Impl RandomItem class

* Refactor func

* Impl RandomItemTable

* Revert probability inaccuracy

* Remove unnecessary comment

* Fix compile, probably

* As per review 1

---------

Co-authored-by: MegaMech &lt;7255464+MegaMech@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Impl RandomItem class

* Refactor func

* Impl RandomItemTable

* Revert probability inaccuracy

* Remove unnecessary comment

* Fix compile, probably

* As per review 1

---------

Co-authored-by: MegaMech &lt;7255464+MegaMech@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Edit TrackInfo Properties (#594)</title>
<updated>2025-12-15T19:29:58+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2025-12-15T19:29:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=eb11374093b07bd968ccb955eecd06133db0ab74'/>
<id>eb11374093b07bd968ccb955eecd06133db0ab74</id>
<content type='text'>
* Fix finishline for toads turnpike in extra

* Fixed trash bin in extra

* Refactor fov

* Update scene.json

* Allow setting fog

* impl fog save &amp; load

* Fix modifying resourceName and rename editor namespace to trackeditor

* small change</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix finishline for toads turnpike in extra

* Fixed trash bin in extra

* Refactor fov

* Update scene.json

* Allow setting fog

* impl fog save &amp; load

* Fix modifying resourceName and rename editor namespace to trackeditor

* small change</pre>
</div>
</content>
</entry>
</feed>
