10 Commits
1.0 ... RaceUI2

Author SHA1 Message Date
Alayan
fc969982da Merge with latest master 2018-10-05 17:55:02 +02:00
Alayan
3e6d7afb14 Move rank indicator to the top-right and adda rank icon 2018-09-30 20:55:04 +02:00
Alayan
87725b4415 Make alert indicator more discrete, restrict kart icon display 2018-09-30 17:00:46 +02:00
Alayan
61df9c4b35 Don't show an alert when the player uses an offensive powerup 2018-09-29 16:41:43 +02:00
Alayan
7b62947e08 Add an alert icon when a dangerous projectile is nerby 2018-09-29 16:28:34 +02:00
Alayan
dcec81c7d5 Add an alert icon when another kart is nearby 2018-09-29 15:42:50 +02:00
Alayan
799f6d98c1 Optimize new icons 2018-09-29 14:26:43 +02:00
Alayan
fa98a30543 Icons for danger warnings 2018-09-29 14:22:51 +02:00
Alayan
7386465931 Remove outdated comment 2018-09-26 18:57:36 +02:00
Alayan
f5abd2c798 Move the rank indicator to the top-left and clarify it 2018-09-26 18:57:13 +02:00
1003 changed files with 236554 additions and 252247 deletions

View File

@@ -1,54 +0,0 @@
<!--
*** Please fill in the fields below. Remove any placeholders that are unused/not applicable.
-->
## Description
<!-- Provide a description of your issue.
For any suggestions, please address them on the forum: https://forum.freegamedev.net/viewforum.php?f=16 -->
## Steps to reproduce
<!-- List any required steps to reproduce the issue here -->
## Configuration
<!-- PLease specify the version of STK you are using. The version can be found in the "About" screen. -->
STK release version:
<!-- Please specify where you downloaded STK -->
STK Source (PPA, distribution package, official binary, etc.):
System:
Graphics card:
CPU:
Gamepads/keyboards models if related to the issue:
## Additional information
<!--
Please provide stdout.log, it is located in:
* %appdata%\supertuxkart\0.8.2 (Windows)
* ~/Library/Application Support/supertuxkart/0.8.2 (mac)
* $XDG_CONFIG_HOME/supertuxkart/0.8.2 or ~/.config/supertuxkart/0.8.2 (Linux and other unix based systems)
Note that in the Git/beta version the folder is 0.10-git rather than 0.8.2.
-->
stdout.log:
```
```
<!-- If your issue is related to the input config (gamepads, keyboards), please provide your file input.xml located in the same directory as stdout.log. -->
input.xml:
```xml
```
<!-- If an error message was shown, please paste the complete error message, or a screenshot of it. -->
Error message:
```
```

View File

@@ -1,9 +1,8 @@
brew "cmake"
brew "libogg"
brew "libvorbis"
brew "openal-soft"
brew "freetype"
brew "curl"
brew "nettle"
brew "openssl@1.1"
brew "fribidi"
brew "glew"

View File

@@ -5,92 +5,26 @@ It should be kept in mind that some versions have a less complete changelog than
For similar reasons, and because some features are vastly more complex than others, attributions of main changes should not be taken as a shorcut for overall contribution.
## SuperTuxKart 1.0 (20. April 2019)
### Networking
* Networking support for normal race, time trial, free for all, capture the flag and soccer by Benau and hiker :
* Access to a global server list, possibility to also create a LAN server
* Track voting system to allow players to decide where the race will be
* Communication between server and clients to exchange inputs and general game data
* A lot of work on rewind code to make sure server and client are well synchronized
* Chat lobby for general server information and discussion among players between races
* Support for handicap, which can be changed before each game
* Spectating option for players having entered a server while a race or game is underway by Benau
* Option to join live an active game in FFA, CTF and soccer by Benau
* Global rankings by Benau (communication with main server) and Alayan (ranking formula)
### Race gameplay and physics
* New game mode Capture the Flag by Benau (online multiplayer only)
* New game mode Free for All by Benau
* Free for All available in offline mode with AI, by Mrxx99
* Revised kart characteristics for better balance between light, medium and heavy karts by Alayan
## Unreleased
* Networking game for normal race, time trial, free for all, capture the flag and soccer
* Better random item distribution for various numbers of karts by Alayan and hiker
* Fix position interpolation causing some incorrect lapline validation by Auria
* Fix kart being uncontrollable and hovering when landing on some downward slopes by hiker
* Mitigate a physics issue which could send a kart flying on collisions by hiker
* Make kart turn radius based on kart class instead of kart model length (which made Adiumy unplayable and caused AI issues) by Alayan
* Revisited slipstreaming with boost easier to obtain, especially in curves, but not as strong as in 0.9.3 when the zipper boost was incorrectly activated, by Alayan
* Minor gameplay improvements (level 1 skid boost doesn't interrupt level 2 boost, fairer rubber-banding in low difficulties, boosted AI for some karts for more challenge in GPs, small balance change of GP points, more useful and consistent handicap option...)
* Start boost/penalty moved to the set phase for smoother networking
* Terrain slowdown works again as intended on several tracks where it was missing
### AI
* Improved powerup and nitro handling in AI by Alayan
### General
* Option to disable light scattering (for improved FPS), used in graphics level 3, by Partmedia
* Numerous improvements to input on Android by deveee
* Unlockable SuperTux challenges in Story Mode by Alayan
* Improvements to ghost replays (more data saved, live time difference, replay comparison, egg hunt replays) by Alayan
* Race UI improvements (new speedometer, nitro gauge, bigger minimap) by Alayan
* Improvements to ghost replays (more data saved, live time difference, replay comparison, UI improvements, egg hunt replays) by Alayan
* Kart color customization by Benau
* Multithreading contention fixes by Benau
* Improved powerup handling in AI by Alayan
* Local multiplayer improvements by Fantasmos
* Major revamp of the achievement system to make adding new achievements much easier and flexible, also fixing some related bugs by Alayan
* Store up to 5 highscores for a track/difficulty/mode/kart number combination, instead of 3
* Smooth turning for non-keyboard inputs for improved consistency between input mode by deveee
* Updated standard replays by Alayan
* Visual improvements (new skidding particles, better rescue, bubblegum flashing before ending)
* Audio improvements (crash sound depending on speed/direction, no crash sound on rescue walls, sound cue in nitro challenges)
* Fix STK incorrectly connecting to the server when the internet option is disabled by Auria
* Updated WiiUse library
* Many bugfixes
### Android
* Gyroscope support by Pelya
* Numerous improvements to input on Android, including screen keyboard, keyboard, gamepads, by deveee
* Android TV support
* Improved UI and font scaling by deveee
* More compact APK thanks to png optimization, allows to have several tracks more than the 0.9.3 APK, by deveee and Alayan
* Wayland support and many other smaller improvements and fixes
### User Interface
* New networking user interface by Benau and hiker
* Race UI improvements (new speedometer, nitro gauge, bigger minimap, minimap display options, more legible text with outlines and for some bigger font) by Alayan
* New coal skin by Alayan
* Support for collapsing widgets in UI by Mrxx99
* Multidirectional keyboard navigation in menus by Alayan
* Alternating background darkness in lists to enhance readability by Benau
* Support text breaks into multiple line in lists, e.g. in the addons menu, by Alayan
* Improved help menu with lateral tabs and a lot more information by Alayan
* Improved option menu with lateral tabs and a separate language tab by Alayan
* Many improvements to the ghost replay selection list (give access to egg hunt replays, kart icon shown in the list, replay's game version shown, hide player number column by default) and dialog (allow replay comparison, show track picture, show information about the selected replays) by Alayan
* Control configurations can be disabled without being deleted by Alayan
* Other significant enhancements (detailed progress of multi-goal achievements, reset password button, clearer checkbox status, milliseconds displayed in time-trials and egg hunts, nitro efficiency in the kart selection screen, better track info screen, better warnings when trying to do an online action with internet access disabled, hour support for GP time, default resolutions can't be used in fullscreen if unsupported by the monitor...)
* Many bugfixes and small enhancements mostly by deveee and Alayan
* Visual improvements (new skidding particles, better rescue, bubblegum flashing before ending)
* Audio improvements (crash sound depending on speed/direction, sound cue in nitro challenges)
* Gameplay improvements (much better slipstreaming, GP points...)
* Terrain slowdown works again as intended on several tracks where it was missing
* Many bugfixes
### Tracks and modeling
#### Tracks
* Black Forest by Sven Andreas Belting, replacing Green Valley
* Ravenbridge Mansion by samuncle, replacing Black Hill Mansion
* Many unwanted shortcuts and exploits fixed by Auria
* Las Dunas Soccer by samuncle
* Candela City arena by Benau based on samuncle's track
* Unwanted shortcuts and exploits found by several players and fixed mostly by Auria in many tracks :
* Antediluvian Abyss, Around the Lighthouse, Fort Magma, Grand Paradisio Island, Hacienda, Minigolf, Nessie's Pond, Northern Resort, The Old Mine, Oliver's Math Class, Shifting Sands, STK Enterprise, XR591
* Smoothness issues causing collisions and kart slowdown fixed by Auria :
* Nessie's Pond, Old Mine, Shifting Sands, Volcano Island, XR591
* Item (boxes, nitro, bananas) positions improvement by Alayan and theThomasPat :
* Around the Lighthouse, Black Forest, Candela City, Hacienda, Minigolf, Northern Resort, Oliver's Math Class, STK Enterprise, The Old Mine, Volcano Island, Zen Garden
#### Karts
* New version of Beastie by Jymis
* New version of Kiki by Benau
## SuperTuxKart 0.9.3 (28. October 2017)
* Reduced RAM and VRAM usage, reducing load times by Auria and Benau
@@ -108,9 +42,8 @@ For similar reasons, and because some features are vastly more complex than othe
* Various improvements (starting boost effect, wall driving fixes, parachutes, GP points, help page for bananas, cannon fixes, colorization shader)
### Tracks and modeling
#### Karts
* Kiki by Benau
* New versions of Wilber and Hexley by Jymis
* New version of Konqi by Benau
* New kart Wilber and Hexley by Jymis
* New kart Kiki and updated Konqi by Benau
#### Tracks
* All tracks drivable in reverse, with arrows pointing in the correct direction
* Candela City by samuncle (replace Shiny Suburbs)

View File

@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.4)
# root CMakeLists for the SuperTuxKart project
project(SuperTuxKart)
set(PROJECT_VERSION "1.0")
set(PROJECT_VERSION "git")
add_definitions( -DSUPERTUXKART_VERSION="${PROJECT_VERSION}" )
if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3))
@@ -21,11 +21,11 @@ endif()
option(SERVER_ONLY "Create a server only (i.e. no graphics or sound)" OFF)
option(CHECK_ASSETS "Check if assets are installed in ../stk-assets" ON)
option(USE_SYSTEM_ANGELSCRIPT "Use system angelscript instead of built-in angelscript. If you enable this option, make sure to use a compatible version." OFF)
option(USE_SYSTEM_ENET "Use system ENet instead of the built-in version, when available." ON)
option(USE_SYSTEM_ENET "Use system ENET instead of the built-in version, when available." ON)
option(USE_SYSTEM_GLEW "Use system GLEW instead of the built-in version, when available." ON)
option(USE_SYSTEM_WIIUSE "Use system WiiUse instead of the built-in version, when available." OFF)
option(USE_CRYPTO_OPENSSL "Use OpenSSL instead of Nettle for cryptography in STK." OFF)
CMAKE_DEPENDENT_OPTION(USE_CRYPTO_OPENSSL "Use OpenSSL instead of Nettle for cryptography in STK." OFF
"NOT APPLE" ON)
CMAKE_DEPENDENT_OPTION(BUILD_RECORDER "Build opengl recorder" ON
"NOT SERVER_ONLY;NOT APPLE" OFF)
CMAKE_DEPENDENT_OPTION(USE_FRIBIDI "Support for right-to-left languages" ON
@@ -267,21 +267,10 @@ include_directories("${PROJECT_SOURCE_DIR}/lib/irrlicht/include")
# (at least on VS) irrlicht will find wiiuse io.h file because
# of the added include directory.
if(USE_WIIUSE)
# Find system WiiUse library or build it if missing
if((UNIX AND NOT APPLE) AND USE_SYSTEM_WIIUSE)
find_package(WiiUse)
endif()
if(WIIUSE_FOUND)
include_directories(${WIIUSE_INCLUDE_DIR})
else()
# Fallback to built-in version
if(WIIUSE_BUILD)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/wiiuse")
endif()
include_directories("${PROJECT_SOURCE_DIR}/lib/wiiuse/src")
set(WIIUSE_LIBRARIES "wiiuse" "bluetooth")
if(WIIUSE_BUILD)
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/wiiuse")
endif()
include_directories("${PROJECT_SOURCE_DIR}/lib/wiiuse")
endif()
# Set include paths
@@ -481,7 +470,7 @@ else()
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIRS})
find_path(NETTLE_INCLUDE_DIRS nettle/version.h)
find_path(NETTLE_INCLUDE_DIRS nettle/gcm.h nettle/sha.h nettle/base64.h nettle/version.h nettle/yarrow.h)
find_library(NETTLE_LIBRARY NAMES nettle libnettle)
if (NOT NETTLE_INCLUDE_DIRS OR NOT NETTLE_LIBRARY OR USE_CRYPTO_OPENSSL)
@@ -578,7 +567,7 @@ if(USE_WIIUSE)
target_link_libraries(supertuxkart ${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib/wiiuse.lib)
endif()
else()
target_link_libraries(supertuxkart ${WIIUSE_LIBRARIES})
target_link_libraries(supertuxkart wiiuse bluetooth)
endif()
add_definitions(-DENABLE_WIIUSE)

169
COPYING
View File

@@ -1,21 +1,18 @@
The SuperTuxKart code 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 3 of the License, or (at your option) any later version.
The SuperTuxKart data files (textures, models, sounds, music, etc.) are released under a mixture of licenses including, but not limited to, the following:
The SuperTuxKart code is released under GNU GPL (see full text below).
SuperTuxKart data files (textures, models, sounds, music, etc.) are released under various licenses, see 'license.txt' files
through the various data subdirectories. Data files are released under a mixture of the following licenses :
GNU General Public License (GNU GPL)
Creative Commons Attribution (CC-BY)
Creative Commons Attribution-ShareAlike (CC-BY-SA)
Gnu GPL 2.0 and 3.0+
Creative-Commons-BY(-SA) 3.0
Public Domain
See the 'licenses.txt' files throughout the various data subdirectories for the licenses of each file.
_____________________________________________________________________
________________________________________________________________________________
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (c) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
@@ -49,7 +46,7 @@ TERMS AND CONDITIONS
"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.
"The Program!" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
@@ -99,162 +96,124 @@ You may charge any price or no price for each copy that you convey, and you may
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
* a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
* b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".
* c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
* d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
* a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
* b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
* c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
* d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
* e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
* a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
* b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
* c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
* d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
* e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
* f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version".
A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying"
means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 3 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, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@@ -20,44 +20,26 @@ To build SuperTuxKart from source, you'll need to install the following packages
* Freetype (libfreetype6-dev)
* libcurl (libcurl-devel)
* libbluetooth (bluez-devel)
* libnettle (nettle-dev)
* libpng (libpng-devel)
* zlib (zlib-devel)
* jpeg (libjpeg-turbo-devel)
Fedora command:
```bash
sudo dnf install @development-tools cmake bluez-libs-devel \
openssl-devel libcurl-devel freetype-devel fribidi-devel mesa-libGL-devel \
libjpeg-turbo-devel libogg-devel openal-soft-devel libpng-devel \
libvorbis-devel libXrandr-devel libGLEW nettle-devel pkgconf zlib-devel
```
Mageia 6 command:
```bash
su -c 'urpmi gcc-c++ cmake openssl-devel libcurl-devel freetype-devel \
fribidi-devel libjpeg-turbo-devel libogg-devel openal-soft-devel \
libpng-devel libvorbis-devel nettle-devel zlib-devel git subversion \
mesa-comon-devel libxrandr-devel libbluez-devel libfreetype6-devel'
```
OpenSUSE command:
```bash
sudo zypper install gcc-c++ cmake openssl-devel libcurl-devel \
freetype-devel fribidi-devel libogg-devel openal-soft-devel libpng-devel \
libvorbis-devel libXrandr-devel pkgconf zlib-devel enet-devel glew-devel \
libjpeg-devel bluez-devel freetype2-devel glu-devel
```
Ubuntu command:
```bash
sudo apt-get install build-essential cmake libbluetooth-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libfribidi-dev \
libgl1-mesa-dev libglew-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libxrandr-dev libx11-dev nettle-dev pkg-config zlib1g-dev
libssl-dev libvorbis-dev libxrandr-dev libx11-dev pkg-config zlib1g-dev
```
Fedora command:
```bash
sudo dnf install @development-tools cmake bluez-libs-devel \
openssl-devel libcurl-devel freetype-devel fribidi-devel mesa-libGL-devel \
libjpeg-turbo-devel libogg-devel openal-soft-devel libpng-devel \
libvorbis-devel libXrandr-devel libGLEW pkgconf zlib-devel
```
### In-game recorder
To build the in-game recorder for STK, you have to install
@@ -66,23 +48,14 @@ Compilation instruction is explained there. If you don't need this feature, pass
### Compiling
To compile SuperTuxKart, run the following commands inside `stk-code` directory
To compile SuperTuxKart, run the following commands inside `stk-code` directory:
```bash
# go into the stk-code directory
cd stk-code
# create and enter the cmake_build directory
mkdir cmake_build
cd cmake_build
# run cmake to generate the makefile
cmake ..
# compile
make -j$(nproc)
make -j4
```
STK can then be run from the build directory with `bin/supertuxkart`
#### Keeping your build up to date
@@ -93,12 +66,12 @@ To recompile the latest code without redownloading the entire source, first run
git pull
cd cmake_build
cmake ..
make -j$(nproc)
make -j4
```
##### Build Speed Optimization
"-j$(nproc)" is an example, for a faster build, use "-jx" instead, where "x" is the amount of CPU threads you have, minus one.
"-j4" is an example, for a faster build, use "-jx" instead, where "x" is the amount of CPU threads you have, minus one. "-j$(nproc)" usually works.
### Further options
@@ -204,21 +177,34 @@ sudo ln -s `xcrun --show-sdk-path`/System/Library/Frameworks/OpenGL.framework/He
```
The first link is required in order to find libcurl, the second to find opengl.
### STK 0.10 or later (or latest git)
### CMake
Install homebrew (https://brew.sh/)
Install all of the dependencies using homebrew:
CMake is used to build STK. At this time CMake will not make a binary that is ready for distribution.
You'll have to run these commands inside your stk-code directory.
### STK 0.9.4 or later (or latest git)
Install homebrew ( https://brew.sh/)
Install all of the dependencies using homebrew :
```bash
cd /path/to/stk-code
brew bundle
brew install libogg
brew install libvorbis
brew install openal-soft
brew install freetype
brew install curl
brew install openssl@1.1
brew install fribidi
brew install glew
```
Build STK
```bash
mkdir cmake_build
cd cmake_build
CMAKE_PREFIX_PATH=/usr/local/opt/freetype/:/usr/local/opt/curl/:/usr/local/opt/libogg/:/usr/local/opt/libogg/:/usr/local/opt/libvorbis/:/usr/local/opt/glew/:/usr/local/opt/fribidi/ cmake .. -DFREETYPE_INCLUDE_DIRS=/usr/local/opt/freetype/include/freetype2/ -DUSE_SYSTEM_GLEW=1 -DOPENAL_INCLUDE_DIR=/usr/local/opt/openal-soft/include/ -DOPENAL_LIBRARY=/usr/local/opt/openal-soft/lib/libopenal.dylib -DFREETYPE_LIBRARY=/usr/local/opt/freetype/lib/libfreetype.dylib
CMAKE_PREFIX_PATH=/usr/local/opt/freetype/:/usr/local/opt/curl/:/usr/local/opt/libogg/:/usr/local/opt/libogg/:/usr/local/opt/libvorbis/:/usr/local/opt/openssl\@1.1/:/usr/local/opt/glew/:/usr/local/opt/fribidi/ /usr/local/opt/cmake/bin/cmake .. -DFREETYPE_INCLUDE_DIRS=/usr/local/opt/freetype/include/freetype2/ -DUSE_SYSTEM_GLEW=1 -DOPENAL_INCLUDE_DIR=/usr/local/opt/openal-soft/include/ -DOPENAL_LIBRARY=/usr/local/opt/openal-soft/lib/libopenal.dylib -DFREETYPE_LIBRARY=/usr/local/opt/freetype/lib/libfreetype.dylib
make
```
@@ -239,7 +225,6 @@ Download pre-built dependencies from [here](https://sourceforge.net/projects/sup
Building with clang:
```bash
cd /path/to/stk-code
mkdir cmake_build
cd cmake_build
cmake ..
@@ -248,7 +233,6 @@ make
Building with GCC:
```bash
cd /path/to/stk-code
mkdir cmake_build
cd cmake_build
cmake .. -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc

49
ISSUE_TEMPLATE.md Normal file
View File

@@ -0,0 +1,49 @@
## Description
Provide a description of your issue.
For any suggestions, please address them on the [forum](https://forum.freegamedev.net/viewforum.php?f=16).
## Steps to reproduce
## Configuration
STK release version:
STK Source (ppa, distribution package, official bin,...):
If you did not download STK from the official website, please specify where you got it:
System:
Graphics card:
CPU:
Gamepads/keyboards models if related to the issue:
## Additional information
Please provide stdout.log, it is located in
* %appdata%\supertuxkart\0.8.2 (windows)
* ~/Library/Application Support/supertuxkart/0.8.2 (mac)
* $XDG_CONFIG_HOME/supertuxkart/0.8.2 or ~/.config/supertuxkart/0.8.2 (linux, and other unix based systems)
stdout.log
```
```
If your issue is related to the input config (gamepads, keyboards), please provide your file input.xml located in the same directory as stdout.log.
input.xml
```xml
```
If an error message was shown, please copy paste the complete error message or a screenshot of it.
error
```
```

View File

@@ -2,13 +2,9 @@
## Hosting server
First of all, you can compile STK with `-DSERVER_ONLY=ON` which will produce a GUI-less STK binary optimized for size and memory usage, useful for situation like in VPS.
The dependencies for RHEL/CentOS 7 are installed with:
```bash
yum install wget; cd /tmp; wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm; rpm -Uvh epel-release*rpm
yum install gcc-c++ cmake openssl-devel libcurl-devel zlib-devel enet gcc-c++
```
### Hosting WAN (public internet) server
You are required to have an stk online account first, go [here](https://online.supertuxkart.net/register.php) for registration.
You are required to have an stk online account first, go [here](https://addons.supertuxkart.net/register.php) for registration.
It is recommended you have a saved user in your computer to allow hosting multiple servers simultaneously with the same account, if you have a fresh STK installation, first run:
@@ -25,7 +21,7 @@ It will create that xml configuration file if not found in current directory, yo
The current server configuration xml looks like this:
```xml
<?xml version="1.0"?>
<server-config version="6" >
<server-config version="1" >
<!-- Name of server, encode in XML if you want to use unicode characters. -->
<server-name value="stk server" />
@@ -60,14 +56,8 @@ The current server configuration xml looks like this:
<!-- Message of today shown in lobby, you can enter encoded XML words here or a file.txt and let STK load it. -->
<motd value="" />
<!-- If off this server will ignore chat message from all players. -->
<chat value="true" />
<!-- Allow players to vote track to play, if off server will pick next track to play randomly. -->
<track-voting value="true" />
<!-- Timeout in seconds for selecting karts and (or) voting tracks in server, you may want to use a lower value if you have track-voting off. -->
<voting-timeout value="30" />
<!-- Timeout in seconds for voting tracks in server. -->
<voting-timeout value="20" />
<!-- Timeout in seconds for validation of clients in wan, currently stk will use the stk-addons server to share AES key between client and server. -->
<validation-timeout value="20" />
@@ -82,13 +72,7 @@ The current server configuration xml looks like this:
<owner-less value="false" />
<!-- Time to wait before entering kart selection screen if satisfied min-start-game-players below for owner less or ranked server. -->
<start-game-counter value="60" />
<!-- Clients below this value will be rejected from joining this server. It's determined by number of official karts in client / number of official karts in server -->
<official-karts-threshold value="1" />
<!-- Clients below this value will be rejected from joining this server. It's determined by number of official tracks in client / number of official tracks in server, setting this value too high will prevent android players from joining this server, because STK android apk has some official tracks removed. -->
<official-tracks-threshold value="0.7" />
<start-game-counter value="30" />
<!-- Only auto start kart selection when number of connected player is larger than or equals this value, for owner less or ranked server, after start-game-counter reaches 0. -->
<min-start-game-players value="2" />
@@ -96,69 +80,52 @@ The current server configuration xml looks like this:
<!-- Automatically end linear race game after 1st player finished for some time (currently his finished time * 0.25 + 15.0). -->
<auto-end value="false" />
<!-- Enable team choosing in lobby in team game (soccer and CTF). If owner-less is enabled and live-players is not enabled, than this option is always disabled. -->
<!-- Enable team choosing in lobby in team game (soccer and CTF). If owner-less is enabled, than this option is always disabled. -->
<team-choosing value="true" />
<!-- If strict-players is on, no duplicated online id or split screen players are allowed, which can prevent someone using more than 1 network AI with this server. -->
<strict-players value="false" />
<!-- Server will submit ranking to stk addons server for linear race games, you require permission for that. validating-player, auto-end, strict-player and owner-less will be turned on. -->
<!-- Server will submit ranking to stk addons server for linear race games, you require permission for that. validating-player, auto-end and owner-less will be turned on. -->
<ranked value="false" />
<!-- If true, the server owner can config the difficulty and game mode in the GUI of lobby. This option cannot be used with owner-less or grand prix server, and will be automatically turned on if the server was created using the in-game GUI. The changed difficulty and game mode will not be saved in this config file. -->
<server-configurable value="false" />
<!-- If true, players can live join or spectate the in-progress game. Currently live joining is only available if the current game mode used in server is FFA, CTF or soccer, also no addon karts will be available for players to choose, and official-karts-threshold will be made 1.0. -->
<live-players value="true" />
<!-- Time in seconds when a flag is dropped a by player in CTF returning to its own base. -->
<flag-return-timeout value="20" />
<flag-return-timemout value="20" />
<!-- Time in seconds to deactivate a flag when it's captured or returned to own base by players. -->
<flag-deactivated-time value="3" />
<!-- Value used to calculate hit limit in free for all, which is min(number of players * hit-limit-threshold, 40), negative value to disable hit limit. -->
<hit-limit-threshold value="5" />
<!-- Hit limit of free for all, zero to disable hit limit. -->
<hit-limit value="20" />
<!-- Value used to calculate time limit in free for all, which is max(number of players * time-limit-threshold-ffa, 3.0) * 60, negative value to disable time limit. -->
<time-limit-threshold-ffa value="0.7" />
<!-- Time limit of free for all in seconds, zero to disable time limit. -->
<time-limit-ffa value="360" />
<!-- Value used to calculate capture limit in CTF, which is max(3.0, number of players * capture-limit-threshold), negative value to disable capture limit. -->
<capture-limit-threshold value="0.7" />
<!-- Capture limit of CTF, zero to disable capture limit. -->
<capture-limit value="5" />
<!-- Value used to calculate time limit in CTF, which is max(3.0, number of players * (time-limit-threshold-ctf + flag-return-timemout / 60.0)) * 60.0, negative value to disable time limit. -->
<time-limit-threshold-ctf value="0.9" />
<!-- Time limit of CTF in seconds, zero to disable time limit. -->
<time-limit-ctf value="600" />
<!-- Value used by server to automatically calculate lap of each race in network game, if more than 0.0f, the number of lap of each track vote in linear race will be determined by max(1.0f, auto-lap-ratio * default lap of that track). -->
<auto-lap-ratio value="-1" />
<!-- Value used by server to automatically estimate each game time. For races, it decides the lap of each race in network game, if more than 0.0f, the number of lap of each track vote in linear race will be determined by max(1.0f, auto-game-time-ratio * default lap of that track). For soccer if more than 0.0f, for time limit game it will be auto-game-time-ratio * soccer-time-limit in UserConfig, for goal limit game it will be auto-game-time-ratio * numgoals in UserConfig, -1 to disable for all. -->
<auto-game-time-ratio value="-1" />
<!-- Maximum ping allowed for a player (in ms), it's recommended to use default value if live-players is on. -->
<!-- Maximum ping allowed for a player (in ms). -->
<max-ping value="300" />
<!-- Tolerance of jitter in network allowed (in ms), it's recommended to use default value if live-players is on. -->
<!-- Tolerance of jitter in network allowed (in ms). -->
<jitter-tolerance value="100" />
<!-- Kick players whose ping is above max-ping. -->
<kick-high-ping-players value="false" />
<!-- Kick idle player which has no network activity to server for more than some seconds during game, unless he has finished the race. Negative value to disable, and this option will always be disabled for LAN server. -->
<kick-idle-player-seconds value="60" />
<!-- Set how many states the server will send per second, the higher this value, the more bandwidth requires, also each client will trigger more rewind, which clients with slow device may have problem playing this server, use the default value is recommended. -->
<state-frequency value="10" />
<!-- ip: IP in X.X.X.X/Y (CIDR) format for banning, use Y of 32 for a specific ip, expired-time: unix timestamp to expire, -1 (uint32_t max) for a permanent ban. -->
<!-- ip: IP in X.X.X.X/Y (CIDR) format for banning, use Y of 32 for a specific ip, expired-time: unix timestamp to expire, if -1 (uint32_t max) than a permanent ban. -->
<server-ip-ban-list>
<ban ip="0.0.0.0/0" expired-time="0"/>
</server-ip-ban-list>
<!-- online-id: online id for banning, expired-time: unix timestamp to expire, -1 (uint32_t max) for a permanent ban. -->
<!-- online-id: online id for banning, expired-time: unix timestamp to expire, if -1 (uint32_t max) than a permanent ban. -->
<server-online-id-ban-list>
<ban online-id="0" expired-time="0"/>
</server-online-id-ban-list>
</server-config>
```
At the moment STK has a list of STUN servers for NAT penetration which allows players or servers behind a firewall or router to be able to connect to each other, but in case it doesn't work, you have to manually disable the firewall or port forward the port(s) used by the STK.
@@ -168,7 +135,7 @@ By default STK servers use port `2759`. For example, in Ubuntu based distributio
You may also need to handle the server discovery port `2757` for connecting your WAN server in LAN / localhost.
Notice: You don't need to make any firewall or router configuration changes if you connect to the recommended servers (marked with ☆★STK★☆).
Notice: You don't need to make any firewall or router configuration changes if you connect to our official servers.
### Hosting LAN (local internet) server
Everything is basically the same as WAN one, except you don't need an stk online account, just do:
@@ -191,9 +158,9 @@ There is a network AI tester in STK which can use AI on player controller for se
x.x.x.x:y is your server ip address with its port, id is the id field of server-info in STK server xml list, omit it if you are testing LAN server, n is the number of AI you want to create.
You can see STK server xml list [here](https://online.supertuxkart.net/api/v2/server/get-all).
You can see STK server xml list [here](https://addons.supertuxkart.net/api/v2/server/get-all).
You can remove `--auto-connect` if you have another client which can control the starting of games in server, or you can consider enable owner-less mode on server so the games on server can keep going. Remove `--no-graphics` if you want to see the AI racing. You can also run network AI tester in server-only build of STK.
The server you want to test must be able to be connected without NAT penetration. You can remove `--auto-connect` if you have another client which can control the starting of games in server, or you can consider enable owner-less mode on server so the games on server can keep going. Remove `--no-graphics` if you want to see the AI racing. You can also run network AI tester in server-only build of STK.
With the network AI tester, it's easier to for example simulate high-loaded servers or bad (high ping with packet loss) network.
@@ -201,4 +168,4 @@ Tested on a Raspberry Pi 3 Model B+, if you have 8 players connected to a server
For bad network simulation, we recommend `network traffic control` by linux kernel, see [here](https://wiki.linuxfoundation.org/networking/netem) for details.
You have the best gaming experience when choosing server having all players less than 100ms ping with no packet loss.
You have the best gaming experience when choosing server less than 100ms ping with no packet loss.

View File

@@ -17,7 +17,6 @@
<activity android:name="android.app.NativeActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:configChanges="fontScale|keyboard|keyboardHidden|layoutDirection|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|uiMode"
android:screenOrientation="sensorLandscape">

View File

@@ -102,10 +102,7 @@ SDK_PATH - Path to SDK directory
NDK_PATH - Path to NDK directory
PROJECT_VERSION - Set Supertuxkart version number, for example "0.9.3" or
"git20170409" or whatever. The version must match with file
assets/data/supertuxkart.$PROJECT_VERSION
and that file must exist, because it is used for extracting
and loading game data.
"git20170409" or whatever.
Default is: git.
PROJECT_CODE - Set Supertuxkart version code that is used in the manifest

View File

@@ -20,13 +20,11 @@
################################################################################
export KARTS="all"
export TRACKS="abyss arena_candela_city battleisland cave cornfield_crossing \
endcutscene featunlocked fortmagma gplose gpwin hacienda \
icy_soccer_field introcutscene introcutscene2 lasdunasarena \
lasdunassoccer lighthouse mines minigolf olivermath overworld \
ravenbridge_mansion sandtrack scotland snowmountain snowtuxpeak \
soccer_field stadium stk_enterprise temple tutorial \
volcano_island xr591 zengarden"
export TRACKS="abyss battleisland cave cornfield_crossing endcutscene \
featunlocked fortmagma gplose gpwin hacienda icy_soccer_field \
introcutscene introcutscene2 lighthouse mines olivermath \
overworld sandtrack scotland snowmountain snowtuxpeak \
soccer_field stadium tutorial zengarden"
export ASSETS_PATHS="../data \
../../stk-assets \
@@ -45,7 +43,8 @@ export RUN_OPTIMIZE_SCRIPT=0
export DECREASE_QUALITY=1
export CONVERT_TO_JPG=1
export CONVERT_TO_JPG_BLACKLIST="data/models/traffic_light.png"
export CONVERT_TO_JPG_BLACKLIST="data/karts/hexley/hexley_kart_diffuse.png \
data/models/traffic_light.png"
export BLACKLIST_FILES="data/music/cocoa_river_fast.ogg2"
@@ -568,9 +567,7 @@ fi
if [ $CONVERT_TO_JPG -gt 0 ]; then
rm -f "./converted_textures"
find assets/data -not -path "assets/data/textures/*" \
-not -path "assets/data/karts/*" \
-iname "*.png" | while read f; do convert_to_jpg "$f"; done
find assets/data -not -path "assets/data/textures/*" -iname "*.png" | while read f; do convert_to_jpg "$f"; done
find assets/data -iname "*.b3dz" | while read f; do convert_to_jpg_extract_b3dz "$f"; done
find assets/data -iname "*.b3d" | while read f; do convert_to_jpg_update_b3d "$f"; done
@@ -609,7 +606,7 @@ fi
# Generate directories list
echo "Generate directories list"
find assets/* -type d | sort > assets/directories.txt
find assets/* -type d > assets/directories.txt
sed -i s/'.\/assets\/'// assets/directories.txt
sed -i s/'assets\/'// assets/directories.txt

View File

@@ -9,20 +9,6 @@
# WAYLAND_LIBRARIES
# Wayland library list
find_package(PkgConfig REQUIRED)
if(NOT PKGCONFIG_FOUND)
message(FATAL_ERROR "Pkg-config not found.")
endif()
pkg_check_modules(PKG_WAYLAND QUIET wayland-client)
if(PKG_WAYLAND_FOUND)
set(WAYLAND_VERSION ${PKG_WAYLAND_VERSION})
else()
set(WAYLAND_VERSION 0)
endif()
find_path(WAYLAND_CLIENT_INCLUDE_DIR wayland-client.h)
find_path(WAYLAND_CURSOR_INCLUDE_DIR wayland-cursor.h)
find_path(WAYLAND_EGL_INCLUDE_DIR wayland-egl.h)

View File

@@ -1,99 +0,0 @@
# - try to find WiiUse library
#
# Cache Variables: (probably not for direct use in your scripts)
# WIIUSE_INCLUDE_DIR
# WIIUSE_LIBRARY
#
# Non-cache variables you might use in your CMakeLists.txt:
# WIIUSE_FOUND
# WIIUSE_INCLUDE_DIRS
# WIIUSE_LIBRARIES
# WIIUSE_RUNTIME_LIBRARIES - aka the dll for installing
# WIIUSE_RUNTIME_LIBRARY_DIRS
#
# Requires these CMake modules:
# FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
set(WIIUSE_ROOT_DIR
"${WIIUSE_ROOT_DIR}"
CACHE
PATH
"Directory to search for WiiUse")
if(CMAKE_SIZEOF_VOID_P MATCHES "8")
set(_LIBSUFFIXES /lib64 /lib)
else()
set(_LIBSUFFIXES /lib)
endif()
find_library(WIIUSE_LIBRARY
NAMES
wiiuse
PATHS
"${WIIUSE_ROOT_DIR}"
PATH_SUFFIXES
"${_LIBSUFFIXES}")
get_filename_component(_libdir "${WIIUSE_LIBRARY}" PATH)
find_path(WIIUSE_INCLUDE_DIR
NAMES
wiiuse.h
HINTS
"${_libdir}"
"${_libdir}/.."
PATHS
"${WIIUSE_ROOT_DIR}"
PATH_SUFFIXES
include/)
set(_deps_check)
if(WIN32)
find_file(WIIUSE_RUNTIME_LIBRARY
NAMES
wiiuse.dll
HINTS
"${_libdir}"
"${_libdir}/.."
PATH_SUFFIXES
bin)
set(WIIUSE_RUNTIME_LIBRARIES "${WIIUSE_RUNTIME_LIBRARY}")
get_filename_component(WIIUSE_RUNTIME_LIBRARY_DIRS
"${WIIUSE_RUNTIME_LIBRARY}"
PATH)
list(APPEND _deps_check WIIUSE_RUNTIME_LIBRARY)
else()
set(WIIUSE_RUNTIME_LIBRARY "${WIIUSE_LIBRARY}")
set(WIIUSE_RUNTIME_LIBRARIES "${WIIUSE_RUNTIME_LIBRARY}")
get_filename_component(WIIUSE_RUNTIME_LIBRARY_DIRS
"${WIIUSE_LIBRARY}"
PATH)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(WiiUse
DEFAULT_MSG
WIIUSE_LIBRARY
WIIUSE_INCLUDE_DIR
${_deps_check})
if(WIIUSE_FOUND)
set(WIIUSE_LIBRARIES "${WIIUSE_LIBRARY}")
set(WIIUSE_INCLUDE_DIRS "${WIIUSE_INCLUDE_DIR}")
mark_as_advanced(WIIUSE_ROOT_DIR)
endif()
mark_as_advanced(WIIUSE_INCLUDE_DIR
WIIUSE_LIBRARY
WIIUSE_RUNTIME_LIBRARY)

View File

@@ -22,7 +22,7 @@ Developer
Developer, modeller & animator
- Soccer and battle mode AI, Shader, graphics
- SPM file format definition, importer and exporter
- A lot of networking code
- Kiki
- Other graphical improvements to karts and tracks
= Dawid Gan (deveee) =
@@ -36,7 +36,7 @@ Developer
Lead graphical artist
- Art work:
- Cocoa temple, Grand Paradiso Island, Old Mine
- Ravenbridge Mansion, Hacienda, Fort Magma, XR591
- BlackHill Mansion, Hacienda, Fort Magma, XR591
- Snow Peak, Zen Garden, Ligthouse, Sara
- Thanks to my family and especially my father
- Jean Claude Clemençon
@@ -44,9 +44,8 @@ Lead graphical artist
= Alayan =
Developer
- Story mode and gameplay improvements
- Improved item distribution
- AI improvements
- General improvements and bugfixes
= Magne Djupvik (Arthur) =
@@ -97,23 +96,26 @@ Bug fixes & misc contributions
= Visual art =
Tracks
- Sven Andreas Belting : Black Forest
- Wolfs : Green Valley
- Mac_DMH : Minigolf
- Rubberduck : STK Enterprise
- Ponzino : Volcan Island
- Canis Lupus : Original 'Northern Resort' & Scotland
- Ivar ten Cate (Varivar) : Original 'Old Mine' &'Snow Peaks' Improvements
Tracks
- Canis Lupus : Original 'Northern Resort' & Scotland
- Ivar ten Cate (Varivar) : Original 'Old Mine' & 'Snow Peaks' Improvements
- Thomas Oppl : Shiny Suburbs
- MacIO : Cave X
- Johannes Sjolund : The Island
- Wayne Dennis : Improvements to 'The Island'
- Steve and Oliver Baker : Oliver's Math Class
Karts
- JunglePenguin : Xue
- Minibjorn : Puffy
- Cheleb : Nolok, Pidgin
- Tob : elePHPant
- Néd J. Édoire : Wilber, Hexley
- Benau : Kiki
Karts
- Cédric Archambault : Suzanne
@@ -251,19 +253,6 @@ Software used
= Donations =
Donations
- Trevor Hass, Thomas Belvin, Simona-A.-Petronela Crefelean
- Schmidt Christian, Roberto Giuliani, Robert A Swearingen
- Rene Genz, René Schubert, Pazurik Laszlo Adam, Oskar Vigren
- M J Angove, Florian Lehebel, David E Scourfield, Michael Laube
- Merlin Juusola, Matthias Wiege, Matthew Toppenberg, Martin Rejman
- Mark Gannon, Lukas Palme, Lennart Mellqvist, Joshua Dye, Jan Havran
- Jacqueline Brown, Igor Murzich, Guido Stehr, Gisela Ehresmann
- Evaldas Granickas, Elisabeth Lambert, Edith Muijsers, DC Jaeger
Donations
- Damian Fajfer, Chase Williamson, Carsten Timm, Baptiste Dagneaux
- Alexander Olkhovsky, Aleix Casamitjana, Adrián Chaves Fernández
- Georgi Stoychev, Nuno Ferreira, Steven Anderson, Charalabos Frouzakis
- Richard Qian, William Nakamura, Maree Glynn, David Carlier
- Alistair Findlay, James Tobin, Ursula Belting, Stephan van den Akker

View File

@@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>supertuxkart</string>
<string>SuperTuxKart</string>
<key>CFBundleIconFile</key>
<string>supertuxkart.icns</string>
<key>CFBundleIdentifier</key>
@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<string>0.8.1</string>
<key>CFBundleSignature</key>
<string>SPTK</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<string>0.8.1</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSMinimumSystemVersion</key>

View File

@@ -1,178 +1,69 @@
<?xml version="1.0"?>
<!-- List of counters the achievements can query.
The format to use is <goal type="name_of_the_counter" value="X"/>
where X is the desired value of the counter ;e.g. <won_races value="10"/>
WARNING! If a goal node is malformed, it is ignored.
___________________________________________________________________________
S - Logical relations and subgoals
When you define multiple goals, the achievement will be completed
if they are all met, but they don't need to be met at once.
To have more possibilities, you can define subgoals and the
logical relationship they need to meet.
The available relations are :
AND // The subgoals have to be met, but not necessarily at once
AND-AT-ONCE // The subgoals have to be met at the same time.
OR // One of the subgoal has to be met
SUM // The subgoals sum must reach a certain (positive !) number.
The format to use for AND, AND-AT-ONCE and OR is :
<goal type="AND">
<goal type="name_of_counter" value="X"/>
<goal type="name_of_counter" value="Y"/>
</goal>
For SUM, it is :
<goal type="SUM" value="X">
<goal type="name_of_counter" operation="+"/>
<goal type="name_of_counter" operation="-"/>
</goal>
With the value of operation (+ or -) defining if the subgoal is added
or substracted from the total.
Sub-goals can also have their own sub-goals,
however a AND, AND-AT-ONCE or OR can't have a SUM goal for parent.
___________________________________________________________________________
I - Won races (normal, time-trial, FTL) counters.
Require to beat at least 3 AIs in any difficulty.
won-races : total number of races won
won-normal-races
won-tt-races
won-ftl-races
II - Consecutive won races counters.
These counters are reset if a race is restarted,
or if a race is lost even if the AI count to increment
is not met.
cons-won-races
cons-won-races-hard // This requires 5+ AIs and expert+ difficulty
III - Race started and finished counters, by difficulty (linear races only)
easy-started
easy-finished
medium-started
medium-finished
hard-started
hard-finished
best-started
best-finished
IV - Race started and finished counters, by game mode.
Races against a ghost are counted both in the base mode counter,
either time-trial or egg hunt, and in their own specific counter.
normal-started
normal-finished
tt-started
tt-finished
ftl-started
ftl-finished
three-strikes-started
three-strikes-finished
soccer-started
soccer-finished
egg-hunt-started
egg-hunt-finished
with-ghost-started
with-ghost-finished
ctf-started
ctf-finished
ffa-started
ffa-finished
IV - Counters related to powerup use. The hit counters reference how many
times the player kart has hit other karts, not how often it was hit.
powerup-used
powerup-used-1race
bowling-hit
bowling-hit-1race
swatter-hit
swatter-hit-1race
all-hits // hits from bowling ball, cake and swatter
all-hits-1race
hit-same-kart-1race
V - Counters related to other race events.
banana // counts how many banana the player's kart has hit
banana-1race
skidding
skidding-1race
skidding-1lap
VI - Per-track counters (at least one track reach the value)
race-started
race-finished
race-won
race-finished-reverse
race-finished-alone
less-laps
more-laps
twice-laps
egg-hunt-started
egg-hunt-finished
VII - Per-track counters (all non-addon tracks reach the value)
race-started-all
race-finished-all
race-won-all
race-finished-reverse-all
race-finished-alone-all
less-laps-all
more-laps-all
twice-laps-all
// For egg hunts, all non-addon tracks with egg hunt support
// must reach the value
egg-hunt-started-all
egg-hunt-finished-all
-->
<achievements>
<achievement id="1" name="Christoffel Columbus" description="Play every official track at least once." >
<goal type="race-finished-all" value="1"/>
</achievement>
<achievement id="2" name="Strike!" description="Hit 10 karts with a bowling-ball.">
<goal type="bowling-hit" value="10"/>
</achievement>
<achievement id="3" name="Arch Enemy" description="Hit the same kart at least 5 times in one race.">
<goal type="hit-same-kart-1race" value="5"/>
</achievement>
<achievement id="4" name="Marathoner" description="Finish a race with at least twice the track's default lap number.">
<goal type="twice-laps" value="1"/>
</achievement>
<achievement id="5" name="Skid-row" description="Skid 5 times in a single lap.">
<goal type="skidding-1lap" value="5"/>
</achievement>
<achievement id="6" name="Gold driver" description="Win against at least 3 AIs in normal race, time-trial, and follow the leader.">
<goal type="won-normal-races" value="1"/>
<goal type="won-tt-races" value="1"/>
<goal type="won-ftl-races" value="1"/>
</achievement>
<achievement id="7" name="Powerup Love" description="Use 10 or more powerups in a race.">
<goal type="powerup-used-1race" value="10"/>
</achievement>
<achievement id="8" name="Unstoppable" description="Win 5 single races in a row against at least 3 AIs. Beware, restarting a race counts as a loss.">
<goal type="cons-won-races" value="5"/>
</achievement>
<achievement id="9" name="Banana Lover" description="Collect at least 5 bananas in one race.">
<goal type="banana-1race" value="5"/>
</achievement>
<achievement id="10" name="It's secret" description="Really ... a secret." secret="yes">
</achievement>
<achievement id="11" name="Mosquito Hunter" description="Take your opponents for mosquitos! With the swatter, squash them at least 5 times in a race.">
<goal type="swatter-hit-1race" value="5"/>
</achievement>
<achievement id="12" name="Beyond Luck" description="Win 10 single races in a row in Expert or SuperTux against at least 5 AIs. Beware, restarting a race counts as a loss.">
<goal type="cons-won-races-hard" value="10"/>
</achievement>
<achievement id="1" check-type="all-at-least" reset-type="never"
name="Christoffel Columbus" description="Play every official track at least once." >
<candela_city goal="1"/>
<cocoa_temple goal="1"/>
<cornfield_crossing goal="1"/>
<fortmagma goal="1"/>
<gran_paradiso_island goal="1"/>
<greenvalley goal="1"/>
<hacienda goal="1"/>
<lighthouse goal="1"/>
<mansion goal="1"/>
<mines goal="1"/>
<minigolf goal="1"/>
<olivermath goal="1"/>
<sandtrack goal="1"/>
<scotland goal="1"/>
<snowmountain goal="1"/>
<snowtuxpeak goal="1"/>
<stk_enterprise goal="1"/>
<abyss goal="1"/>
<xr591 goal="1"/>
<zengarden goal="1"/>
<volcano_island goal="1"/>
</achievement>
<achievement id="2" check-type="all-at-least" reset-type="never"
name="Strike!" description="Hit 10 karts with a bowling-ball.">
<ball goal="10"/>
</achievement>
<achievement id="3" check-type="one-at-least" reset-type="race"
name="Arch Enemy" description="Hit the same kart at least 5 times in one race.">
<hit goal="5"/>
</achievement>
<achievement id="4" check-type="all-at-least" reset-type="race"
name="Marathoner" description="Make a race with 5 laps or more.">
<laps goal="5"/>
</achievement>
<achievement id="5" check-type="all-at-least" reset-type="lap"
name="Skid-row" description="Make 5 skidding in a single lap.">
<skidding goal="5"/>
</achievement>
<achievement id="6" check-type="all-at-least" reset-type="never"
name="Gold driver" description="Win against at least 3 opponents in all single player modes.">
<standard goal="1"/>
<std_timetrial goal="1"/>
<follow_leader goal="1"/>
<opponents goal="3"/>
</achievement>
<achievement id="7" check-type="all-at-least" reset-type="race"
name="Powerup Love" description="Use 10 or more powerups in a race.">
<poweruplover goal="10"/>
</achievement>
<achievement id="8" check-type="all-at-least" reset-type="never"
name="Unstoppable" description="Win 5 single races in a row.">
<wins goal="5"/>
</achievement>
<achievement id="9" check-type="all-at-least" reset-type="race"
name="Banana Lover" description="Collect at least 5 bananas in one race.">
<banana goal="5"/>
</achievement>
<achievement id="10" secret="yes" check-type="all-at-least" reset-type="race"
name="It's secret" description="Really ... a secret.">
</achievement>
<achievement id="11" check-type="all-at-least" reset-type="race"
name="Mosquito Hunter" description="Take your opponents for mosquitos! With the swatter, squash at least 5 of them in a race.">
<swatter goal="5"/>
</achievement>
</achievements>

View File

@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDezCCAmOgAwIBAgIJAO+A8uXtEMRsMA0GCSqGSIb3DQEBCwUAMFQxCzAJBgNV
BAYTAlVTMQwwCgYDVQQIDANTVEsxFTATBgNVBAoMDFN1cGVyVHV4S2FydDEgMB4G
A1UEAwwXYWRkb25zLnN1cGVydHV4a2FydC5uZXQwHhcNMTQxMjEwMTEzMTAwWhcN
MjQxMjA3MTEzMTAwWjBUMQswCQYDVQQGEwJVUzEMMAoGA1UECAwDU1RLMRUwEwYD
VQQKDAxTdXBlclR1eEthcnQxIDAeBgNVBAMMF2FkZG9ucy5zdXBlcnR1eGthcnQu
bmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2ysZE9rb4y0tHOhk
wxYpqsvDv5LCRFTAeyfAfyBVDcOn+4A3sX8MkQdoH/QDi823z4bn9ZsGV8T444FN
S4yK/aSRv3eAKkkJm5TUxbs3crATVt3JYusMr5W4wHvRVyDe0DlulSdW4EUEklMP
iPat/jwlDZRvZueio3wJoOhZXnl8E8EfnuYtlNONIB1nYGdUHD9xeNyKSPr4zTEp
brjvSw0l5G88LmQOROQBDbTDknAcIQwsFT1mf9Bt+N9LK14r95GWRmL3ZtfbrJn4
ZEfkOjl0Abv6gET4sQOXv0KioUdEJwzFCwKFLZVcuOrscmcHBOhgD3EruVvprIJ0
wZ3z1wIDAQABo1AwTjAdBgNVHQ4EFgQUmQwaPsD+ylVUUsUXMAYpUlnVbNwwHwYD
VR0jBBgwFoAUmQwaPsD+ylVUUsUXMAYpUlnVbNwwDAYDVR0TBAUwAwEB/zANBgkq
hkiG9w0BAQsFAAOCAQEASyl6BMpnZhJlirDL84/RkVeVjBkr7x68UFAblmKjgfGg
pRbYPNSld0IrfZ4pcrDAUkg9WJb0Zxuh0oYiV+RjdW/6s5mF/qiSv8V60xb2myRd
z90ZGfhB5SAECI5zfIZSmsMjOEjKjuz8S26aEtJe8Vq7GF2P7/889lfNXrbvIkZX
HQpx2P+T07zy++6Ca/K2vmWcf1a+GrN+o0nZTYbz/2r/JJwXdWqT1ZmtEA9GNwvZ
J8HhgvspgjgVP/EURUUhOaQ8zfhriU5CJAIuhMhzW7oOBPHxxtxme3auAfxi5zpK
wRNluCayrrjhy2I8mABRnBqgMwAQUIrgk9IU6SyQxw==
-----END CERTIFICATE-----

File diff suppressed because it is too large Load Diff

View File

@@ -7,11 +7,11 @@
<best>
<karts number="7"/>
<requirements position="1" time="130"/>
<requirements position="1" time="140"/>
</best>
<hard>
<karts number="6"/>
<requirements position="1"/>
<requirements position="1" time="165"/>
</hard>
<medium>
<karts number="5"/>

View File

@@ -3,11 +3,11 @@
<unlock_list list="false"/>
<track id="candela_city" laps="3" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="90"/>
<requirements trophies="75"/>
<best>
<karts number="9"/>
<requirements position="1" time="112"/>
<requirements position="1" time="120"/>
</best>
<hard>
<karts number="8"/>

View File

@@ -3,7 +3,7 @@
<unlock_list list="false"/>
<track id="cocoa_temple" laps="3" reverse="false"/>
<mode major="single" minor="timetrial"/>
<requirements trophies="45"/>
<requirements trophies="0"/>
<best>
<karts number="1"

View File

@@ -6,19 +6,19 @@
<requirements trophies="0"/>
<best>
<karts number="8"/>
<requirements position="1" time="128"/>
<karts number="7"/>
<requirements position="1" time="140"/>
</best>
<hard>
<karts number="7"/>
<requirements position="1"/>
<karts number="6"/>
<requirements position="1" time="165"/>
</hard>
<medium>
<karts number="6"/>
<karts number="5"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="5"/>
<karts number="4"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -3,7 +3,7 @@
<unlock_list list="false"/>
<track id="fortmagma" laps="3" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="190" challenges="24"/>
<requirements trophies="190"/>
<best>
<karts number="2" aiIdent="nolok" superPower="nolokBoss"/>

View File

@@ -2,7 +2,7 @@
<challenge version="3">
<unlock_list list="false"/>
<grandprix id="3_tothemoonandback"/>
<mode major="grandprix" minor="timetrial"/>
<mode major="grandprix" minor="quickrace"/>
<requirements trophies="120"/>
<best>

View File

@@ -7,7 +7,7 @@
<best>
<karts number="9"/>
<requirements position="1" time="134"/>
<requirements position="1" time="145"/>
</best>
<hard>
<karts number="8"/>

View File

@@ -1,24 +1,24 @@
<?xml version="1.0"?>
<challenge version="3">
<unlock_list list="false"/>
<track id="black_forest" laps="2" reverse="false"/>
<track id="greenvalley" laps="3" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="130"/>
<requirements trophies="90"/>
<best>
<karts number="10"/>
<requirements position="1" time="170"/>
<karts number="9"/>
<requirements position="1"/>
</best>
<hard>
<karts number="9"/>
<karts number="8"/>
<requirements position="1"/>
</hard>
<medium>
<karts number="8"/>
<karts number="7"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="7"/>
<karts number="6"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -3,22 +3,22 @@
<unlock_list list="false"/>
<track id="hacienda" laps="3" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="0"/>
<requirements trophies="25"/>
<best>
<karts number="7"/>
<requirements position="1" time="124"/>
<karts number="8"/>
<requirements position="1" time="130"/>
</best>
<hard>
<karts number="6"/>
<requirements position="1"/>
<karts number="7"/>
<requirements position="1" time="160"/>
</hard>
<medium>
<karts number="5"/>
<requirements position="1"/>
<karts number="6"/>
<requirements position="2" time="187"/>
</medium>
<easy>
<karts number="4"/>
<requirements position="1"/>
<karts number="5"/>
<requirements position="2"/>
</easy>
</challenge>

View File

@@ -3,22 +3,22 @@
<unlock_list list="false"/>
<track id="lighthouse" laps="4" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="95"/>
<requirements trophies="125"/>
<best>
<karts number="9"/>
<karts number="10"/>
<requirements position="1" time="120"/>
</best>
<hard>
<karts number="8"/>
<requirements position="1"/>
<karts number="9"/>
<requirements position="1" time="145"/>
</hard>
<medium>
<karts number="7"/>
<requirements position="1"/>
<karts number="8"/>
<requirements position="1" time="190"/>
</medium>
<easy>
<karts number="6"/>
<karts number="7"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -1,24 +1,24 @@
<?xml version="1.0"?>
<challenge version="3">
<unlock_list list="false"/>
<track id="ravenbridge_mansion" laps="3" reverse="false"/>
<track id="mansion" laps="3" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="0"/>
<requirements trophies="100"/>
<best>
<karts number="8"/>
<requirements position="1" time="130"/>
<karts number="9"/>
<requirements position="1" time="100"/>
</best>
<hard>
<karts number="7"/>
<requirements position="1"/>
<karts number="8"/>
<requirements position="1" time="115"/>
</hard>
<medium>
<karts number="6"/>
<requirements position="1"/>
<karts number="7"/>
<requirements time="140"/>
</medium>
<easy>
<karts number="5"/>
<requirements position="1"/>
<karts number="6"/>
<requirements time="180"/>
</easy>
</challenge>

View File

@@ -7,11 +7,11 @@
<best>
<karts number="10"/>
<requirements position="1" time="122"/>
<requirements position="1" time="135"/>
</best>
<hard>
<karts number="9"/>
<requirements position="1"/>
<requirements position="1" time="160"/>
</hard>
<medium>
<karts number="8"/>

View File

@@ -3,11 +3,11 @@
<unlock_list list="false"/>
<track id="minigolf" laps="4" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="125"/>
<requirements trophies="130"/>
<best>
<karts number="10"/>
<requirements position="1" time="116"/>
<requirements position="1" time="135"/>
</best>
<hard>
<karts number="9"/>

View File

@@ -3,22 +3,22 @@
<unlock_list list="false"/>
<track id="olivermath" laps="5" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="75"/>
<requirements trophies="0"/>
<best>
<karts number="9"/>
<requirements position="1" time="77"/>
<karts number="7"/>
<requirements position="1" time="95"/>
</best>
<hard>
<karts number="8"/>
<requirements position="1"/>
<karts number="6"/>
<requirements position="1" time="110"/>
</hard>
<medium>
<karts number="7"/>
<karts number="5"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="6"/>
<karts number="4"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -2,20 +2,20 @@
<challenge version="3">
<unlock_list list="false"/>
<track id="sandtrack" laps="3" reverse="false"/>
<mode major="single" minor="timetrial"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="0"/>
<best>
<karts number="1"/>
<requirements energy="20" time="128"/>
<requirements energy="20" time="135"/>
</best>
<hard>
<karts number="1"/>
<requirements energy="18" time="155"/>
<requirements energy="18" time="165"/>
</hard>
<medium>
<karts number="1"/>
<requirements energy="15" time="190"/>
<requirements energy="15" time="195"/>
</medium>
<easy>
<karts number="1"/>

View File

@@ -3,22 +3,22 @@
<unlock_list list="false"/>
<track id="snowmountain" laps="3" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="105"/>
<requirements trophies="115"/>
<best>
<karts number="9"/>
<requirements position="1" time="110"/>
<karts number="10"/>
<requirements position="1" time="120"/>
</best>
<hard>
<karts number="8"/>
<requirements position="1"/>
<karts number="9"/>
<requirements position="2" time="145"/>
</hard>
<medium>
<karts number="7"/>
<karts number="8"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="6"/>
<karts number="7"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -3,15 +3,15 @@
<unlock_list list="false"/>
<track id="snowtuxpeak" laps="3" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="0"/>
<requirements trophies="45"/>
<best>
<karts number="8"/>
<requirements position="1" time="105"/>
<requirements position="1" time="115"/>
</best>
<hard>
<karts number="7"/>
<requirements position="1"/>
<requirements position="1" time="140"/>
</hard>
<medium>
<karts number="6"/>

View File

@@ -2,23 +2,23 @@
<challenge version="3">
<unlock_list list="false"/>
<track id="stk_enterprise" laps="3" reverse="false"/>
<mode major="single" minor="timetrial"/>
<requirements trophies="145"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="105"/>
<best>
<karts number="10"/>
<requirements position="1" time="132"/>
<karts number="9"/>
<requirements position="1" time="155"/>
</best>
<hard>
<karts number="9"/>
<karts number="8"/>
<requirements position="1"/>
</hard>
<medium>
<karts number="8"/>
<karts number="7"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="7"/>
<karts number="6"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -4,6 +4,5 @@
<!-- This is the point equivalent of finishing the
story mode with all gold except 14 silver challenges -->
<requirements trophies="250"/>
<alt_requirements max-req-in-lower-diff="5"/>
<unlock difficulty="difficulty_best"/>
</challenge>

View File

@@ -3,22 +3,22 @@
<unlock_list list="false"/>
<track id="volcano_island" laps="2" reverse="false"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="0"/>
<requirements trophies="15"/>
<best>
<karts number="7"/>
<requirements position="1" time="138"/>
<karts number="8"/>
<requirements position="1" time="165"/>
</best>
<hard>
<karts number="6"/>
<karts number="7"/>
<requirements position="1"/>
</hard>
<medium>
<karts number="5"/>
<karts number="6"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="4"/>
<karts number="5"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -2,16 +2,16 @@
<challenge version="3">
<unlock_list list="false"/>
<track id="xr591" laps="2" reverse="false"/>
<mode major="single" minor="timetrial"/>
<requirements trophies="150"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="135"/>
<best>
<karts number="1"/>
<requirements energy="20" time="92"/>
<requirements energy="20" time="95"/>
</best>
<hard>
<karts number="1"/>
<requirements energy="18" time="112"/>
<requirements energy="18" time="115"/>
</hard>
<medium>
<karts number="1"/>

View File

@@ -6,19 +6,19 @@
<requirements trophies="35"/>
<best>
<karts number="8"/>
<requirements position="1" time="105"/>
<karts number="3"/>
<requirements position="1"/>
</best>
<hard>
<karts number="7"/>
<karts number="2"/>
<requirements position="1"/>
</hard>
<medium>
<karts number="6"/>
<karts number="2"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="5"/>
<karts number="2"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@@ -20,8 +20,8 @@
max="70" />
<!-- Size of the particles -->
<size min="0.17"
max="0.17" />
<size min="0.20"
max="0.20" />
<color min="253 253 253"
max="254 254 254" />

View File

@@ -20,8 +20,8 @@
max="70" />
<!-- Size of the particles -->
<size min="0.13"
max="0.13" />
<size min="0.18"
max="0.18" />
<color min="254 254 254"
max="255 255 255" />

View File

@@ -20,10 +20,10 @@
max="75" />
<!-- Size of the particles -->
<size min="0.17"
max="0.17" />
<size min="0.20"
max="0.20" />
<color min="255 50 255"
max="255 150 255" />
<color min="255 0 255"
max="255 100 255" />
</particles>

View File

@@ -2,9 +2,9 @@
<supertuxkart_grand_prix name="Penguin Playground">
<track id="sandtrack" laps="3" reverse="false" />
<track id="scotland" laps="3" reverse="false" />
<track id="cornfield_crossing" laps="3" reverse="false" />
<track id="olivermath" laps="5" reverse="false" />
<track id="abyss" laps="3" reverse="false" />
<track id="volcano_island" laps="2" reverse="false" />
<track id="hacienda" laps="3" reverse="false" />
<track id="scotland" laps="3" reverse="false" />
</supertuxkart_grand_prix>

View File

@@ -1,10 +1,10 @@
<supertuxkart_grand_prix name="Off the Beaten Track">
<track id="cornfield_crossing" laps="3" reverse="false" />
<track id="snowtuxpeak" laps="3" reverse="false" />
<track id="ravenbridge_mansion" laps="3" reverse="false" />
<track id="zengarden" laps="4" reverse="false" />
<track id="cocoa_temple" laps="3" reverse="false" />
<track id="cocoa_temple" laps="3" reverse="false" />
<track id="hacienda" laps="3" reverse="false" />
<track id="zengarden" laps="4" reverse="false" />
<track id="volcano_island" laps="2" reverse="false" />
<track id="snowtuxpeak" laps="3" reverse="false" />
</supertuxkart_grand_prix>

View File

@@ -1,10 +1,10 @@
<supertuxkart_grand_prix name="To the Moon and Back">
<track id="olivermath" laps="5" reverse="false" />
<track id="gran_paradiso_island" laps="3" reverse="false" />
<track id="lighthouse" laps="4" reverse="false" />
<track id="greenvalley" laps="3" reverse="false" />
<track id="mansion" laps="3" reverse="false" />
<track id="stk_enterprise" laps="3" reverse="false" />
<track id="candela_city" laps="3" reverse="false" />
<track id="snowmountain" laps="3" reverse="false" />
</supertuxkart_grand_prix>

View File

@@ -1,10 +1,10 @@
<supertuxkart_grand_prix name="At World's End">
<track id="minigolf" laps="4" reverse="false" />
<track id="black_forest" laps="3" reverse="false" />
<track id="mines" laps="3" reverse="false" />
<track id="stk_enterprise" laps="3" reverse="false" />
<track id="xr591" laps="3" reverse="false" />
<track id="lighthouse" laps="4" reverse="false" />
<track id="snowmountain" laps="3" reverse="false" />
<track id="minigolf" laps="4" reverse="false" />
<track id="xr591" laps="3" reverse="false" />
<track id="mines" laps="3" reverse="false" />
</supertuxkart_grand_prix>

View File

@@ -10,8 +10,6 @@
<ribbon id="control_type" proportion="1" width="100%" align="center">
<icon-button id="accelerometer" width="fit" height="fit" icon="gui/icons/difficulty_medium.png"
I18N="Control type" text="Accelerometer"/>
<icon-button id="gyroscope" width="fit" height="fit" icon="gui/icons/difficulty_best.png"
I18N="Control type" text="Gyroscope"/>
<icon-button id="steering_wheel" width="fit" height="fit" icon="gui/icons/difficulty_hard.png"
I18N="Control type" text="Steering wheel"/>
</ribbon>

View File

@@ -39,37 +39,21 @@
</div>
</div>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Gyroscope"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<checkbox id="gyroscope"/>
</div>
</div>
<label width="100%" I18N="In the multitouch settings screen" text="Advanced"/>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Deadzone"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<gauge id="deadzone" proportion="1" min_value="0" max_value="50"/>
<gauge id="deadzone_center" proportion="1" min_value="0" max_value="50"/>
</div>
</div>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Sensitivity X"/>
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Sensitivity"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<gauge id="sensitivity_x" proportion="1" min_value="0" max_value="100"/>
</div>
</div>
<div width="75%" layout="horizontal-row" proportion="1">
<label proportion="1" align="center" text_align="right" I18N="In the multitouch settings screen" text="Sensitivity Y"/>
<div proportion="1" align="center" height="fit" layout="horizontal-row" >
<spacer width="40" height="10" />
<gauge id="sensitivity_y" proportion="1" min_value="0" max_value="100"/>
<gauge id="deadzone_edge" proportion="1" min_value="0" max_value="50"/>
</div>
</div>

View File

@@ -115,18 +115,6 @@
<spacer height="4" width="10" />
<div layout="horizontal-row" width="100%" proportion="1">
<spacer width="70" height="10"/>
<div layout="horizontal-row" proportion="1" height="fit">
<checkbox id="lightscattering"/>
<spacer width="10" height="10"/>
<label text="Light Scattering" I18N="Video settings"/>
</div>
</div>
<spacer height="4" width="10" />
<div layout="horizontal-row" width="100%" proportion="1">
<div layout="horizontal-row" proportion="1" height="fit">
<checkbox id="animated_characters"/>

View File

@@ -5,14 +5,14 @@
<model id="model" width="100%" layout="horizontal-row" height="100%">
</model>
</div>
<div width="100%" height="fit" text-align="left" layout="horizontal-row" >
<spacer height="30" width="15%"/>
<spinner id="toggle-slider" width="70%" min_value="0" max_value="1" wrap_around="true"/>
<spacer height="30" width="15%"/>
<div width="20%" height="fit" text-align="left" layout="horizontal-row" >
<checkbox id="toggle-slider" />
<spacer width="40"/>
<label id="toggle-text"/>
</div>
<spacer height="30" width="10"/>
<div height="fit" width="100%" layout="horizontal-row">
<gauge id="color-slider" min_value="1" max_value="100" proportion="1" wrap_around="true"/>
<gauge id="color-slider" min_value="1" max_value="100" proportion="1"/>
</div>
<spacer height="30" width="10"/>
<button id="close" text="Apply" align="center"/>

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<div x="1%" width="98%" height="fit" layout="horizontal-row">
<textbox id="chat" proportion="1"/>
<spacer width="3%" height="10"/>
<button id="send" width="20%" height="fit" align="center" I18N="In the network lobby" text="Send"/>
</div>
<spacer width="20" height="2%" />
<buttonbar id="backbtnribbon" proportion="4" width="100%" align="center">
<icon-button id="backbtn" width="128" height="128" align="center" icon="gui/icons/back.png"
extend_label="200" I18N="Race paused button" text="Back to Race"/>
</buttonbar>
<spacer width="20" height="8%" />
<buttonbar id="choiceribbon" proportion="4" width="100%" align="center">
<icon-button id="newrace" width="128" height="128" icon="gui/icons/main_race.png"
I18N="Show in network ingame dialog to allow user to go back to lobby to end spectating (for example)"
text="Back to lobby" word_wrap="true"/>
<icon-button id="restart" width="128" height="128" icon="gui/icons/restart.png"
I18N="Race paused button" text="Restart Race" word_wrap="true"/>
<icon-button id="endrace" width="128" height="128" icon="gui/icons/race_giveup.png"
I18N="Race paused button" text="Give Up Race" word_wrap="true"/>
<icon-button id="options" width="128" height="128" icon="gui/icons/main_options.png"
I18N="Race paused button" text="Options" word_wrap="true"/>
<icon-button id="help" width="128" height="128" icon="gui/icons/main_help.png"
I18N="Race paused button" text="Help" word_wrap="true"/>
<icon-button id="exit" width="128" height="128" icon="gui/icons/main_quit.png"
I18N="Race paused button" text="Exit Race" word_wrap="true"/>
</buttonbar>
<spacer width="20" height="35" />
</div>
</stkgui>

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="1%" width="96%" height="98%" layout="vertical-row">
<!-- The achievement's name is filled in the header at runtime -->
<header id="title" width="100%" align="center" text_align="center"/>
<label id="description" width="100%" proportion="2" align="center"
text_align="center" word_wrap="true" text=""/>
<div width="100%" proportion="2" layout="vertical-row">
<div width="100%" height="100%" layout="horizontal-row">
<div width="66%" height="100%" layout="vertical-row">
<spacer width="20" proportion="1"/>
<label width="100%" align="center"
text_align="center" I18N="Objective shown in achievement dialog" text="Goal"/>
<spacer width="20" proportion="1"/>
<label id="main-goal-description" width="100%" align="center"
text_align="center" word_wrap="true" text=""/>
<spacer width="20" proportion="2"/>
</div>
<div width="33%" height="100%" layout="vertical-row">
<spacer width="20" proportion="1"/>
<label width="100%" align="center"
text_align="center" I18N="Progress shown in achievement dialog" text="Progress"/>
<spacer width="20" proportion="1"/>
<label id="main-goal-progress" width="100%" align="center"
text_align="center" word_wrap="true" text=""/>
<spacer width="20" proportion="2"/>
</div>
</div>
</div>
<box width="100%" proportion="3" align="center" layout="vertical-row">
<list id="progress-tree" x="0" y="0" width="100%" height="100%" word_wrap="true"/>
</box>
<buttonbar id="options" width="100%" height="14%" align="center">
<icon-button id="ok" width="128" height="128"
icon="gui/icons/green_check.png" text="OK"
label_location="bottom"/>
</buttonbar>
<spacer width="20" height="3%" />
</div>
</stkgui>

View File

@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="0" y="0" width="100%" height="100%" layout="vertical-row" >
<header id="title" text_align="center" width="80%" align="center" I18N="In the server configuration screen" text="Server Configuration"/>
<box proportion="1" width="90%" layout="vertical-row" align="center">
<label width="100%" height="8%" text_align="left" I18N="In the server configuration screen" text="Difficulty"/>
<ribbon id="difficulty" height="25%" width="90%" align="center">
<icon-button id="novice" width="128" height="128" icon="gui/icons/difficulty_easy.png"
I18N="Difficulty" text="Novice"/>
<icon-button id="intermediate" width="128" height="128" icon="gui/icons/difficulty_medium.png"
I18N="Difficulty" text="Intermediate"/>
<icon-button id="expert" width="128" height="128" icon="gui/icons/difficulty_hard.png"
I18N="Difficulty" text="Expert"/>
<icon-button id="best" width="128" height="128" icon="gui/icons/difficulty_best.png"
I18N="Difficulty" text="SuperTux"/>
</ribbon>
<spacer height="1%" width="20"/>
<label width="100%" height="8%" text_align="left" I18N="In the server configuration screen" text="Game mode"/>
<ribbon id="gamemode" height="25%" width="90%" align="center">
<icon-button id="normal" width="128" height="128" icon="gui/icons/mode_normal.png"
I18N="Multiplayer game mode" text="Normal Race"/>
<icon-button id="timetrial" width="128" height="128" icon="gui/icons/mode_tt.png"
I18N="Multiplayer game mode" text="Time Trial"/>
<icon-button id="3strikes" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Multiplayer game mode" text="Battle"/>
<icon-button id="soccer" width="128" height="128" icon="gui/icons/mode_soccer.png"
I18N="Multiplayer game mode" text="Soccer"/>
</ribbon>
<spacer height="1%" width="20"/>
<div width="100%" height="10%" layout="horizontal-row" >
<label id="more-options" proportion="1" text_align="left"/>
<spinner id="more-options-spinner" proportion="1" wrap_around="true"/>
</div>
<spacer height="1%" width="20"/>
<buttonbar id="options" x="0" y="0" width="40%" height="18%" align="center">
<icon-button id="ok" width="64" height="64" icon="gui/icons/green_check.png"
I18N="In the server configuration screen" text="OK" label_location="bottom"/>
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="In the server configuration screen" text="Cancel" label_location="bottom"/>
</buttonbar>
<spacer height="3%" width="20"/>
</box>
</div>
</stkgui>

View File

@@ -1,26 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="0%" width="96%" height="100%" layout="vertical-row" >
<header id="title" width="96%" proportion="4" text_align="center" word_wrap="true"/>
<spacer height="1%" width="5"/>
<label id="server-info" width="90%" proportion="4" align="left" text_align="left" text=""/>
<spacer height="1%"/>
<box x="0%" width="90%" proportion="12" align="center" layout="vertical-row">
<list id="player-list" x="0" y="0" width="100%" height="100%"
alternate_bg="true" line_height="small"/>
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"/>
<spacer height="30"/>
<label id="server-info" width="90%" height="fit" align="left" text_align="left" text=""/>
<box x="0%" width="90%" height="50%" align="center" layout="vertical-row">
<list id="player-list" x="0" y="0" width="100%" height="100%"/>
</box>
<spacer height="1%" width="5"/>
<div id="password-box" width="100%" proportion="2" layout="horizontal-row" >
<div width="100%" height="fit" layout="horizontal-row" >
<label id="label_password" text_align="left" proportion="1" text="Password"/>
<textbox id="password" proportion="3" height="fit"/>
<textbox id="password" proportion="2" height="fit"/>
</div>
<spacer height="1%" width="5"/>
<buttonbar id="options" width="90%" proportion="4" align="center">
<icon-button id="join" width="128" height="128" icon="gui/icons/green_check.png"
<buttonbar id="options" width="90%" height="15%" align="center">
<icon-button id="join" width="64" height="64" icon="gui/icons/green_check.png"
I18N="In the server info dialog" text="Join" label_location="bottom"/>
<icon-button id="cancel" width="128" height="128" icon="gui/icons/main_quit.png"
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="In the server info dialog" text="Cancel" label_location="bottom"/>
</buttonbar>
<spacer height="3%" width="5"/>
</div>
</stkgui>

View File

@@ -4,44 +4,33 @@
<header id="title" width="96%" height="fit" text_align="center" word_wrap="true"
I18N="Splitscreen player in network" text="Add player"/>
<spacer height="8%" width="10"/>
<div width="100%" align="center" layout="horizontal-row" height="fit" >
<div proportion="1" align="center" layout="horizontal-row" height="fit" >
<spacer proportion="1" height="10"/>
<spinner id="name-spinner" width="70%" align="center" wrap_around="true" />
</div>
<spacer width="5%" height="10"/>
<div proportion="1" align="center" layout="horizontal-row" height="fit" >
<label id="name-text" text_align="left" I18N="Splitscreen player in network" text="Name"/>
<spacer proportion="1" height="10"/>
</div>
</div>
<spacer height="2%" width="10"/>
<div id="handicap-row" width="100%" align="center" layout="horizontal-row" height="fit" >
<div proportion="1" align="center" layout="horizontal-row" height="fit" >
<spacer proportion="1" height="10"/>
<checkbox id="handicap" align="center" />
</div>
<spacer width="5%" height="10"/>
<div proportion="1" align="center" layout="horizontal-row" height="fit" >
<label id="handicap-text" text_align="left" I18N="Splitscreen player in network" text="Handicap"/>
<spacer proportion="1" height="10"/>
</div>
</div>
<spacer proportion="2" width="10"/>
<spacer height="20" width="50"/>
<div width="80%" align="center" layout="vertical-row" height="fit" >
<div width="100%" height="fit" layout="horizontal-row" >
<label id="message-label" proportion="1" text_align="center" word_wrap="true" I18N="Splitscreen player in network"
<label id="name-text" proportion="1" text_align="left" I18N="Splitscreen player in network" text="Name"/>
<spinner id="name-spinner" width="50%" align="center" wrap_around="true" />
</div>
</div>
<spacer height="20" width="50"/>
<div id="handicap-row" width="80%" align="center" layout="vertical-row" height="fit" >
<div width="100%" height="fit" layout="horizontal-row" >
<label id="handicap-text" proportion="1" text_align="left" I18N="Splitscreen player in network" text="Handicap"/>
<checkbox id="handicap" align="center" />
</div>
</div>
<spacer height="20" width="50"/>
<div width="80%" align="center" layout="vertical-row" height="fit" >
<div width="100%" height="fit" layout="horizontal-row" >
<label id="message-label" proportion="1" text_align="left" I18N="Splitscreen player in network"
text="Press the 'All players ready' button after the player list is ready."/>
</div>
</div>
<spacer proportion="3" width="10"/>
<spacer height="20" width="50"/>
<buttonbar id="options" width="90%" height="20%" align="center">
<icon-button id="add" width="64" height="64" icon="gui/icons/blue_plus.png"
@@ -51,9 +40,7 @@
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"
I18N="Splitscreen player in network" text="Cancel" label_location="bottom"/>
<icon-button id="reset" width="64" height="64" icon="gui/icons/remove.png"
I18N="Splitscreen player in network" text="Clear players" label_location="bottom"/>
I18N="Splitscreen player in network" text="Clear added player" label_location="bottom"/>
</buttonbar>
<spacer height="2%" width="10"/>
</div>
</stkgui>

View File

@@ -3,14 +3,12 @@
<div x="5%" y="5%" width="90%" height="90%" layout="vertical-row" >
<header id="title" width="100%" text_align="center" text="Paused" proportion="2" />
<spacer width="20" height="2%" />
<!-- FIXME: some play in proportions occur below because the text of an icon
button is added UNDER it and not within its allocated height -->
<icon-button id="backbtn" align="center" icon="gui/icons/back.png" extend_label="200"
I18N="In the in-game dialog" text="Back to Game" proportion="3"/>
<buttonbar id="backbtnribbon" proportion="4" width="100%" align="center">
<icon-button id="backbtn" width="128" height="128" align="center" icon="gui/icons/back.png"
extend_label="200" I18N="In the in-game dialog" text="Back to Game"/>
</buttonbar>
<spacer width="20" height="8%" />
<spacer width="20" height="50" />
<buttonbar id="choiceribbon" proportion="4" width="100%" align="center">

View File

@@ -3,14 +3,12 @@
<div x="2%" y="5%" width="96%" height="90%" layout="vertical-row" >
<header id="title" width="100%" text_align="center" text="Paused" proportion="2" />
<spacer width="20" height="2%" />
<!-- FIXME: some play in proportions occur below because the text of an icon
button is added UNDER it and not within its allocated height -->
<icon-button id="backbtn" align="center" icon="gui/icons/back.png" extend_label="200"
I18N="Race paused button" text="Back to Race" proportion="3"/>
<buttonbar id="backbtnribbon" proportion="4" width="100%" align="center">
<icon-button id="backbtn" width="128" height="128" align="center" icon="gui/icons/back.png"
extend_label="200" I18N="Race paused button" text="Back to Race"/>
</buttonbar>
<spacer width="20" height="8%" />
<spacer width="20" height="50" />
<buttonbar id="choiceribbon" proportion="4" width="100%" align="center">

View File

@@ -2,13 +2,7 @@
<stkgui>
<div x="5%" y="5%" width="90%" height="90%" layout="vertical-row" >
<div width="100%" layout="horizontal-row" height="12%">
<icon-button id="back" width="12%" align="left" icon="gui/icons/back.png"/>
<header id="title" width="80%" text="Race Setup" align="center" text_align="center" />
<spacer height="1" width="12%"/>
</div>
<header id="title" width="100%" text="Race Setup" align="center" text_align="center" />
<spacer height="2%" width="1"/>

View File

@@ -2,13 +2,7 @@
<stkgui>
<div x="5%" y="5%" width="90%" height="90%" layout="vertical-row" >
<div width="100%" layout="horizontal-row" height="12%">
<icon-button id="back" width="12%" align="left" icon="gui/icons/back.png"/>
<header id="title" width="80%" text="Race Setup" align="center" text_align="center" />
<spacer height="1" width="12%"/>
</div>
<header id="title" width="100%" text="Race Setup" align="center" text_align="center" />
<spacer height="2%" width="1"/>

View File

@@ -41,7 +41,6 @@ crown.png by glitch, from https://openclipart.org/detail/210257/misc-game-crown,
ghost_plus.png by Alayan, based on https://openclipart.org/detail/17847/cartoon-ghost by lemmling, released under CC-O
options_language.png by Alayan, based on http://www.languageicon.org/, released under CC-BY-SA 3+
options_general.png by Alayan, released under CC-BY-SA 4
blue_flag.png, heart.png and red_flag.png by Benau, released under CC-BY-SA 4

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

BIN
data/gui/icons/podium.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -34,7 +34,10 @@
</tabs>
<box proportion="1" width="98%" align="center" layout="vertical-row" padding="6">
<list id="list_addons" x="0" y="0" width="100%" height="100%" word_wrap="true" alternate_bg="true"/>
<list id="list_addons" x="0" y="0" width="100%" height="100%"/>
</box>
<bright width="97%" id="tips_label" text="" align="center"/>
</div>
</stkgui>

View File

@@ -10,7 +10,7 @@
<!-- This is filled in programmatically -->
<box proportion="1" width="98%" align="center" layout="vertical-row" padding="6">
<list id="replay_list" x="0" y="0" width="100%" height="100%" alternate_bg="true"/>
<list id="replay_list" x="0" y="0" width="100%" height="100%"/>
</box>
<tabs id="race_mode" height="6%" max_height="110" x="1%" width="98%" align="center">

View File

@@ -12,7 +12,7 @@
I18N="Tab in help menu" text="General"/>
<icon-button id="page2" width="128" height="128" icon="gui/icons/mode_ftl.png"
I18N="Tab in help menu" text="Game Modes"/>
<icon-button id="page3" width="128" height="128" icon="gui/icons/gift.png"
<icon-button id="page3" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Tab in help menu" text="Powerups"/>
<icon-button id="page4" width="128" height="128" icon="gui/icons/banana.png"
I18N="Tab in help menu" text="Bananas"/>
@@ -21,7 +21,7 @@
<icon-button id="page6" width="128" height="128" icon="gui/icons/mass.png"
I18N="Tab in help menu" text="Kart classes"/>
<icon-button id="page7" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Tab in help menu" text="Multiplayer"/>
I18N="Tab in help menu" text="Multi-player"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>
@@ -29,13 +29,13 @@
<box width="80%" height="100%" layout="vertical-row">
<spacer width="5" height="1%"/>
<div width="50%" height="7%" align="center" layout="horizontal-row">
<div width="50%" proportion="2" align="center" layout="horizontal-row">
<icon id="tutorialIcon" width="64" height="64" align="center" icon="gui/icons/tutorial.png"/>
<button id="startTutorial" align="center" text="Start the tutorial"/>
</div>
<spacer width="5" height="2%"/>
<spacer width="5" height="1%"/>
<div width="100%" proportion="4" layout="horizontal-row">
<div width="100%" proportion="5" layout="horizontal-row">
<icon align="center" width="64" height="64" icon="gui/icons/gift.png"/>
<spacer width="25" height="25"/>
<bubble proportion="7" height="100%" word_wrap="true"
@@ -70,20 +70,12 @@
<spacer width="25" height="25"/>
<bubble proportion="2" height="100%" word_wrap="true"
I18N="In the help menu"
text="You can skid by pressing a special key or button. Successive short skids help to take sharp turns; while medium skids will boost your speed, long skids more so. You can't stop turning while skidding, so orient your kart carefully before!"/>
text="You can skid by pressing a special key or button. Short skids help to take sharp turns. If you skid long enough, you will get a boost. You can't stop turning while skidding, so orient your kart carefully before!"/>
</div>
<div width="100%" proportion="4" layout="horizontal-row">
<icon align="center" width="64" height="64" icon="gui/icons/speed.png"/>
<spacer width="25" height="25"/>
<bubble proportion="2" height="100%" word_wrap="true"
I18N="In the help menu"
text="You can get a startup boost by pressing the accelerate button at 'Set!', before the race's start."/>
</div>
<spacer height="3%" width="10"/>
<spacer height="2%" width="10"/>
<label align="center" word_wrap="true" I18N="in the help screen" text="* Current key bindings can be seen/changed in the Options menu"/>
<label align="center" word_wrap="true" I18N="in the help screen" text="* Current key bindings can be seen/changed in menu Options"/>
<spacer height="1%" width="10"/>
</box>

View File

@@ -12,7 +12,7 @@
I18N="Tab in help menu" text="General"/>
<icon-button id="page2" width="128" height="128" icon="gui/icons/mode_ftl.png"
I18N="Tab in help menu" text="Game Modes"/>
<icon-button id="page3" width="128" height="128" icon="gui/icons/gift.png"
<icon-button id="page3" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Tab in help menu" text="Powerups"/>
<icon-button id="page4" width="128" height="128" icon="gui/icons/banana.png"
I18N="Tab in help menu" text="Bananas"/>
@@ -21,7 +21,7 @@
<icon-button id="page6" width="128" height="128" icon="gui/icons/mass.png"
I18N="Tab in help menu" text="Kart classes"/>
<icon-button id="page7" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Tab in help menu" text="Multiplayer"/>
I18N="Tab in help menu" text="Multi-player"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>
@@ -56,7 +56,7 @@
</div>
<div width="100%" proportion="2" layout="horizontal-row">
<icon align="center" width="64" height="64" icon="gui/icons/gift.png"/>
<icon align="center" width="64" height="64" icon="gui/icons/weapons.png"/>
<spacer width="25" height="25"/>
<bubble proportion="1" height="100%"
I18N="In the help menu"
@@ -87,7 +87,7 @@
</div>
<bubble proportion="4" width="100%" I18N="In the help menu"
text="* Many of these game modes can also be played in a Grand Prix fashion: instead of playing a single race, you play many in a row. The better you rank, the more points you get. In the end, the player with the most points wins the cup."/>
text="* Most of these game modes can also be played in a Grand Prix fashion: instead of playing a single race, you play many in a row. The better you rank, the more points you get. In the end, the player with the most points wins the cup."/>
</box>
</div>

View File

@@ -12,7 +12,7 @@
I18N="Tab in help menu" text="General"/>
<icon-button id="page2" width="128" height="128" icon="gui/icons/mode_ftl.png"
I18N="Tab in help menu" text="Game Modes"/>
<icon-button id="page3" width="128" height="128" icon="gui/icons/gift.png"
<icon-button id="page3" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Tab in help menu" text="Powerups"/>
<icon-button id="page4" width="128" height="128" icon="gui/icons/banana.png"
I18N="Tab in help menu" text="Bananas"/>
@@ -21,7 +21,7 @@
<icon-button id="page6" width="128" height="128" icon="gui/icons/mass.png"
I18N="Tab in help menu" text="Kart classes"/>
<icon-button id="page7" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Tab in help menu" text="Multiplayer"/>
I18N="Tab in help menu" text="Multi-player"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>

View File

@@ -12,7 +12,7 @@
I18N="Tab in help menu" text="General"/>
<icon-button id="page2" width="128" height="128" icon="gui/icons/mode_ftl.png"
I18N="Tab in help menu" text="Game Modes"/>
<icon-button id="page3" width="128" height="128" icon="gui/icons/gift.png"
<icon-button id="page3" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Tab in help menu" text="Powerups"/>
<icon-button id="page4" width="128" height="128" icon="gui/icons/banana.png"
I18N="Tab in help menu" text="Bananas"/>
@@ -21,7 +21,7 @@
<icon-button id="page6" width="128" height="128" icon="gui/icons/mass.png"
I18N="Tab in help menu" text="Kart classes"/>
<icon-button id="page7" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Tab in help menu" text="Multiplayer"/>
I18N="Tab in help menu" text="Multi-player"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>

View File

@@ -12,7 +12,7 @@
I18N="Tab in help menu" text="General"/>
<icon-button id="page2" width="128" height="128" icon="gui/icons/mode_ftl.png"
I18N="Tab in help menu" text="Game Modes"/>
<icon-button id="page3" width="128" height="128" icon="gui/icons/gift.png"
<icon-button id="page3" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Tab in help menu" text="Powerups"/>
<icon-button id="page4" width="128" height="128" icon="gui/icons/banana.png"
I18N="Tab in help menu" text="Bananas"/>
@@ -21,7 +21,7 @@
<icon-button id="page6" width="128" height="128" icon="gui/icons/mass.png"
I18N="Tab in help menu" text="Kart classes"/>
<icon-button id="page7" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Tab in help menu" text="Multiplayer"/>
I18N="Tab in help menu" text="Multi-player"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>

View File

@@ -12,7 +12,7 @@
I18N="Tab in help menu" text="General"/>
<icon-button id="page2" width="128" height="128" icon="gui/icons/mode_ftl.png"
I18N="Tab in help menu" text="Game Modes"/>
<icon-button id="page3" width="128" height="128" icon="gui/icons/gift.png"
<icon-button id="page3" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Tab in help menu" text="Powerups"/>
<icon-button id="page4" width="128" height="128" icon="gui/icons/banana.png"
I18N="Tab in help menu" text="Bananas"/>
@@ -21,7 +21,7 @@
<icon-button id="page6" width="128" height="128" icon="gui/icons/mass.png"
I18N="Tab in help menu" text="Kart classes"/>
<icon-button id="page7" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Tab in help menu" text="Multiplayer"/>
I18N="Tab in help menu" text="Multi-player"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>

View File

@@ -12,7 +12,7 @@
I18N="Tab in help menu" text="General"/>
<icon-button id="page2" width="128" height="128" icon="gui/icons/mode_ftl.png"
I18N="Tab in help menu" text="Game Modes"/>
<icon-button id="page3" width="128" height="128" icon="gui/icons/gift.png"
<icon-button id="page3" width="128" height="128" icon="gui/icons/weapons.png"
I18N="Tab in help menu" text="Powerups"/>
<icon-button id="page4" width="128" height="128" icon="gui/icons/banana.png"
I18N="Tab in help menu" text="Bananas"/>
@@ -21,7 +21,7 @@
<icon-button id="page6" width="128" height="128" icon="gui/icons/mass.png"
I18N="Tab in help menu" text="Kart classes"/>
<icon-button id="page7" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Tab in help menu" text="Multiplayer"/>
I18N="Tab in help menu" text="Multi-player"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>
@@ -33,7 +33,7 @@
<spacer width="25" height="25"/>
<bubble proportion="1" height="100%"
I18N="In the help menu"
text="First, select the 'online' icon in the main menu. Choose either local networking, or global networking (requires internet to be enabled in the options). Then, you can either create your own server with custom options, or search among a list of existing servers to join. Some of them are recommended servers with optionally ranked races."/>
text="First, select the 'online' icon in the main menu. Choose either local networking, or global networking (requires internet to be enabled in the options). Then, you can either create your own server with custom options, or search among a list of existing servers to join. Some of them are official servers with optionally ranked races."/>
</div>
<div width="100%" proportion="2" layout="horizontal-row">

View File

@@ -2,13 +2,11 @@
<stkgui>
<div x="1%" y="1%" width="98%" height="99%" layout="vertical-row" >
<header width="80%" height="7%"
<header width="80%"
I18N="In the kart selection (player setup) screen"
text="Choose a Kart"
align="center" text_align="center" />
<spacer height="1%" width="25"/>
<placeholder id="playerskarts" width="100%" align="center" proportion="4">
<!-- Contents is added programatically -->
</placeholder>

View File

@@ -16,7 +16,7 @@
I18N="Main menu button" text="Singleplayer"/>
<icon-button id="multiplayer" width="128" height="128"
icon="gui/icons/menu_multi.png" focus_icon="gui/icons/menu_multi_focus.png"
I18N="Main menu button" text="Local Multiplayer"/>
I18N="Main menu button" text="Multiplayer"/>
<icon-button id="online" width="128" height="128"
icon="gui/icons/menu_online.png" focus_icon="gui/icons/menu_online_focus.png"
I18N="Main menu button" text="Online"/>

View File

@@ -56,7 +56,7 @@
<label id="info" proportion="1" width="100%" align="center" text_align="center" word_wrap="true" text=""/>
<buttonbar id="options" x="0" y="0" width="40%" height="12%" align="center">
<buttonbar id="options" x="0" y="0" width="25%" height="12%" align="center">
<icon-button id="create" width="64" height="64" icon="gui/icons/green_check.png"
I18N="In the server creation screen" text="Create" label_location="bottom"/>
<icon-button id="cancel" width="64" height="64" icon="gui/icons/main_quit.png"

View File

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="1%" y="1%" width="98%" height="96%" layout="vertical-row" >
<header width="80%"
I18N="In the kart selection (player setup) screen"
text="Choose a Kart"
align="center" text_align="center" />
<placeholder id="playerskarts" width="100%" align="center" proportion="5">
<!-- Contents is added programatically -->
</placeholder>
<spacer height="15" width="25"/>
<box proportion="2" width="100%" layout="vertical-row" padding="2">
<ribbon_grid id="karts" proportion="1" square_items="true" width="100%" align="center"
child_width="90" child_height="90" max_rows="3"/>
</box>
<!-- Groups will be added dynamically at runtime -->
<tabs width="98%" x="1%" height="5%" id="kartgroups">
</tabs>
<spacer width="100%" height="2%"/>
<progressbar x="1%" id="timer" height="4%" width="98%"></progressbar>
</div>
<icon-button id="back" x="1%" y="0" height="8%" icon="gui/icons/back.png"/>
</stkgui>

View File

@@ -1,42 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="0" y="0" width="100%" height="100%" layout="vertical-row" >
<header id="lobby-text" text_align="center" width="80%" height="7%" align="center" I18N="In networking lobby" text="Lobby"/>
<spacer height="2%" width="10"/>
<header id="lobby-text" text_align="center" width="80%" align="center" I18N="In networking lobby" text="Lobby"/>
<spacer height="1%" width="10"/>
<div proportion="9" x="2%" width="96%" layout="vertical-row">
<div width="100%" proportion="2" layout="horizontal-row">
<box id="info" proportion="2" height="100%" layout="vertical-row">
<label word_wrap="true" id="text" proportion="3" width="100%" height="100%" text_valign="top"/>
</box>
<spacer width="3%" height="10"/>
<spacer width="3%" height="20"/>
<box proportion="1" height="100%" layout="vertical-row">
<list id="players" width="100%" height="100%"/>
</box>
</div>
</div>
<spacer height="2%"/>
<div x="2%" width="96%" height="20%" layout="horizontal-row">
<box proportion="2" height="100%" layout="vertical-row">
<div x="1%" width="98%" height="fit" layout="horizontal-row">
<textbox id="chat" proportion="1"/>
<spacer width="3%" height="10"/>
<button id="send" width="20%" height="fit" align="center" I18N="In the network lobby" text="Send"/>
<div x="2%" width="96%" height="fit" layout="horizontal-row">
<box proportion="4" height="fit" layout="vertical-row">
<textbox id="chat" width="100%"/>
<spacer height="10"/>
<div width="100%" height="fit" layout="horizontal-row">
<button id="send" width="20%" height="fit" I18N="In the network lobby" text="Send" />
<spacer width="1%"/>
<label id="timeout-message" width="79%" height="fit"/>
</div>
<spacer height="5%" width="10"/>
<label id="timeout-message" x="1%" width="98%" proportion="1" text="" word_wrap="true" align="center"/>
</box>
<spacer width="3%"/>
<div proportion="1" height="100%" layout="vertical-row">
<spacer height="20%" width="10"/>
<div width="100%" proportion="1" layout="horizontal-row">
<icon-button id="start" proportion="1" height="60%" icon="gui/icons/green_check.png" align="top"
I18N="In the network lobby" text="Start race"/>
<icon-button id="config" proportion="1" height="60%" icon="gui/icons/main_options.png" align="top"
I18N="In the network lobby" text="Configuration"/>
</div>
</div>
<icon-button id="start" proportion="1" width="64" height="64" icon="gui/icons/green_check.png" align="top"
I18N="In the network lobby" text="Start race"/>
<icon-button id="exit" proportion="1" width="64" height="64" icon="gui/icons/main_quit.png" align="top"
I18N="In the network lobby" text="Exit"/>
</div>
<spacer height="2%"/>
<spacer height="1%"/>
</div>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/icons/back.png"/>
</stkgui>

View File

@@ -9,8 +9,7 @@
</div>
<box proportion="1" width="98%" align="center" layout="vertical-row" padding="6">
<list id="server_list" x="0" y="0" width="100%" height="93%" word_wrap="true"
alternate_bg="true" line_height="small"/>
<list id="server_list" x="0" y="0" width="100%" height="93%"/>
<textbox id="searcher" width="100%" height="7%"/>
</box>
<div width="99%" align="center" layout="vertical-row" height="fit">

View File

@@ -8,8 +8,6 @@
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"

View File

@@ -8,8 +8,6 @@
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"

View File

@@ -1,93 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/icons/back.png"/>
<div x="1%" y="1%" width="98%" height="98%" layout="vertical-row" >
<header width="80%" height="7%" align="center" text="SuperTuxKart Options" text_align="center"/>
<spacer width="100%" height="1%"/>
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"
I18N="Section in the settings menu" text="Audio"/>
<icon-button id="tab_ui" width="128" height="128" icon="gui/icons/options_ui.png"
I18N="Section in the settings menu" text="User Interface"/>
<icon-button id="tab_players" width="128" height="128" icon="gui/icons/options_players.png"
I18N="Section in the settings menu" text="Players"/>
<icon-button id="tab_controls" width="128" height="128" icon="gui/icons/options_input.png"
I18N="Section in the settings menu" text="Controls"/>
<icon-button id="tab_language" width="128" height="128" icon="gui/icons/options_language.png"
I18N="Section in the settings menu" text="Language"/>
</vertical-tabs>
<spacer width="2%" height="100%"/>
<div width="100%" height="100%" layout="vertical-row" >
<box width="80%" height="49%" layout="vertical-row">
<spacer width="5" height="2%"/>
<label width="80%" height="fit" align="center" I18N="In the general settings" text="Internet options" text_align="center"/>
<spacer width="5" height="4%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="show-login"/>
<spacer width="1%" height="100%" />
<label height="100%" I18N="In the general settings" text="Always show login screen" word_wrap="true"/>
</div>
<spacer width="5" height="4%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="enable-internet"/>
<spacer width="1%" height="100%" />
<label height="100%" I18N="In the general settings" text="Connect to the Internet" word_wrap="true"/>
</div>
<spacer width="5" height="4%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="enable-hw-report"/>
<spacer width="1%" height="100%" />
<label height="100%" id="label-hw-report" I18N="In the general settings"
text="Send anonymous hardware statistics" word_wrap="true"/>
</div>
<spacer width="5" height="4%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="enable-lobby-chat"/>
<spacer width="1%" height="100%" />
<label height="100%" id="label-lobby-chat" I18N="In the general settings" text="Enable chatting in online games" word_wrap="true"/>
</div>
<spacer width="5" height="4%"/>
</box>
<spacer width="5" height="2%"/>
<box width="80%" height="49%" layout="vertical-row">
<spacer width="5" height="2%"/>
<label width="80%" height="fit" align="center" I18N="In the general settings" text="Miscellaneous options" text_align="center"/>
<spacer width="5" height="4%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="perPlayerDifficulty"/>
<spacer width="1%" height="100%" />
<label height="100%" I18N="In the general settings" text="Enable per-player handicaps" word_wrap="true"/>
</div>
<spacer width="5" height="4%"/>
</box>
</div>
</div>
</div>
</stkgui>

View File

@@ -8,8 +8,6 @@
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"

View File

@@ -8,8 +8,6 @@
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="1%" y="1%" width="98%" height="98%" layout="vertical-row" >
<header text_align="center" width="80%" align="center" text="SuperTuxKart Options"/>
<spacer height="15" width="10"/>
<tabs id="options_choice" height="10%" max_height="110" x="2%" width="98%" align="center">
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"/>
<icon-button id="tab_ui" width="128" height="128" icon="gui/icons/options_ui.png"/>
<icon-button id="tab_players" width="128" height="128" icon="gui/icons/options_players.png"
I18N="Section in the settings menu" text="Players"/>
<icon-button id="tab_controls" width="128" height="128" icon="gui/icons/options_input.png"/>
</tabs>
<box proportion="1" width="100%" layout="vertical-row">
<spacer width="5" height="5"/>
<div layout="horizontal-row" width="75%" height="fit" align="center">
<spacer proportion="1"/>
<label text="You are playing as" height="100%"/>
<spacer width="2%" height="1"/>
<button id="playername" width="27%" align="center"/>
<spacer proportion="1"/>
</div>
<spacer width="5" height="10"/>
<label width="100%"
I18N="In the player configuration screen"
text="Press enter or double-click on a player to edit their settings"
text_align="center" />
<spacer width="5" height="20"/>
<box proportion="5" width="75%" align="center" layout="vertical-row" padding="8">
<list id="players" x="0" y="0" width="100%" height="100%"/>
</box>
<spacer width="20" height="25"/>
<button id="addplayer" x="20"
I18N="In the player configuration screen"
text="Add Player" align="center"/>
<spacer width="20" height="15"/>
</box>
</div>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/icons/back.png"/>
</stkgui>

View File

@@ -8,8 +8,6 @@
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"
@@ -66,6 +64,47 @@
</div>
<spacer width="5" height="2%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="perPlayerDifficulty"/>
<spacer width="1%" height="100%" />
<label height="100%" I18N="In the ui settings" text="Enable per-player handicaps" word_wrap="true"/>
</div>
<spacer width="5" height="2%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="enable-internet"/>
<spacer width="1%" height="100%" />
<label height="100%" I18N="In the ui settings" text="Connect to the Internet" word_wrap="true"/>
</div>
<spacer width="5" height="2%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="enable-hw-report"/>
<spacer width="1%" height="100%" />
<label height="100%" id="label-hw-report" I18N="In the ui settings"
text="Send anonymous hardware statistics" word_wrap="true"/>
</div>
<spacer width="5" height="2%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="show-login"/>
<spacer width="1%" height="100%" />
<label height="100%" I18N="In the ui settings" text="Always show login screen" word_wrap="true"/>
</div>
<spacer width="5" height="2%"/>
<div layout="horizontal-row" width="100%" height="fit">
<checkbox id="enable-lobby-chat"/>
<spacer width="1%" height="100%" />
<label height="100%" id="label-lobby-chat" I18N="In the ui settings" text="Enable chatting in networking lobby" word_wrap="true"/>
</div>
<spacer width="5" height="2%"/>
</box>
</div>
</div>

View File

@@ -8,8 +8,6 @@
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"
@@ -58,9 +56,9 @@
<spacer width="5" height="1%"/>
<label width="100%" I18N="In the video settings" text="Resolution"/>
<scrollable_ribbon id="resolutions" height="20%" label_location="each"
<scrollable_ribbon id="resolutions" proportion="1" label_location="each"
width="100%" square_items="false"
align="center" child_width="128" child_height="128" />
align="center" child_width="128" child_height="128" max_height="150" />
<spacer width="5" height="1%"/>
@@ -68,14 +66,14 @@
<spacer width="40" height="100%" />
<checkbox id="fullscreen"/>
<spacer width="20" height="100%" />
<label id="fullscreenText" height="100%" I18N="In the video settings" text="Fullscreen"/>
<label height="100%" I18N="In the video settings" text="Fullscreen"/>
</div>
<div width="75%" layout="horizontal-row" height="fit">
<spacer width="40" height="100%" />
<checkbox id="rememberWinpos"/>
<spacer width="20" height="100%" />
<label id="rememberWinposText" I18N="In the video settings" text="Remember window location"/>
<label I18N="In the video settings" text="Remember window location"/>
</div>
<spacer width="5" height="1%"/>

View File

@@ -2,37 +2,49 @@
<stkgui>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/icons/back.png"/>
<div x="2%" y="2%" width="96%" height="96%" layout="vertical-row" >
<icon id="red_team" I18N="In soccer setup screen" text="Red Team" icon="gui/icons/soccer_ball_red.png" width="7%" height="7%"/>
<icon id="blue_team" I18N="In soccer setup screen" text="Blue Team" icon="gui/icons/soccer_ball_blue.png" width="7%" height="7%"/>
<div x="2%" y="1%" width="96%" height="98%" layout="vertical-row" >
<header width="80%" text="Race Setup" align="center" text_align="center" />
<spacer height="1%" width="25"/>
<spacer height="10" width="25"/>
<div layout="horizontal-row" width="fit" height="fit" align="left">
<bright proportion="1" height="100%"
I18N="In soccer setup screen" text="Number of goals to win" text_align="left" />
<spacer width="10" height="25"/>
<spinner id="goalamount" width="200" min_value="1" max_value="10"/>
</div>
<div layout="horizontal-row" width="fit" height="fit" align="left">
<bright proportion="1" height="100%"
I18N="In soccer setup screen" text="Maximum time (min.)" text_align="left" />
<spacer width="10" height ="25"/>
<spinner id="timeamount" width="200" min_value="1" max_value="15"/>
</div>
<div layout="horizontal-row" width="fit" height="fit" align="left">
<bright proportion="1" height="100%"
I18N="In soccer setup screen" text="Game type (Goals limit / Time limit)" text_align="left" />
<spacer width="10" height="25"/>
<checkbox id="time_enabled"/>
</div>
<spacer height="10" width="25"/>
<bubble height="fit" width="100%" id="lblLeftRight" I18N="In soccer setup screen" text="Use left/right to choose your team and press fire" word_wrap="true" text_align="center"/>
<spacer height="1%" width="25"/>
<spacer height="10" width="25"/>
<roundedbox layout="vertical-row" width="100%" proportion="1" align="center">
<spacer height="2%" width="25"/>
<div layout="horizontal-row" width="100%" height="12%" align="center">
<spacer height="10" proportion="1"/>
<icon id="red_team" I18N="In soccer setup screen" text="Red Team" icon="gui/icons/soccer_ball_red.png" height="100%"/>
<spacer height="10" proportion="2"/>
<icon id="blue_team" I18N="In soccer setup screen" text="Blue Team" icon="gui/icons/soccer_ball_blue.png" height="100%"/>
<spacer height="10" proportion="1"/>
</div>
<spacer height="2%" width="25"/>
<div id="central_div" layout="horizontal-row" width="100%" proportion="1" align="center">
<div id="central_div" layout="horizontal-row" width="100%" proportion="1" align="center">
<roundedbox width="100%" layout="horizontal-row" height="100%">
<!-- Content is added programmatically -->
</div>
</roundedbox>
</div>
<spacer height="2%" width="25"/>
</roundedbox>
<spacer height="1%" width="25"/>
<spacer height="10" width="25"/>
<button id="continue" I18N="In soccer setup screen" text="Continue" align="center" width="60%"/>
</div>

View File

@@ -74,23 +74,14 @@
<spacer width="1" height="2%"/>
<!-- Race options box -->
<box width="100%" height="43%" layout="vertical-row" id="race-options-box">
<div width="100%" height="fit" layout="horizontal-row" id="target-type-div">
<div proportion="3" height="fit" layout="horizontal-row">
<spinner id="target-type-spinner" width="100%" align="center"
wrap_around="true" />
</div>
<spacer width="3%"/>
<label id="target-type-text" proportion="3" I18N="In the track info screen" text_align="left" />
</div>
<spacer width="1" height="2%"/>
<box width="100%" height="43%" layout="vertical-row">
<div width="100%" height="fit" layout="horizontal-row" >
<div proportion="1" height="fit" layout="horizontal-row">
<spinner id="target-value-spinner" width="100%" min_value="1" max_value="20" align="center"
<spinner id="lap-spinner" width="100%" min_value="1" max_value="20" align="center"
wrap_around="true" />
</div>
<spacer width="3%"/>
<label id="target-value-text" proportion="3" I18N="In the track info screen" text="Number of laps" text_align="left"/>
<label id="lap-text" proportion="4" I18N="In the track info screen" text="Number of laps" text_align="left"/>
</div>
<spacer width="1" height="2%"/>
<div width="100%" height="fit" layout="horizontal-row" >
@@ -99,7 +90,7 @@
wrap_around="true" />
</div>
<spacer width="3%"/>
<label id="ai-text" proportion="3" I18N="In the track info screen" text="Number of AI karts" text_align="left"/>
<label id="ai-text" proportion="4" I18N="In the track info screen" text="Number of AI karts" text_align="left"/>
</div>
<spacer width="1" height="2%"/>
<div width="100%" height="fit" layout="horizontal-row" >
@@ -109,7 +100,7 @@
</div>
</div>
<spacer width="3%"/>
<label id="option-text" proportion="3" I18N="In the track info screen" text_align="left"/>
<label id="option-text" proportion="4" I18N="In the track info screen" text_align="left"/>
</div>
<spacer width="1" height="2%"/>
<div width="100%" height="fit" layout="horizontal-row" >
@@ -119,7 +110,7 @@
</div>
</div>
<spacer width="3%"/>
<label id="record-race-text" proportion="3" I18N="In the track info screen" text="Record the race for ghost replay" text_align="left"/>
<label id="record-race-text" proportion="4" I18N="In the track info screen" text="Record the race for ghost replay" text_align="left"/>
</div>
</box><!-- Race options box -->
</div>

View File

@@ -2,7 +2,7 @@
<stkgui>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/icons/back.png"/>
<div id="all-track" x="1%" y="1%" width="60%" height="88%" layout="vertical-row" >
<div id="all-track" x="1%" y="1%" width="60%" height="96%" layout="vertical-row" >
<header width="80%" I18N="In the track selection screen" text="All Tracks"
align="center" text_align="center" />
@@ -34,12 +34,11 @@
</div>
</box>
</div>
<div id="vote" x="63%" y="1%" width="36%" height="88%" layout="vertical-row">
<div width="100%" proportion="2" layout="horizontal-row">
<div id="vote" x="63%" y="1%" width="37%" height="96%" layout="vertical-row">
<div width="95%" proportion="2" layout="horizontal-row">
<box proportion="2" height="100%" layout="vertical-row">
<list id="vote-list" width="100%" height="100%" word_wrap="true"/>
<label id="vote-text" word_wrap="true" proportion="3" width="100%" height="100%" text_valign="top"/>
</box>
</div>
</div>
<progressbar x="2%" y="93%" id="timer" height="4%" width="96%"></progressbar>
</stkgui>

View File

@@ -7,19 +7,19 @@
<header width="80%" I18N="In the track and grand prix selection screen" text="Grand Prix"
align="center" text_align="center" />
<box width="100%" proportion="1" layout="vertical-row" padding="0">
<scrollable_toolbar id="gps" x="1%" y="1%" width="98%" height="98%" align="center" label_location="each"
<box width="100%" height="195" padding="0">
<scrollable_toolbar id="gps" height="175" y="10" x="10" width="98%" align="center" label_location="each"
square_items="true" child_width="175" child_height="120" />
</box>
<header width="100%" I18N="In the track and grand prix selection screen" text="All Tracks"
align="center" text_align="center" />
<box proportion="3" width="100%" layout="vertical-row" padding="1">
<box proportion="1" width="100%" layout="vertical-row" padding="1">
<ribbon_grid id="tracks" proportion="1" width="100%" square_items="true"
label_location="bottom" align="center" max_rows="3"
child_width="160" child_height="120" />
<spacer width="20" height="5%" />
<spacer width="20" height="13" />
</box>
<!-- Populated dynamically at runtime -->

View File

@@ -8,8 +8,6 @@
<div width="100%" height="92%" layout="horizontal-row" >
<vertical-tabs id="options_choice" height="100%" width="18%">
<icon-button id="tab_general" width="128" height="128" icon="gui/icons/options_general.png"
I18N="Section in the settings menu" text="General"/>
<icon-button id="tab_video" width="128" height="128" icon="gui/icons/options_video.png"
I18N="Section in the settings menu" text="Graphics"/>
<icon-button id="tab_audio" width="128" height="128" icon="gui/icons/options_audio.png"

View File

@@ -8,7 +8,7 @@
isn't an item, it is internally
handled as one, so list it here -->
<bubblegum model="bubblegum.spm" lowmodel="bubblegum-low.spm" glow="246 150 209"/>
<bubblegum-nolok model="bubblegum-nolok.spm" lowmodel="bubblegum-nolok-low.spm" glow="20 190 0"/>
<bubblegum-nolok model="bubblegum-nolok.spm" lowmodel="bubblegum-nolok-low.spm"/>
<easter-egg model="easter_egg.spm" glow="0 60 120" />
</items>

View File

@@ -35,7 +35,7 @@
for details.
max-force: Maximum suspension force -->
<suspension stiffness="280" rest="0.3" travel="0.29"
exp-spring-response="false" max-force="32000" />
exp-spring-response="false" max-force="12000" />
<!-- Values related to stability of the chassis: damping, and reduced
impact of roll.
@@ -66,7 +66,7 @@
speed 10 the radius is 7.5 etc.
The actual turn radius is piece-wise linearly interpolated. This
allows for tighter turning at lower speeds, and also avoids that
the kart becomes too hard to control at high speed (speeds
the kart becomes too hard to control at high speed (speeds of
higher than 25 can only be reached with powerups).
time-full-steer: This is the amount of change in steering depending
on current steering. So if the steering is between 0 and 0.5,
@@ -84,12 +84,8 @@
time-reset-steer="0.1" />
<!-- Speed and acceleration
power: The power of the kart (the engine power needed to accelerate
at a given pace is proportional to mass)
power: The power of the kart
max-speed: The base maximum speed of the kart in m/s
generic-max-speed: Must have the same value as max-speed. This
is the max speed independently of kart type and
of handicap, which is used by basket balls.
brake-factor: Value used when braking.
brake-time-increase: The brake force is multiplied by
(1 + brake_time) * brake_time_increase - i.e. the longer the
@@ -97,19 +93,18 @@
max-speed-reverse-ratio is the percentage of max speed for reverse
gear.
-->
<engine power="950" max-speed="25" generic-max-speed="25" brake-factor="15"
<engine power="875" max-speed="25" brake-factor="15"
brake-time-increase="6" max-speed-reverse-ratio="0.65" />
<!-- Simulated gears
switch-ratio defines at what ratio of the maximum
speed what gear is selected, e.g. 0.25 means that if the speed is
inferior or equal to 0.25 * maxSpeed then use gear 1, 0.5 means if
the speed is inferior or equal to 0.5 x maxSpeed then gear 2.
bigger or equal to 0.25 * maxSpeed then use gear 1, 0.5 means if
the speed is bigger or equal to 0.5 x maxSpeed then gear 2.
gear-power-increase contains the increase in max power (to simulate
different gears), e.g. 2.5 as first entry means: 2.5 * maxPower in gear 1
| first | second | third | . -->
<gear switch-ratio="0.2 0.45 0.7 1 1.25"
power-increase="2.5 2.1 1.7 1.4 1.2" />
<gear switch-ratio="0.25 0.7 1.0" power-increase="2.2 1.7 1.3" />
<!-- Mass of a kart -->
<mass value="350" />
@@ -122,7 +117,7 @@
position of the physics raycast wheels relative to the center of
gravity. Default is to use the corners of the chassis to attach
the wheels to. -->
<wheels damping-relaxation="35" damping-compression="15">
<wheels damping-relaxation="35" damping-compression="5">
<front-right position="0.38 0 0.6" />
<front-left position="-0.38 0 0.6" />
<rear-right position="0.38 0 -0.6" />
@@ -210,9 +205,9 @@
<anvil duration="2.0" weight="150" speed-factor="0.2" />
<!-- Parachute
friction: The friction factor when a parachute is attached.
friction: The friction increase when a parachute is attached.
duration: The time an attached parachute is active
duration-other: Used when the parachute results from item use
duration-other: The time a parachute attached from other kart works
duration-rank-mult: The multiplier applied to the duration of the
parachute on the 1st kart when affected by the item. Scale for
intermediary ranks to 1.0 for the last affected.
@@ -225,9 +220,9 @@
detach parachute. E.g. at max-speed 50% of speed must be lost.
max-speed: A factor that decides the impact of rate of speed
(distance between bounds) -->
<parachute friction="5.0" duration="3" duration-other="2.5"
duration-rank-mult="1.5" duration-speed-mult="1.35"
lbound-fraction="0.5" ubound-fraction="0.3" max-speed="30" />
<parachute friction="2.0" duration="2.0" duration-other="2.6"
duration-rank-mult="1.35" duration-speed-mult="2.0"
lbound-fraction="0.8" ubound-fraction="0.5" max-speed="23" />
<!-- Bubblegum
duration: How long the bubblegum lasts.
speed-fraction: To what fraction of top-speed the speed is reduced.
@@ -278,7 +273,7 @@
fields must have the same size, and must be sorted by
increasing times. -->
<startup time="0.3 0.5"
boost="8 4" />
boost="6 3" />
<!-- Rescue
duration: How long it takes the kart to be raised.
@@ -297,12 +292,11 @@
after being hit by an explosion.
radius: Kart closer to this value will be affected by
an explosion as well. -->
<explosion duration="1.5" radius="6"
invulnerability-time="7" />
<explosion duration="2" radius="5"
invulnerability-time="6" />
<!-- Nitro
engine-force: additional engine power
engine-mult: multiply the total engine power by this
consumption: nitro consumption - heavier characters can be set
to need more nitro than lighter character.
small-container: how much energy a small container gives.
@@ -314,9 +308,8 @@
fade-out-time: Duration during which the increased maximum
speed due to nitro fades out.
max: How much nitro a kart can store. -->
<nitro engine-force="300" engine-mult="1.2" consumption="1"
small-container="1" big-container="3"
max-speed-increase="5" duration="1" fade-out-time="2.4" max="20" />
<nitro engine-force="600" consumption="1" small-container="1" big-container="3"
max-speed-increase="5" duration="1" fade-out-time="2" max="20" />
<!-- Slipstream
base-speed: the speed for which length and width are valid.
@@ -338,22 +331,22 @@
fade-out-time: How long the slip stream speed increase will
gradually be reduced. -->
<slipstream base-speed="20" length="8" width="4" inner-factor="0.5"
min-collect-time="2.5" max-collect-time="8" add-power="300" min-speed="8"
max-speed-increase="3" duration-factor="1" fade-out-time="2" />
min-collect-time="3" max-collect-time="8" add-power="300" min-speed="8"
max-speed-increase="5" duration-factor="1" fade-out-time="2" />
</characteristic>
<!-- The different difficulties (like easy, medium, hard) -->
<difficulties>
<characteristic name="easy">
<engine power="*0.7" max-speed="*0.6" generic-max-speed="*0.6" />
<engine power="*0.66" max-speed="*0.6" />
<plunger in-face-time="3" />
</characteristic>
<characteristic name="medium">
<engine power="*0.83" max-speed="*0.8" generic-max-speed="*0.8" />
<engine power="*0.77" max-speed="*0.8" />
<plunger in-face-time="4" />
</characteristic>
<characteristic name="hard">
<engine power="*0.92" max-speed="*0.92" generic-max-speed="*0.92" />
<engine power="*0.89" max-speed="*0.92" />
</characteristic>
<!-- This doesn't need to be changed because the most fast/heavy/extreme
values should also be the default ones. -->
@@ -363,40 +356,44 @@
<!-- The different kart types, that can be specified in the kart.xml file -->
<kart-types>
<characteristic name="light">
<turn radius="0:2.0 10:7.5 25:15 45:30" />
<engine power="*0.8" max-speed="*0.95" brake-factor="*1"
max-speed-reverse-ratio="*0.8" />
<gear switch-ratio="0.1 0.25 0.45 0.7 1.0 4.0"
power-increase="2.8 2.3 1.9 1.5 1.25 1.0" />
<mass value="*0.6" />
<startup boost="*1 *1" />
<explosion time="*1" radius="*1" />
<nitro engine-force="*0.6" max-speed-increase="*0.9" duration="*1" />
<engine power="*0.46" max-speed="*0.92" brake-factor="*1"
max-speed-reverse-ratio="*0.77" />
<gear switch-ratio="0.20 0.55 1" power-increase="5 4 3" />
<mass value="*0.56" />
<startup time="0.3 0.5"
boost="8.5 4.5" />
<explosion time="2.1" radius="5.5"
invulnerability-time="7" />
<nitro engine-force="350" max-speed-increase="4.5" duration="1.5"
fade-out-time="2.5" />
<slipstream length="*0.9" collect-time="*0.9"
duration-factor="*1" fade-out-time="*1" />
</characteristic>
<characteristic name="medium">
<turn radius="0:2.3 10:8.625 25:17.25 45:34.5" />
<engine power="*0.875" max-speed="*1" brake-factor="*0.8"
max-speed-reverse-ratio="*0.75" />
<gear switch-ratio="0.1 0.25 0.45 0.7 1 4"
power-increase="2.4 2 1.7 1.4 1.2 1" />
<mass value="*0.75" />
<startup boost="*0.8 *0.8" />
<explosion time="*0.8" radius="*0.8" />
<nitro engine-force="*0.75" consumption="*1.25" />
<engine power="*0.63" max-speed="*1" brake-factor="*0.73"
max-speed-reverse-ratio="*0.62" />
<gear switch-ratio="0.30 0.7 1.0" power-increase="2.2 2.2 2.5" />
<mass value="*0.71" />
<startup time="0.3 0.5"
boost="4.2 2.6" />
<explosion time="1.8" radius="5"
invulnerability-time="6" />
<nitro engine-force="425" consumption="1.4" duration="1" />
<slipstream duration-factor="*0.8" fade-out-time="*1" />
</characteristic>
<characteristic name="heavy">
<turn radius="0:2.6 10:9.75 25:19.5 45:39" />
<engine power="*1" max-speed="*1.05" brake-factor="*0.6"
max-speed-reverse-ratio="*0.7" />
<gear switch-ratio="0.1 0.25 0.45 0.7 1 4"
power-increase="2 1.7 1.5 1.3 1.15 1" />
<engine power="*1" max-speed="*1" brake-factor="*0.66"
max-speed-reverse-ratio="*1" />
<gear switch-ratio="0.45 0.70 1" power-increase="1.5 1.7 2.5" />
<mass value="*1" />
<startup boost="*0.6 *0.6" />
<explosion time="*0.6" radius="*0.6" />
<nitro engine-force="*1" consumption="*1.67" max-speed-increase="*1.1" />
<swatter duration="10" distance="3" squash-duration="5"
squash-slowdown="0.5" />
<startup time="0.3 0.5"
boost="3.8 2" />
<explosion time="1.5" radius="4"
invulnerability-time="6" />
<nitro engine-force="600" consumption="2" max-speed-increase="8"
duration="0.7" fade-out-time="1.3" />
<slipstream length="*1.1" collect-time="*1.1"
duration-factor="*0.6" fade-out-time="*1" />
</characteristic>

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More