SuperTuxKart 1.5 upstream source (from official release tarball)

This commit is contained in:
Benjamin
2026-06-11 20:04:02 +02:00
commit 2957e51aaa
8551 changed files with 1801800 additions and 0 deletions
@@ -0,0 +1,105 @@
void onStart()
{
array<string> light_list = {"gfx_lightning_a_main_proxy",
"gfx_lightning_a_main_proxy.001",
"gfx_lightning_a_main_proxy.002",
"gfx_lightning_a_main_proxy.003"};
uint counter = 0;
while(counter < light_list.length())
{
// by default hide everything
Track::getTrackObject(light_list[counter], "gfx_lightning_a_main").setEnabled(false);
// Init the Lightning blink
LightningTimeout @ timeout = LightningTimeout(light_list[counter]);
Utils::TimeoutCallback@ timerDelegate = Utils::TimeoutCallback(timeout.onTimerComplete);
Utils::setTimeoutDelegate(timerDelegate, Utils::randomFloat(4, 10));
counter++;
}
}
void LightningDisplay(string instID, bool tog) {
Track::getTrackObject(instID, "gfx_lightning_a_main").setEnabled(tog);}
class LightningBlink
{
string instID;
LightningBlink(string instID)
{
this.instID = instID;
}
void onTimerComplete()
{
LightningDisplay(this.instID, false);
}
}
class LightningSecondBlink
{
string instID;
LightningSecondBlink(string instID)
{
this.instID = instID;
}
void onTimerComplete()
{
LightningDisplay(this.instID, true);
}
}
class LightningTimeout
{
string instID;
LightningTimeout(string instID)
{
this.instID = instID;
}
void onTimerComplete()
{
LightningDisplay(this.instID, true);
LightningTimeout @ timeout = LightningTimeout(this.instID);
Utils::TimeoutCallback@ timerDelegate = Utils::TimeoutCallback(timeout.onTimerComplete);
Utils::setTimeoutDelegate(timerDelegate, Utils::randomFloat(4, 10));
// After 0.1 we turn of the light ray
LightningBlink @ timeout2 = LightningBlink(this.instID);
Utils::TimeoutCallback@ timerDelegate2 = Utils::TimeoutCallback(timeout2.onTimerComplete);
Utils::setTimeoutDelegate(timerDelegate2, 0.05);
// After 0.1 we do a second blink
LightningSecondBlink @ timeout3 = LightningSecondBlink(this.instID);
Utils::TimeoutCallback@ timerDelegate3 = Utils::TimeoutCallback(timeout3.onTimerComplete);
Utils::setTimeoutDelegate(timerDelegate3, 0.15);
LightningBlink @ timeout4 = LightningBlink(this.instID);
Utils::TimeoutCallback@ timerDelegate4 = Utils::TimeoutCallback(timeout4.onTimerComplete);
Utils::setTimeoutDelegate(timerDelegate4, 0.2);
}
}
bool isTrackReverse(Track::TrackObject@ obj)
{
return Track::isReverse();
}
bool isTrackNotReverse(Track::TrackObject@ obj)
{
return !Track::isReverse();
}