Compare commits
44 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0c911c697b | ||
|
6837ed82c3 | ||
|
b0eddb47f3 | ||
|
bfbc54879a | ||
|
0fb21c2dad | ||
|
9faafaaaa5 | ||
|
0350ac3305 | ||
|
b06a936e4b | ||
|
0ecf2eea05 | ||
|
184e5c9cde | ||
|
b90b7c805c | ||
|
38caef402e | ||
|
f08b9afde7 | ||
|
8742122103 | ||
|
ba527c17dd | ||
|
860a9844d0 | ||
|
717022258e | ||
|
2844210a1e | ||
|
d500072d52 | ||
|
025d67394b | ||
|
9a6b005651 | ||
|
3c8b1a76ce | ||
|
1b9d44607b | ||
|
1e21421c69 | ||
|
3a5b6df32e | ||
|
f80b65f032 | ||
|
e8f8510b5f | ||
|
afb92e1ae6 | ||
|
f7e02775a8 | ||
|
9ac2099e8f | ||
|
01f1475715 | ||
|
600e01a4ae | ||
|
7b7b5c4592 | ||
|
145759736f | ||
|
6d26ba5800 | ||
|
73ea4eb7b2 | ||
|
dade9763d6 | ||
|
98045b6698 | ||
|
e519754b3f | ||
|
8fcf8c0b9b | ||
|
755885c80b | ||
|
9b2c8e31da | ||
|
92aa10a427 | ||
|
a1742761c6 |
@@ -1,5 +1,5 @@
|
|||||||
SuperTuxKart 0.4 (February 2008)
|
SuperTuxKart 0.4 (March 2008)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
* New physics handling using the bullet physics engine
|
* New physics handling using the bullet physics engine
|
||||||
* New kart: wilber
|
* New kart: wilber
|
||||||
* Improved 'Shifting Sands' and 'Lighthouse' tracks
|
* Improved 'Shifting Sands' and 'Lighthouse' tracks
|
||||||
|
4
INSTALL
4
INSTALL
@@ -48,7 +48,7 @@ install following packages:
|
|||||||
libglu1-mesa-dev subversion autoconf automake1.9 g++ gcc
|
libglu1-mesa-dev subversion autoconf automake1.9 g++ gcc
|
||||||
|
|
||||||
do a:
|
do a:
|
||||||
$ svn checkout svn://svn.berlios.de/supertuxkart/trunk
|
$ svn checkout http://supertuxkart.svn.sourceforge.net/svnroot/supertuxkart/trunk/supertuxkart
|
||||||
|
|
||||||
then:
|
then:
|
||||||
$ cd trunk
|
$ cd trunk
|
||||||
@@ -72,7 +72,7 @@ If you checked out your copy directly from SVN, you have to run
|
|||||||
|
|
||||||
You should check the SuperTuxKart wiki at:
|
You should check the SuperTuxKart wiki at:
|
||||||
|
|
||||||
http://supertuxkart.berlios.de/wiki
|
http://supertuxkart.sourceforge.net/
|
||||||
|
|
||||||
|
|
||||||
Also, the most common (by FAR) reason for problems is that your OpenGL/Mesa
|
Also, the most common (by FAR) reason for problems is that your OpenGL/Mesa
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = @BULLETTREE@ src wavs images models oggs data fonts
|
SUBDIRS = @BULLETTREE@ src wavs images models oggs doc data fonts
|
||||||
|
|
||||||
EXTRA_DIST = README ChangeLog COPYING missing
|
EXTRA_DIST = README README.cygwin README.macosx README.windows ChangeLog COPYING missing
|
||||||
|
|
||||||
|
@@ -1,28 +0,0 @@
|
|||||||
Beginning with revision r1325 bullet physics is being used
|
|
||||||
in SuperTuxKart. A copy of bullet is included in
|
|
||||||
the sources and the STK build environment, so it's
|
|
||||||
not necessary to install your own version.
|
|
||||||
|
|
||||||
Even though we officiall switched to bullet physics,
|
|
||||||
not all 'old' features of STK are fully supported yet.
|
|
||||||
For now mainly the race track works as expected, all tracks
|
|
||||||
can be played. Most important bugs:
|
|
||||||
- not all collectable work
|
|
||||||
(zippers don't do much at the moment, rockets and sparks mostly
|
|
||||||
work, but are sometimes too high)
|
|
||||||
- karts are not automatically rescued when touching
|
|
||||||
water or lava
|
|
||||||
- no proper friction handling, so no skidding
|
|
||||||
(though skidding potentially works - if the friction is
|
|
||||||
set correctly).
|
|
||||||
- physics parameters have been improved, but might need
|
|
||||||
additional tuning
|
|
||||||
- rescuing an upside-down kart will return the kart to the middle
|
|
||||||
of the track (waypoints) - the kart should be returned to where
|
|
||||||
it ended, just with a proper orientation.
|
|
||||||
- tuxtrack is using real rigid bodies for the roadcone and roadblock,
|
|
||||||
so they are pushed around when hit by a kart. Currently, the
|
|
||||||
start orientation is not used, so the heading of the objects
|
|
||||||
is currently wrong.
|
|
||||||
Furthermore, the cones currently don't stop rolling around.
|
|
||||||
|
|
@@ -1,3 +1,12 @@
|
|||||||
|
The latest information about compilation on Mac are on our wiki:
|
||||||
|
http://supertuxkart.sourceforge.net/Building_and_packaging_on_OSX
|
||||||
|
|
||||||
|
The older instructions should still work, and are quite detailed.
|
||||||
|
Note that we supply a modified version of plib (on our download page
|
||||||
|
at http://sourceforge.net/project/showfiles.php?group_id=202302)
|
||||||
|
which fixes a few compilation problems on Macs. We strongly recommend
|
||||||
|
to use this version (unless a newer plib version is released).
|
||||||
|
|
||||||
System requirements Mac:
|
System requirements Mac:
|
||||||
PowerPC- or Intel-Mac with 800 MHz or more,
|
PowerPC- or Intel-Mac with 800 MHz or more,
|
||||||
1 GHz recommended 3D-graphics card with 32 MB or more.
|
1 GHz recommended 3D-graphics card with 32 MB or more.
|
||||||
@@ -413,7 +422,7 @@ echo "Done!"
|
|||||||
e.g.: chmod 744 buildUB.sh
|
e.g.: chmod 744 buildUB.sh
|
||||||
|
|
||||||
|
|
||||||
3. Download SuperTuxKart-Source from "http://developer.berlios.de/project/showfiles.php?group_id=2765".
|
3. Download SuperTuxKart-Source from "http://sourceforge.net/project/showfiles.php?group_id=202302".
|
||||||
|
|
||||||
|
|
||||||
4. Go in the folder SuperTuxKart.
|
4. Go in the folder SuperTuxKart.
|
||||||
|
@@ -1,3 +1,17 @@
|
|||||||
|
NOTE
|
||||||
|
====
|
||||||
|
If you have downloaded the 0.4 version and it does not start, please
|
||||||
|
install the Microsoft Visual C++ redistributable package ('vcredist_x86.exe')
|
||||||
|
included in this directory.
|
||||||
|
|
||||||
|
If you don't hear any sound, you have to install OpenAL (see http://ww.openal.org).
|
||||||
|
Simply install the OpenAL redistributable ('oalinst.exe').
|
||||||
|
|
||||||
|
The release comes with a full installer, which includes these redistributables.
|
||||||
|
|
||||||
|
|
||||||
|
If you are downloading a source version and want to compile it yourself:
|
||||||
|
|
||||||
There are two documented ways to compile an executable for windows: using
|
There are two documented ways to compile an executable for windows: using
|
||||||
cygwin, and using visual c++ (tested with the free Express version).
|
cygwin, and using visual c++ (tested with the free Express version).
|
||||||
|
|
||||||
@@ -42,6 +56,8 @@ can be found in .../src/ide/vc8/README.
|
|||||||
|
|
||||||
You still have to install all dependencies, and:
|
You still have to install all dependencies, and:
|
||||||
1) Modify plib:
|
1) Modify plib:
|
||||||
|
Best choice would be to use the plib version from our download page,
|
||||||
|
since it contains all bugfixes that are necessary. Otherwise:
|
||||||
In src/ssg/ssgLoadAC.cxx replace:
|
In src/ssg/ssgLoadAC.cxx replace:
|
||||||
loader_fd = fopen ( filename, "ra" ) ;
|
loader_fd = fopen ( filename, "ra" ) ;
|
||||||
with
|
with
|
||||||
|
2
TODO
2
TODO
@@ -33,7 +33,7 @@ no particular order):
|
|||||||
If you want to help the SuperTuxKart - Project, please
|
If you want to help the SuperTuxKart - Project, please
|
||||||
contact us on the email list:
|
contact us on the email list:
|
||||||
|
|
||||||
supertuxkart-devel@list.berlios.de
|
supertuxkart-devel@lists.sourceforge.net
|
||||||
|
|
||||||
Thanks in advance!
|
Thanks in advance!
|
||||||
The SuperTuxKart-Team
|
The SuperTuxKart-Team
|
||||||
|
13
configure.ac
13
configure.ac
@@ -1,6 +1,6 @@
|
|||||||
dnl Process this file with autogen.sh to produce a configure script.
|
dnl Process this file with autogen.sh to produce a configure script.
|
||||||
|
|
||||||
AC_INIT(supertuxkart, SVN)
|
AC_INIT(supertuxkart, 0.4)
|
||||||
AC_CONFIG_SRCDIR([src/main.cpp])
|
AC_CONFIG_SRCDIR([src/main.cpp])
|
||||||
|
|
||||||
dnl Require at least automake 2.59
|
dnl Require at least automake 2.59
|
||||||
@@ -383,11 +383,6 @@ dnl Bullet physics
|
|||||||
dnl ==============
|
dnl ==============
|
||||||
AC_DEFINE([BT_NO_PROFILE], [], [Disable bullet internal profiling])
|
AC_DEFINE([BT_NO_PROFILE], [], [Disable bullet internal profiling])
|
||||||
CXXFLAGS="$CXXFLAGS -Ibullet/src"
|
CXXFLAGS="$CXXFLAGS -Ibullet/src"
|
||||||
AC_CONFIG_FILES([ \
|
|
||||||
src/bullet/Makefile \
|
|
||||||
src/bullet/src/Makefile \
|
|
||||||
src/bullet/Demos/OpenGL/Makefile
|
|
||||||
])
|
|
||||||
SUMMARY="$SUMMARY\nUsing bullet physics."
|
SUMMARY="$SUMMARY\nUsing bullet physics."
|
||||||
BULLETTREE="src/bullet"
|
BULLETTREE="src/bullet"
|
||||||
|
|
||||||
@@ -408,11 +403,17 @@ dnl ================
|
|||||||
AC_CONFIG_FILES([ \
|
AC_CONFIG_FILES([ \
|
||||||
Makefile \
|
Makefile \
|
||||||
data/Makefile \
|
data/Makefile \
|
||||||
|
doc/Makefile \
|
||||||
|
doc/players_manual/Makefile \
|
||||||
fonts/Makefile \
|
fonts/Makefile \
|
||||||
images/Makefile \
|
images/Makefile \
|
||||||
models/Makefile \
|
models/Makefile \
|
||||||
oggs/Makefile \
|
oggs/Makefile \
|
||||||
src/Makefile \
|
src/Makefile \
|
||||||
|
src/robots/Makefile \
|
||||||
|
src/bullet/Makefile \
|
||||||
|
src/bullet/src/Makefile \
|
||||||
|
src/bullet/Demos/OpenGL/Makefile \
|
||||||
wavs/Makefile \
|
wavs/Makefile \
|
||||||
wavs/radio/Makefile \
|
wavs/radio/Makefile \
|
||||||
wavs/tintagel/Makefile \
|
wavs/tintagel/Makefile \
|
||||||
|
33
data/CREDITS
33
data/CREDITS
@@ -1,6 +1,6 @@
|
|||||||
SuperTuxKart - 0.4 RC 1
|
SuperTuxKart - 0.4
|
||||||
=====================
|
================
|
||||||
Super TuxKart is fun kart racing game.
|
Super TuxKart is a fun kart racing game.
|
||||||
|
|
||||||
http://sourceforge.net/supertuxkart
|
http://sourceforge.net/supertuxkart
|
||||||
|
|
||||||
@@ -14,20 +14,27 @@ Project Leaders
|
|||||||
Additional coding
|
Additional coding
|
||||||
--------------------
|
--------------------
|
||||||
Robert Schuster
|
Robert Schuster
|
||||||
- IO handling
|
- User settings updates
|
||||||
|
- Input handling
|
||||||
- SDL port
|
- SDL port
|
||||||
- bug fixes
|
- Bug fixes
|
||||||
|
|
||||||
Paul Elms (scifly)
|
Paul Elms (scifly)
|
||||||
- bug fixes
|
- Bug fixes
|
||||||
- change resoluton gui
|
- Change resoluton gui
|
||||||
|
|
||||||
Hans Dzaack (Hans the farmer)
|
Hans Dzaack (Hans the farmer)
|
||||||
- physics tuning
|
- Physics tuning
|
||||||
|
|
||||||
Maik Semder (Ikework)
|
Maik Semder (Ikework)
|
||||||
- Bugfixes
|
- Bugfixes
|
||||||
|
|
||||||
|
Stephan Wiefling
|
||||||
|
- Menu sounds
|
||||||
|
|
||||||
|
Sam Clarke
|
||||||
|
- Windows Installer
|
||||||
|
|
||||||
Canarix
|
Canarix
|
||||||
- User interface
|
- User interface
|
||||||
- Testing
|
- Testing
|
||||||
@@ -36,10 +43,9 @@ Additional coding
|
|||||||
- Ogg vorbis support
|
- Ogg vorbis support
|
||||||
|
|
||||||
Patrick Ammann
|
Patrick Ammann
|
||||||
- bug fixes, code cleanup
|
- Bug fixes, code cleanup
|
||||||
- OpenAL support
|
- OpenAL support
|
||||||
|
|
||||||
|
|
||||||
Artists
|
Artists
|
||||||
---------------
|
---------------
|
||||||
SuperTuxKart Music Theme
|
SuperTuxKart Music Theme
|
||||||
@@ -50,9 +56,9 @@ Artists
|
|||||||
- Lukas Siewert (Dr.Sternhagel)
|
- Lukas Siewert (Dr.Sternhagel)
|
||||||
- Paul Esra Martin (P@ule)
|
- Paul Esra Martin (P@ule)
|
||||||
- Asha B.
|
- Asha B.
|
||||||
- ??? (KingArthur's Castle)
|
- Magne Djupvik
|
||||||
|
|
||||||
3D track improvements (Shifting Sands, Lighthouse)
|
3D track improvements (Shifting Sands, Lighthouse, Beach)
|
||||||
- Marianne Gagnon (auria)
|
- Marianne Gagnon (auria)
|
||||||
|
|
||||||
Island track creation
|
Island track creation
|
||||||
@@ -70,7 +76,8 @@ Artists
|
|||||||
Support for OS-X
|
Support for OS-X
|
||||||
----------------
|
----------------
|
||||||
Port and package creation:
|
Port and package creation:
|
||||||
- Florian, -Nuke-, TinGamer and Xeno74
|
- Florian, -Nuke-, TinGamer, Xeno74,
|
||||||
|
Auria, JPenguin
|
||||||
|
|
||||||
Additional artwork/documentation:
|
Additional artwork/documentation:
|
||||||
- Cherryprice, -Nuke-, and Xeno74
|
- Cherryprice, -Nuke-, and Xeno74
|
||||||
|
@@ -5,7 +5,7 @@ pkgdatadir = $(datadir)/games/@PACKAGE@/data
|
|||||||
pkgdata_DATA = $(wildcard *.dat) $(wildcard *.data) $(wildcard *.herring) \
|
pkgdata_DATA = $(wildcard *.dat) $(wildcard *.data) $(wildcard *.herring) \
|
||||||
$(wildcard *.loc) $(wildcard *.drv?) $(wildcard *.projectile) \
|
$(wildcard *.loc) $(wildcard *.drv?) $(wildcard *.projectile) \
|
||||||
$(wildcard *.cup) $(wildcard *.tkkf) $(wildcard *.collectable)\
|
$(wildcard *.cup) $(wildcard *.tkkf) $(wildcard *.collectable)\
|
||||||
$(wildcard *.track) CREDITS \
|
$(wildcard *.track) CREDITS licenses \
|
||||||
supertuxkart_32.xpm supertuxkart_64.xpm supertuxkart.desktop
|
supertuxkart_32.xpm supertuxkart_64.xpm supertuxkart.desktop
|
||||||
|
|
||||||
desktopdir = $(prefix)/share/applications
|
desktopdir = $(prefix)/share/applications
|
||||||
|
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
(tuxkart-track
|
(tuxkart-track
|
||||||
(name "On the Beach")
|
(name "On the Beach")
|
||||||
(description "Created by Ingo Ruhnke")
|
(description "Created by Ingo Ruhnke,
|
||||||
|
modified by M. Gagnon")
|
||||||
(music "oggs/CaribbeanMusic.ogg")
|
(music "oggs/CaribbeanMusic.ogg")
|
||||||
(screenshot "sshot-beach.rgb")
|
(screenshot "sshot-beach.rgb")
|
||||||
(topview "topview-beach.rgb")
|
(topview "topview-beach.rgb")
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
(tuxkart-track
|
(tuxkart-track
|
||||||
(name "Gowns Bow")
|
(name "Gowns Bow")
|
||||||
(description "Created by Oliver & Steve Baker")
|
(description "Created by Oliver & Steve Baker")
|
||||||
(gravity 78.0)
|
|
||||||
(music "oggs/another_caribbean_beat.ogg")
|
(music "oggs/another_caribbean_beat.ogg")
|
||||||
(screenshot "sshot-gownsbow.rgb")
|
(screenshot "sshot-gownsbow.rgb")
|
||||||
(topview "topview-gownsbow.rgb")
|
(topview "topview-gownsbow.rgb")
|
||||||
|
@@ -20,7 +20,7 @@ tk7.ogg,
|
|||||||
tuxr.ogg,
|
tuxr.ogg,
|
||||||
Boom_boom_boom.ogg
|
Boom_boom_boom.ogg
|
||||||
------------------
|
------------------
|
||||||
Matt Thomas, license: CC
|
Matt Thomas, license: GNU GPL v2 (or later)
|
||||||
|
|
||||||
main_theme.ogg,
|
main_theme.ogg,
|
||||||
kart_grand_prix.ogg
|
kart_grand_prix.ogg
|
||||||
@@ -34,7 +34,7 @@ Ethereal_Spectrum_(ver_loop).ogg
|
|||||||
|
|
||||||
KingArthursCastle.ogg
|
KingArthursCastle.ogg
|
||||||
---------------------
|
---------------------
|
||||||
??, license: CC
|
Magne Djupvik, license: CC
|
||||||
|
|
||||||
|
|
||||||
Textures
|
Textures
|
||||||
@@ -50,5 +50,5 @@ New shifting sand and lighthouse textures
|
|||||||
|
|
||||||
All other textures
|
All other textures
|
||||||
------------------
|
------------------
|
||||||
Steve Baker, license: CC
|
Steve Baker, license: GNU GPL v2 (or later)
|
||||||
|
|
@@ -189,5 +189,6 @@
|
|||||||
"coniferous_tree.rgb" Y Y Y 0.5 N N 0.5 N N N N
|
"coniferous_tree.rgb" Y Y Y 0.5 N N 0.5 N N N N
|
||||||
"island/sky2.rgb" N N N 0.0 N N 1.0 N N N N
|
"island/sky2.rgb" N N N 0.0 N N 1.0 N N N N
|
||||||
"window.rgb" N N Y 0.0 Y N 1.0 N N N N
|
"window.rgb" N N Y 0.0 Y N 1.0 N N N N
|
||||||
|
"waterfall.rgb" N N Y 0.0 N N 1.0 N N Y N
|
||||||
|
|
||||||
# EOF #
|
# EOF #
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
(anvil-time 2.0 ) ;; time an anvil is active
|
(anvil-time 2.0 ) ;; time an anvil is active
|
||||||
(zipper-time 5.0 ) ;; time a zipper is active
|
(zipper-time 5.0 ) ;; time a zipper is active
|
||||||
(zipper-force 800.0 ) ;; additional zipper force
|
(zipper-force 800.0 ) ;; additional zipper force
|
||||||
(shortcut-road-distance 23.0 ) ;; max. distance from side of road to be still
|
(shortcut-road-distance 9999.0 ) ;; max. distance from side of road to be still
|
||||||
;; considered on the road (otherwise shortcut)
|
;; considered on the road (otherwise shortcut)
|
||||||
;; usually 5 is a good value, but for the math class
|
;; usually 5 is a good value, but for the math class
|
||||||
;; we have to use at least 21(!!)
|
;; we have to use at least 21(!!)
|
||||||
|
@@ -9,5 +9,5 @@ Exec=supertuxkart --log=file
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
StartupNotify=false
|
StartupNotify=false
|
||||||
Type=Application
|
Type=Application
|
||||||
TryExec=supertuxkart --log=file
|
TryExec=supertuxkart
|
||||||
Categories=3DGraphics;Game;ActionGame;Simulation;SportsGame;
|
Categories=3DGraphics;Game;ActionGame;Simulation;SportsGame;
|
||||||
|
@@ -1,3 +1,7 @@
|
|||||||
# contrib/
|
# doc
|
||||||
|
|
||||||
EXTRA_DIST =
|
SUBDIRS = players_manual
|
||||||
|
|
||||||
|
pkgdatadir = $(datadir)/games/@PACKAGE@/doc
|
||||||
|
|
||||||
|
EXTRA_DIST = conventions.txt implementation.txt robots.txt
|
||||||
|
@@ -12,7 +12,8 @@ Coding style
|
|||||||
============
|
============
|
||||||
|
|
||||||
The coding style used in Super Tux Kart can be found at
|
The coding style used in Super Tux Kart can be found at
|
||||||
http://supertuxkart.berlios.de/wiki/index.php/Coding_Style .
|
|
||||||
|
http://supertuxkart.sourceforge.net/Coding_Style
|
||||||
|
|
||||||
|
|
||||||
Documentation line length
|
Documentation line length
|
||||||
|
7
doc/players_manual/Makefile.am
Normal file
7
doc/players_manual/Makefile.am
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# doc/players_manual
|
||||||
|
|
||||||
|
pkgdatadir = $(datadir)/games/@PACKAGE@/doc/players_manual
|
||||||
|
|
||||||
|
pkgdata_DATA = manual.html $(wildcard *.png) $(wildcard *.jpg)
|
||||||
|
|
||||||
|
EXTRA_DIST = $(pkgdata_DATA)
|
@@ -11,14 +11,19 @@
|
|||||||
<br>
|
<br>
|
||||||
<big><span style="font-weight: bold;">Introduction</span></big><br>
|
<big><span style="font-weight: bold;">Introduction</span></big><br>
|
||||||
<br>
|
<br>
|
||||||
SuperTuxKart (abbreviated STK) is a kart racing game, based on<br>
|
SuperTuxKart (abbreviated STK) is a fun kart racing game, focusing on <br>
|
||||||
Steve Baker's TuxKart (<a href="http://tuxkart.sourceforge.net">http://tuxkart.sourceforge.net</a>). It was<br>
|
fun and not on realistic physics. You can find more details on<br>
|
||||||
|
<a href="http://supertuxkart.sourceforge.net">http://supertuxkart.sourceforge.net</a><br>
|
||||||
|
|
||||||
|
It was originally based on Steve Baker's TuxKart (<a href="http://tuxkart.sourceforge.net">http://tuxkart.sourceforge.net</a>),<br>
|
||||||
|
but by now has developed a life on its own. It was<br>
|
||||||
picked up by the Linux Game Tome (<a href="http://www.happypenguin.org">http://www.happypenguin.org</a>)<br>
|
picked up by the Linux Game Tome (<a href="http://www.happypenguin.org">http://www.happypenguin.org</a>)<br>
|
||||||
Game of the Month project and got a big overhaul during this time,<br>
|
Game of the Month project and got a big overhaul during this time,<br>
|
||||||
but was left in an unfinished state.<br>
|
but was left in an unfinished state.<br>
|
||||||
<br>
|
<br>
|
||||||
A new set of maintainers, namely hiker & coz, took over in 2006.<br>
|
A new set of maintainers, namely hiker & coz, took over in 2006, <br>
|
||||||
You can find more details on <a href="http://supertuxkart.berlios.de">http://supertuxkart.berlios.de</a><br>
|
and since then three official versions (0.2, 0.3, and 0.4) have been released.<br>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
@@ -34,9 +39,9 @@ You can find more details on <a href="http://supertuxkart.berlios.de">http:
|
|||||||
thought currently it is hard to drive with the mouse.<br>
|
thought currently it is hard to drive with the mouse.<br>
|
||||||
<br>
|
<br>
|
||||||
<span style="font-weight: bold;">Software</span><br>
|
<span style="font-weight: bold;">Software</span><br>
|
||||||
Right now, SuperTuxKart runs under Linux and under Windoze using<br>
|
Right now, SuperTuxKart runs under Linux, Windows, and MacOSX.<br>
|
||||||
the CygWin package. We hope MSVC/Windoze, MacOS, BSD, BeOS, etc.<br>
|
While we are not aware of any ports to BSD, BeOS, etc., we don't<br>
|
||||||
ports to follow.<br>
|
expect a problem on those platforms.<br>
|
||||||
<br>
|
<br>
|
||||||
You need the following programs installed:<br>
|
You need the following programs installed:<br>
|
||||||
<br>
|
<br>
|
||||||
@@ -49,20 +54,13 @@ PLIB 1.8.4 <br>
|
|||||||
SDL 1.2<br>
|
SDL 1.2<br>
|
||||||
<a href="http://www.libsdl.org">http://www.libsdl.org</a><br>
|
<a href="http://www.libsdl.org">http://www.libsdl.org</a><br>
|
||||||
<br>
|
<br>
|
||||||
OpenAL (optional, requires ALUT, MikMod)<br>
|
OpenAL<br>
|
||||||
<a href="http://www.openal.org">http://www.openal.org</a><br>
|
<a href="http://www.openal.org">http://www.openal.org</a><br>
|
||||||
<br>
|
<br>
|
||||||
ALUT (optional, requires OpenAL, MikMod)<br>
|
ALUT<br>
|
||||||
<a href="http://www.openal.org">http://www.openal.org</a><br>
|
<a href="http://www.openal.org">http://www.openal.org</a><br>
|
||||||
<br>
|
<br>
|
||||||
MikMod (optional, requires OpenAL, ALUT)<br>
|
|
||||||
<a href="http://mikmod.raphnet.net">http://mikmod.raphnet.net</a><br>
|
|
||||||
<br>
|
|
||||||
Bullet (optional)<br>
|
|
||||||
<a href="http://continuous.physics.com/Bullet/">http://continuous.physics.com/Bullet/</a><br>
|
|
||||||
<br>
|
|
||||||
<span style="font-style: italic;">If you wish to use bullet, you should see the README.bullet file</span><br style="font-style: italic;">
|
|
||||||
<span style="font-style: italic;">that should be in the main SuperTuxKart directory.</span><br>
|
|
||||||
<br>
|
<br>
|
||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
@@ -71,37 +69,17 @@ Bullet (optional)<br>
|
|||||||
To win races you will need to master your controls. Here are the<br>
|
To win races you will need to master your controls. Here are the<br>
|
||||||
predefined controls:<br>
|
predefined controls:<br>
|
||||||
<br>
|
<br>
|
||||||
Player 1:<br>
|
<table border="3">
|
||||||
Steer : Left / Right arrow<br>
|
<tr><td>Function</td><td>Player 1</td><td>Player 2</td><td>Player 3</td><td>Player 4</td></tr>
|
||||||
Accelerate : Up arrow<br>
|
<tr><td>Steer </td><td>Left / Right arrow</td><td>A / D key </td><td>F / H key</td><td>J / L key</td></tr>
|
||||||
Brake : Down arrow<br>
|
<tr><td>Accelerate</td><td>Up arrow </td><td>W key </td><td>T key </td><td>I key </td></tr>
|
||||||
Use item : Right control<br>
|
<tr><td>Brake </td><td>Down arrow </td><td>S key </td><td>G key </td><td>K key </td></tr>
|
||||||
Wheelie : Right shift<br>
|
<tr><td>Use item </td><td>Right control </td><td>Left Control</td><td>N key </td><td>. key </td></tr>
|
||||||
Rescue : Backspace<br>
|
<tr><td>Wheelie </td><td>Right shift </td><td>Left shift </td><td>C key </td><td>M key </td></tr>
|
||||||
<br>
|
<tr><td>Rescue </td><td>Backspace </td><td>Q key </td><td>R key </td><td>U key </td></tr>
|
||||||
Player 2:<br>
|
<tr><td>Jump </td><td>- key </td><td>Caps lock </td><td>V key </td><td>, key </td></tr>
|
||||||
Steer : A / D key<br>
|
<tr><td>Look back </td><td>Right alt </td><td>Left alt </td><td>N key </td><td>/ key </td></tr>
|
||||||
Accelerate : W key<br>
|
</table>
|
||||||
Brake : S key<br>
|
|
||||||
Use item : Left control<br>
|
|
||||||
Wheelie : Left shift<br>
|
|
||||||
Rescue : Left alt<br>
|
|
||||||
<br>
|
|
||||||
Player 3:<br>
|
|
||||||
Steer : F / H key<br>
|
|
||||||
Accelerate : T key<br>
|
|
||||||
Brake : G key<br>
|
|
||||||
Use item : N key<br>
|
|
||||||
Wheelie : C key<br>
|
|
||||||
Rescue : B key<br>
|
|
||||||
<br>
|
|
||||||
Player 4:<br>
|
|
||||||
Steer : J / L key<br>
|
|
||||||
Accelerate : I key<br>
|
|
||||||
Brake : K key<br>
|
|
||||||
Use item : M key<br>
|
|
||||||
Wheelie : . key<br>
|
|
||||||
Rescue : / key<br>
|
|
||||||
<br>
|
<br>
|
||||||
The rescue button is meant to be used if your kart is stuck; it<br>
|
The rescue button is meant to be used if your kart is stuck; it<br>
|
||||||
will send you to the track with your approximate progress, but<br>
|
will send you to the track with your approximate progress, but<br>
|
||||||
@@ -113,9 +91,6 @@ menu it closes the game.<br>
|
|||||||
<br>
|
<br>
|
||||||
There are also some special functions:<br>
|
There are also some special functions:<br>
|
||||||
<br>
|
<br>
|
||||||
F9 key - Toggle fullscreen during the race. Doesn't works on<br>
|
|
||||||
Windows.<br>
|
|
||||||
<br>
|
|
||||||
F10 key - Save the last 1000 frames into a file ./history.dat<br>
|
F10 key - Save the last 1000 frames into a file ./history.dat<br>
|
||||||
This can be used to reproduce problems occurring<br>
|
This can be used to reproduce problems occurring<br>
|
||||||
during a race. This is mainly useful for developers.<br>
|
during a race. This is mainly useful for developers.<br>
|
||||||
@@ -127,6 +102,7 @@ There are also some special functions:<br>
|
|||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
<big><span style="font-weight: bold;">The race screen</span></big><br>
|
<big><span style="font-weight: bold;">The race screen</span></big><br>
|
||||||
|
<img src="sshot-islandtrack.jpg" width="512" height="341">
|
||||||
<br>
|
<br>
|
||||||
This screen has several components:<br>
|
This screen has several components:<br>
|
||||||
<br>
|
<br>
|
||||||
@@ -176,7 +152,7 @@ Three different game modes are available:<br>
|
|||||||
A single race (with between 1 and 5 laps)<br>
|
A single race (with between 1 and 5 laps)<br>
|
||||||
<br>
|
<br>
|
||||||
3) Time Trial<br>
|
3) Time Trial<br>
|
||||||
A single race with a single lap only<br>
|
A single race without opponents<br>
|
||||||
<br>
|
<br>
|
||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
@@ -272,8 +248,9 @@ this if the driver in the first position alreadyfinished the race, and you can't
|
|||||||
<br>
|
<br>
|
||||||
Bomb: after 30 seconds the bomb will explode, but if another kart<br>
|
Bomb: after 30 seconds the bomb will explode, but if another kart<br>
|
||||||
touches you, the bomb will be transfered to it and the remaining<br>
|
touches you, the bomb will be transfered to it and the remaining<br>
|
||||||
time will be reduced by 5 seconds. Also, the bomb can't be<br>
|
time will be reduced by 5 seconds. If you hit a banana while<br>
|
||||||
transfered to the inmediate previous bomb holder.<br>
|
having a bomb attach, it will explode immediately! Also, the bomb<br>
|
||||||
|
can't be transfered to the inmediate previous bomb holder.<br>
|
||||||
<br>
|
<br>
|
||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
@@ -296,7 +273,7 @@ carry one!<br>
|
|||||||
<br>
|
<br>
|
||||||
On the track there could be zippers, which will give you a boost<br>
|
On the track there could be zippers, which will give you a boost<br>
|
||||||
when you go over them. Avoid water and lava, since you can't<br>
|
when you go over them. Avoid water and lava, since you can't<br>
|
||||||
drive inside them and you will have to be rescued just before<br>
|
drive on them and you will have to be rescued just before<br>
|
||||||
you touch them!<br>
|
you touch them!<br>
|
||||||
<br>
|
<br>
|
||||||
There are also nasty things left on the track which will put an<br>
|
There are also nasty things left on the track which will put an<br>
|
||||||
@@ -316,21 +293,15 @@ while doing a wheelie (since your front wheels are not touching<br>
|
|||||||
the track), so be careful.<br>
|
the track), so be careful.<br>
|
||||||
<br>
|
<br>
|
||||||
Hitting another kart does not do any damage to your kart or the<br>
|
Hitting another kart does not do any damage to your kart or the<br>
|
||||||
other kart, one of the karts will just be forced to a stand still,<br>
|
other kart.<br>
|
||||||
loosing precious seconds.<br>
|
|
||||||
<br>
|
<br>
|
||||||
When all human controlled karts finish the race, the game will wait<br>
|
When all human controlled karts finish the race, the game will wait<br>
|
||||||
some seconds for the AI to finish the race. If the AI doesn't, it<br>
|
some seconds for the AI to finish the race. If the AI doesn't, it<br>
|
||||||
will use the AI's current position as their final position.<br>
|
will estimate the arrival time based on the kart's average speed.<br>
|
||||||
<br>
|
<br>
|
||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
<big><span style="font-weight: bold;">Bugs in this version</span></big><br>
|
<big><span style="font-weight: bold;">Known bugs in this version</span></big><br>
|
||||||
<br>
|
|
||||||
* Sometimes you can be pushed through a solid object if you are<br>
|
|
||||||
hit by another player when in contact with the surface. <br>
|
|
||||||
<br>
|
|
||||||
There might of course be more.<br>
|
|
||||||
<br>
|
<br>
|
||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
@@ -356,16 +327,13 @@ Useful command line options:<br>
|
|||||||
<big><span style="font-weight: bold;">Support</span></big><br>
|
<big><span style="font-weight: bold;">Support</span></big><br>
|
||||||
<br>
|
<br>
|
||||||
If you have any problems, please send an e-mail to the<br>
|
If you have any problems, please send an e-mail to the<br>
|
||||||
Super Tux Kart mailing list at <a href="mailto:supertuxkart-devel@list.berlios.de">supertuxkart-devel@list.berlios.de</a> .<br>
|
Super Tux Kart mailing list at
|
||||||
|
<a href="mailto:supertuxkart-devel@lists.sourceforge.net">supertuxkart-devel@lists.sourceforge.net</a> .<br>
|
||||||
<br>
|
<br>
|
||||||
The archives of this mailing list can be found at <br>
|
The archives of this mailing list can be found at <br>
|
||||||
<a href="http://lists.berlios.de/pipermail/supertuxkart-devel/">http://lists.berlios.de/pipermail/supertuxkart-devel/</a> .<br>
|
<a href="http://sourceforge.net/mailarchive/forum.php?forum_name=supertuxkart-devel">http://sourceforge.net/mailarchive/forum.php?forum_name=supertuxkart-devel/</a> .<br>
|
||||||
<br>
|
<br>
|
||||||
Or post a bug report on the SuperTuxKart bug forum (no <br>
|
There is also a wiki on the homepage at <a href="http://supertuxkart.sourceforge.net/">http://supertuxkart.sourceforge.net</a> .<br>
|
||||||
registration is required):<br>
|
|
||||||
<a href="http://developer.berlios.de/forum/forum.php?forum_id=23737">http://developer.berlios.de/forum/forum.php?forum_id=23737</a><br>
|
|
||||||
<br>
|
|
||||||
There is also a wiki at <a href="http://supertuxkart.berlios.de/wiki">http://supertuxkart.berlios.de/wiki</a> .<br>
|
|
||||||
<br>
|
<br>
|
||||||
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
<img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><img style="width: 32px; height: 33px;" alt="" src="chess.png"><br>
|
||||||
<br>
|
<br>
|
||||||
|
BIN
doc/players_manual/sshot-islandtrack.jpg
Normal file
BIN
doc/players_manual/sshot-islandtrack.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
@@ -1,6 +1,6 @@
|
|||||||
To create a robot, here is what you should do:
|
To create a robot, here is what you should do:
|
||||||
|
|
||||||
- There is a template for the robots in the contrib/ directory, modify it
|
- There is a template for the robots in the src/robots directory, modify it
|
||||||
to create your own robot, the files are named empty_robot.cpp and
|
to create your own robot, the files are named empty_robot.cpp and
|
||||||
empty_robot.hpp .
|
empty_robot.hpp .
|
||||||
- Name your source file <name of robot>_robot.cpp, and your header as
|
- Name your source file <name of robot>_robot.cpp, and your header as
|
||||||
|
@@ -135,6 +135,7 @@ tuxkartshadow.rgb \
|
|||||||
tv.rgb \
|
tv.rgb \
|
||||||
usaflag.rgb \
|
usaflag.rgb \
|
||||||
water.rgb \
|
water.rgb \
|
||||||
|
waterfall.rgb \
|
||||||
water_light.rgb \
|
water_light.rgb \
|
||||||
wheel.rgb \
|
wheel.rgb \
|
||||||
wilbericon.rgb \
|
wilbericon.rgb \
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
images/waterfall.rgb
Normal file
BIN
images/waterfall.rgb
Normal file
Binary file not shown.
104631
models/beachtrack.ac
104631
models/beachtrack.ac
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
10223
models/racetrack.ac
10223
models/racetrack.ac
File diff suppressed because it is too large
Load Diff
7080
models/wilber-low.ac
7080
models/wilber-low.ac
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,2 @@
|
|||||||
King Arthur's Castle
|
King Arthur's Castle
|
||||||
???
|
Magne Djupvik
|
||||||
|
@@ -99,6 +99,7 @@ supertuxkart_SOURCES = main.cpp \
|
|||||||
gui/race_results_gui.cpp gui/race_results_gui.hpp \
|
gui/race_results_gui.cpp gui/race_results_gui.hpp \
|
||||||
gui/grand_prix_ending.cpp gui/grand_prix_ending.hpp \
|
gui/grand_prix_ending.cpp gui/grand_prix_ending.hpp \
|
||||||
gui/num_laps.cpp gui/num_laps.hpp \
|
gui/num_laps.cpp gui/num_laps.hpp \
|
||||||
|
gui/num_karts.cpp gui/num_karts.hpp \
|
||||||
gui/race_menu.cpp gui/race_menu.hpp \
|
gui/race_menu.cpp gui/race_menu.hpp \
|
||||||
gui/num_players.cpp gui/num_players.hpp \
|
gui/num_players.cpp gui/num_players.hpp \
|
||||||
gui/track_sel.cpp gui/track_sel.hpp \
|
gui/track_sel.cpp gui/track_sel.hpp \
|
||||||
@@ -122,7 +123,9 @@ supertuxkart_SOURCES = main.cpp \
|
|||||||
replay_buffers.hpp replay_buffers.cpp \
|
replay_buffers.hpp replay_buffers.cpp \
|
||||||
replay_base.hpp replay_base.cpp \
|
replay_base.hpp replay_base.cpp \
|
||||||
replay_player.hpp replay_player.cpp \
|
replay_player.hpp replay_player.cpp \
|
||||||
replay_recorder.hpp replay_recorder.cpp
|
replay_recorder.hpp replay_recorder.cpp \
|
||||||
|
ide/vc8/supertuxkart.sln ide/vc8/supertuxkart.vcproj \
|
||||||
|
ide/vc8/bullet_lib.vcproj ide/vc8/README
|
||||||
|
|
||||||
|
|
||||||
# Link in the specific gcc 4.1 bug work around
|
# Link in the specific gcc 4.1 bug work around
|
||||||
@@ -133,3 +136,5 @@ supertuxkart_LDADD = -L. -lstatic_ssg \
|
|||||||
.PHONY: pot
|
.PHONY: pot
|
||||||
pot:
|
pot:
|
||||||
xgettext -o supertuxkart.pot -k_ --c++ *.?pp */*.?pp
|
xgettext -o supertuxkart.pot -k_ --c++ *.?pp */*.?pp
|
||||||
|
|
||||||
|
SUBDIRS = robots
|
@@ -1,63 +0,0 @@
|
|||||||
# This is basically the overall name of the project in Visual Studio this is the name of the Solution File
|
|
||||||
|
|
||||||
|
|
||||||
# For every executable you have with a main method you should have an add_executable line below.
|
|
||||||
# For every add executable line you should list every .cpp and .h file you have associated with that executable.
|
|
||||||
|
|
||||||
|
|
||||||
# This is the variable for Windows. I use this to define the root of my directory structure.
|
|
||||||
SET(GLUT_ROOT ${BULLET_PHYSICS_SOURCE_DIR}/glut)
|
|
||||||
|
|
||||||
# You shouldn't have to modify anything below this line
|
|
||||||
########################################################
|
|
||||||
|
|
||||||
|
|
||||||
# This is the shortcut to finding GLU, GLUT and OpenGL if they are properly installed on your system
|
|
||||||
# This should be the case.
|
|
||||||
INCLUDE (${CMAKE_ROOT}/Modules/FindGLU.cmake)
|
|
||||||
INCLUDE (${CMAKE_ROOT}/Modules/FindGLUT.cmake)
|
|
||||||
INCLUDE (${CMAKE_ROOT}/Modules/FindOpenGL.cmake)
|
|
||||||
|
|
||||||
|
|
||||||
IF (WIN32)
|
|
||||||
# This is the Windows code for which Opengl, and Glut are not properly installed
|
|
||||||
# since I can't install them I must cheat and copy libraries around
|
|
||||||
INCLUDE_DIRECTORIES(${GLUT_ROOT})
|
|
||||||
# LINK_DIRECTORIES(${GLUT_ROOT}\\lib)
|
|
||||||
# IF (${GLUT_glut_LIBRARY} MATCHES "GLUT_glut_LIBRARY-NOTFOUND")
|
|
||||||
# LINK_LIBRARIES(${GLUT_ROOT}\\lib\\glut32 ${OPENGL_gl_LIBRARY} ${OPENGL_glU_LIBRARY})
|
|
||||||
# TARGET_LINK_LIBRARIES(table ${GLUT_ROOT}\\lib\\glut32)
|
|
||||||
#
|
|
||||||
# ADD_CUSTOM_COMMAND(TARGET table POST_BUILD COMMAND copy ${GLUT_ROOT}\\lib\\glut32.dll ${GLUT_ROOT}\\bin\\vs2005\\Debug
|
|
||||||
# COMMAND copy ${GLUT_ROOT}\\lib\\glut32.dll ${GLUT_ROOT}\\bin\\vs2003\\Debug
|
|
||||||
# COMMAND copy ${GLUT_ROOT}\\lib\\glut32.dll ${GLUT_ROOT}\\bin\\vs6\\Debug)
|
|
||||||
# ELSE (${GLUT_glut_LIBRARY} MATCHES "GLUT_glut_LIBRARY-NOTFOUND")
|
|
||||||
# LINK_LIBRARIES(${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY})
|
|
||||||
# TARGET_LINK_LIBRARIES(table ${GLUT_glut_LIBRARY})
|
|
||||||
# ENDIF(${GLUT_glut_LIBRARY} MATCHES "GLUT_glut_LIBRARY-NOTFOUND")
|
|
||||||
# TARGET_LINK_LIBRARIES(table ${OPENGL_gl_LIBRARY})
|
|
||||||
# TARGET_LINK_LIBRARIES(table ${OPENGL_glu_LIBRARY})
|
|
||||||
ELSE (WIN32)
|
|
||||||
# This is the lines for linux. This should always work if everything is installed and working fine.
|
|
||||||
# SET(CMAKE_BUILD_TYPE Debug)
|
|
||||||
# SET(CMAKE_CXX_FLAGS_DEBUG "-g")
|
|
||||||
INCLUDE_DIRECTORIES(/usr/include /usr/local/include ${GLUT_INCLUDE_DIR})
|
|
||||||
# TARGET_LINK_LIBRARIES(table ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY})
|
|
||||||
# TARGET_LINK_LIBRARIES(checker ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY})
|
|
||||||
ENDIF (WIN32)
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
|
||||||
${BULLET_PHYSICS_SOURCE_DIR}/src }
|
|
||||||
)
|
|
||||||
|
|
||||||
ADD_LIBRARY(LibOpenGLSupport
|
|
||||||
BMF_Api.cpp
|
|
||||||
BMF_BitmapFont.cpp
|
|
||||||
BMF_font_helv10.cpp
|
|
||||||
GL_ShapeDrawer.cpp
|
|
||||||
GL_Simplex1to4.cpp
|
|
||||||
GLDebugDrawer.cpp
|
|
||||||
GlutStuff.cpp
|
|
||||||
RenderTexture.cpp
|
|
||||||
DemoApplication.cpp
|
|
||||||
)
|
|
@@ -1 +1,5 @@
|
|||||||
SUBDIRS=src Demos/OpenGL
|
SUBDIRS=src Demos/OpenGL
|
||||||
|
|
||||||
|
EXTRA_DIST = BulletLicense.txt ChangeLog.txt copy_bullet_files \
|
||||||
|
LICENSE README VERSION
|
||||||
|
|
||||||
|
@@ -235,11 +235,12 @@ void CharSel::select()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (race_manager->getRaceMode() != RaceSetup::RM_GRAND_PRIX)
|
if (race_manager->getRaceMode() == RaceSetup::RM_GRAND_PRIX)
|
||||||
menu_manager->pushMenu(MENUID_TRACKSEL);
|
menu_manager->pushMenu(MENUID_NUMKARTS);
|
||||||
else
|
else
|
||||||
race_manager->start();
|
menu_manager->pushMenu(MENUID_TRACKSEL);
|
||||||
}
|
} // select
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// Function checks the vector of previously selected karts and returns true if
|
// Function checks the vector of previously selected karts and returns true if
|
||||||
// kart i is in the vector and false if it is not.
|
// kart i is in the vector and false if it is not.
|
||||||
|
@@ -28,7 +28,7 @@ enum WidgetTokens
|
|||||||
WTOK_TITLE,
|
WTOK_TITLE,
|
||||||
|
|
||||||
WTOK_HARD,
|
WTOK_HARD,
|
||||||
WTOK_MEDIUM,
|
// WTOK_MEDIUM,
|
||||||
WTOK_EASY,
|
WTOK_EASY,
|
||||||
|
|
||||||
WTOK_QUIT
|
WTOK_QUIT
|
||||||
@@ -53,8 +53,8 @@ Difficulty::Difficulty()
|
|||||||
widget_manager->addWgt(WTOK_HARD, 60, 7);
|
widget_manager->addWgt(WTOK_HARD, 60, 7);
|
||||||
widget_manager->setWgtText(WTOK_HARD, _("Racer"));
|
widget_manager->setWgtText(WTOK_HARD, _("Racer"));
|
||||||
|
|
||||||
widget_manager->addWgt(WTOK_MEDIUM, 60, 7);
|
//widget_manager->addWgt(WTOK_MEDIUM, 60, 7);
|
||||||
widget_manager->setWgtText(WTOK_MEDIUM, _("Driver"));
|
//widget_manager->setWgtText(WTOK_MEDIUM, _("Driver"));
|
||||||
|
|
||||||
widget_manager->addWgt(WTOK_EASY, 60, 7);
|
widget_manager->addWgt(WTOK_EASY, 60, 7);
|
||||||
widget_manager->setWgtText(WTOK_EASY, _("Novice"));
|
widget_manager->setWgtText(WTOK_EASY, _("Novice"));
|
||||||
@@ -80,10 +80,10 @@ void Difficulty::select()
|
|||||||
race_manager->setDifficulty(RD_EASY);
|
race_manager->setDifficulty(RD_EASY);
|
||||||
menu_manager->pushMenu(MENUID_CHARSEL_P1);
|
menu_manager->pushMenu(MENUID_CHARSEL_P1);
|
||||||
break;
|
break;
|
||||||
case WTOK_MEDIUM:
|
// case WTOK_MEDIUM:
|
||||||
race_manager->setDifficulty(RD_MEDIUM);
|
// race_manager->setDifficulty(RD_MEDIUM);
|
||||||
menu_manager->pushMenu(MENUID_CHARSEL_P1);
|
// menu_manager->pushMenu(MENUID_CHARSEL_P1);
|
||||||
break;
|
// break;
|
||||||
case WTOK_HARD:
|
case WTOK_HARD:
|
||||||
race_manager->setDifficulty(RD_HARD);
|
race_manager->setDifficulty(RD_HARD);
|
||||||
menu_manager->pushMenu(MENUID_CHARSEL_P1);
|
menu_manager->pushMenu(MENUID_CHARSEL_P1);
|
||||||
|
@@ -31,6 +31,7 @@
|
|||||||
#include "options.hpp"
|
#include "options.hpp"
|
||||||
#include "track_sel.hpp"
|
#include "track_sel.hpp"
|
||||||
#include "num_laps.hpp"
|
#include "num_laps.hpp"
|
||||||
|
#include "num_karts.hpp"
|
||||||
#include "num_players.hpp"
|
#include "num_players.hpp"
|
||||||
#include "config_controls.hpp"
|
#include "config_controls.hpp"
|
||||||
#include "config_display.hpp"
|
#include "config_display.hpp"
|
||||||
@@ -164,6 +165,9 @@ void MenuManager::update()
|
|||||||
case MENUID_NUMLAPS:
|
case MENUID_NUMLAPS:
|
||||||
m_current_menu= new NumLaps();
|
m_current_menu= new NumLaps();
|
||||||
break;
|
break;
|
||||||
|
case MENUID_NUMKARTS:
|
||||||
|
m_current_menu= new NumKarts();
|
||||||
|
break;
|
||||||
case MENUID_NUMPLAYERS:
|
case MENUID_NUMPLAYERS:
|
||||||
m_current_menu= new NumPlayers();
|
m_current_menu= new NumPlayers();
|
||||||
break;
|
break;
|
||||||
|
@@ -38,6 +38,7 @@ enum MenuManagerIDs
|
|||||||
MENUID_GRANDPRIXEND,
|
MENUID_GRANDPRIXEND,
|
||||||
MENUID_RACEMENU,
|
MENUID_RACEMENU,
|
||||||
MENUID_TRACKSEL,
|
MENUID_TRACKSEL,
|
||||||
|
MENUID_NUMKARTS,
|
||||||
MENUID_NUMLAPS,
|
MENUID_NUMLAPS,
|
||||||
MENUID_NUMPLAYERS,
|
MENUID_NUMPLAYERS,
|
||||||
MENUID_OPTIONS,
|
MENUID_OPTIONS,
|
||||||
|
139
src/gui/num_karts.cpp
Normal file
139
src/gui/num_karts.cpp
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
// $Id: num_laps.cpp 1369 2007-12-25 03:23:32Z cosmosninja $
|
||||||
|
//
|
||||||
|
// SuperTuxKart - a fun racing game with go-kart
|
||||||
|
// Copyright (C) 2006, 2007 SuperTuxKart-Team
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU General Public License
|
||||||
|
// as published by the Free Software Foundation; either version 2
|
||||||
|
// of the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
#include "race_manager.hpp"
|
||||||
|
#include "num_karts.hpp"
|
||||||
|
#include "widget_manager.hpp"
|
||||||
|
#include "menu_manager.hpp"
|
||||||
|
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||||
|
# define snprintf _snprintf
|
||||||
|
#endif
|
||||||
|
|
||||||
|
enum WidgetTokens
|
||||||
|
{
|
||||||
|
WTOK_TITLE,
|
||||||
|
|
||||||
|
WTOK_NUMLAPS,
|
||||||
|
|
||||||
|
WTOK_LESS,
|
||||||
|
WTOK_MORE,
|
||||||
|
|
||||||
|
WTOK_CONTINUE,
|
||||||
|
WTOK_QUIT
|
||||||
|
};
|
||||||
|
|
||||||
|
NumKarts::NumKarts()
|
||||||
|
{
|
||||||
|
widget_manager->addWgt(WTOK_TITLE, 50, 7);
|
||||||
|
widget_manager->showWgtRect(WTOK_TITLE);
|
||||||
|
widget_manager->showWgtText(WTOK_TITLE);
|
||||||
|
widget_manager->setWgtText(WTOK_TITLE, _("Choose number of karts"));
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt( WidgetManager::WGT_NONE, 100, 5);
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt(WTOK_NUMLAPS, 20, 7);
|
||||||
|
widget_manager->showWgtRect(WTOK_NUMLAPS);
|
||||||
|
widget_manager->showWgtText(WTOK_NUMLAPS);
|
||||||
|
m_num_karts = race_manager->getNumKarts();
|
||||||
|
snprintf(m_kart_label, MAX_MESSAGE_LENGTH, _("Karts: %d"), m_num_karts);
|
||||||
|
widget_manager->setWgtText(WTOK_NUMLAPS, m_kart_label);
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt( WidgetManager::WGT_NONE, 100, 5);
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt(WTOK_LESS, 20, 7);
|
||||||
|
widget_manager->showWgtRect(WTOK_LESS);
|
||||||
|
widget_manager->showWgtText(WTOK_LESS);
|
||||||
|
widget_manager->setWgtText(WTOK_LESS, _("Less"));
|
||||||
|
widget_manager->activateWgt(WTOK_LESS);
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt(WTOK_MORE, 20, 7);
|
||||||
|
widget_manager->showWgtRect(WTOK_MORE);
|
||||||
|
widget_manager->showWgtText(WTOK_MORE);
|
||||||
|
widget_manager->setWgtText(WTOK_MORE, _("More"));
|
||||||
|
widget_manager->activateWgt(WTOK_MORE);
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt( WidgetManager::WGT_NONE, 100, 5);
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt(WTOK_CONTINUE, 30, 7);
|
||||||
|
widget_manager->showWgtRect(WTOK_CONTINUE);
|
||||||
|
widget_manager->showWgtText(WTOK_CONTINUE);
|
||||||
|
if (race_manager->getRaceMode() == RaceSetup::RM_GRAND_PRIX)
|
||||||
|
widget_manager->setWgtText(WTOK_CONTINUE, _("Start race"));
|
||||||
|
else
|
||||||
|
widget_manager->setWgtText(WTOK_CONTINUE, _("Continue"));
|
||||||
|
|
||||||
|
widget_manager->activateWgt(WTOK_CONTINUE);
|
||||||
|
widget_manager->breakLine();
|
||||||
|
|
||||||
|
widget_manager->addWgt(WTOK_QUIT, 50, 7);
|
||||||
|
widget_manager->showWgtRect(WTOK_QUIT);
|
||||||
|
widget_manager->showWgtText(WTOK_QUIT);
|
||||||
|
widget_manager->setWgtText(WTOK_QUIT, _("Press <ESC> to go back"));
|
||||||
|
widget_manager->activateWgt(WTOK_QUIT);
|
||||||
|
|
||||||
|
widget_manager->layout(WGT_AREA_ALL);
|
||||||
|
|
||||||
|
widget_manager->setSelectedWgt(WTOK_CONTINUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
NumKarts::~NumKarts()
|
||||||
|
{
|
||||||
|
widget_manager->reset();
|
||||||
|
} // ~NumKarts
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
void NumKarts::select()
|
||||||
|
{
|
||||||
|
const int WGT = widget_manager->getSelectedWgt();
|
||||||
|
switch (WGT)
|
||||||
|
{
|
||||||
|
case WTOK_LESS:
|
||||||
|
m_num_karts = std::max(race_manager->getNumPlayers(), m_num_karts-1);
|
||||||
|
snprintf(m_kart_label, MAX_MESSAGE_LENGTH, "Karts: %d", m_num_karts);
|
||||||
|
widget_manager->setWgtText(WTOK_NUMLAPS, m_kart_label);
|
||||||
|
break;
|
||||||
|
case WTOK_MORE:
|
||||||
|
m_num_karts = std::min(stk_config->m_max_karts, m_num_karts+1);
|
||||||
|
snprintf(m_kart_label, MAX_MESSAGE_LENGTH, "Karts: %d", m_num_karts);
|
||||||
|
widget_manager->setWgtText(WTOK_NUMLAPS, m_kart_label);
|
||||||
|
break;
|
||||||
|
case WTOK_CONTINUE:
|
||||||
|
race_manager->setNumKarts(m_num_karts);
|
||||||
|
if (race_manager->getRaceMode() == RaceSetup::RM_GRAND_PRIX)
|
||||||
|
race_manager->start();
|
||||||
|
else
|
||||||
|
menu_manager->pushMenu(MENUID_NUMLAPS);
|
||||||
|
break;
|
||||||
|
case WTOK_QUIT:
|
||||||
|
menu_manager->popMenu();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // select
|
||||||
|
|
||||||
|
|
||||||
|
|
40
src/gui/num_karts.hpp
Normal file
40
src/gui/num_karts.hpp
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
// $Id: num_karts.hpp 924 2007-03-06 17:33:35Z coz $
|
||||||
|
//
|
||||||
|
// SuperTuxKart - a fun racing game with go-kart
|
||||||
|
// Copyright (C) 2006 SuperTuxKart-Team
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU General Public License
|
||||||
|
// as published by the Free Software Foundation; either version 2
|
||||||
|
// of the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
#ifndef HEADER_KARTSLAPS_H
|
||||||
|
#define HEADER_KARTSLAPS_H
|
||||||
|
|
||||||
|
#include "base_gui.hpp"
|
||||||
|
#include "translation.hpp"
|
||||||
|
|
||||||
|
class NumKarts: public BaseGUI
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
NumKarts();
|
||||||
|
~NumKarts();
|
||||||
|
|
||||||
|
void select();
|
||||||
|
|
||||||
|
private:
|
||||||
|
int m_karts_label_id;
|
||||||
|
int m_num_karts;
|
||||||
|
char m_kart_label[MAX_MESSAGE_LENGTH];
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@@ -89,6 +89,8 @@ NumLaps::NumLaps() : laps(3)
|
|||||||
widget_manager->activateWgt(WTOK_QUIT);
|
widget_manager->activateWgt(WTOK_QUIT);
|
||||||
|
|
||||||
widget_manager->layout(WGT_AREA_ALL);
|
widget_manager->layout(WGT_AREA_ALL);
|
||||||
|
|
||||||
|
widget_manager->setSelectedWgt(WTOK_START);
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
@@ -246,8 +246,14 @@ void TrackSel::select()
|
|||||||
const int CLICKED_TOKEN = widget_manager->getSelectedWgt();
|
const int CLICKED_TOKEN = widget_manager->getSelectedWgt();
|
||||||
const Track* TRACK = track_manager->getTrack(CLICKED_TOKEN - WTOK_TRACK0);
|
const Track* TRACK = track_manager->getTrack(CLICKED_TOKEN - WTOK_TRACK0);
|
||||||
race_manager->setTrack(TRACK->getIdent());
|
race_manager->setTrack(TRACK->getIdent());
|
||||||
|
if(race_manager->getRaceMode()==RaceSetup::RM_TIME_TRIAL)
|
||||||
|
{
|
||||||
menu_manager->pushMenu(MENUID_NUMLAPS);
|
menu_manager->pushMenu(MENUID_NUMLAPS);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
menu_manager->pushMenu(MENUID_NUMKARTS);
|
||||||
|
}
|
||||||
|
} // select
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
@@ -522,7 +522,7 @@
|
|||||||
Optimization="0"
|
Optimization="0"
|
||||||
WholeProgramOptimization="false"
|
WholeProgramOptimization="false"
|
||||||
AdditionalIncludeDirectories="./../../../src;"$(PLIB_PATH)";"$(SDL_PATH)\include";"$(ALUT_PATH)\include";"$(OGG_PATH)\include";"$(VORBIS_PATH)\include";"$(OPENAL_PATH)\include";"$(OPENAL_PATH)\include\AL";../../../src/bullet/src;"$(GLUT_PATH)\include";"$(GETTEXT_PATH)/include""
|
AdditionalIncludeDirectories="./../../../src;"$(PLIB_PATH)";"$(SDL_PATH)\include";"$(ALUT_PATH)\include";"$(OGG_PATH)\include";"$(VORBIS_PATH)\include";"$(OPENAL_PATH)\include";"$(OPENAL_PATH)\include\AL";../../../src/bullet/src;"$(GLUT_PATH)\include";"$(GETTEXT_PATH)/include""
|
||||||
PreprocessorDefinitions="BT_NO_PROFILE;HAVE_OPENAL;HAVE_OGGVORBIS;_DEBUG;_CONSOLE;WIN32;NOMINMAX;VERSION=\"0.4alpha\";_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;DEBUG;PACKAGE=\"supertuxkart\""
|
PreprocessorDefinitions="BT_NO_PROFILE;HAVE_OPENAL;HAVE_OGGVORBIS;_DEBUG;_CONSOLE;WIN32;NOMINMAX;VERSION=\"0.4\";_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;DEBUG;PACKAGE=\"supertuxkart\""
|
||||||
GeneratePreprocessedFile="0"
|
GeneratePreprocessedFile="0"
|
||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
@@ -607,7 +607,7 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
WholeProgramOptimization="true"
|
WholeProgramOptimization="true"
|
||||||
AdditionalIncludeDirectories="./../../../src;"$(PLIB_PATH)";"$(SDL_PATH)\include";"$(ALUT_PATH)\include";"$(OGG_PATH)\include";"$(VORBIS_PATH)\include";"$(OPENAL_PATH)\include";"$(OPENAL_PATH)\include\AL";../../../src/bullet/src;"$(GLUT_PATH)\include""
|
AdditionalIncludeDirectories="./../../../src;"$(PLIB_PATH)";"$(SDL_PATH)\include";"$(ALUT_PATH)\include";"$(OGG_PATH)\include";"$(VORBIS_PATH)\include";"$(OPENAL_PATH)\include";"$(OPENAL_PATH)\include\AL";../../../src/bullet/src;"$(GLUT_PATH)\include""
|
||||||
PreprocessorDefinitions="HAVE_OPENAL;HAVE_OGGVORBIS;NDEBUG;_CONSOLE;WIN32;NOMINMAX;VERSION=\"0.4alpha\";_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;BT_NO_PROFILE"
|
PreprocessorDefinitions="HAVE_OPENAL;HAVE_OGGVORBIS;NDEBUG;_CONSOLE;WIN32;NOMINMAX;VERSION=\"0.4\";_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;BT_NO_PROFILE"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
UsePrecompiledHeader="0"
|
UsePrecompiledHeader="0"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
@@ -981,6 +981,10 @@
|
|||||||
RelativePath="../../../src\gui\menu_manager.cpp"
|
RelativePath="../../../src\gui\menu_manager.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\gui\num_karts.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="../../../src\gui\num_laps.cpp"
|
RelativePath="../../../src\gui\num_laps.cpp"
|
||||||
>
|
>
|
||||||
@@ -1403,6 +1407,10 @@
|
|||||||
RelativePath="../../../src\gui\menu_manager.hpp"
|
RelativePath="../../../src\gui\menu_manager.hpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\gui\num_karts.hpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="../../../src\gui\num_laps.hpp"
|
RelativePath="../../../src\gui\num_laps.hpp"
|
||||||
>
|
>
|
||||||
|
@@ -633,13 +633,17 @@ void Kart::update (float dt)
|
|||||||
Moveable::update(dt);
|
Moveable::update(dt);
|
||||||
|
|
||||||
// Check if a kart is (nearly) upside down and not moving much --> automatic rescue
|
// Check if a kart is (nearly) upside down and not moving much --> automatic rescue
|
||||||
if((fabs(m_curr_pos.hpr[2])>60 && getSpeed()<3.0f) )
|
if((fabs(m_curr_pos.hpr[2])>60 && fabs(getSpeed())<3.0f) )
|
||||||
{
|
{
|
||||||
forceRescue();
|
forceRescue();
|
||||||
}
|
}
|
||||||
|
|
||||||
btTransform trans=getTrans();
|
btTransform trans=getTrans();
|
||||||
TerrainInfo::update(trans.getOrigin());
|
// Add a certain epsilon (0.1) to the height of the kart. This avoids
|
||||||
|
// problems of the ray being cast from under the track (which happened
|
||||||
|
// e.g. on tux tollway when jumping down from the ramp).
|
||||||
|
btVector3 pos_plus_epsilon = trans.getOrigin()+btVector3(0,0,0.1f);
|
||||||
|
TerrainInfo::update(pos_plus_epsilon);
|
||||||
if (getHoT()==Track::NOHIT ||
|
if (getHoT()==Track::NOHIT ||
|
||||||
(getMaterial()->isReset() && isOnGround()) )
|
(getMaterial()->isReset() && isOnGround()) )
|
||||||
{
|
{
|
||||||
|
@@ -21,6 +21,7 @@
|
|||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <string>
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
# include <io.h>
|
# include <io.h>
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
@@ -38,16 +39,53 @@
|
|||||||
#include "translation.hpp"
|
#include "translation.hpp"
|
||||||
#include "material_manager.hpp"
|
#include "material_manager.hpp"
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
// dynamic data path detection onmac
|
||||||
|
# include <CoreFoundation/CoreFoundation.h>
|
||||||
|
|
||||||
|
bool macSetBundlePathIfRelevant(std::string& data_dir)
|
||||||
|
{
|
||||||
|
printf("checking whether we are using an app bundle... ");
|
||||||
|
// the following code will enable STK to find its data when placed in an app bundle on mac OS X.
|
||||||
|
// returns true if path is set, returns false if path was not set
|
||||||
|
char path[1024];
|
||||||
|
CFBundleRef main_bundle = CFBundleGetMainBundle(); assert(main_bundle);
|
||||||
|
CFURLRef main_bundle_URL = CFBundleCopyBundleURL(main_bundle); assert(main_bundle_URL);
|
||||||
|
CFStringRef cf_string_ref = CFURLCopyFileSystemPath( main_bundle_URL, kCFURLPOSIXPathStyle); assert(cf_string_ref);
|
||||||
|
CFStringGetCString(cf_string_ref, path, 1024, kCFStringEncodingASCII);
|
||||||
|
CFRelease(main_bundle_URL);
|
||||||
|
CFRelease(cf_string_ref);
|
||||||
|
|
||||||
|
std::string contents = std::string(path) + std::string("/Contents");
|
||||||
|
if(contents.find(".app") != std::string::npos)
|
||||||
|
{
|
||||||
|
printf("yes\n");
|
||||||
|
// executable is inside an app bundle, use app bundle-relative paths
|
||||||
|
data_dir = contents + std::string("/Resources/data");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("no\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
Loader* loader = 0;
|
Loader* loader = 0;
|
||||||
|
|
||||||
Loader::Loader()
|
Loader::Loader()
|
||||||
{
|
{
|
||||||
const char *datadir;
|
std::string datadir;
|
||||||
m_current_callback_type = CB_COLLECTABLE;
|
m_current_callback_type = CB_COLLECTABLE;
|
||||||
|
|
||||||
if ( getenv ( "SUPERTUXKART_DATADIR" ) != NULL )
|
if ( getenv ( "SUPERTUXKART_DATADIR" ) != NULL )
|
||||||
datadir = getenv ( "SUPERTUXKART_DATADIR" ) ;
|
datadir = getenv ( "SUPERTUXKART_DATADIR" ) ;
|
||||||
else
|
else
|
||||||
|
#ifdef __APPLE__
|
||||||
|
if( macSetBundlePathIfRelevant( datadir ) ) { /* nothing to do */ }
|
||||||
|
else
|
||||||
|
#endif
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
if ( _access ( "data\\tuxtrack.track", 04 ) == 0 )
|
if ( _access ( "data\\tuxtrack.track", 04 ) == 0 )
|
||||||
#else
|
#else
|
||||||
@@ -68,7 +106,7 @@ Loader::Loader()
|
|||||||
datadir = "/usr/local/share/games/supertuxkart" ;
|
datadir = "/usr/local/share/games/supertuxkart" ;
|
||||||
#endif
|
#endif
|
||||||
fprintf(stderr, _("Data files will be fetched from: '%s'\n"),
|
fprintf(stderr, _("Data files will be fetched from: '%s'\n"),
|
||||||
datadir ) ;
|
datadir.c_str() ) ;
|
||||||
addSearchPath(datadir);
|
addSearchPath(datadir);
|
||||||
} // Loader
|
} // Loader
|
||||||
|
|
||||||
|
4
src/robots/Makefile.am
Normal file
4
src/robots/Makefile.am
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# src/robots
|
||||||
|
|
||||||
|
EXTRA_DIST = empty_robot.cpp empty_robot.hpp
|
||||||
|
|
@@ -38,6 +38,7 @@
|
|||||||
#include "projectile_manager.hpp"
|
#include "projectile_manager.hpp"
|
||||||
#include "loader.hpp"
|
#include "loader.hpp"
|
||||||
#include "gui/menu_manager.hpp"
|
#include "gui/menu_manager.hpp"
|
||||||
|
#include "widget_manager.hpp"
|
||||||
#include "player.hpp"
|
#include "player.hpp"
|
||||||
#include "gui/font.hpp"
|
#include "gui/font.hpp"
|
||||||
#include "user_config.hpp"
|
#include "user_config.hpp"
|
||||||
@@ -205,6 +206,10 @@ void setVideoMode(bool resetTextures)
|
|||||||
//Reinit fonts
|
//Reinit fonts
|
||||||
delete_fonts();
|
delete_fonts();
|
||||||
init_fonts();
|
init_fonts();
|
||||||
|
|
||||||
|
//TODO: this function probably will get deleted in the future; if
|
||||||
|
//so, the widget_manager.hpp include has no other reason to be here.
|
||||||
|
widget_manager->reloadFonts();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -39,7 +39,8 @@ SFXImpl::SFXImpl(const char* filename)
|
|||||||
{
|
{
|
||||||
m_soundBuffer= 0;
|
m_soundBuffer= 0;
|
||||||
m_soundSource= 0;
|
m_soundSource= 0;
|
||||||
assert(load(filename));
|
bool ok=load(filename);
|
||||||
|
assert(ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -53,6 +54,15 @@ SFXImpl::~SFXImpl()
|
|||||||
void SFXImpl::play()
|
void SFXImpl::play()
|
||||||
{
|
{
|
||||||
alSourcePlay(m_soundSource);
|
alSourcePlay(m_soundSource);
|
||||||
|
|
||||||
|
// Check (and clear) the error flag
|
||||||
|
int error = alGetError();
|
||||||
|
|
||||||
|
if(error != AL_NO_ERROR)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "SFX OpenAL error: %d\n", error);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@@ -380,11 +380,11 @@ bool Widget::createRect(int radius)
|
|||||||
//TODO: show warning if text > rect
|
//TODO: show warning if text > rect
|
||||||
if(radius > m_width * 0.5)
|
if(radius > m_width * 0.5)
|
||||||
{
|
{
|
||||||
std::cerr << "Warning: widget's radius > half width.\n";
|
//std::cerr << "Warning: widget's radius > half width.\n";
|
||||||
}
|
}
|
||||||
if(radius > m_height * 0.5)
|
if(radius > m_height * 0.5)
|
||||||
{
|
{
|
||||||
std::cerr << "Warning: widget's radius > half height.\n";
|
// std::cerr << "Warning: widget's radius > half height.\n";
|
||||||
}
|
}
|
||||||
if(radius < 1)
|
if(radius < 1)
|
||||||
{
|
{
|
||||||
@@ -677,4 +677,8 @@ void Widget::setFont( const WidgetFont FONT )
|
|||||||
m_font = font_race;
|
m_font = font_race;
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//TODO: the curr_widget_font variable exists only for a bug around; after
|
||||||
|
//some restructuration, it should be fine to remove this.
|
||||||
|
m_curr_widget_font = FONT;
|
||||||
}
|
}
|
||||||
|
@@ -149,6 +149,10 @@ class Widget
|
|||||||
std::string m_text;
|
std::string m_text;
|
||||||
WidgetFontSize m_text_size;
|
WidgetFontSize m_text_size;
|
||||||
|
|
||||||
|
//TODO: This variable exists only to go around a bug; should be removed
|
||||||
|
//after better restructuration.
|
||||||
|
WidgetFont m_curr_widget_font;
|
||||||
|
|
||||||
static const int MAX_SCROLL;
|
static const int MAX_SCROLL;
|
||||||
bool m_enable_scroll;
|
bool m_enable_scroll;
|
||||||
float m_scroll_pos_x;
|
float m_scroll_pos_x;
|
||||||
|
@@ -1591,3 +1591,19 @@ int WidgetManager::findBottomWidget(const int START_WGT) const
|
|||||||
return closest_wgt;
|
return closest_wgt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** reloadFonts() sets the pointers to the fonts of the guis
|
||||||
|
* to their choosen fonts; it's useful in cases where you
|
||||||
|
* free the font's memory (which makes the pointers invalid),
|
||||||
|
* then reload the fonts, like it happens when you change resolution
|
||||||
|
* on the Macs or Windows.
|
||||||
|
*/
|
||||||
|
void WidgetManager::reloadFonts()
|
||||||
|
{
|
||||||
|
const int NUM_WIDGETS = (int)m_widgets.size();
|
||||||
|
for( int i = 0; i < NUM_WIDGETS; ++i )
|
||||||
|
{
|
||||||
|
m_widgets[i].widget->setFont(
|
||||||
|
m_widgets[i].widget->m_curr_widget_font );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -232,6 +232,7 @@ public:
|
|||||||
void setWgtFont( const int TOKEN, const WidgetFont FONT);
|
void setWgtFont( const int TOKEN, const WidgetFont FONT);
|
||||||
void showWgtText( const int TOKEN );
|
void showWgtText( const int TOKEN );
|
||||||
void hideWgtText( const int TOKEN );
|
void hideWgtText( const int TOKEN );
|
||||||
|
void reloadFonts();
|
||||||
|
|
||||||
//FIXME: change to enableWgtScrolling, since it enables or disables
|
//FIXME: change to enableWgtScrolling, since it enables or disables
|
||||||
//FIXME: maybe all that enabling the scrolling should do, is to allow
|
//FIXME: maybe all that enabling the scrolling should do, is to allow
|
||||||
|
BIN
src/windows_installer/icon.ico
Executable file
BIN
src/windows_installer/icon.ico
Executable file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
src/windows_installer/install.ico
Executable file
BIN
src/windows_installer/install.ico
Executable file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
src/windows_installer/prerequisites/oalinst.exe
Executable file
BIN
src/windows_installer/prerequisites/oalinst.exe
Executable file
Binary file not shown.
BIN
src/windows_installer/prerequisites/vcredist_x86.exe
Executable file
BIN
src/windows_installer/prerequisites/vcredist_x86.exe
Executable file
Binary file not shown.
164
src/windows_installer/supertuxkart.nsi
Normal file
164
src/windows_installer/supertuxkart.nsi
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
; Before you start you will need the shelllink plugin for NSIS
|
||||||
|
; Download it from the nsis webpage, and unzip it in the NSIS
|
||||||
|
; install dir.
|
||||||
|
;
|
||||||
|
; To use just put this in a directory below the supertuxkart directory
|
||||||
|
; which should be called "supertuxkart" and then copy the
|
||||||
|
; GPL in the supertuxkart directory to 'license.txt'.
|
||||||
|
; Next to supertuxkart create a subdirectory called 'prerequisites'
|
||||||
|
; and copy the VC++ (vcredist_x86.exe) and OpenAL (oalinst.exe)
|
||||||
|
; redistributables.
|
||||||
|
; You will then need to make an icon, you can use:
|
||||||
|
; http://tools.dynamicdrive.com/favicon/ to convert a png to an icon.
|
||||||
|
; Once you have made an icon put it in the supertuxkart dir and call it
|
||||||
|
; icon.ico. You will need to do the same for install.ico nd uninstall.ico
|
||||||
|
; Once there done then all you need to do is compile with NSIS.
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Include Modern UI
|
||||||
|
|
||||||
|
!include "MUI.nsh"
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;General
|
||||||
|
|
||||||
|
;Name and file
|
||||||
|
Name "SuperTuxKart for Windows"
|
||||||
|
OutFile "supertuxkart-win.exe"
|
||||||
|
|
||||||
|
;Default installation folder
|
||||||
|
InstallDir "$PROGRAMFILES\SuperTuxKart"
|
||||||
|
|
||||||
|
;Get installation folder from registry if available
|
||||||
|
InstallDirRegKey HKCU "Software\SuperTuxKart" ""
|
||||||
|
|
||||||
|
;Sets the text in the bottom corner
|
||||||
|
BrandingText "SuperTuxKart Installer"
|
||||||
|
|
||||||
|
;Set the icon
|
||||||
|
!define MUI_ICON "SuperTuxKart\install.ico"
|
||||||
|
!define MUI_UNICON "SuperTuxKart\uninstall.ico"
|
||||||
|
|
||||||
|
;Sets the compressor to /SOLID lzma which when I tested was the best
|
||||||
|
SetCompressor /SOLID lzma
|
||||||
|
|
||||||
|
;Vista redirects $SMPROGRAMS to all users without this
|
||||||
|
RequestExecutionLevel admin
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Variables
|
||||||
|
|
||||||
|
Var MUI_TEMP
|
||||||
|
Var STARTMENU_FOLDER
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Interface Settings
|
||||||
|
|
||||||
|
!define MUI_ABORTWARNING
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Pages
|
||||||
|
|
||||||
|
;Installer pages
|
||||||
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
|
!insertmacro MUI_PAGE_LICENSE "SuperTuxKart\License.txt"
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
|
||||||
|
;Start Menu Folder Page Configuration
|
||||||
|
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
|
||||||
|
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\SuperTuxKart"
|
||||||
|
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
|
||||||
|
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
||||||
|
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
|
||||||
|
|
||||||
|
;Uninstaller pages
|
||||||
|
!insertmacro MUI_UNPAGE_WELCOME
|
||||||
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
|
!insertmacro MUI_UNPAGE_FINISH
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Languages
|
||||||
|
|
||||||
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Installer Sections
|
||||||
|
|
||||||
|
Section "Main Section" SecMain
|
||||||
|
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
|
||||||
|
;Adds all the tux kart files
|
||||||
|
File /r supertuxkart\*.*
|
||||||
|
|
||||||
|
;Store installation folder
|
||||||
|
WriteRegStr HKCU "Software\SuperTuxKart" "" $INSTDIR
|
||||||
|
|
||||||
|
;Create uninstaller
|
||||||
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||||
|
|
||||||
|
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||||
|
|
||||||
|
;Create shortcuts
|
||||||
|
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
||||||
|
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\uninstall.ico"
|
||||||
|
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Run.lnk" "$INSTDIR\supertuxkart.exe" "" "$INSTDIR\icon.ico"
|
||||||
|
ShellLink::SetShortCutShowMode $SMPROGRAMS\$STARTMENU_FOLDER\Run.lnk 0
|
||||||
|
|
||||||
|
!insertmacro MUI_STARTMENU_WRITE_END
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Section -Prerequisites
|
||||||
|
SetOutPath $INSTDIR\Prerequisites
|
||||||
|
MessageBox MB_YESNO "Install Microsoft VC++ runtime libraries?" /SD IDYES IDNO endVC
|
||||||
|
File "prerequisites\vcredist_x86.exe"
|
||||||
|
ExecWait "$INSTDIR\prerequisites\vcredist_x86.exe"
|
||||||
|
Goto endVC
|
||||||
|
endVC:
|
||||||
|
MessageBox MB_YESNO "Install OpenAL sound libraries?" /SD IDYES IDNO endOA
|
||||||
|
File "prerequisites\oalinst.exe"
|
||||||
|
ExecWait "$INSTDIR\prerequisites\oalinst.exe"
|
||||||
|
Goto endOA
|
||||||
|
endOA:
|
||||||
|
SectionEnd
|
||||||
|
;--------------------------------
|
||||||
|
;Uninstaller Section
|
||||||
|
|
||||||
|
Section "Uninstall"redist
|
||||||
|
|
||||||
|
;Removes all the supertuxkart data files
|
||||||
|
RMDir /r /REBOOTOK $INSTDIR
|
||||||
|
|
||||||
|
Delete "$INSTDIR\Uninstall.exe"
|
||||||
|
RMDir "$INSTDIR"
|
||||||
|
|
||||||
|
|
||||||
|
;Remove start menuy items
|
||||||
|
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||||
|
|
||||||
|
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||||
|
Delete "$SMPROGRAMS\$MUI_TEMP\Run.lnk"
|
||||||
|
|
||||||
|
;Delete empty start menu parent diretories
|
||||||
|
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
|
||||||
|
|
||||||
|
startMenuDeleteLoop:
|
||||||
|
ClearErrors
|
||||||
|
RMDir $MUI_TEMP
|
||||||
|
GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
|
||||||
|
|
||||||
|
IfErrors startMenuDeleteLoopDone
|
||||||
|
|
||||||
|
StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
|
||||||
|
startMenuDeleteLoopDone:
|
||||||
|
|
||||||
|
|
||||||
|
DeleteRegKey /ifempty HKCU "Software\SuperTuxKart"
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
BIN
src/windows_installer/uninstall.ico
Executable file
BIN
src/windows_installer/uninstall.ico
Executable file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
Reference in New Issue
Block a user