Merge branch 'master' into wayland
6
.gitignore
vendored
@ -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
|
||||
|
40
CHANGELOG.md
@ -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
|
||||
|
115
CMakeLists.txt
@ -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
@ -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, ...
|
||||
|
||||
|
33
cmake/FindAngelscript.cmake
Normal 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
@ -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()
|
||||
|
20
cmake/Toolchain-mingw-64bit.cmake
Normal 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)
|
@ -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
@ -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"/>
|
||||
|
@ -10,7 +10,7 @@
|
||||
</hard>
|
||||
<medium>
|
||||
<karts number="4"/>
|
||||
<requirements time="190"/>
|
||||
<requirements time="185"/>
|
||||
</medium>
|
||||
<easy>
|
||||
<karts number="4"/>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
</hard>
|
||||
<medium>
|
||||
<karts number="4"/>
|
||||
<requirements time="145"/>
|
||||
<requirements time="130"/>
|
||||
</medium>
|
||||
<easy>
|
||||
<karts number="4"/>
|
||||
|
@ -14,6 +14,6 @@
|
||||
</medium>
|
||||
<easy>
|
||||
<karts number="4"/>
|
||||
<requirements time="215"/>
|
||||
<requirements time="255"/>
|
||||
</easy>
|
||||
</challenge>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -10,7 +10,7 @@
|
||||
</hard>
|
||||
<medium>
|
||||
<karts number="4"/>
|
||||
<requirements time="175"/>
|
||||
<requirements time="170"/>
|
||||
</medium>
|
||||
<easy>
|
||||
<karts number="4"/>
|
||||
|
@ -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"/>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 4.3 KiB |
@ -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>
|
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 11 KiB |
@ -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
@ -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>
|
35
data/gfx/confetti_bleu.xml
Normal 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>
|
32
data/gfx/gfx_blueNebula_a.xml
Normal 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>
|
32
data/gfx/gfx_bubbleFast_a.xml
Normal 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
@ -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>
|
33
data/gfx/gfx_fireworkExplosion_a.xml
Normal 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>
|
33
data/gfx/gfx_fireworkGreen_a.xml
Normal 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>
|
35
data/gfx/gfx_fireworkSmoke_a.xml
Normal 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>
|
35
data/gfx/gfx_firework_a.xml
Normal 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>
|
32
data/gfx/gfx_sandExplosion_a.xml
Normal 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>
|
32
data/gfx/gfx_smallWaterFlow.xml
Normal 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>
|
37
data/gfx/gfx_sparkBlue_a.xml
Normal 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>
|
@ -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 -->
|
||||
|
@ -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" />
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
@ -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" />
|
||||
|
@ -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>
|
@ -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>
|
@ -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%">
|
||||
|
@ -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>
|
63
data/gui/online/online_screen.stkgui
Normal 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>
|
@ -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"/>
|
||||
|
@ -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"/>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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"/>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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" >
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
17
data/gui/scripting_console.stkgui
Normal 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>
|
@ -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>
|
@ -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
@ -0,0 +1 @@
|
||||
*.sh -crlf
|
3
data/po/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
transifex
|
||||
tx.exe
|
||||
gui_strings.h
|