59 Commits

Author SHA1 Message Date
hiker
3a5f398b3e Fixed installers: only include the vcredist for the right architecture,
search in bld*64 for 64 bit installer, fixed VERSION_BUILD to be empty,
changed name of installers to include XXbit.
2017-11-17 13:35:14 +11:00
Deve
a959f3c3e2 Corrrect gp info screen to keep consistency with track info screen.
Now num karts config param is updated only if spinner button or start button has been pressed.
2017-11-15 22:11:02 +01:00
Deve
2ddd4cbb09 Avoid negative AI karts number in follow the leader 2017-11-15 22:11:02 +01:00
Deve
030bc713c1 Avoid running follow the leader GP with 0 AIs 2017-11-15 22:11:02 +01:00
hiker
aa56acc830 Changed VERSION_BUILD to empty, indicating a stable version. 2017-11-14 22:44:07 +11:00
hiker
f0358ae8af Added Benau's 64-bit installer. 2017-11-14 22:27:16 +11:00
Daniel Butum
d15d958726 Modify windows installer so that it is version specific + add entry in the windows add/remove list 2017-11-14 22:00:30 +11:00
hiker
a8c858e757 Updated x86 redistributable to 2017 version. 2017-11-14 21:43:30 +11:00
hiker
2b054d1ebb Updated translator-credits, removed translations that are less
than 40% done.
2017-11-14 17:53:11 +11:00
hiker
d8ec02f2c4 Updated script to handle existing entries without duplicating authors
(or even worse msgids for translator credits).
2017-11-14 17:50:27 +11:00
hiker
bc384eb16f Merge branch '0.9.3' of github.com:supertuxkart/stk-code into 0.9.3 2017-11-14 17:50:03 +11:00
auria.mg
f4b584d908 Version number 2017-11-13 18:27:20 -05:00
hiker
3154130a97 Updated translations. 2017-11-14 09:55:46 +11:00
Deve
c429b466cd Avoid a crash in ghost replay screen.
It was crashing when add-on track was uninstalled.

It only avoids a crash and it's not true fix, because replays list should be updated when add-ons have been installed/uninstalled.
2017-11-13 22:36:44 +01:00
auria.mg
c92003b4bf Update version numbers 2017-11-12 19:13:24 -05:00
Deve
191542e26e Allow to compile STKRelease build with debug symbols.
It may be useful for decoding backtraces from our linux static package.
2017-11-12 23:58:57 +01:00
auria.mg
2c54549cb0 Fix #2990 2017-11-11 18:16:15 -05:00
Deve
17dbe47e2e Avoid semi-transparent window on some compositors 2017-11-10 23:13:35 +01:00
Benau
dcfae897ca Read only 4 bytes for tangent (unused atm), remember update stk-assets 2017-11-09 12:24:44 +08:00
Deve
603ad87ffe Allow to move installed apk to sdcard 2017-11-08 22:07:30 +01:00
Deve
2a5baac331 Initialize FeatureAvailable array to false for legacy pipeline.
It has been broken in commit 271a26eaf0.

It solves some issues with etnaviv gallium driver. It may also solve a crash on old intel 965gm on windows, but I can't test it atm.
2017-11-07 22:53:54 +01:00
hiker
8ce6f4de7c Fixed server-only execution. 2017-11-08 01:26:48 +11:00
Benau
1f4599b92e Expose race mode for scripting 2017-11-06 15:16:55 +08:00
auria.mg
7acc36d015 Fix FTL reset bug, fixes #3019 2017-11-05 18:22:46 -05:00
Deve
77597da26f Fixed 64-bit dependencies.
Thanks to qwertychouskie for finding it.
2017-11-05 21:55:35 +01:00
Deve
dfdc1a26b3 Ignore some configuration changes that don't matter for us.
The "orientation" without "screenSize" was a clear bug. And now connecting external keyboard doesn't close STK for me anymore.
2017-11-04 22:07:46 +01:00
Benau
3a6b429c40 Don't raycast driveable objects that are not enabled 2017-11-05 01:35:02 +08:00
Benau
cb2f3e56d5 Allow exact shape to be used with tangents mesh 2017-11-05 00:56:30 +08:00
Benau
7d9f345fbd Allow light to be disabled by scripting 2017-11-04 14:05:20 +08:00
Benau
6770277de7 Fix #2949
Use clamp to edge sampler
2017-11-04 09:25:28 +08:00
QwertyChouskie
fa86bbd506 Prevent upgrades to 0.9.3 causing all particles to be disabled
Older version's "false" in the config file translates to "0", which disables all particles in 0.9.3.  Mitigate this by renaming the variable.

See https://forum.freegamedev.net/viewtopic.php?f=17&t=7662&sid=71b18d47f0b9d436d4bd17c2da8cbb86#p74823 for an example of this causing confusion.
2017-11-04 00:01:56 +01:00
Benau
21382e94f4 Clarify running commands location 2017-11-03 21:19:12 +08:00
Urtzi Odriozola
0e8cd5a260 All languages capitalized
In order to keep a correct order in a language selection menu, the language names need to be capitalized
2017-11-03 21:10:40 +08:00
Urtzi Odriozola
49c068dc25 Update localized_name.txt 2017-11-03 17:03:56 +08:00
Deve
bcc6a18f40 Add missing languages to tinygettext 2017-11-02 22:21:32 +01:00
Deve
f18d76777f Remove invalid empty translations.
They are not available on transifex. Norwegian is nb and nn. Chinese is zh_TW and zh_CN.
2017-11-02 22:21:21 +01:00
auria.mg
49997122de Clarify UI in game paused dialog of story mode, fixes #3004 2017-11-01 19:28:22 -04:00
auria.mg
1cbd96b911 Attempt to fix #2997 2017-11-01 19:08:57 -04:00
auria.mg
d8bd5d9c07 Tweak challenge that was too difficult. See #2997 2017-10-31 19:07:05 -04:00
auria.mg
acb605ec92 Hide networking stuff (again) 2017-10-30 12:12:45 +08:00
Deve
82cf56d773 Add a possibility to overwrite assets dir using environment variable.
It fixes #2982 when both SUPERTUXKART_DATADIR and SUPERTUXKART_ASSETS_DIR are set.
2017-10-29 21:06:14 +01:00
Deve
8ecb308948 Better fix for shadow acne 2017-10-29 20:24:00 +01:00
Benau
9aef3f7f66 Fix #2988 2017-10-30 02:15:31 +08:00
Benau
37e7a5aa6b Fix wrong normal, vertex 2 color and memory leak of texture quad
Fix #2979
2017-10-30 02:15:23 +08:00
Benau
f62accb0ae Remove the dead elephpant 2017-10-30 02:15:15 +08:00
auria.mg
52a1e1751d Fix #2977 2017-10-29 14:07:56 -04:00
Benau
344f255252 Update Changelog 2017-10-27 14:38:52 +08:00
hiker
e2083cef2e Updaetd translator credits. 2017-10-27 11:11:03 +11:00
auria.mg
8d1b8058bb #2734 2017-10-25 20:19:46 -04:00
auria.mg
b648ae392a Fix #2734 2017-10-25 20:16:52 -04:00
hiker
1b7d3dab2c Merge branch '0.9.3-rc1' of github.com:supertuxkart/stk-code into 0.9.3-rc1 2017-10-26 10:18:25 +11:00
hiker
b7162921bf Updated credits to include all doncators and other contributors. 2017-10-26 10:16:38 +11:00
Deve
405a6e46d8 Avoid tinygettext warning 2017-10-25 23:58:46 +02:00
hiker
9405df4c7e Updated version number (except supertuxkart.nsi). 2017-10-26 00:07:48 +11:00
Benau
50c79ed0a8 Fix b3d with more than 4 weights per vertex 2017-10-25 13:13:42 +08:00
Benau
f1f0c5e27a Fix #2917 2017-10-25 12:34:14 +08:00
auria.mg
4f03933c11 Update version number 2017-10-24 18:56:50 -04:00
Benau
537ddd6e78 Add Karelian localized name 2017-10-25 00:25:42 +08:00
hiker
40e8a6effc Updated translations. 2017-10-25 00:34:50 +11:00
127 changed files with 61221 additions and 102638 deletions

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@ cmake_build*/
dependencies*/
CMakeFiles/
stk-editor/
.vscode/
.config/
supertuxkart-64

View File

@@ -3,7 +3,7 @@
* New mesh format optimized for space and hardware skinning
* Code refactoring of both render pipeline by Benau and Elderme
* New kart Wilber and Hexley by Jymis
* New kart Kiki by Benau
* New kart Kiki and updated Konqi by Benau
* New tracks Candela City, Cornfield Crossing and Las Dunas Arena by samuncle
* Physics improvements and various physics bugfixes by hiker
* Kart GFX improvements (exhaust and headlight)

View File

@@ -1,6 +1,6 @@
# root CMakeLists for the SuperTuxKart project
project(SuperTuxKart)
set(PROJECT_VERSION "git")
set(PROJECT_VERSION "0.9.3")
cmake_minimum_required(VERSION 2.8.4)
if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3))
@@ -36,6 +36,10 @@ if (UNIX AND NOT APPLE)
option(USE_GLES2 "Use OpenGL ES2 renderer" OFF)
endif()
if(UNIX OR MINGW)
option(DEBUG_SYMBOLS "Compile with debug symbols" OFF)
endif()
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),
@@ -90,6 +94,13 @@ endif()
# add_definitions(-DNO_VPX)
#endif()
if(UNIX OR MINGW)
if(DEBUG_SYMBOLS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
endif()
endif()
# Build the Bullet physics library
add_subdirectory("${PROJECT_SOURCE_DIR}/lib/bullet")
include_directories("${PROJECT_SOURCE_DIR}/lib/bullet/src")
@@ -139,8 +150,8 @@ else()
endif()
if (BUILD_RECORDER)
find_library(OPENGLRECORDER_LIBRARY NAMES openglrecorder libopenglrecorder PATHS "${PROJECT_SOURCE_DIR}/dependencies/lib")
find_path(OPENGLRECORDER_INCLUDEDIR NAMES openglrecorder.h PATHS "${PROJECT_SOURCE_DIR}/dependencies/include")
find_library(OPENGLRECORDER_LIBRARY NAMES openglrecorder libopenglrecorder PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/lib")
find_path(OPENGLRECORDER_INCLUDEDIR NAMES openglrecorder.h PATHS "${PROJECT_SOURCE_DIR}/${DEPENDENCIES}/include")
if (NOT OPENGLRECORDER_LIBRARY OR NOT OPENGLRECORDER_INCLUDEDIR)
if(PROJECT_VERSION STREQUAL "git")
message(WARNING "libopenglrecorder not found, disabling in-game recorder. "

View File

@@ -70,7 +70,7 @@ Compilation instruction is explained there. If you don't need this feature, pass
### Compiling
Run the following commands to compile SuperTuxKart:
Run the following commands inside `stk-code` directory to compile SuperTuxKart:
```bash
mkdir cmake_build

View File

@@ -2,7 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.supertuxkart.stk"
android:versionCode="1"
android:versionName="1.0">
android:versionName="1.0"
android:installLocation="auto">
<!-- This .apk has no Java code itself, so set hasCode to false. -->
<application android:label="@string/app_name"
@@ -13,7 +14,7 @@
<activity android:name="android.app.NativeActivity"
android:label="@string/app_name"
android:configChanges="keyboardHidden|orientation"
android:configChanges="fontScale|keyboard|keyboardHidden|layoutDirection|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|uiMode"
android:screenOrientation="sensorLandscape">
<!-- Tell NativeActivity the name of or .so -->

View File

@@ -13,7 +13,7 @@ SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
execute_process(COMMAND sh -c "ls /usr/lib/gcc/x86_64-w64-mingw32/ | grep posix | tr -d '\n'" OUTPUT_VARIABLE MINGW_DEPS_FOLDER)
# here is the target environment located
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /usr/lib/gcc/x86_64-w64-mingw32/${MINGW_DEPS_FOLDER}/ ${PROJECT_SOURCE_DIR}/dependencies)
SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /usr/lib/gcc/x86_64-w64-mingw32/${MINGW_DEPS_FOLDER}/ ${PROJECT_SOURCE_DIR}/dependencies-64bit)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search

View File

@@ -1,6 +1,6 @@
= SuperTuxKart =
A Kart Racing Game Featuring Tux & Friends
- Version git
- Version 0.9.3
- Visit us at supertuxkart.net
- SuperTuxKart is released under GPL 3.0
- Assets are released under Creative Commons and other licenses
@@ -18,8 +18,18 @@ Developer
- Mac OS X Packager
= Benau =
Developer / programming
Modeller / animator
Developer, modeller & animator
- Soccer and battle mode AI, Shader, graphics
- SPM file format definition, importer and exporter
- Kiki
- Other graphical improvements to karts and tracks
= Dawid Gan (deveee) =
Developer
- Android port
- General improvements and many many bugfixes
= Jean-Manuel Clémençon (Samuncle) =
@@ -238,6 +248,54 @@ Software used
= Donations =
Donations
- Georgi Stoychev, Nuno Ferreira, Steven Anderson, Charalabos Frouzakis
- Richard Qian, William Nakamura, Maree Glynn, David Carlier
- Alistair Findlay, James Tobin, Ursula Belting, Stephan van den Akker
- Ken McCall, Arnaud Maurin, James Tobin, Stefan Kiehne, David Efflandt
- Gary Shearer, Stuart Gibb, Fran Casal, Piotr Karczemski, Florian Lehébel
- Dominik Müller, Saverio Brancaccio, Florian Lehébel
Donations
- Alvaro Castañeda Mendoza, Simón Llinares Riestra, Radu Sofian
- Yevgeny Slusorenko, Joshua Dye, Chris Lukas, Gary Shearer, Gary Shearer
- Martin Lankes, Muchlis Polin, Peter Estes, Nuno Ferreira, Duncan Steele
- Michael Kleinhans, Atomic Monks, Aleksandar Sokolovski, Brandon Hoeksema
- Victor Gabillon, Tristan Reitter, Lupe Aguilar, Florian Pelz
- Tanja Wiege, Gabriele Casetti, Andrea De Angelis, Saul Gutierrez
- Csongor Ballay, Csongor Ballay, William Youstra, Peter Estes
- Régis Hamann, Régis Hamann, Yuri Sucupira, Lucien Greefkes, Frank Sapone
Donations
- Peter Cundall, Michael Richards, Franz Ernst, Florian Lehébel
- Jörg Orlowski, Lukasz Szczekocki, Bjarni Kristinsson, David Carlier
- Kamensky Mikhail, Roland Schoof, Trevor Robertson, Patrik Pomichal
- Guillaume Pointet, Dennis Holierhoek, Daniel Nelson, David Hibshman
- Thomas Belvin, Erik Jahn, Susen Skotnik, Dennis McLaughlin, Bert De Mets
- Jean-Gabriel Kammerer, Stefan Lukits, Martin Steigerwald
- Adam Williamson, A Anton, Ville Kauppila, Gary Shearer
- Peter Hausleitner, Philip Pfeifer, Christoph Baldauf, Jane Middlebrooke
Donations
- roundof.org, Roman Marschall, Gary Shearer, Jonathan Banks
- Nicolas Affolter, Mahendra Tallur, David Behnke, Mark Supper
- Eric Cheminot, Jason Speechley, Michael Martin, Andrew Gilbert
- Fabian Schach, michael orosov, Wendell Glick, Eugene Lemaitre
- Gerald Angus, Andrea De Angelis, Antonio Sala, Joshua Dye, roundof.org
- Andreas Müller, Jose Miguel Bolorino Manzano, Troy Smith, Bernhard Motel
- Bernhard Motel, Alexandre Bouhier, Thomas Preissler, Lubomír Saji
- Eric Pedersen, Fabrice SAILLY-SIRGUE, Simon Dalsgaard, Joshua Dye
Donations
- Detlef Olp, João Pedro de Lima, Christopher Sweeney, Ryan Gervais
- Laszlo Ast, Robert Yerke, Nuno Ferreira, Lachand Valentin, Arne Bernin
- Carsten Carulli, Jeremy Kenny, Francisco Monteagudo, Marlow Marlow
- Kong Chun Ho, Jonathan Lee, Dominik Rösner, Andreas Frankl
- Didier Delhaye, Gianluca Bonato, Ferdinand Ihringer, Mark Dougherty
- Топоров Константин, Georges-Mickael Seguin, Jason Grindlay
- Gordon Macleod, Anders Jonsson, Peter Estes, Marius Gripsgård,
- FoosterNET, Daniel Sandman, David Ault, Matt DeVillier, Chris Leutwyler
Donations
- Anthony Waxman, Rémi Verschelde, Alessandro Vitali, Katherine Freeman
- Roy Akselsen, Ingrid Becke, Jonathan Lee, Christoph Baldauf

View File

@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.8.1</string>
<string>0.9.3</string>
<key>CFBundleSignature</key>
<string>SPTK</string>
<key>CFBundleVersion</key>
<string>0.8.1</string>
<string>0.9.3</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSMinimumSystemVersion</key>

View File

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

View File

@@ -9,7 +9,9 @@
<spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center">
<!--
<icon-button id="tab_servers" width="128" height="128" icon="gui/main_network.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"/>

View File

@@ -9,7 +9,7 @@
<spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center">
<icon-button id="tab_servers" width="128" height="128" icon="gui/main_network.png"/>
<!--<icon-button id="tab_servers" width="128" height="128" icon="gui/main_network.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"/>

View File

@@ -8,7 +8,7 @@
<spacer height="25" width="10"/>
<tabs id="profile_tabs" height="10%" max_height="110" x="2%" width="98%" align="center">
<icon-button id="tab_servers" width="128" height="128" icon="gui/main_network.png"/>
<!--<icon-button id="tab_servers" width="128" height="128" icon="gui/main_network.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"

View File

@@ -10,7 +10,7 @@ ar_SY=0
ar_TN=0
as=অসমীয়া
ast=Asturianu
ay=aymar aru
ay=Aymar aru
az=Azərbaycanca
az_IR=0
be=Беларуская мова
@@ -20,14 +20,14 @@ bn=বাংলা
bn_BD=0
bn_IN=0
bo=བོད་སྐད་
br=brezhoneg
br=Brezhoneg
bs=Bosanski
bs_BA=0
bs_BS=0
ca_ES=0
ca=0
cmn=0
co=corsu
co=Corsu
cs=Čeština
cs_CZ=Čeština (Česká Republika)
cy=Welsh
@@ -70,15 +70,15 @@ es_PR=0
es_SV=0
es_UY=0
es_VE=0
et=eesti keel
et=Eesti keel
et_EE=0
et_ET=0
eu=euskara
eu=Euskara
eu_ES=0
fa=فارسى
fa_AF=0
fa_IR=0
fi=suomi
fi=Suomi
fi_FI=0
fo=Føroyskt
fo_FO=0
@@ -101,7 +101,7 @@ he_IL=0
hi=हिन्दी
hr=Hrvatski
hr_HR=0
hu=magyar
hu=Magyar
hu_HU=0
hy=Հայերեն
ia=Interlingua
@@ -123,6 +123,7 @@ km_KH=0
kn=ಕನ್ನಡ
ko=한국어
ko_KR=0
krl=Karjalan kieli
ku=Kurdî
kw=Kernowek
ky=кыргызча
@@ -139,6 +140,7 @@ mk=Македонски
mk_MK=0
ml=മലയാളം
mn=Монгол
mn_MN=Монгол
mr=मराठी
ms=Bahasa Melayu
ms_MY=0
@@ -164,6 +166,7 @@ os=0
pa=ਪੰਜਾਬੀ
pl=Polski
pl_PL=0
pms=Piemontèis
ps=پښتو
pt=Português
pt_BR=0
@@ -176,6 +179,8 @@ ru=Русский
ru_RU=0
rw=Kinyarwanda
sa=0
sc=Sardu
sco=0
sd=0
se=Sámegiella
se_NO=0

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

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

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

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

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

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

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

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

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

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

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

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

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

View File

@@ -5,6 +5,9 @@
# 'translator-credits' translations - where launchpad added them
# and which are shown in stk.
#
# First rename the transifex files:
# for i in supertuxkartpot_*; do mv $i ${i##supertuxkartpot_}; done
#
# Usage: update_po_authors.py PATH_TO/LANGUAGE.po
#
# IMPORTANT note: this script must be run on a file downloaded
@@ -14,6 +17,8 @@
#
# Less important note: The specified file is overwritten without
# a backup! Make sure the git status is unmodified.
#
import re
import sys
@@ -24,7 +29,7 @@ if __name__ == "__main__":
sys.exit(-1)
for filename in sys.argv[1:]:
print("Processing file ", filename)
print("Processing file %s" % filename)
f = open(filename, "r")
if not f:
print "Can not find", filename
@@ -33,58 +38,81 @@ if __name__ == "__main__":
f.close()
new_authors = []
found = 0
# Find all authors with a simple finite state machine:
contributions = -1
line_count = 0
for i in lines:
line = i[:-1] # remove \n
if line=="# Translators:":
found = 1
elif found and line[:2]=="# " and line [:14]!="# FIRST AUTHOR":
new_authors.append(line[2:])
elif line[:5]=="msgid":
found = 0
elif line[:31]== "msgstr \"Launchpad Contributions":
contributions = line_count
line_count = line_count + 1
# Delete all email addresses - not sure if the authors
# would want them to be published
email=re.compile(" *<.*@.*\..*> *") # one @ and one dot at least
for i in range(len(new_authors)):
g = email.search(new_authors[i])
if g:
new_authors[i] = new_authors[i][:g.start()] \
+ new_authors[i][g.end():]
# Get the old authors from the translator-credits string:
if contributions>0:
# Ignore the first entry, which is "msgstr ...", and the
# last two characters, which are the '"\n'.
old_authors = lines[contributions][:-2].split("\\n")[1:]
for i in range(len(old_authors)):
old_authors[i] = old_authors[i].strip()
else:
old_authors=[]
# There are two sources of contributors:
# 1) Entries in the header from transifex (after "Translators:"
# till the first msgid string.
# 2) Entries as "translator-credits". These shouldn't be there,
# but sometimes occur (e.g. because an old version of this
# script was used that did not support these entries).
# Assemble all those entries in one line
all_authors = old_authors + new_authors;
all_authors = sorted(all_authors, key=lambda x: x.lower())
all_authors_string = reduce(lambda x,y: x+"\\n"+y, all_authors, "")
found = 0
contributions = ""
line_count = 0
new_authors = []
author_list = []
# Find new and old authors with a simple finite state machine:
# ============================================================
i = 0
while i < len(lines):
line = lines[i][:-1] # remove \n
i = i + 1
if line=="# Translators:":
while i <len(lines) and lines[i][:5]!="msgid":
line = lines[i][:-1] # remove \n
if line [:14]!="# FIRST AUTHOR":
new_authors.append(line[2:])
author_list.append(line[2:])
i = i + 1
elif line[:26] == "msgid \"translator-credits\"":
line = lines[i][:-2] # remove \"\n at end of line
# Ignore the fist entry (which is "msgstr ...").
authors = line.split("\\n")[1:]
for j in range(len(authors)):
s = authors[j].strip()
if s!="":
author_list.append(s)
# Then remove the msgid and msgstr
del lines[i] # msgstr
del lines[i-1] # msgid
del lines[i-2] # filename/line number info
del lines[i-3] # empty line
# Delete all email addresses and URLs (esp. old launchpads)
# ---------------------------------------------------------
email = re.compile(r" *[^ ]+@[^ ]+ *")
url = re.compile(r" *https?://[^ ]*")
for i, author in enumerate(author_list):
g = email.search(author)
if g:
author_list[i] = author[:g.start()] +", " \
+ author[g.end():]
g = url.search(author)
if g:
author_list[i] = author[:g.start()] \
+ author[g.end():]
# Remove duplicated entries
# -------------------------
d = {}
new_list = []
for i, author in enumerate(author_list):
if not d.get(author, None):
new_list.append(author)
d[author]=1
author_list = new_list
all_authors_string = reduce(lambda x,y: x+"\\n"+y, author_list, "")
credits_line = "msgstr \"Launchpad Contributions:%s\"\n"%all_authors_string
# If no old authors exists, write a new entry:
if contributions==-1:
lines.append("\n")
lines.append("#: src/states_screens/credits.cpp:209\n")
lines.append("msgid \"translator-credits\"\n")
lines.append(credits_line)
else:
# Otherwise just replace the old contribution string
lines[contributions] = credits_line
lines.append("\n")
lines.append("#: src/states_screens/credits.cpp:209\n")
lines.append("msgid \"translator-credits\"\n")
lines.append(credits_line)
# Overwrite old file
@@ -93,5 +121,5 @@ if __name__ == "__main__":
f.write(i)
f.close()
print("Done with ", filename)
print("Done with %s,"% filename)

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

View File

@@ -28,7 +28,8 @@ float getShadowFactor(vec3 pos, int index)
vec4 shadowcoord = (ShadowViewProjMatrixes[index] * InverseViewMatrix * vec4(pos, 1.0));
shadowcoord.xy /= shadowcoord.w;
vec2 shadowtexcoord = shadowcoord.xy * 0.5 + 0.5;
float d = .5 * shadowcoord.z + .5;
//float d = .5 * shadowcoord.z + .5;
float d = .5 * shadowcoord.z + .5 - 1. / (shadow_res * 5.);
float result = 0.;

View File

@@ -7,3 +7,4 @@ stk release svn version of assets
0.9 needs r16279
0.9.1-rc1 needs r16470
0.9.1 needs r16503
0.9.2-rc1 needs r17385

View File

@@ -939,21 +939,22 @@ bool CIrrDeviceLinux::createWindow()
attributes.event_mask |= PointerMotionMask |
ButtonPressMask | KeyPressMask |
ButtonReleaseMask | KeyReleaseMask;
Atom *list;
Atom type;
int form;
unsigned long remain, len;
Atom WMCheck = XInternAtom(display, "_NET_SUPPORTING_WM_CHECK", false);
Status s = XGetWindowProperty(display, DefaultRootWindow(display),
WMCheck, 0L, 1L, False, XA_WINDOW,
&type, &form, &len, &remain,
(unsigned char **)&list);
XFree(list);
bool netWM = (s == Success) && len;
if (!CreationParams.WindowId)
{
Atom *list;
Atom type;
int form;
unsigned long remain, len;
Atom WMCheck = XInternAtom(display, "_NET_SUPPORTING_WM_CHECK", false);
Status s = XGetWindowProperty(display, DefaultRootWindow(display),
WMCheck, 0L, 1L, False, XA_WINDOW,
&type, &form, &len, &remain,
(unsigned char **)&list);
XFree(list);
bool netWM = (s == Success) && len;
attributes.override_redirect = !netWM && CreationParams.Fullscreen;
// create new Window
@@ -1139,6 +1140,18 @@ bool CIrrDeviceLinux::createWindow()
CreationParams.Bits = bits;
CreationParams.WindowSize.Width = Width;
CreationParams.WindowSize.Height = Height;
if (netWM == true)
{
Atom opaque_region = XInternAtom(display, "_NET_WM_OPAQUE_REGION", true);
if (opaque_region != None)
{
unsigned long window_rect[4] = {0, 0, Width, Height};
XChangeProperty(display, window, opaque_region, XA_CARDINAL, 32,
PropModeReplace, (unsigned char*)window_rect, 4);
}
}
StdHints = XAllocSizeHints();
long num;

View File

@@ -336,15 +336,16 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer, bool useCoreCon
else
os::Printer::log("OpenGL driver version is not 1.2 or better.", ELL_WARNING);
if (!useCoreContext)
{
for (u32 i = 0; i < IRR_OpenGL_Feature_Count; i++)
FeatureAvailable[i] = false;
const char* t = NULL;
size_t len = 0;
c8 *str = 0;
if (!useCoreContext)
{
t = reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS));
}
t = reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS));
if (t)
{

View File

@@ -932,8 +932,6 @@ class COpenGLExtensionHandler
//! queries the features of the driver, returns true if feature is available
bool queryOpenGLFeature(EOpenGLFeatures feature) const
{
if (COpenGLExtensionHandler::IRR_EXT_packed_depth_stencil)
return true;
return FeatureAvailable[feature];
}

View File

@@ -1507,15 +1507,17 @@ void CSkinnedMesh::convertForSkinning()
this_influence.push_back(influence);
}
float total_weight = 0.0f;
for (u32 j = 0; j < reported_weight.size(); j++)
const unsigned max_weight =
reported_weight.size() > 4 ? 4 : reported_weight.size();
for (u32 j = 0; j < max_weight; j++)
{
total_weight += reported_weight[j].weight;
this_influence[j].joint_idx = reported_weight[j].joint_idx;
this_influence[j].weight = reported_weight[j].weight;
}
if (!reported_weight.empty())
if (total_weight != 0.0f)
{
for (u32 j = 0; j < reported_weight.size(); j++)
for (u32 j = 0; j < max_weight; j++)
{
this_influence[j].weight =
this_influence[j].weight / total_weight;

View File

@@ -392,7 +392,11 @@ void ChallengeData::setRace(RaceManager::Difficulty d) const
if (m_time[d] >= 0.0f)
{
race_manager->setTimeTarget(m_time[d]);
race_manager->setTimeTarget(m_time[d]);
}
else
{
race_manager->setTimeTarget(0.0f);
}
}
else if(m_mode==CM_GRAND_PRIX)

View File

@@ -728,7 +728,7 @@ namespace UserConfigParams
#endif
PARAM_PREFIX IntUserConfigParam m_graphical_effects
PARAM_DEFAULT( IntUserConfigParam(2, "anim_gfx",
PARAM_DEFAULT( IntUserConfigParam(2, "animate_graphics",
&m_graphics_quality, "Scenery animations: 0 disabled, 1 only important, 2 enabled") );
// This saves the actual user preference.

View File

@@ -70,7 +70,7 @@ public:
GL_FRAGMENT_SHADER, "texturedquad.frag");
assignUniforms("center", "size", "texcenter", "texsize");
assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED);
assignSamplerNames(0, "tex", ST_BILINEAR_CLAMPED_FILTERED);
} // TextureRectShader
}; // TextureRectShader

View File

@@ -1295,25 +1295,25 @@ scene::IMesh *IrrDriver::createTexturedQuadMesh(const video::SMaterial *material
video::S3DVertex v1;
v1.Pos = core::vector3df(-w_2,-h_2,0);
v1.Normal = core::vector3df(0, 0, -1.0f);
v1.Normal = core::vector3df(0, 0, 1);
v1.TCoords = core::vector2d<f32>(1,1);
v1.Color = video::SColor(255, 255, 255, 255);
video::S3DVertex v2;
v2.Pos = core::vector3df(w_2,-h_2,0);
v2.Normal = core::vector3df(0, 0, -1.0f);
v2.Normal = core::vector3df(0, 0, 1);
v2.TCoords = core::vector2d<f32>(0,1);
v1.Color = video::SColor(255, 255, 255, 255);
v2.Color = video::SColor(255, 255, 255, 255);
video::S3DVertex v3;
v3.Pos = core::vector3df(w_2,h_2,0);
v3.Normal = core::vector3df(0, 0, -1.0f);
v3.Normal = core::vector3df(0, 0, 1);
v3.TCoords = core::vector2d<f32>(0,0);
v3.Color = video::SColor(255, 255, 255, 255);
video::S3DVertex v4;
v4.Pos = core::vector3df(-w_2,h_2,0);
v4.Normal = core::vector3df(0, 0, -1.0f);
v4.Normal = core::vector3df(0, 0, 1);
v4.TCoords = core::vector2d<f32>(1,0);
v4.Color = video::SColor(255, 255, 255, 255);

View File

@@ -274,8 +274,8 @@ void SPMeshLoader::decompress(irr::io::IReadFile* spm, unsigned vertices_count,
}
if (read_tangent)
{
// Unused, tangents are re-calculated anyway
spm->read(tmp, 8);
// Tangents are re-calculated anyway in 0.9.3
spm->read(tmp, 4);
}
}
if (vt == SPVT_SKINNED)

View File

@@ -100,7 +100,9 @@ void Screen::init()
*/
void Screen::push()
{
#ifndef SERVER_ONLY
StateManager::get()->pushScreen(this);
#endif
} // push
// -----------------------------------------------------------------------------

View File

@@ -211,14 +211,33 @@ FileManager::FileManager()
"Set $SUPERTUXKART_DATADIR to point to the data directory.");
// fatal will exit the application
}
addRootDirs(root_dir);
if( fileExists(root_dir+"../../stk-assets"))
addRootDirs(root_dir+"../../stk-assets");
if( fileExists(root_dir+"../../supertuxkart-assets"))
addRootDirs(root_dir+"../../supertuxkart-assets");
if ( getenv ( "SUPERTUXKART_ROOT_PATH" ) != NULL )
addRootDirs(getenv("SUPERTUXKART_ROOT_PATH"));
std::string assets_dir;
if (getenv("SUPERTUXKART_ASSETS_DIR") != NULL)
{
assets_dir = std::string(getenv("SUPERTUXKART_ASSETS_DIR"));
}
else if (fileExists(root_dir + "../../stk-assets"))
{
assets_dir = root_dir + "../../stk-assets";
}
else if (fileExists(root_dir + "../../supertuxkart-assets"))
{
assets_dir = root_dir + "../../supertuxkart-assets";
}
else if (getenv("SUPERTUXKART_ROOT_PATH") != NULL)
{
//is this needed?
assets_dir = std::string(getenv("SUPERTUXKART_ROOT_PATH"));
}
if (!assets_dir.empty() && assets_dir != root_dir)
{
addRootDirs(assets_dir);
}
checkAndCreateConfigDir();
checkAndCreateAddonsDir();

View File

@@ -77,6 +77,7 @@ FollowTheLeaderRace::~FollowTheLeaderRace()
void FollowTheLeaderRace::reset()
{
LinearWorld::reset();
m_last_eliminated_time = 0.0f;
m_leader_intervals.clear();
m_leader_intervals = stk_config->m_leader_intervals;
for(unsigned int i=0; i<m_leader_intervals.size(); i++)

View File

@@ -43,6 +43,7 @@ OverWorld::OverWorld() : World()
{
m_return_to_garage = false;
m_stop_music_when_dialog_open = false;
m_play_track_intro_sound = false;
} // Overworld
//-----------------------------------------------------------------------------

View File

@@ -386,7 +386,8 @@ void PhysicalObject::init(const PhysicalObject::Settings& settings)
scene::IMeshBuffer *mb = mesh->getMeshBuffer(i);
// FIXME: take translation/rotation into account
if (mb->getVertexType() != video::EVT_STANDARD &&
mb->getVertexType() != video::EVT_2TCOORDS)
mb->getVertexType() != video::EVT_2TCOORDS &&
mb->getVertexType() != video::EVT_TANGENTS)
{
Log::warn("PhysicalObject",
"createPhysicsBody: Ignoring type '%d'!",
@@ -439,29 +440,45 @@ void PhysicalObject::init(const PhysicalObject::Settings& settings)
material );
} // for j
}
else
else if (mb->getVertexType() == video::EVT_2TCOORDS)
{
if (mb->getVertexType() == video::EVT_2TCOORDS)
irr::video::S3DVertex2TCoords* mbVertices =
(video::S3DVertex2TCoords*)mb->getVertices();
for(unsigned int j=0; j<mb->getIndexCount(); j+=3)
{
irr::video::S3DVertex2TCoords* mbVertices =
(video::S3DVertex2TCoords*)mb->getVertices();
for(unsigned int j=0; j<mb->getIndexCount(); j+=3)
for(unsigned int k=0; k<3; k++)
{
for(unsigned int k=0; k<3; k++)
{
int indx=mbIndices[j+k];
core::vector3df v = mbVertices[indx].Pos;
//mat.transformVect(v);
vertices[k]=v;
normals[k]=mbVertices[indx].Normal;
} // for k
triangle_mesh->addTriangle(vertices[0], vertices[1],
vertices[2], normals[0],
normals[1], normals[2],
material );
} // for j
}
int indx=mbIndices[j+k];
core::vector3df v = mbVertices[indx].Pos;
//mat.transformVect(v);
vertices[k]=v;
normals[k]=mbVertices[indx].Normal;
} // for k
triangle_mesh->addTriangle(vertices[0], vertices[1],
vertices[2], normals[0],
normals[1], normals[2],
material );
} // for j
}
else if (mb->getVertexType() == video::EVT_TANGENTS)
{
irr::video::S3DVertexTangents* mbVertices =
(video::S3DVertexTangents*)mb->getVertices();
for(unsigned int j=0; j<mb->getIndexCount(); j+=3)
{
for(unsigned int k=0; k<3; k++)
{
int indx=mbIndices[j+k];
core::vector3df v = mbVertices[indx].Pos;
//mat.transformVect(v);
vertices[k]=v;
normals[k]=mbVertices[indx].Normal;
} // for k
triangle_mesh->addTriangle(vertices[0], vertices[1],
vertices[2], normals[0],
normals[1], normals[2],
material );
} // for j
}
} // for i<getMeshBufferCount

View File

@@ -170,6 +170,16 @@ namespace Scripting
return race_manager->getReverseTrack();
}
int getMajorRaceMode()
{
return race_manager->getMajorMode();
}
int getMinorRaceMode()
{
return race_manager->getMinorMode();
}
bool isDuringDay()
{
return ::Track::getCurrentTrack()->getIsDuringDay();
@@ -440,6 +450,8 @@ namespace Scripting
r = engine->RegisterGlobalFunction("int getNumberOfKarts()", asFUNCTION(getNumberOfKarts), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("int getNumLocalPlayers()", asFUNCTION(getNumLocalPlayers), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("bool isReverse()", asFUNCTION(isTrackReverse), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("int getMajorRaceMode()", asFUNCTION(getMajorRaceMode), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("int getMinorRaceMode()", asFUNCTION(getMinorRaceMode), asCALL_CDECL); assert(r >= 0);
r = engine->RegisterGlobalFunction("bool isDuringDay()", asFUNCTION(isDuringDay), asCALL_CDECL); assert(r >= 0);
// TrackObject

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