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
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

+16
View File
@@ -0,0 +1,16 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Kiki library for SuperTuxKart
Upstream-Contact: Benau
Source: https://supertuxkart.net
Files:
*.spm
*.xml
kiki_brush.png
kiki_brush-gloss.png
scripting.as
Copyright:
Copyright 2020 Typhon306
Copyright 2020 McRavenINDo
License: CC-BY-SA 3.0
Comment: Kiki mascot is designed by Tyson Tan.
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0"?>
<!-- Generated with script from SVN rev Unknown -->
<materials>
<material name="kiki_brush.png" gloss-map="kiki_brush-gloss.png"/>
</materials>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0"?>
<!-- Generated with script from SVN rev 17016 -->
<scene>
<lod>
<group name="_single_lod_stklib_kiki_a_main">
<static-object lod_distance="120" lod_group="_single_lod_stklib_kiki_a_main" model="stklib_kiki_a_main.spm" xyz="0.00 0.00 0.00" hpr="0.0 0.1 0.0" scale="1.00 1.00 1.00" interaction="ghost" skeletal-animation="true" geometry-level="1"/>
</group>
</lod>
<object id="stklib_kiki_a_main" type="animation" xyz="0.00 0.00 0.00" hpr="0.0 -0.0 0.0" scale="1.00 1.00 1.00" interaction="ghost" lod_instance="true" lod_group="_single_lod_stklib_kiki_a_main" model="stklib_kiki_a_main.spm" skeletal-animation="true" geometry-level="1">
</object>
<object id="stklib_kiki_a_physics" type="animation" xyz="0.00 0.00 0.00" hpr="0.0 -0.0 0.0" scale="1.00 1.00 1.00" interaction="physicsonly" shape="box" model="stklib_kiki_a_physics.spm" skeletal-animation="false" geometry-level="1">
</object>
</scene>
+60
View File
@@ -0,0 +1,60 @@
namespace stklib_kiki_a
{
// Frame 0 to 109 is waving hand animation, used in stklib_carousel_a
// Frame 110 to 287 is painting animation, used in stklib_kikiPainter_a
void onStart(const string instID)
{
array<Track::TrackObject@>@ tl = Track::getTrackObjectList();
Track::TrackObject@ kiki_obj = null;
Track::Mesh@ kiki_mesh = null;
for (uint i = 0; i < tl.length(); i++)
{
if (tl[i].getName() == "stklib_kiki_a_main.spm")
{
// Originally kiki animation ends at 287 totally
if (tl[i].getMesh() !is null &&
tl[i].getMesh().getAnimationSetFrames().length() == 2 &&
tl[i].getMesh().getAnimationSetFrames()[0] == 0 &&
tl[i].getMesh().getAnimationSetFrames()[1] == 300)
{
@kiki_obj = @tl[i];
@kiki_mesh = @tl[i].getMesh();
break;
}
}
}
if (kiki_mesh !is null && kiki_obj.getParentLibrary() !is null)
{
// Try to see if this kiki is used by a meta library
// kiki_obj is the kiki .spm in kiki library, so 2
// getParentLibrary() will do the job
Track::TrackObject@ meta =
kiki_obj.getParentLibrary().getParentLibrary();
if (meta !is null)
{
if (meta.getName() == "stklib_carousel_a")
{
kiki_mesh.removeAllAnimationSet();
kiki_mesh.addAnimationSet(0, 109);
kiki_mesh.useAnimationSet(0);
return;
}
else if (meta.getName() == "stklib_kikiPainter_a")
{
kiki_mesh.removeAllAnimationSet();
kiki_mesh.addAnimationSet(110, 300);
kiki_mesh.useAnimationSet(0);
return;
}
}
}
if (kiki_mesh !is null)
{
// For now use painting animation if kiki is used alone
kiki_mesh.removeAllAnimationSet();
kiki_mesh.addAnimationSet(110, 300);
kiki_mesh.useAnimationSet(0);
}
}
}
Binary file not shown.
Binary file not shown.