mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-23 07:29:37 -04:00
Fix Track Invocation Spam (#738)
* Update main.c * Update TrackBrowser.cpp * Add TrackBrowser_ResetSelectedTrack function declaration * Add void keyword to function declarations * Rename global track variable for clarity * Update TrackBrowser.h
This commit is contained in:
@@ -80,8 +80,18 @@ extern "C" void TrackBrowser_SetTrack(const char* name) {
|
||||
TrackBrowser::Instance->SetTrack(std::string(name));
|
||||
}
|
||||
|
||||
extern "C" void TrackBrowser_SetTrackFromCup() {
|
||||
TrackBrowser::Instance->SetTrack(GetWorld()->GetCurrentCup()->GetTrack());
|
||||
static std::string sCurrentlySelectedTrack = "";
|
||||
extern "C" void TrackBrowser_SetTrackFromCup(void) {
|
||||
const std::string& track = GetWorld()->GetCurrentCup()->GetTrack();
|
||||
// Prevent repeated invoke spams
|
||||
if (track != sCurrentlySelectedTrack) {
|
||||
sCurrentlySelectedTrack = track;
|
||||
TrackBrowser::Instance->SetTrack(track);
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" void TrackBrowser_ResetSelectedTrack(void) {
|
||||
sCurrentlySelectedTrack = "";
|
||||
}
|
||||
|
||||
extern "C" void TrackBrowser_NextTrack(void) {
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
);
|
||||
}
|
||||
|
||||
void SetTrack(std::string name) {
|
||||
void SetTrack(const std::string& name) {
|
||||
if (gTrackRegistry.Find(name)) {
|
||||
gTrackRegistry.Invoke(name);
|
||||
} else {
|
||||
@@ -191,6 +191,7 @@ extern "C" {
|
||||
#endif // __cplusplus
|
||||
void TrackBrowser_SetTrack(const char* name);
|
||||
void TrackBrowser_SetTrackFromCup(void); // <-- Not in TrackBrowser class
|
||||
void TrackBrowser_ResetSelectedTrack(void);
|
||||
void TrackBrowser_NextTrack(void);
|
||||
void TrackBrowser_PreviousTrack(void);
|
||||
size_t TrackBrowser_GetTrackIndex(void);
|
||||
@@ -206,4 +207,4 @@ const char* TrackBrowser_GetMinimapTextureByIdx(size_t trackIndex);
|
||||
}
|
||||
#endif // __cplusplus
|
||||
|
||||
#endif // TRACKBROWSER_H
|
||||
#endif // TRACKBROWSER_H
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "port/Game.h"
|
||||
#include "port/Engine.h"
|
||||
#include "engine/Matrix.h"
|
||||
#include "engine/TrackBrowser.h"
|
||||
|
||||
// Declarations (not in this file)
|
||||
void func_80091B78(void);
|
||||
@@ -1108,6 +1109,7 @@ void update_gamestate(void) {
|
||||
*/
|
||||
// init_segment_racing();
|
||||
setup_race();
|
||||
TrackBrowser_ResetSelectedTrack(); // Same function as gCurrentlyLoadedTrackAddr
|
||||
break;
|
||||
case ENDING:
|
||||
gCurrentlyLoadedTrackAddr = NULL;
|
||||
|
||||
Reference in New Issue
Block a user