Merge branch 'master' into wayland

This commit is contained in:
Deve 2015-10-28 22:43:02 +01:00
commit c81243fc1a
1076 changed files with 284094 additions and 226865 deletions

6
.gitignore vendored
View File

@ -1,12 +1,14 @@
bld*/
build*/
cmake_build/
cmake_build*/
dependencies/
CMakeFiles/
stk-editor/
.config/
supertuxkart-64
make*.bat
data/editor
data/karts
@ -16,6 +18,7 @@ data/music
data/sfx
data/textures
data/tracks
data/wip-tracks
data/.svn
# Ignore doxygen output
@ -41,6 +44,9 @@ src/html
*~
*.swp
# Ignore QtCreator project file
CMakeLists.txt.user
packets_log.txt
history.dat
README.dependencies

View File

@ -1,4 +1,31 @@
##SuperTuxKart 0.8.1
## SupertTuxKart 0.9.1
* Many bug fixes
* Started to use scripting in tracks
* Significant audio performance improvements
* Smaller tweaks and improvements to several tracks including
** Math class
** XR591
** Fort Magma
** Gran Paradiso
** Subsea
* Tweak to challenges
* Better support for driving tracks in reverse
## SupertTuxKart 0.9 (April 2015)
* Fully shader-based rendering engine
* New tracks Cocoa Temple and Gran Paradiso
* Graphical improvements to many other tracks
* New karts amanda and gavroche
* New and improved tux, adiumy, sara the wizard and the racer, xue kart
* Online login which allows to:
** connect with friends and see when they are playing
** vote for addons
** collect online achievements
* Grand Prix editor, including creation of random GPs
* Different kart physics
## SuperTuxKart 0.8.1 (26. November 2013)
* New track STK Enterprise
* Updated track The old mines
* Updated Lighthouse track
@ -18,8 +45,7 @@
* Wiimote support
##SuperTuxKart 0.8
## SuperTuxKart 0.8 (11. December 2012)
* Story mode and new challenge set
* Improved AI
* Skidding and better collision physics
@ -34,7 +60,7 @@
* New music
##SuperTuxKart 0.7.3
## SuperTuxKart 0.7.3 (2. November 2011)
* New Zen Garden and Subsea tracks
* New Island battle arena
* New Suzanne kart
@ -50,7 +76,7 @@
* Better placement of rescued karts
* Transition track-making to blender 2.5/2.6
##SuperTuxKart 0.7.2
## SuperTuxKart 0.7.2 (15. July 2011)
* Added in-game addon manager
* Fixed major memory leaks
* New Snow Peak track by Samuncle
@ -60,11 +86,11 @@
* Improve gamepad configuration under Windows (add ability to tell gamepads apart)
* Various other tweaks done and glitches fixed
##SuperTuxKart 0.7.1b
## SuperTuxKart 0.7.1b (21. April 2011)
* Fix circular dependency in challenges
* Updated translations
##SuperTuxKart 0.7.1
## SuperTuxKart 0.7.1 (15. April 2011)
* Particle (smoke, splash, fire) and weather effects
* New Fort Magma by Samuncle, new Shiny Suburbs track by Horace
* New Beagle kart by wolterh

View File

@ -2,7 +2,7 @@
project(SuperTuxKart)
set(PROJECT_VERSION "0.8.1")
cmake_minimum_required(VERSION 2.8.1)
cmake_minimum_required(VERSION 2.8.4)
if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3))
cmake_policy(SET CMP0043 OLD)
endif()
@ -16,13 +16,13 @@ if (NOT CMAKE_BUILD_TYPE)
endif()
option(USE_WIIUSE "Support for wiimote input devices" ON)
option(USE_FREETYPE "Use Freetype to render text" ON)
option(USE_FRIBIDI "Support for right-to-left languages" ON)
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(ENABLE_NETWORK_MULTIPLAYER "Enable network multiplayer. This will replace the online profile GUI in the main menu with the network multiplayer GUI" OFF)
if(UNIX OR MINGW)
option(USE_CPP2011 "Activate C++ 2011 mode (GCC only)" OFF)
endif()
if(MSVC OR MINGW)
if(MSVC AND (MSVC_VERSION LESS 1900))
# Normally hide the option to build wiiuse on VS, since it depends
# on the installation of the Windows DDK (Driver Developer Kit),
# which also needs an absolute path :(
@ -32,7 +32,7 @@ else()
set(WIIUSE_BUILD ON)
endif()
if(MINGW)
if(MINGW OR CYGWIN)
set(USE_WIIUSE OFF)
endif()
@ -124,9 +124,21 @@ elseif(MSVC)
endif()
# Build the angelscript library
# Build the angelscript library if not in system
if(USE_SYSTEM_ANGELSCRIPT)
find_package(Angelscript)
if(ANGELSCRIPT_FOUND)
include_directories(${Angelscript_INCLUDE_DIRS})
else()
message(FATAL_ERROR "Angelscript not found. "
"Either install angelscript or use built-in version using "
"-DUSE_SYSTEM_ANGELSCRIPT=0")
endif()
else()
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/angelscript/projects/cmake")
include_directories("${PROJECT_SOURCE_DIR}/lib/angelscript/include")
set(Angelscript_LIBRARIES angelscript)
endif()
# OpenAL
if(APPLE)
@ -153,6 +165,17 @@ else()
include_directories(${OGGVORBIS_INCLUDE_DIRS})
endif()
# Freetype
if(USE_FREETYPE)
find_package(Freetype)
if(FREETYPE_FOUND)
include_directories(${FREETYPE_INCLUDE_DIRS})
else()
message(FATAL_ERROR "Freetype not found. "
"Either install freetype or disable freetype rendering support with -DUSE_FREETYPE=0 ")
endif()
endif()
# Fribidi
if(USE_FRIBIDI)
find_package(Fribidi)
@ -172,13 +195,6 @@ if (OPENMP_FOUND)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
if(UNIX OR MINGW)
# if(USE_CPP2011)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
# endif()
endif()
# OpenGL
find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
@ -198,18 +214,32 @@ if(UNIX AND NOT APPLE)
endif()
endif()
# Set some compiler options
if(UNIX OR MINGW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
endif()
if(MINGW AND CMAKE_BUILD_TYPE MATCHES Release)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--subsystem,windows")
endif()
# Netwowk Multiplayer
if(ENABLE_NETWORK_MULTIPLAYER)
add_definitions(-DENABLE_NETWORK_MULTIPLAYER_SCREEN)
endif()
if(WIN32)
# By default windows.h has macros defined for min and max that screw up everything
add_definitions(-DNOMINMAX)
# And shut up about unsafe stuff
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
# Avoid timespec structure redeclaration on Visual Studio 2015
if (NOT (MSVC_VERSION LESS 1900))
add_definitions(-DHAVE_STRUCT_TIMESPEC)
endif()
endif()
if(MSVC)
@ -278,7 +308,7 @@ else()
if(MSVC)
set(PTHREAD_NAMES pthreadVC2)
elseif(MINGW)
set(PTHREAD_NAMES "winpthread-1" pthreadGC2)
set(PTHREAD_NAMES "winpthread-1" "libwinpthread-1" "pthreadGC2")
endif()
find_library(PTHREAD_LIBRARY NAMES pthread ${PTHREAD_NAMES} PATHS ${PROJECT_SOURCE_DIR}/dependencies/lib)
mark_as_advanced(PTHREAD_LIBRARY)
@ -316,11 +346,12 @@ target_link_libraries(supertuxkart
enet
glew
stkirrlicht
angelscript
${Angelscript_LIBRARIES}
${CURL_LIBRARIES}
${OGGVORBIS_LIBRARIES}
${OPENAL_LIBRARY}
${OPENGL_LIBRARIES}
${FREETPYE_LIBRARIES}
)
if(UNIX AND NOT APPLE)
@ -351,6 +382,11 @@ if(USE_FRIBIDI)
add_definitions(-DENABLE_BIDI)
endif()
if(USE_FREETYPE)
target_link_libraries(supertuxkart ${FREETYPE_LIBRARIES})
add_definitions(-DENABLE_FREETYPE)
endif()
# Wiiuse
# ------
if(USE_WIIUSE)
@ -380,25 +416,23 @@ if(MSVC OR MINGW)
add_custom_target(stkshaders SOURCES ${STK_SHADERS})
endif()
# Optional tools
add_subdirectory(tools/font_tool)
# ==== Make dist target ====
if(MSVC OR MINGW)
# Don't create a dist target for VS
else()
add_custom_target(dist
COMMAND rm -rf ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION} && rm -f ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION}.tar.bz2
&& echo "Exporting..."
&& svn export ${PROJECT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION}
&& echo "Compressing..."
&& cd ${CMAKE_BINARY_DIR}
&& tar -cjf ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION}.tar.bz2 ./SuperTuxKart-${PROJECT_VERSION}
&& echo "Done, cleaning up"
&& rm -rf ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
if(MINGW)
find_library(LIBGCC NAMES "libgcc_s_dw2-1.dll" "libgcc_s_sjlj-1.dll" "libgcc_s_seh-1.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
if(LIBGCC)
file(COPY ${LIBGCC} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
endif()
find_library(LIBSTDCPP NAMES "libstdc++-6.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
if(LIBSTDCPP)
file(COPY ${LIBSTDCPP} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
endif()
find_library(LIBOPENMP NAMES "libgomp-1.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
if(LIBOPENMP)
file(COPY ${LIBOPENMP} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
endif()
find_library(LIBPTHREAD NAMES "winpthread-1.dll" "libwinpthread-1.dll" "pthreadGC2.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
if(LIBPTHREAD)
file(COPY ${LIBPTHREAD} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
endif()
endif()
@ -438,7 +472,12 @@ if(STK_ASSETS_DIR AND CHECK_ASSETS)
install(DIRECTORY ${STK_ASSETS_DIR} DESTINATION ${STK_INSTALL_DATA_DIR}/data PATTERN ".svn" EXCLUDE PATTERN ".git" EXCLUDE)
endif()
install(FILES ${STK_DATA_DIR}/supertuxkart.desktop DESTINATION share/applications)
install(FILES data/supertuxkart_32.png DESTINATION share/icons/hicolor/32x32 RENAME supertuxkart.png)
install(FILES data/supertuxkart_128.png DESTINATION share/icons/hicolor/128x128 RENAME supertuxkart.png)
install(FILES data/supertuxkart_32.png DESTINATION share/icons/hicolor/32x32/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_128.png DESTINATION share/icons/hicolor/128x128/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_32.png data/supertuxkart_128.png DESTINATION share/pixmaps)
install(FILES data/supertuxkart.appdata.xml DESTINATION share/appdata)
if(MINGW)
install(DIRECTORY ${CMAKE_BINARY_DIR}/bin/ DESTINATION ${STK_INSTALL_BINARY_DIR}
FILES_MATCHING PATTERN "*.dll")
endif()

17
TODO.md
View File

@ -1,8 +1,5 @@
##TODO
THIS IS A 2nd TEST.
THIS IS A TEST.
SuperTuxKart is looking for additional man power to make this
one of the best free linux games out there :) We need (in
no particular order):
@ -15,17 +12,13 @@ no particular order):
- Create additional art work for tracks,
background images
3. Developers
- See todo list below - it's rather long at the moment :)
4. Web master
- Check our bug and enhancement request tracker on
https://github.com/supertuxkart/stk-code/issues
- Extend the current web page, keep it up to date
5. Tester
4. Tester
- For just about everything
- Esp. different platforms
6. Package creators
- Create packages for
- most common Linux distributions
- Windows
7. Writers
- Esp. different platforms and graphics cards
5. Writers
- Write documentation, ranging from man page, to
a description for the web, to a design document, ...

View File

@ -0,0 +1,33 @@
# - Try to find angelscript
# Once done this will define
#
# ANGELSCRIPT_FOUND - system has angelscript
# Angelscript_INCLUDE_DIRS - the angelscript include directory
# Angelscript_LIBRARIES - the libraries needed to use angelscript
#
FIND_PATH(Angelscript_INCLUDE_DIRS angelscript.h
PATHS
/usr/local
/usr
PATH_SUFFIXES include
)
FIND_LIBRARY(Angelscript_LIBRARY
NAMES angelscript angelscript_s
PATHS
/usr/local
/usr
PATH_SUFFIXES lib lib64 lib32
)
# handle the QUIETLY and REQUIRED arguments and set ANGELSCRIPT_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Angelscript DEFAULT_MSG Angelscript_LIBRARY Angelscript_INCLUDE_DIRS)
IF (ANGELSCRIPT_FOUND)
SET(Angelscript_LIBRARIES ${Angelscript_LIBRARY})
ENDIF (ANGELSCRIPT_FOUND)
MARK_AS_ADVANCED(Angelscript_LIBRARY Angelscript_LIBRARIES Angelscript_INCLUDE_DIRS)

29
cmake/FindFreetype.cmake Normal file
View File

@ -0,0 +1,29 @@
# - Find Freetype
# Find the Freetype includes and libraries
#
# Following variables are provided:
# FREETYPE_FOUND
# True if Freetype has been found
# FREETYPE_INCLUDE_DIRS
# The include directories of Freetype
# FREETYPE_LIBRARIES
# Freetype library list
if(WIN32)
find_path(FREETYPE_INCLUDE_DIRS NAMES freetype/freetype.h PATHS "${PROJECT_SOURCE_DIR}/dependencies/include")
find_library(FREETPYE_LIBRARY NAMES freetype PATHS "${PROJECT_SOURCE_DIR}/dependencies/lib")
set(FREETYPE_FOUND 1)
set(FREETPYE_LIBRARIES ${FREETPYE_LIBRARY})
elseif(APPLE)
find_path(FREETYPE_INCLUDE_DIRS NAMES freetype/freetype.h PATHS "/Library/Frameworks/FreeType.Framework/Versions/2.4/unix/include")
find_library(FREETPYE_LIBRARY NAMES freetype PATHS "/Library/Frameworks/FreeType.Framework/Versions/2.4/")
include_directories(/Library/Frameworks/FreeType.Framework/Versions/2.4/unix/include)
set(FREETYPE_FOUND 1)
set(FREETPYE_LIBRARIES ${FREETPYE_LIBRARY})
elseif(UNIX)
include(FindPkgConfig)
pkg_check_modules(FREETYPE freetype2)
else()
set(FREETYPE_FOUND 0)
endif()

View File

@ -0,0 +1,20 @@
# Usage:
# cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw-64bit.cmake
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)
# which compilers to use for C and C++
SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc-posix)
SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++-posix)
SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /usr/lib/gcc/x86_64-w64-mingw32/4.9-posix ${PROJECT_SOURCE_DIR}/dependencies)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ALWAYS)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

View File

@ -1,3 +1,6 @@
# Usage:
# cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-mingw.cmake
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)
@ -7,11 +10,11 @@ SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++-posix)
SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32 ${PROJECT_SOURCE_DIR}/dependencies)
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32 /usr/lib/gcc/i686-w64-mingw32/4.9-posix ${PROJECT_SOURCE_DIR}/dependencies)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ALWAYS)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

BIN
data/CREDITS Normal file → Executable file

Binary file not shown.

View File

@ -2,16 +2,26 @@
<achievements>
<achievement id="1" check-type="all-at-least" reset-type="never"
name="Christoffel Columbus" description="Play every official track at least once." >
<city goal="1"/>
<cocoa_temple goal="1"/>
<farm goal="1"/>
<scotland goal="1"/>
<lighthouse goal="1"/>
<sandtrack goal="1"/>
<olivermath goal="1"/>
<subsea goal="1"/>
<mansion goal="1"/>
<minigolf goal="1"/>
<fortmagma goal="1"/>
<gran_paradiso_island goal="1"/>
<greenvalley goal="1"/>
<hacienda goal="1"/>
<jungle 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"/>
<subsea goal="1"/>
<xr591 goal="1"/>
<zengarden goal="1"/>
</achievement>
<achievement id="2" check-type="all-at-least" reset-type="never"
name="Strike!" description="Hit 10 karts with a bowling-ball.">
@ -30,7 +40,7 @@
<skidding goal="5"/>
</achievement>
<achievement id="6" check-type="all-at-least" reset-type="never"
name="Gold driver" description="Win in all single player modes, against at least 3 opponents.">
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"/>

View File

@ -10,7 +10,7 @@
</hard>
<medium>
<karts number="4"/>
<requirements time="190"/>
<requirements time="185"/>
</medium>
<easy>
<karts number="4"/>

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<challenge version="2">
<track id="20_island" laps="3"/>
<track id="gran_paradiso_island" laps="3"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="95"/>
@ -10,11 +10,11 @@
</hard>
<medium>
<karts number="4"/>
<requirements position="2"/>
<requirements position="1"/>
</medium>
<easy>
<karts number="3"/>
<requirements position="3"/>
<requirements position="1"/>
</easy>
</challenge>

View File

@ -1,19 +1,19 @@
<?xml version="1.0"?>
<challenge version="2">
<track id="30_chocolate" laps="3"/>
<track id="cocoa_temple" laps="3"/>
<mode major="single" minor="quickrace"/>
<requirements trophies="15"/>
<hard>
<karts number="5"/>
<requirements position="1" time="161"/>
<requirements position="1" time="170"/>
</hard>
<medium>
<karts number="4"/>
<requirements time="177"/>
<requirements time="210"/>
</medium>
<easy>
<karts number="4"/>
<requirements time="240"/>
<requirements time="300"/>
</easy>
</challenge>

View File

@ -10,11 +10,11 @@
</hard>
<medium>
<karts number="4"/>
<requirements time="125"/>
<requirements time="145" position="1"/>
</medium>
<easy>
<karts number="3"/>
<requirements time="145"/>
<requirements time="185"/>
</easy>
</challenge>

View File

@ -10,7 +10,7 @@
</hard>
<medium>
<karts number="4"/>
<requirements time="145"/>
<requirements time="130"/>
</medium>
<easy>
<karts number="4"/>

View File

@ -14,6 +14,6 @@
</medium>
<easy>
<karts number="4"/>
<requirements time="215"/>
<requirements time="255"/>
</easy>
</challenge>

View File

@ -6,15 +6,15 @@
<hard>
<karts number="5"/>
<requirements position="1" time="50"/>
<requirements position="1" time="65"/>
</hard>
<medium>
<karts number="5"/>
<requirements position="1" time="65"/>
<requirements position="1" time="85"/>
</medium>
<easy>
<karts number="5"/>
<requirements position="1" time="80"/>
<requirements position="1" time="105"/>
</easy>
</challenge>

View File

@ -10,10 +10,10 @@
</hard>
<medium>
<karts number="1"/>
<requirements energy="15" time="185"/>
<requirements energy="15" time="195"/>
</medium>
<easy>
<karts number="1"/>
<requirements energy="10" time="220"/>
<requirements energy="10" time="260"/>
</easy>
</challenge>

View File

@ -10,10 +10,10 @@
</hard>
<medium>
<karts number="4"/>
<requirements time="175"/>
<requirements time="185"/>
</medium>
<easy>
<karts number="4"/>
<requirements time="225"/>
<requirements time="270"/>
</easy>
</challenge>

View File

@ -10,10 +10,10 @@
</hard>
<medium>
<karts number="4"/>
<requirements time="175"/>
<requirements time="187"/>
</medium>
<easy>
<karts number="4"/>
<requirements time="220"/>
<requirements time="250"/>
</easy>
</challenge>

View File

@ -10,7 +10,7 @@
</hard>
<medium>
<karts number="4"/>
<requirements time="175"/>
<requirements time="170"/>
</medium>
<easy>
<karts number="4"/>

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<challenge version="2">
<track id="startrack" laps="3"/>
<track id="stk_enterprise" laps="3"/>
<mode major="single" minor="followtheleader"/>
<requirements trophies="110"/>

View File

@ -6,14 +6,14 @@
<hard>
<karts number="5"/>
<requirements position="1" time="200"/>
<requirements position="1" time="205"/>
</hard>
<medium>
<karts number="4"/>
<requirements time="220"/>
<requirements time="225"/>
</medium>
<easy>
<karts number="4"/>
<requirements time="250"/>
<requirements time="290"/>
</easy>
</challenge>

View File

@ -6,15 +6,15 @@
<hard>
<karts number="1"/>
<requirements energy="18" time="135"/>
<requirements energy="18" time="120"/>
</hard>
<medium>
<karts number="1"/>
<requirements energy="15" time="155"/>
<requirements energy="15" time="135"/>
</medium>
<easy>
<karts number="1"/>
<requirements energy="12" time="170"/>
<requirements energy="12" time="180"/>
</easy>
</challenge>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -1,22 +0,0 @@
<?xml version="1.0"?>
<materials>
<!-- Fonts -->
<material name="title_font.png" shader="unlit" lazy-load="Y"/>
<material name="title_font_2.png" shader="unlit" lazy-load="Y"/>
<material name="sigmar0.png" shader="unlit" lazy-load="Y"/>
<material name="comix.png" shader="unlit" lazy-load="Y"/>
<material name="LayneHansom0.png" shader="unlit" lazy-load="Y"/>
<material name="Mplus2p_JP0.png" shader="unlit" lazy-load="Y"/>
<material name="rasheeq0.png" shader="unlit" lazy-load="Y"/>
<material name="rasheeq3.png" shader="unlit" lazy-load="Y"/>
<material name="rasheeq4.png" shader="unlit" lazy-load="Y"/>
<material name="wqyMicroHei0.png" shader="unlit" lazy-load="Y"/>
<material name="wqyMicroHei1.png" shader="unlit" lazy-load="Y"/>
<material name="wqyMicroHei2.png" shader="unlit" lazy-load="Y"/>
<material name="wqyMicroHei3.png" shader="unlit" lazy-load="Y"/>
<material name="wqyMicroHei4.png" shader="unlit" lazy-load="Y"/>
<material name="wqyMicroHei5.png" shader="unlit" lazy-load="Y"/>
<material name="AR_PL_SungtiL_GB0.png" shader="unlit" lazy-load="Y"/>
<material name="LayneHansomBigDigits.png" shader="unlit" lazy-load="Y"/>
</materials>

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -4,25 +4,27 @@
<spreading angle="10" />
<velocity x="0.0"
y="0.002"
y="0.003"
z="0.0" />
<material file="smoke_black.png" />
<!-- Amount of particles emitted per second -->
<rate min="25"
max="50" />
<rate min="7"
max="12" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="2500"
max="5000" />
<!-- Size of the particles -->
<size min="0.6"
max="1.5" />
<size min="1.6"
max="2.5"
x-increase-factor="2.6"
y-increase-factor="2.6" />
<color min="255 255 255"
max="255 255 255" />
<color min="50 50 50"
max="100 100 100" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="1000" />

35
data/gfx/confetti.xml Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<!-- For sky particles, the size of the box is ignored -->
<particles emitter="box" randomize-initial-y="true" box_x="100.0" box_y="100" box_z="120.0">
<spreading angle="3" />
<velocity x="-0.00"
y="-0.005"
z="-0.00" />
<material file="confetti.png" clampu="Y" clampv="Y" />
<!-- Amount of particles emitted per second -->
<rate min="500"
max="1000" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="8500"
max="9500" />
<!-- Size of the particles -->
<size min="0.10"
max="0.30" />
<color min="40 40 255"
max="255 255 255" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="100" />
<wind speed="0.16"
flips="Y" />
</particles>

View File

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<!-- For sky particles, the size of the box is ignored -->
<particles emitter="box" randomize-initial-y="true" box_x="100.0" box_y="100" box_z="120.0">
<spreading angle="3" />
<velocity x="-0.00"
y="-0.005"
z="-0.00" />
<material file="snowflake.png" clampu="Y" clampv="Y" />
<!-- Amount of particles emitted per second -->
<rate min="500"
max="1000" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="8500"
max="9500" />
<!-- Size of the particles -->
<size min="0.10"
max="0.30" />
<color min="40 40 255"
max="255 255 255" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="100" />
<wind speed="0.16"
flips="Y" />
</particles>

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<particles emitter="sphere" radius="20.5">
<spreading angle="120" />
<velocity x="0.002"
y="0.000"
z="0.000" />
<material file="stktex_nebulaCloud_a.png" />
<!-- Amount of particles emitted per second -->
<rate min="1"
max="2" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="20000"
max="30000" />
<!-- Size of the particles -->
<size min="20.5"
max="45.0"
x-increase-factor="1.6"
y-increase-factor="1.6" />
<color min="0 0 0"
max="255 255 255" />
<fadeout time="5000" />
</particles>

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<particles emitter="box" box_x="0.5" box_y="0.5" box_z="0.5">
<spreading angle="45" />
<velocity x="0.000"
y="0.005"
z="0.000" />
<material file="gfx_bubble_a.png" />
<!-- Amount of particles emitted per second -->
<rate min="8"
max="15" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="2000"
max="3000" />
<!-- Size of the particles -->
<size min="0.5"
max="0.8"
x-increase-factor="1.6"
y-increase-factor="1.6" />
<color min="0 0 0"
max="255 255 255" />
<fadeout time="2000" />
</particles>

32
data/gfx/gfx_bubble_a.xml Normal file
View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<particles emitter="box" box_x="0.5" box_y="0.5" box_z="0.5">
<spreading angle="45" />
<velocity x="0.000"
y="0.005"
z="0.000" />
<material file="gfx_bubble_a.png" />
<!-- Amount of particles emitted per second -->
<rate min="3"
max="6" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="3000"
max="6000" />
<!-- Size of the particles -->
<size min="1.1"
max="1.5"
x-increase-factor="1.6"
y-increase-factor="1.6" />
<color min="0 0 0"
max="255 255 255" />
<fadeout time="5000" />
</particles>

View File

@ -0,0 +1,33 @@
<?xml version="1.0"?>
<particles emitter="sphere" radius="0.5">
<spreading angle="180" />
<velocity x="0.003"
y="0.0003"
z="0.003" />
<material file="gfx_sparkFire_a.png" />
<!-- Amount of particles emitted per second -->
<rate min="65"
max="100" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="1700"
max="1700" />
<!-- Size of the particles -->
<size min="0.7"
max="1.1"
x-increase-factor="1.3"
y-increase-factor="1.3"
/>
<color min="255 255 255"
max="255 0 0" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="50" />
</particles>

View File

@ -0,0 +1,33 @@
<?xml version="1.0"?>
<particles emitter="sphere" radius="0.5">
<spreading angle="180" />
<velocity x="0.03"
y="0.003"
z="0.03" />
<material file="gfx_sparkGreen_a.png" />
<!-- Amount of particles emitted per second -->
<rate min="65"
max="100" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="2700"
max="2700" />
<!-- Size of the particles -->
<size min="0.5"
max="0.8"
x-increase-factor="1.1"
y-increase-factor="1.3"
/>
<color min="255 255 255"
max="255 0 0" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="50" />
</particles>

View File

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<!-- For sky particles, the size of the box is ignored -->
<particles emitter="sphere" radius="0.1">
<spreading angle="5" />
<velocity x="-0.000"
y="0.002"
z="-0.000" />
<material file="smoke.png" clampu="Y" clampv="Y" />
<!-- Amount of particles emitted per second -->
<rate min="5"
max="10" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="100"
max="300" />
<!-- Size of the particles -->
<size min="0.2"
max="0.5"
x-increase-factor="1.6"
y-increase-factor="1.6" />
<color min="40 40 255"
max="255 255 255" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="100" />
</particles>

View File

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<!-- For sky particles, the size of the box is ignored -->
<particles emitter="sphere" radius="0.1">
<spreading angle="5" />
<velocity x="-0.000"
y="0.002"
z="-0.000" />
<material file="gfx_sparkFire_a.png" clampu="Y" clampv="Y" />
<!-- Amount of particles emitted per second -->
<rate min="20"
max="50" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="400"
max="500" />
<!-- Size of the particles -->
<size min="0.2"
max="0.3" />
<color min="40 40 255"
max="255 255 255" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="100" />
<wind speed="0.16"
flips="Y" />
</particles>

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<particles emitter="sphere" radius="0.5">
<spreading angle="90" />
<velocity x="0.000"
y="0.003"
z="0.000" />
<material file="gfx_earthJetblast_a.png" />
<!-- Amount of particles emitted per second -->
<rate min="900"
max="1000" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="300"
max="1000" />
<!-- Size of the particles -->
<size min="0.3"
max="0.7"
x-increase-factor="1.2"
y-increase-factor="1.2" />
<color min="0 0 0"
max="255 255 255" />
<fadeout time="500" />
</particles>

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<particles emitter="sphere" radius="0.1">
<spreading angle="12" />
<velocity x="0.000"
y="0.000"
z="0.005" />
<material file="particle_water.png" />
<!-- Amount of particles emitted per second -->
<rate min="30"
max="50" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="500"
max="1000" />
<!-- Size of the particles -->
<size min="0.1"
max="0.2"
x-increase-factor="1.3"
y-increase-factor="1.3" />
<color min="255 255 255"
max="255 255 255" />
<fadeout time="3000" />
</particles>

View File

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<!-- For sky particles, the size of the box is ignored -->
<particles emitter="sphere" radius="0.2">
<spreading angle="10" />
<velocity x="-0.000"
y="0.003"
z="-0.000" />
<material file="gfx_sparkBlue_a.png" clampu="Y" clampv="Y" />
<!-- Amount of particles emitted per second -->
<rate min="20"
max="50" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="1000"
max="1500" />
<!-- Size of the particles -->
<size min="0.08"
max="0.15"
x-increase-factor="1.2"
y-increase-factor="1.3" />
<color min="40 40 255"
max="255 255 255" />
<!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="100" />
<wind speed="0.16"
flips="Y" />
</particles>

View File

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<!-- For sky particles, the size of the box is ignored -->
<particles emitter="box" box_x="0.1" box_y="0.5" box_z="0.1">
<particles emitter="sphere" radius="0.5">
<spreading angle="30" />
<spreading angle="5" />
<velocity x="-0.000"
y="0.002"
@ -16,7 +16,7 @@
max="50" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="3000"
<lifetime min="1000"
max="3000" />
<!-- Size of the particles -->

View File

@ -1,7 +1,7 @@
<supertuxkart_grand_prix name="Off the beaten track">
<track id="30_chocolate" laps="3" reverse="false" />
<track id="cocoa_temple" laps="3" reverse="false" />
<track id="snowmountain" laps="3" reverse="false" />
<track id="hacienda" laps="3" reverse="false" />
<track id="zengarden" laps="4" reverse="false" />

View File

@ -1,10 +1,10 @@
<supertuxkart_grand_prix name="To the moon and back">
<track id="20_island" laps="3" reverse="false" />
<track id="gran_paradiso_island" laps="3" reverse="false" />
<track id="greenvalley" laps="2" reverse="false" />
<track id="mansion" laps="3" reverse="false" />
<track id="startrack" laps="3" reverse="false" />
<track id="stk_enterprise" laps="3" reverse="false" />
<track id="city" laps="2" reverse="false" />
</supertuxkart_grand_prix>

View File

@ -2,6 +2,8 @@
<graphical-restrictions>
<card is="Intel(R) HD Graphics 3000" os="windows" disable="UniformBufferObject"/>
<card is="Intel(R) HD Graphics 3000" os="windows" disable="AdvancedPipeline"/>
<card is="Intel(R) HD Graphics 3000" os="windows" disable="FramebufferSRGBWorking"/>
<card contains="Intel" os="osx" disable="GI"/>
<card contains="Intel" disable="TextureCompressionS3TC"/>
<card contains="Intel" os="windows" disable="HighDefinitionTextures"/>
<card contains="NVIDIA" os="windows" version="<344.65" disable="BufferStorage"/>
@ -10,6 +12,14 @@
<card contains="Mesa" os="linux" version="<10.3" disable="BufferStorage"/>
<card contains="Mesa" os="linux" version="<10.3" disable="DriverRecentEnough"/>
<card contains="Mesa" os="linux" version="<10.6" disable="GeometryShader4"/>
<card contains="Radeon" version="<14.300" disable="DriverRecentEnough"/>
<card contains="Mesa" os="linux" disable="TextureCompressionS3TC"/>
<card contains="Gallium" os="linux" version="<10.3" disable="BufferStorage"/>
<card contains="Gallium" os="linux" version="<10.3" disable="DriverRecentEnough"/>
<card contains="Gallium" os="linux" version="<10.6" disable="GeometryShader4"/>
<card contains="Gallium" os="linux" disable="TextureCompressionS3TC"/>
<!-- On osx radeon appears to have different version numbers, e.g.
1.32.20 -->
<card contains="Radeon" os="linux" version="<14.300" disable="DriverRecentEnough"/>
<card contains="Radeon" os="windows" version="<14.300" disable="DriverRecentEnough"/>
</graphical-restrictions>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/back.png"/>
<div x="5%" y="2%" width="90%" height="96%" layout="vertical-row" >
<header I18N="Title for challenges screen" text="Challenges : Trophy Room" text_align="center" align="center" width="80%" />
<spacer height="5" width="100%"/>
<box width="100%" proportion="5" layout="vertical-row">
<ribbon_grid id="challenges" proportion="8" width="100%"
label_location="bottom" align="center" child_width="128" child_height="128" />
<spacer proportion="1" width="100%"/>
</box>
</div>
</stkgui>

View File

@ -25,9 +25,20 @@
<div layout="horizontal-row" width="100%" proportion="1">
<spacer width="70" height="10" />
<div layout="horizontal-row" proportion="1" height="fit">
<label text="Shadows" I18N="Video settings"/>
<spacer width="10" height="10"/>
<gauge id="shadows" min_value="0" max_value="2" width="50%"/>
<gauge id="shadows" min_value="0" max_value="2" proportion="1"/>
</div>
<spacer height="4" width="10" />
<div layout="horizontal-row" proportion="1" height="fit">
<checkbox id="ibl"/>
<spacer width="10" height="10"/>
<label text="Image-based lighting" I18N="Video settings"/>
</div>
</div>
<spacer height="4" width="10" />

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<label id="title" width="100%" text_align="center" word_wrap="true"
I18N="In the 'add new player' dialog" text="Enter the new player's name" proportion="1" />
<spacer height="25" width="10" />
<textbox id="textfield" width="75%" I18N="In the 'add new player' dialog" align="center"/>
<spacer height="20" width="20" />
<buttonbar proportion="1" id="options" width="100%" height="100%">
<button id="ok" I18N="In the 'add new player' dialog" text="OK" align="center"/>
<button id="cancel" I18N="In the 'add new player' dialog" text="Cancel" align="center"/>
</buttonbar>
<spacer height="15" width="20" />
</div>
</stkgui>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -39,31 +39,31 @@
<spacer width="10" height="10" />
<buttonbar id="menu_bottomrow" x="0" y="0" width="38%" height="100%" align="center">
<icon-button id="test_gpwin" width="64" height="64" icon="gui/main_options.png" extend_label="50"
<icon-button id="test_gpwin" width="64" height="64" icon="gui/main_options.png"
raw_text="TEST: GPWin" label_location="hover"/>
<icon-button id="test_gplose" width="64" height="64" icon="gui/main_options.png" extend_label="50"
<icon-button id="test_gplose" width="64" height="64" icon="gui/main_options.png"
raw_text="TEST: GPLose" label_location="hover"/>
<icon-button id="test_unlocked" width="64" height="64" icon="gui/main_options.png" extend_label="50"
<icon-button id="test_unlocked" width="64" height="64" icon="gui/main_options.png"
raw_text="TEST: Unlocked" label_location="hover"/>
<icon-button id="test_unlocked2" width="64" height="64" icon="gui/main_options.png" extend_label="50"
<icon-button id="test_unlocked2" width="64" height="64" icon="gui/main_options.png"
raw_text="TEST: Unlocked 2" label_location="hover"/>
<icon-button id="test_intro" width="64" height="64" icon="gui/main_options.png" extend_label="50"
<icon-button id="test_intro" width="64" height="64" icon="gui/main_options.png"
raw_text="TEST: Intro" label_location="hover"/>
<icon-button id="test_outro" width="64" height="64" icon="gui/main_options.png" extend_label="50"
<icon-button id="test_outro" width="64" height="64" icon="gui/main_options.png"
raw_text="TEST: Outro" label_location="hover"/>
<icon-button id="options" width="64" height="64" icon="gui/main_options.png" extend_label="50"
<icon-button id="options" width="64" height="64" icon="gui/main_options.png"
I18N="In the main screen" text="Options" label_location="hover"/>
<icon-button id="help" width="64" height="64" icon="gui/main_help.png" extend_label="50"
<icon-button id="help" width="64" height="64" icon="gui/main_help.png"
I18N="In the main screen" text="Help" label_location="hover"/>
<icon-button id="startTutorial" width="64" height="64" icon="gui/tutorial.png" extend_label="150"
<icon-button id="startTutorial" width="64" height="64" icon="gui/tutorial.png"
I18N="In the main screen" text="Tutorial" label_location="hover"/>
<icon-button id="achievements" width="64" height="64" icon="gui/gp_copy.png" extend_label="150"
<icon-button id="achievements" width="64" height="64" icon="gui/gp_copy.png"
I18N="In the main screen" text="Achievements" label_location="hover"/>
<icon-button id="gpEditor" width="64" height="64" icon="gui/gpeditor.png" extend_label="150"
<icon-button id="gpEditor" width="64" height="64" icon="gui/gpeditor.png"
I18N="In the main screen" text="Grand Prix Editor" label_location="hover"/>
<icon-button id="about" width="64" height="64" icon="gui/main_about.png" extend_label="50"
<icon-button id="about" width="64" height="64" icon="gui/main_about.png"
I18N="In the main screen" text="About" label_location="hover"/>
<icon-button id="quit" width="64" height="64" icon="gui/main_quit.png" extend_label="50"
<icon-button id="quit" width="64" height="64" icon="gui/main_quit.png"
I18N="In the main screen" text="Quit" label_location="hover"/>
</buttonbar>
</bottombar>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="0" y="0" width="100%" height="100%" layout="vertical-row" >
<header text_align="center" width="80%" align="center" I18N="In the server creation screen" text="Server Creation"/>
<header id="title" text_align="center" width="80%" align="center" I18N="In the server creation screen" text="Server Creation"/>
<spacer height="15" width="10"/>
<box proportion="4" width="90%" layout="vertical-row" align="center">
<div width="90%" align="center" layout="vertical-row" y="2%" height="96%">

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="0" y="0" width="100%" height="100%" layout="vertical-row" >
<header text_align="center" width="80%" align="center" I18N="In the online multiplayer screen" text="Online Multiplayer"/>
<spacer height="15" width="10"/>
<box proportion="4" width="90%" layout="vertical-row" align="center">
<div x="2%" y="2%" width="96%" height="96%" layout="vertical-row" id="outer_box" >
<!-- TODO: Here will come some information.. or statistics.. or whatever. Yet to be filled in! It will change depending on state. And I'd also like a close button at the right top. -->
<label I18N="In the online multiplayer screen" proportion="4"
word_wrap="true" text="" align="center"/>
</div>
</box>
<buttonbar id="menu_toprow" proportion="3" width="90%" align="center">
<icon-button id="quick_play" width="128" height="128"
icon="gui/online/menu_quick_play.png" focus_icon="gui/online/menu_quick_play_hover.png"
I18N="In the online multiplayer screen" text="Quick Play"/>
<icon-button id="find_server" width="128" height="128"
icon="gui/online/menu_find_server.png" focus_icon="gui/online/menu_find_server_hover.png"
I18N="In the online multiplayer screen" text="Find Server"/>
<icon-button id="create_server" width="128" height="128"
icon="gui/online/menu_create_server.png" focus_icon="gui/online/menu_create_server_hover.png"
I18N="In the online multiplayer screen" text="Create Server"/>
</buttonbar>
<spacer width="10" height="7%"/>
<bottombar x="2%" width="96%" height="10%" layout="horizontal-row">
<label text_align="left" align="center" height="100%" id="online_status" proportion="1" text=""/>
<spacer width="10" height="10" />
<buttonbar id="menu_bottomrow" x="0" y="0" width="12%" height="100%" align="center">
<icon-button id="profile" width="64" height="64" icon="gui/green_check.png" extend_label="50"
I18N="In the online multiplayer screen" text="Profile" label_location="hover"/>
<icon-button id="sign_out" width="64" height="64" icon="gui/main_quit.png" extend_label="70"
I18N="In the online multiplayer screen" text="Log Out" label_location="hover"/>
</buttonbar>
</bottombar>
</div>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/back.png"/>
</stkgui>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="0" y="0" width="100%" height="fit" layout="vertical-row">
<button id="user-id" width="20%" height="fit" align="right"/>
</div>
<div x="2%" y="2%" width="96%" height="96%" layout="vertical-row" >
<header text_align="center" width="80%" align="center" I18N="In the online multiplayer screen" text="Online Multiplayer"/>
<spacer height="5%" width="25"/>
<box width="100%" height="38%" padding="10" layout="vertical-row">
<bright width="100%" text="Local Networking" align="center" text_align="left" />
<buttonbar id="lan" proportion="2" width="90%" align="center">
<icon-button id="find_lan_server" width="128" height="128"
icon="gui/online/menu_find_server.png" focus_icon="gui/online/menu_find_server_hover.png"
I18N="In the online multiplayer screen" text="Find Server"/>
<icon-button id="create_lan_server" width="128" height="128"
icon="gui/online/menu_create_server.png" focus_icon="gui/online/menu_create_server_hover.png"
I18N="In the online multiplayer screen" text="Create Server"/>
<icon-button id="manage_user" width="128" height="128"
icon="gui/options_players.png"
I18N="In the online multiplayer screen" text="Users"/>
</buttonbar>
</box>
<spacer height="5%" width="25"/>
<box width="100%" height="38%" padding="10" layout="vertical-row">
<bright width="100%" text="Global Networking" align="center" text_align="left" />
<buttonbar id="menu_top_row" proportion="2" width="90%" align="center">
<icon-button id="find_wan_server" width="128" height="128"
icon="gui/online/menu_find_server.png" focus_icon="gui/online/menu_find_server_hover.png"
I18N="In the online multiplayer screen" text="Find Server"/>
<icon-button id="create_wan_server" width="128" height="128"
icon="gui/online/menu_create_server.png" focus_icon="gui/online/menu_create_server_hover.png"
I18N="In the online multiplayer screen" text="Create Server"/>
<icon-button id="quick_wan_play" width="128" height="128"
icon="gui/online/menu_quick_play.png" focus_icon="gui/online/menu_quick_play_hover.png"
I18N="In the online multiplayer screen" text="Quick Play"/>
</buttonbar>
</box>
<bottombar x="2%" width="96%" height="10%" layout="horizontal-row">
<label text_align="left" align="center" height="100%" id="online_status" proportion="1" text=""/>
<spacer width="10" height="10" />
<buttonbar id="menu_bottomrow" x="0" y="0" width="12%" height="100%" align="center">
<icon-button id="profile" width="64" height="64" icon="gui/green_check.png" extend_label="50"
I18N="In the online multiplayer screen" text="Profile" label_location="hover"/>
<icon-button id="sign_out" width="64" height="64" icon="gui/main_quit.png" extend_label="70"
I18N="In the online multiplayer screen" text="Log Out" label_location="hover"/>
</buttonbar>
</bottombar>
</div>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/back.png"/>
</stkgui>

View File

@ -9,7 +9,7 @@
<spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center">
<icon-button id="tab_achievements" width="128" height="128" icon="gui/options_players.png"
<icon-button id="tab_achievements" width="128" height="128" icon="gui/gp_copy.png"
I18N="Section in the profile screen" text="Achievements"/>
<icon-button id="tab_friends" width="128" height="128" icon="gui/options_players.png"/>
<icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png"/>

View File

@ -9,7 +9,7 @@
<spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center">
<icon-button id="tab_achievements" width="128" height="128" icon="gui/options_players.png"/>
<icon-button id="tab_achievements" width="128" height="128" icon="gui/gp_copy.png"/>
<icon-button id="tab_friends" width="128" height="128" icon="gui/options_players.png"
I18N="Section in the profile screen" text="Friends"/>
<icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png"/>

View File

@ -12,7 +12,7 @@
<icon-button id="tab_overview" width="128" height="128" icon="gui/options_ui.png"
I18N="Section in the profile screen" text="Overview"/>
<icon-button id="tab_friends" width="128" height="128" icon="gui/options_players.png" />
<icon-button id="tab_achievements" width="128" height="128" icon="gui/options_players.png"/>
<icon-button id="tab_achievements" width="128" height="128" icon="gui/gp_copy.png"/>
<icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png"/>
</tabs>

View File

@ -8,7 +8,7 @@
<spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center">
<icon-button id="tab_achievements" width="128" height="128" icon="gui/options_players.png"/>
<icon-button id="tab_achievements" width="128" height="128" icon="gui/gp_copy.png"/>
<icon-button id="tab_friends" width="128" height="128" icon="gui/options_players.png" />
<icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png"
I18N="Section in the profile screen" text="Account Settings"/>

View File

@ -18,7 +18,7 @@
<div width="90%" align="center" layout="vertical-row" height="80%">
<div width="100%" height="12%" layout="horizontal-row" >
<label proportion="1" height="100%" text_align="left"
I18N="In the registration dialog" text="Name"/>
I18N="In the registration dialog" text="Local Name"/>
<textbox id="local_username" proportion="2" height="fit" I18N="In the registration dialog"/>
</div>

View File

@ -7,7 +7,7 @@
<spacer height="25" width="50"/>
<box proportion="5" width="90%" align="center" layout="vertical-row" padding="8">
<list id="terms" x="0" y="0" width="100%" height="100%"/>
<label word_wrap="true" id="terms" x="0" y="0" width="100%" height="100%"/>
</box>
<div align="center" width="fit" height="fit" layout="horizontal-row" >

View File

@ -30,7 +30,7 @@
<button id="add_device" I18N="In the input configuration screen" text="Add a device" align="center"/>
<label text="* Which config to use will be inferred from which 'Select' key is pressed to join the game."
<label I18N="In the input configuration screen" text="* Which config to use will be inferred from which 'Select' key is pressed to join the game."
proportion="2" word_wrap="true"/>
</box>
</div>

View File

@ -58,7 +58,7 @@
<div layout="horizontal-row" proportion="1" height="fit">
<checkbox id="perPlayerDifficulty"/>
<spacer width="20" height="100%" />
<label height="100%" I18N="In the ui settings" text="Enable handicapped users"/>
<label height="100%" I18N="In the ui settings" text="Enable per-player handicaps"/>
</div>
</div>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<div x="2%" y="10%" width="96%" height="80%" layout="vertical-row" >
<label raw_text="Run script"/>
<textbox id="textfield" width="75%" I18N="In the 'add new grand prix' dialog" align="center"/>
<spacer height="20" width="20" />
<div align="center" height="fit" width="100%" layout="horizontal-row">
<button id="run" raw_text="Run" align="center" proportion="1"/>
<spacer height="20" width="20" />
<button id="close" raw_text="Close" align="center" proportion="1"/>
</div>
</div>
</stkgui>

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<stkgui>
<icon-button id="back" x="0" y="0" height="8%" icon="gui/back.png"/>
<div x="5%" y="2%" width="90%" height="96%" layout="vertical-row" >
<header I18N="Title for tutorials screen" text="Tutorial : Selection Room" text_align="center" width="100%" />
<spacer proportion="1" width="100%"/>
<list id="tutorials" proportion="5" width="75%" align="center"/>
<spacer proportion="1" width="100%"/>
<spacer width="100%" height="45"/>
</div>
<button id="play" x="-200" y="-40" height="35" align="right" text="Play all"/>
</stkgui>

View File

@ -1,23 +1,82 @@
#!/bin/sh
#!/bin/bash
#
# (C) 2013 Lauri Kasanen, under the GPLv3
# (C) 2014-2015 Odd0002, under the GPLv3
#
# Script to optimize the data, currently PNG, JPEG, B3DZ.
# experimental B3D to B3DZ compression added, not enabled by default
# Run it before making a release, and after adding new data.
# Takes 5-10min depending on your cpu.
#Takes 30+ minutes, depending on your cpu or compression options.
# Spaces in filenames are supported.
#define number of threads
threads=$(nproc)
# Start checks
#if you do not want to use a program, set the variable for it to false here
jpegtran=true
advdef=true
advzip=true
optipng=true
convert=true
fail=0
which awk >/dev/null && which jpegtran >/dev/null && which advdef >/dev/null && \
which advzip >/dev/null || fail=1
#WARNING! SETTING TO TRUE MAY POSSIBLY INCREASE LOAD TIMES ON A SLOW CPU (UNTESTED) OR LEAD TO FILE NOT FOUND ERRORS WHEN RUNNING SUPERTUXKART!
compress_b3d=false
#---------------------------------------------------------
# Begin main code
#Check for reqired programs; if a program is not available, disable it or quit the program
#TODO: make awk optional
if [ ! $(which awk) ]
then
echo "Please install awk. It is required by this program. \nQuitting..."
exit 1
fi
#check for jpegtran
if [ ! $(which jpegtran) ]
then
echo "jpegtran not installed, therefore it will not be used. It is included in the package \"libjpeg-progs\"."; jpegtran=false
sleep 2
fi
#check for advdef
if [ ! $(which advdef) ]
then
echo "advdef is not installed, therefore it will not be used. It is included in the package \"advancecomp\"."; advdef=false
sleep 2
fi
#check for advzip
if [ ! $(which advzip) ]
then
echo "advzip is not installed, therefore it will not be used. It is included in the package \"advancecomp\"."; advzip=false
sleep 2
fi
#check for convert
if [ ! $(which convert) ]
then
echo "convert is not installed, therefore it will not be used."; convert=false
sleep 2
fi
#check for optipng
if [ ! $(which optipng) ]
then
echo "optipng is not installed, therefore it will not be used."; optipng=false
sleep 2
fi
[ "$fail" -eq 1 ] && echo "Please install awk, advdef and jpegtran" && exit 1
# Defines
#Internal Field Seperator
IFS="
"
@ -25,25 +84,125 @@ export LANG=C
# Go
#store disk usage of files beforehand
BEFORE=`du -sk | awk '{print $1}'`
for png in `find -name "*.png"`; do
advdef -z4 "$png"
#functions for xargs multithreading, used instead of GNU parallel for cross-compatibility
#TODO: let next set of optimization scripts run if one set is stuck on a single file at the end to decrease total runtime
#strip ICC information off PNG's
strippng () {
for arg; do
convert "$arg" -strip "$arg"
done
}
export -f strippng
#optimize PNG's
optimpng () {
for arg; do
optipng -quiet -o3 "$arg"
#level 3 = 16 trials, which according to http://optipng.sourceforge.net/pngtech/optipng.html (retrieved October 2014) should be satisfactory for all users
done
}
export -f optimpng
#compress PNG in-stream data
comprpng () {
for arg; do
advdef -z4 "$arg"
done
}
export -f comprpng
#optimize and recompress jpeg files (losslessly)
optimjpg () {
for arg; do
jpegtran -optimize -copy none -outfile "$arg".$$ "$arg"
mv "$arg".$$ "$arg"
done
}
export -f optimjpg
#recompress b3dz files
recomprb3dz () {
for arg; do
advzip -z4 "$arg"
done
}
export -f recomprb3dz
#END MULTITHREADING FUNCTIONS
#strip png icc information
if [ "$convert" = true ]; then
find . -path .svn -prune -o -name "*.png" -print0 | xargs -0 -n 1 -P "$threads" bash -c 'strippng "$@"' -- #multithread the png stripping
else echo "convert not installed. Ignoring commands using convert..."; sleep 1
fi
#lossless png image optimization
if [ "$optipng" = true ]; then
find . -path .svn -prune -o -name "*.png" -print0 | xargs -0 -n 1 -P "$threads" bash -c 'optimpng "$@"' -- #multithread the png optimization
else echo "optipng not installed. Ignoring commands using optipng..."; sleep 1
fi
#in-stream data/png compression
if [ "$advdef" = true ]; then
find . -path .svn -prune -o -name "*.png" -print0 | xargs -0 -n 1 -P "$threads" bash -c 'comprpng "$@"' -- #multithread image compression
else echo "advdef is not installed. Ignoring commands using advdef..."; sleep 1
fi
#lossless jpeg optimization/recompression
if [ "$jpegtran" = true ]; then
find . -path .svn -prune -o -name "*.jpg" -print0 | xargs -0 -n 1 -P "$threads" bash -c 'optimjpg "$@"' -- #multithread jpg compression and optimization
else echo "jpegtran not installed. Ignoring commands using jpegtran..."; sleep 1
fi
#b3dz to b3dz compression
#WARNING: BETA, MAY CAUSE MISSING FILE WARNINGS!
if [ "$compress_b3d" = true ]; then
for xmls in $(find . -name "*.xml"); do
sed 's/b3d/b3dz/g' "$xmls" > "$xmls".$$
mv "$xmls".$$ "$xmls"
#echo "$xmls"
sed 's/b3dzz/b3dz/g' "$xmls" > "$xmls".$$
mv "$xmls".$$ "$xmls"
sed 's/b3dzz/b3dz/g' "$xmls" > "$xmls".$$
mv "$xmls".$$ "$xmls"
done
for jpeg in `find -name "*.jpg"`; do
jpegtran -optimize -copy none -outfile "$jpeg".$$ "$jpeg"
mv "$jpeg".$$ "$jpeg"
find . -name "*.b3d" -execdir zip '{}.zip' '{}' \;
for b3dzip in $(find -name "*.b3d.zip"); do
b3dz="${b3dzip%.zip}"
#echo "$b3dz"
mv "$b3dzip" "${b3dz}z"
done
for b3dz in `find -name "*.b3dz"`; do
advzip -z4 "$b3dz"
done
find . -type d -name "models" -prune -o -name "*.b3d" -print0 | xargs -0 rm
else echo "b3d to b3dz compression disabled. Ignoring actions..."; sleep 1
fi
#b3dz file stream compression
if [ "$advzip" = true ]; then
find . -path .svn -prune -o -name "*.b3dz" -print0 | xargs -0 -n 1 -P "$threads" bash -c 'recomprb3dz "$@"' -- #multithread b3dz recompression
else echo "advzip not installed. Ignoring commands using advzip..."; sleep 1
fi
# Add optimizations for other types if necessary
# get and store new disk usage info
AFTER=`du -sk | awk '{print $1}'`
# Print stats out
echo $BEFORE $AFTER | awk '{print "Before: " $1/1024 "mb, after: " $2/1024 "mb" }'
echo $BEFORE $AFTER | awk '{print "Size before: " $1/1024 "mb; Size after: " $2/1024 "mb" }'
echo $BEFORE $AFTER | awk '{print "Saved " (1-($2/$1)) * 100 "%" }'

1
data/po/.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
*.sh -crlf

3
data/po/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
transifex
tx.exe
gui_strings.h

File diff suppressed because it is too large Load Diff

3801
data/po/be.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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