Compare commits
59 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3a5f398b3e | ||
|
|
a959f3c3e2 | ||
|
|
2ddd4cbb09 | ||
|
|
030bc713c1 | ||
|
|
aa56acc830 | ||
|
|
f0358ae8af | ||
|
|
d15d958726 | ||
|
|
a8c858e757 | ||
|
|
2b054d1ebb | ||
|
|
d8ec02f2c4 | ||
|
|
bc384eb16f | ||
|
|
f4b584d908 | ||
|
|
3154130a97 | ||
|
|
c429b466cd | ||
|
|
c92003b4bf | ||
|
|
191542e26e | ||
|
|
2c54549cb0 | ||
|
|
17dbe47e2e | ||
|
|
dcfae897ca | ||
|
|
603ad87ffe | ||
|
|
2a5baac331 | ||
|
|
8ce6f4de7c | ||
|
|
1f4599b92e | ||
|
|
7acc36d015 | ||
|
|
77597da26f | ||
|
|
dfdc1a26b3 | ||
|
|
3a6b429c40 | ||
|
|
cb2f3e56d5 | ||
|
|
7d9f345fbd | ||
|
|
6770277de7 | ||
|
|
fa86bbd506 | ||
|
|
21382e94f4 | ||
|
|
0e8cd5a260 | ||
|
|
49c068dc25 | ||
|
|
bcc6a18f40 | ||
|
|
f18d76777f | ||
|
|
49997122de | ||
|
|
1cbd96b911 | ||
|
|
d8bd5d9c07 | ||
|
|
acb605ec92 | ||
|
|
82cf56d773 | ||
|
|
8ecb308948 | ||
|
|
9aef3f7f66 | ||
|
|
37e7a5aa6b | ||
|
|
f62accb0ae | ||
|
|
52a1e1751d | ||
|
|
344f255252 | ||
|
|
e2083cef2e | ||
|
|
8d1b8058bb | ||
|
|
b648ae392a | ||
|
|
1b7d3dab2c | ||
|
|
b7162921bf | ||
|
|
405a6e46d8 | ||
|
|
9405df4c7e | ||
|
|
50c79ed0a8 | ||
|
|
f1f0c5e27a | ||
|
|
4f03933c11 | ||
|
|
537ddd6e78 | ||
|
|
40e8a6effc |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@ cmake_build*/
|
||||
dependencies*/
|
||||
CMakeFiles/
|
||||
stk-editor/
|
||||
.vscode/
|
||||
|
||||
.config/
|
||||
supertuxkart-64
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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. "
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 -->
|
||||
|
||||
@@ -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
|
||||
|
||||
64
data/CREDITS
64
data/CREDITS
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</hard>
|
||||
<medium>
|
||||
<karts number="4"/>
|
||||
<requirements time="185"/>
|
||||
<requirements time="197"/>
|
||||
</medium>
|
||||
<easy>
|
||||
<karts number="4"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
1766
data/po/ar.po
1766
data/po/ar.po
File diff suppressed because it is too large
Load Diff
2499
data/po/be.po
2499
data/po/be.po
File diff suppressed because it is too large
Load Diff
2822
data/po/bg.po
2822
data/po/bg.po
File diff suppressed because it is too large
Load Diff
3793
data/po/bn.po
3793
data/po/bn.po
File diff suppressed because it is too large
Load Diff
1785
data/po/br.po
1785
data/po/br.po
File diff suppressed because it is too large
Load Diff
2887
data/po/bs.po
2887
data/po/bs.po
File diff suppressed because it is too large
Load Diff
1686
data/po/ca.po
1686
data/po/ca.po
File diff suppressed because it is too large
Load Diff
1868
data/po/cs.po
1868
data/po/cs.po
File diff suppressed because it is too large
Load Diff
1974
data/po/da.po
1974
data/po/da.po
File diff suppressed because it is too large
Load Diff
1741
data/po/de.po
1741
data/po/de.po
File diff suppressed because it is too large
Load Diff
1920
data/po/el.po
1920
data/po/el.po
File diff suppressed because it is too large
Load Diff
3793
data/po/en_AU.po
3793
data/po/en_AU.po
File diff suppressed because it is too large
Load Diff
3793
data/po/en_GB.po
3793
data/po/en_GB.po
File diff suppressed because it is too large
Load Diff
2816
data/po/eo.po
2816
data/po/eo.po
File diff suppressed because it is too large
Load Diff
1693
data/po/es.po
1693
data/po/es.po
File diff suppressed because it is too large
Load Diff
2020
data/po/eu.po
2020
data/po/eu.po
File diff suppressed because it is too large
Load Diff
1608
data/po/fa.po
1608
data/po/fa.po
File diff suppressed because it is too large
Load Diff
1690
data/po/fi.po
1690
data/po/fi.po
File diff suppressed because it is too large
Load Diff
1908
data/po/fr.po
1908
data/po/fr.po
File diff suppressed because it is too large
Load Diff
1613
data/po/fr_CA.po
1613
data/po/fr_CA.po
File diff suppressed because it is too large
Load Diff
1689
data/po/ga.po
1689
data/po/ga.po
File diff suppressed because it is too large
Load Diff
1728
data/po/gd.po
1728
data/po/gd.po
File diff suppressed because it is too large
Load Diff
2367
data/po/gl.po
2367
data/po/gl.po
File diff suppressed because it is too large
Load Diff
2385
data/po/he.po
2385
data/po/he.po
File diff suppressed because it is too large
Load Diff
3793
data/po/hi.po
3793
data/po/hi.po
File diff suppressed because it is too large
Load Diff
1622
data/po/hr.po
1622
data/po/hr.po
File diff suppressed because it is too large
Load Diff
2648
data/po/hu.po
2648
data/po/hu.po
File diff suppressed because it is too large
Load Diff
3793
data/po/hy.po
3793
data/po/hy.po
File diff suppressed because it is too large
Load Diff
1968
data/po/id.po
1968
data/po/id.po
File diff suppressed because it is too large
Load Diff
3793
data/po/is.po
3793
data/po/is.po
File diff suppressed because it is too large
Load Diff
1951
data/po/it.po
1951
data/po/it.po
File diff suppressed because it is too large
Load Diff
1784
data/po/ja.po
1784
data/po/ja.po
File diff suppressed because it is too large
Load Diff
3794
data/po/jbo.po
3794
data/po/jbo.po
File diff suppressed because it is too large
Load Diff
3790
data/po/ko.po
3790
data/po/ko.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1704
data/po/kw.po
1704
data/po/kw.po
File diff suppressed because it is too large
Load Diff
3789
data/po/ky.po
3789
data/po/ky.po
File diff suppressed because it is too large
Load Diff
2819
data/po/la.po
2819
data/po/la.po
File diff suppressed because it is too large
Load Diff
1733
data/po/lt.po
1733
data/po/lt.po
File diff suppressed because it is too large
Load Diff
1694
data/po/lv.po
1694
data/po/lv.po
File diff suppressed because it is too large
Load Diff
3792
data/po/mn_MN.po
3792
data/po/mn_MN.po
File diff suppressed because it is too large
Load Diff
1840
data/po/nb.po
1840
data/po/nb.po
File diff suppressed because it is too large
Load Diff
3792
data/po/nb_NO.po
3792
data/po/nb_NO.po
File diff suppressed because it is too large
Load Diff
1706
data/po/nl.po
1706
data/po/nl.po
File diff suppressed because it is too large
Load Diff
1686
data/po/nn.po
1686
data/po/nn.po
File diff suppressed because it is too large
Load Diff
3792
data/po/no.po
3792
data/po/no.po
File diff suppressed because it is too large
Load Diff
3792
data/po/no_NO.po
3792
data/po/no_NO.po
File diff suppressed because it is too large
Load Diff
3792
data/po/oc.po
3792
data/po/oc.po
File diff suppressed because it is too large
Load Diff
3793
data/po/os.po
3793
data/po/os.po
File diff suppressed because it is too large
Load Diff
1712
data/po/pl.po
1712
data/po/pl.po
File diff suppressed because it is too large
Load Diff
2374
data/po/pt.po
2374
data/po/pt.po
File diff suppressed because it is too large
Load Diff
1693
data/po/pt_BR.po
1693
data/po/pt_BR.po
File diff suppressed because it is too large
Load Diff
1667
data/po/ro.po
1667
data/po/ro.po
File diff suppressed because it is too large
Load Diff
1910
data/po/ru.po
1910
data/po/ru.po
File diff suppressed because it is too large
Load Diff
1621
data/po/sc.po
1621
data/po/sc.po
File diff suppressed because it is too large
Load Diff
1610
data/po/sco.po
1610
data/po/sco.po
File diff suppressed because it is too large
Load Diff
1737
data/po/sk.po
1737
data/po/sk.po
File diff suppressed because it is too large
Load Diff
1700
data/po/sl.po
1700
data/po/sl.po
File diff suppressed because it is too large
Load Diff
1610
data/po/sq.po
1610
data/po/sq.po
File diff suppressed because it is too large
Load Diff
2091
data/po/sr.po
2091
data/po/sr.po
File diff suppressed because it is too large
Load Diff
2179
data/po/sv.po
2179
data/po/sv.po
File diff suppressed because it is too large
Load Diff
1744
data/po/tr.po
1744
data/po/tr.po
File diff suppressed because it is too large
Load Diff
2865
data/po/tt.po
2865
data/po/tt.po
File diff suppressed because it is too large
Load Diff
1982
data/po/uk.po
1982
data/po/uk.po
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
|
||||
|
||||
1608
data/po/uz.po
1608
data/po/uz.po
File diff suppressed because it is too large
Load Diff
3788
data/po/zh.po
3788
data/po/zh.po
File diff suppressed because it is too large
Load Diff
1681
data/po/zh_CN.po
1681
data/po/zh_CN.po
File diff suppressed because it is too large
Load Diff
1689
data/po/zh_TW.po
1689
data/po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@@ -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.;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -100,7 +100,9 @@ void Screen::init()
|
||||
*/
|
||||
void Screen::push()
|
||||
{
|
||||
#ifndef SERVER_ONLY
|
||||
StateManager::get()->pushScreen(this);
|
||||
#endif
|
||||
} // push
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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++)
|
||||
|
||||
@@ -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
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user