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*/ bld*/
build*/ build*/
cmake_build/ cmake_build/
cmake_build*/
dependencies/ dependencies/
CMakeFiles/ CMakeFiles/
stk-editor/ stk-editor/
.config/ .config/
supertuxkart-64 supertuxkart-64
make*.bat
data/editor data/editor
data/karts data/karts
@ -16,6 +18,7 @@ data/music
data/sfx data/sfx
data/textures data/textures
data/tracks data/tracks
data/wip-tracks
data/.svn data/.svn
# Ignore doxygen output # Ignore doxygen output
@ -41,6 +44,9 @@ src/html
*~ *~
*.swp *.swp
# Ignore QtCreator project file
CMakeLists.txt.user
packets_log.txt packets_log.txt
history.dat history.dat
README.dependencies 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 * New track STK Enterprise
* Updated track The old mines * Updated track The old mines
* Updated Lighthouse track * Updated Lighthouse track
@ -18,8 +45,7 @@
* Wiimote support * Wiimote support
## SuperTuxKart 0.8 (11. December 2012)
##SuperTuxKart 0.8
* Story mode and new challenge set * Story mode and new challenge set
* Improved AI * Improved AI
* Skidding and better collision physics * Skidding and better collision physics
@ -34,7 +60,7 @@
* New music * New music
##SuperTuxKart 0.7.3 ## SuperTuxKart 0.7.3 (2. November 2011)
* New Zen Garden and Subsea tracks * New Zen Garden and Subsea tracks
* New Island battle arena * New Island battle arena
* New Suzanne kart * New Suzanne kart
@ -50,7 +76,7 @@
* Better placement of rescued karts * Better placement of rescued karts
* Transition track-making to blender 2.5/2.6 * 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 * Added in-game addon manager
* Fixed major memory leaks * Fixed major memory leaks
* New Snow Peak track by Samuncle * New Snow Peak track by Samuncle
@ -60,11 +86,11 @@
* Improve gamepad configuration under Windows (add ability to tell gamepads apart) * Improve gamepad configuration under Windows (add ability to tell gamepads apart)
* Various other tweaks done and glitches fixed * Various other tweaks done and glitches fixed
##SuperTuxKart 0.7.1b ## SuperTuxKart 0.7.1b (21. April 2011)
* Fix circular dependency in challenges * Fix circular dependency in challenges
* Updated translations * Updated translations
##SuperTuxKart 0.7.1 ## SuperTuxKart 0.7.1 (15. April 2011)
* Particle (smoke, splash, fire) and weather effects * Particle (smoke, splash, fire) and weather effects
* New Fort Magma by Samuncle, new Shiny Suburbs track by Horace * New Fort Magma by Samuncle, new Shiny Suburbs track by Horace
* New Beagle kart by wolterh * New Beagle kart by wolterh

View File

@ -2,7 +2,7 @@
project(SuperTuxKart) project(SuperTuxKart)
set(PROJECT_VERSION "0.8.1") 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)) if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3))
cmake_policy(SET CMP0043 OLD) cmake_policy(SET CMP0043 OLD)
endif() endif()
@ -16,13 +16,13 @@ if (NOT CMAKE_BUILD_TYPE)
endif() endif()
option(USE_WIIUSE "Support for wiimote input devices" ON) 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(USE_FRIBIDI "Support for right-to-left languages" ON)
option(CHECK_ASSETS "Check if assets are installed in ../stk-assets" 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) if(MSVC AND (MSVC_VERSION LESS 1900))
option(USE_CPP2011 "Activate C++ 2011 mode (GCC only)" OFF)
endif()
if(MSVC OR MINGW)
# Normally hide the option to build wiiuse on VS, since it depends # Normally hide the option to build wiiuse on VS, since it depends
# on the installation of the Windows DDK (Driver Developer Kit), # on the installation of the Windows DDK (Driver Developer Kit),
# which also needs an absolute path :( # which also needs an absolute path :(
@ -32,7 +32,7 @@ else()
set(WIIUSE_BUILD ON) set(WIIUSE_BUILD ON)
endif() endif()
if(MINGW) if(MINGW OR CYGWIN)
set(USE_WIIUSE OFF) set(USE_WIIUSE OFF)
endif() endif()
@ -124,9 +124,21 @@ elseif(MSVC)
endif() 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") add_subdirectory("${PROJECT_SOURCE_DIR}/lib/angelscript/projects/cmake")
include_directories("${PROJECT_SOURCE_DIR}/lib/angelscript/include") include_directories("${PROJECT_SOURCE_DIR}/lib/angelscript/include")
set(Angelscript_LIBRARIES angelscript)
endif()
# OpenAL # OpenAL
if(APPLE) if(APPLE)
@ -153,6 +165,17 @@ else()
include_directories(${OGGVORBIS_INCLUDE_DIRS}) include_directories(${OGGVORBIS_INCLUDE_DIRS})
endif() 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 # Fribidi
if(USE_FRIBIDI) if(USE_FRIBIDI)
find_package(Fribidi) find_package(Fribidi)
@ -172,13 +195,6 @@ if (OPENMP_FOUND)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif() endif()
if(UNIX OR MINGW)
# if(USE_CPP2011)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
# endif()
endif()
# OpenGL # OpenGL
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR}) include_directories(${OPENGL_INCLUDE_DIR})
@ -198,18 +214,32 @@ if(UNIX AND NOT APPLE)
endif() endif()
endif() endif()
# Set some compiler options # Set some compiler options
if(UNIX OR MINGW) if(UNIX OR MINGW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
endif() 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) if(WIN32)
# By default windows.h has macros defined for min and max that screw up everything # By default windows.h has macros defined for min and max that screw up everything
add_definitions(-DNOMINMAX) add_definitions(-DNOMINMAX)
# And shut up about unsafe stuff # And shut up about unsafe stuff
add_definitions(-D_CRT_SECURE_NO_WARNINGS) 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() endif()
if(MSVC) if(MSVC)
@ -278,7 +308,7 @@ else()
if(MSVC) if(MSVC)
set(PTHREAD_NAMES pthreadVC2) set(PTHREAD_NAMES pthreadVC2)
elseif(MINGW) elseif(MINGW)
set(PTHREAD_NAMES "winpthread-1" pthreadGC2) set(PTHREAD_NAMES "winpthread-1" "libwinpthread-1" "pthreadGC2")
endif() endif()
find_library(PTHREAD_LIBRARY NAMES pthread ${PTHREAD_NAMES} PATHS ${PROJECT_SOURCE_DIR}/dependencies/lib) find_library(PTHREAD_LIBRARY NAMES pthread ${PTHREAD_NAMES} PATHS ${PROJECT_SOURCE_DIR}/dependencies/lib)
mark_as_advanced(PTHREAD_LIBRARY) mark_as_advanced(PTHREAD_LIBRARY)
@ -316,11 +346,12 @@ target_link_libraries(supertuxkart
enet enet
glew glew
stkirrlicht stkirrlicht
angelscript ${Angelscript_LIBRARIES}
${CURL_LIBRARIES} ${CURL_LIBRARIES}
${OGGVORBIS_LIBRARIES} ${OGGVORBIS_LIBRARIES}
${OPENAL_LIBRARY} ${OPENAL_LIBRARY}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${FREETPYE_LIBRARIES}
) )
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
@ -351,6 +382,11 @@ if(USE_FRIBIDI)
add_definitions(-DENABLE_BIDI) add_definitions(-DENABLE_BIDI)
endif() endif()
if(USE_FREETYPE)
target_link_libraries(supertuxkart ${FREETYPE_LIBRARIES})
add_definitions(-DENABLE_FREETYPE)
endif()
# Wiiuse # Wiiuse
# ------ # ------
if(USE_WIIUSE) if(USE_WIIUSE)
@ -380,25 +416,23 @@ if(MSVC OR MINGW)
add_custom_target(stkshaders SOURCES ${STK_SHADERS}) add_custom_target(stkshaders SOURCES ${STK_SHADERS})
endif() endif()
# Optional tools if(MINGW)
add_subdirectory(tools/font_tool) 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/)
# ==== Make dist target ==== endif()
if(MSVC OR MINGW) find_library(LIBSTDCPP NAMES "libstdc++-6.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
# Don't create a dist target for VS if(LIBSTDCPP)
else() file(COPY ${LIBSTDCPP} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
add_custom_target(dist endif()
COMMAND rm -rf ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION} && rm -f ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION}.tar.bz2 find_library(LIBOPENMP NAMES "libgomp-1.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
&& echo "Exporting..." if(LIBOPENMP)
&& svn export ${PROJECT_SOURCE_DIR} ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION} file(COPY ${LIBOPENMP} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
&& echo "Compressing..." endif()
&& cd ${CMAKE_BINARY_DIR} find_library(LIBPTHREAD NAMES "winpthread-1.dll" "libwinpthread-1.dll" "pthreadGC2.dll" PATHS ${CMAKE_FIND_ROOT_PATH})
&& tar -cjf ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION}.tar.bz2 ./SuperTuxKart-${PROJECT_VERSION} if(LIBPTHREAD)
&& echo "Done, cleaning up" file(COPY ${LIBPTHREAD} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
&& rm -rf ${CMAKE_BINARY_DIR}/SuperTuxKart-${PROJECT_VERSION} endif()
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
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) install(DIRECTORY ${STK_ASSETS_DIR} DESTINATION ${STK_INSTALL_DATA_DIR}/data PATTERN ".svn" EXCLUDE PATTERN ".git" EXCLUDE)
endif() endif()
install(FILES ${STK_DATA_DIR}/supertuxkart.desktop DESTINATION share/applications) 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_32.png DESTINATION share/icons/hicolor/32x32/apps RENAME supertuxkart.png)
install(FILES data/supertuxkart_128.png DESTINATION share/icons/hicolor/128x128 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_32.png data/supertuxkart_128.png DESTINATION share/pixmaps)
install(FILES data/supertuxkart.appdata.xml DESTINATION share/appdata) 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 ##TODO
THIS IS A 2nd TEST.
THIS IS A TEST.
SuperTuxKart is looking for additional man power to make this SuperTuxKart is looking for additional man power to make this
one of the best free linux games out there :) We need (in one of the best free linux games out there :) We need (in
no particular order): no particular order):
@ -15,17 +12,13 @@ no particular order):
- Create additional art work for tracks, - Create additional art work for tracks,
background images background images
3. Developers 3. Developers
- See todo list below - it's rather long at the moment :) - Check our bug and enhancement request tracker on
4. Web master https://github.com/supertuxkart/stk-code/issues
- Extend the current web page, keep it up to date - Extend the current web page, keep it up to date
5. Tester 4. Tester
- For just about everything - For just about everything
- Esp. different platforms - Esp. different platforms and graphics cards
6. Package creators 5. Writers
- Create packages for
- most common Linux distributions
- Windows
7. Writers
- Write documentation, ranging from man page, to - Write documentation, ranging from man page, to
a description for the web, to a design document, ... 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 # the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows) 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) SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
# here is the target environment located # 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: # adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search # search headers and libraries in the target environment, search
# programs in the host environment # programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 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) 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> <achievements>
<achievement id="1" check-type="all-at-least" reset-type="never" <achievement id="1" check-type="all-at-least" reset-type="never"
name="Christoffel Columbus" description="Play every official track at least once." > name="Christoffel Columbus" description="Play every official track at least once." >
<city goal="1"/>
<cocoa_temple goal="1"/>
<farm goal="1"/> <farm goal="1"/>
<scotland goal="1"/> <fortmagma goal="1"/>
<lighthouse goal="1"/> <gran_paradiso_island goal="1"/>
<sandtrack goal="1"/> <greenvalley goal="1"/>
<olivermath goal="1"/>
<subsea goal="1"/>
<mansion goal="1"/>
<minigolf goal="1"/>
<hacienda 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>
<achievement id="2" check-type="all-at-least" reset-type="never" <achievement id="2" check-type="all-at-least" reset-type="never"
name="Strike!" description="Hit 10 karts with a bowling-ball."> name="Strike!" description="Hit 10 karts with a bowling-ball.">
@ -30,7 +40,7 @@
<skidding goal="5"/> <skidding goal="5"/>
</achievement> </achievement>
<achievement id="6" check-type="all-at-least" reset-type="never" <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"/> <standard goal="1"/>
<std_timetrial goal="1"/> <std_timetrial goal="1"/>
<follow_leader goal="1"/> <follow_leader goal="1"/>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -6,15 +6,15 @@
<hard> <hard>
<karts number="1"/> <karts number="1"/>
<requirements energy="18" time="135"/> <requirements energy="18" time="120"/>
</hard> </hard>
<medium> <medium>
<karts number="1"/> <karts number="1"/>
<requirements energy="15" time="155"/> <requirements energy="15" time="135"/>
</medium> </medium>
<easy> <easy>
<karts number="1"/> <karts number="1"/>
<requirements energy="12" time="170"/> <requirements energy="12" time="180"/>
</easy> </easy>
</challenge> </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" /> <spreading angle="10" />
<velocity x="0.0" <velocity x="0.0"
y="0.002" y="0.003"
z="0.0" /> z="0.0" />
<material file="smoke_black.png" /> <material file="smoke_black.png" />
<!-- Amount of particles emitted per second --> <!-- Amount of particles emitted per second -->
<rate min="25" <rate min="7"
max="50" /> max="12" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. --> <!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="2500" <lifetime min="2500"
max="5000" /> max="5000" />
<!-- Size of the particles --> <!-- Size of the particles -->
<size min="0.6" <size min="1.6"
max="1.5" /> max="2.5"
x-increase-factor="2.6"
y-increase-factor="2.6" />
<color min="255 255 255" <color min="50 50 50"
max="255 255 255" /> max="100 100 100" />
<!-- How much time in milliseconds before the particle is fully faded out --> <!-- How much time in milliseconds before the particle is fully faded out -->
<fadeout time="1000" /> <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"?> <?xml version="1.0"?>
<!-- For sky particles, the size of the box is ignored --> <!-- 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" <velocity x="-0.000"
y="0.002" y="0.002"
@ -16,7 +16,7 @@
max="50" /> max="50" />
<!-- Minimal and maximal lifetime of a particle, in milliseconds. --> <!-- Minimal and maximal lifetime of a particle, in milliseconds. -->
<lifetime min="3000" <lifetime min="1000"
max="3000" /> max="3000" />
<!-- Size of the particles --> <!-- Size of the particles -->

View File

@ -1,7 +1,7 @@
<supertuxkart_grand_prix name="Off the beaten track"> <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="snowmountain" laps="3" reverse="false" />
<track id="hacienda" laps="3" reverse="false" /> <track id="hacienda" laps="3" reverse="false" />
<track id="zengarden" laps="4" reverse="false" /> <track id="zengarden" laps="4" reverse="false" />

View File

@ -1,10 +1,10 @@
<supertuxkart_grand_prix name="To the moon and back"> <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="greenvalley" laps="2" reverse="false" />
<track id="mansion" laps="3" 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" /> <track id="city" laps="2" reverse="false" />
</supertuxkart_grand_prix> </supertuxkart_grand_prix>

View File

@ -2,6 +2,8 @@
<graphical-restrictions> <graphical-restrictions>
<card is="Intel(R) HD Graphics 3000" os="windows" disable="UniformBufferObject"/> <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="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" disable="TextureCompressionS3TC"/>
<card contains="Intel" os="windows" disable="HighDefinitionTextures"/> <card contains="Intel" os="windows" disable="HighDefinitionTextures"/>
<card contains="NVIDIA" os="windows" version="<344.65" disable="BufferStorage"/> <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="BufferStorage"/>
<card contains="Mesa" os="linux" version="<10.3" disable="DriverRecentEnough"/> <card contains="Mesa" os="linux" version="<10.3" disable="DriverRecentEnough"/>
<card contains="Mesa" os="linux" version="<10.6" disable="GeometryShader4"/> <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> </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"> <div layout="horizontal-row" width="100%" proportion="1">
<spacer width="70" height="10" /> <spacer width="70" height="10" />
<div layout="horizontal-row" proportion="1" height="fit">
<label text="Shadows" I18N="Video settings"/> <label text="Shadows" I18N="Video settings"/>
<spacer width="10" height="10"/> <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> </div>
<spacer height="4" width="10" /> <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" /> <spacer width="10" height="10" />
<buttonbar id="menu_bottomrow" x="0" y="0" width="38%" height="100%" align="center"> <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"/> 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"/> 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"/> 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"/> 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"/> 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"/> 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"/> 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"/> 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"/> 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"/> 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"/> 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"/> 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"/> I18N="In the main screen" text="Quit" label_location="hover"/>
</buttonbar> </buttonbar>
</bottombar> </bottombar>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<stkgui> <stkgui>
<div x="0" y="0" width="100%" height="100%" layout="vertical-row" > <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"/> <spacer height="15" width="10"/>
<box proportion="4" width="90%" layout="vertical-row" align="center"> <box proportion="4" width="90%" layout="vertical-row" align="center">
<div width="90%" align="center" layout="vertical-row" y="2%" height="96%"> <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"/> <spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center"> <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"/> 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_friends" width="128" height="128" icon="gui/options_players.png"/>
<icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.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"/> <spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center"> <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_friends" width="128" height="128" icon="gui/options_players.png"
I18N="Section in the profile screen" text="Friends"/> I18N="Section in the profile screen" text="Friends"/>
<icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png"/> <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" <icon-button id="tab_overview" width="128" height="128" icon="gui/options_ui.png"
I18N="Section in the profile screen" text="Overview"/> 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_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"/> <icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png"/>
</tabs> </tabs>

View File

@ -8,7 +8,7 @@
<spacer height="25" width="10"/> <spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center"> <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_friends" width="128" height="128" icon="gui/options_players.png" />
<icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png" <icon-button id="tab_settings" width="128" height="128" icon="gui/main_options.png"
I18N="Section in the profile screen" text="Account Settings"/> 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="90%" align="center" layout="vertical-row" height="80%">
<div width="100%" height="12%" layout="horizontal-row" > <div width="100%" height="12%" layout="horizontal-row" >
<label proportion="1" height="100%" text_align="left" <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"/> <textbox id="local_username" proportion="2" height="fit" I18N="In the registration dialog"/>
</div> </div>

View File

@ -7,7 +7,7 @@
<spacer height="25" width="50"/> <spacer height="25" width="50"/>
<box proportion="5" width="90%" align="center" layout="vertical-row" padding="8"> <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> </box>
<div align="center" width="fit" height="fit" layout="horizontal-row" > <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"/> <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"/> proportion="2" word_wrap="true"/>
</box> </box>
</div> </div>

View File

@ -58,7 +58,7 @@
<div layout="horizontal-row" proportion="1" height="fit"> <div layout="horizontal-row" proportion="1" height="fit">
<checkbox id="perPlayerDifficulty"/> <checkbox id="perPlayerDifficulty"/>
<spacer width="20" height="100%" /> <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>
</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) 2013 Lauri Kasanen, under the GPLv3
# (C) 2014-2015 Odd0002, under the GPLv3
# #
# Script to optimize the data, currently PNG, JPEG, B3DZ. # 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. # 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. # Spaces in filenames are supported.
#define number of threads
threads=$(nproc)
# Start checks # 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 #WARNING! SETTING TO TRUE MAY POSSIBLY INCREASE LOAD TIMES ON A SLOW CPU (UNTESTED) OR LEAD TO FILE NOT FOUND ERRORS WHEN RUNNING SUPERTUXKART!
which awk >/dev/null && which jpegtran >/dev/null && which advdef >/dev/null && \ compress_b3d=false
which advzip >/dev/null || fail=1
#---------------------------------------------------------
# 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 # Defines
#Internal Field Seperator
IFS=" IFS="
" "
@ -25,25 +84,125 @@ export LANG=C
# Go # Go
#store disk usage of files beforehand
BEFORE=`du -sk | awk '{print $1}'` 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 done
for jpeg in `find -name "*.jpg"`; do find . -name "*.b3d" -execdir zip '{}.zip' '{}' \;
jpegtran -optimize -copy none -outfile "$jpeg".$$ "$jpeg"
mv "$jpeg".$$ "$jpeg" for b3dzip in $(find -name "*.b3d.zip"); do
b3dz="${b3dzip%.zip}"
#echo "$b3dz"
mv "$b3dzip" "${b3dz}z"
done done
for b3dz in `find -name "*.b3dz"`; do find . -type d -name "models" -prune -o -name "*.b3d" -print0 | xargs -0 rm
advzip -z4 "$b3dz"
done 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 # Add optimizations for other types if necessary
# get and store new disk usage info
AFTER=`du -sk | awk '{print $1}'` AFTER=`du -sk | awk '{print $1}'`
# Print stats out # 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 "%" }' 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