43 Commits
0.9.2 ... 0.9.1

Author SHA1 Message Date
hiker
02517bc6d4 Fixed scripts (#2350), see aeb4ba63d0 on master. 2015-10-16 10:12:05 +11:00
hiker
b0c7fc9106 Fixed translator's credits (see #2350). 2015-10-16 09:42:36 +11:00
hiker
bf0981879a Revert "Updated author credits."
This reverts commit 87d0680b4d.
2015-10-16 09:16:39 +11:00
hiker
53158cbe67 Updates Asian fonts. 2015-10-15 12:29:58 +11:00
Deve
2fb00366ca Make changing to fullscreen on linux safer.
Now we are waiting until window state is already changed to fullscreen. We are getting real window size at the end of creating window function and previously it was sometimes reporting size of the window in windowed mode, which could causing issues in gui. Previously this was workarounded by forcing minimal window size to be at least in screen resolution, but window managers don't like to have non-resizeable fullscreen windows. Now this workaround is not needed anymore.
2015-10-15 12:06:36 +11:00
hiker
87d0680b4d Updated author credits. 2015-10-15 11:57:48 +11:00
Marianne Gagnon
41e56ce9d6 Remove seemingly uneeded rotation, see #2345. Not sure I understand what is going on 2015-10-15 11:50:41 +11:00
Deve
afc5bb1c2a Forgot about sun 2015-10-15 11:47:16 +11:00
Deve
80796a7701 Fixed crash on exit race with OpenGL 2.1 2015-10-15 11:42:20 +11:00
Deve
551a4e195f Allow to use 1280x720 resolution.
This is quite popular resolution and it is a kind of standard. Even the most of new monitors have it because it has the same porportion as 1920x1080. And it looks much better than 1024x768 expanded to 16:9 proportionos ;) I also didn't notice any issues in gui during using it.
2015-10-15 11:39:46 +11:00
Deve
31313a4d01 Fixed starting a race on OpenGL 2.1 2015-10-15 11:39:28 +11:00
samuncle
47f1a3391f Add a better firework effect ! 2015-10-15 11:35:23 +11:00
samuncle
5a276eb928 Minor change in gfx 2015-10-15 11:32:30 +11:00
hiker
dd5812a885 Updated missing credits. 2015-10-15 11:24:52 +11:00
hiker
3ef9c40b65 Updated required assets versions. 2015-10-15 11:22:18 +11:00
Elderme
81d5b368b9 removed useless varying in rhpassthrough.geom shader 2015-10-15 11:17:16 +11:00
samuncle
0cece86e02 Add several new particle effect and correct the bug to enable emit map & alpha testing 2015-10-15 11:15:59 +11:00
hiker
819ce5a821 Updated one more version number. 2015-10-15 11:05:24 +11:00
hiker
5dc4d41edb Merge branch '0.9.1-rc1' of https://github.com/supertuxkart/stk-code into 0.9.1-rc1 2015-10-15 11:02:11 +11:00
hiker
ecf706cf8d Updated version number to 0.9.1. 2015-10-15 11:01:48 +11:00
Marianne Gagnon
79338bdd90 Remove translations that not complete enough 2015-10-14 20:00:08 -04:00
Marianne Gagnon
8323b302bc Update translations 2015-10-14 19:53:08 -04:00
Marianne Gagnon
8c712863fb Fix buggy RTL detection, see #2320 2015-10-01 19:58:26 -04:00
hiker
d4c7d0fa78 Updated Asian fonts. 2015-09-28 10:12:47 +10:00
hiker
c0485d3c3a Fixed typo in credits. 2015-09-28 09:52:39 +10:00
Marianne Gagnon
09bbcdc68d update translations 2015-09-27 19:41:02 -04:00
hiker
cc5c819e9a Updated credits. 2015-09-28 09:08:46 +10:00
hiker
5b8f71acfb Updated version numbers in installer. 2015-09-28 09:06:05 +10:00
hiker
92627940dd Updatex changelog. 2015-09-28 08:38:03 +10:00
hiker
aaf3f79721 Merge branch '0.9.1-rc1' of github.com:supertuxkart/stk-code into 0.9.1-rc1 2015-09-28 00:39:59 +10:00
hiker
601c624f9b Updated donations. 2015-09-28 00:39:26 +10:00
hiker
98bb2c31a2 Fixed incorrect handling of 0x1a character in credit files
(which can happen in unicode, previously stk would stop
reading files after 0x1a).
2015-09-28 00:38:41 +10:00
Deve
d367c22d46 Fixed crash on exit and changing resolution with old opengl.
Regression introduced in commit 93f24f2a74.
Playing the real game is still not working.
2015-09-27 14:18:31 +02:00
Deve
b3b9fbd8d2 Create angelscript library in build directory instead of lib directory.
This solves issues with multiple build directories (every one should have its own angelscript lib). It was causing conflicts eg. 32-bit library with 64-bit STK.
Ideally it should be commited upstream to avoid this problem after updating library.
2015-09-26 23:03:38 +02:00
Deve
ad1bb0122b Fixed disabling "remember window pos" button when fullscreen is enabled.
Regression since commit 9b562d31f4
2015-09-26 20:42:02 +02:00
Deve
733e77b47f Fixed a strange bug during changing window to fullscreen under Gnome 2015-09-26 20:41:50 +02:00
hiker
bde11535c2 Updated supertuxkart.pot to be not sorted (see pull #2319). 2015-09-26 01:11:45 +10:00
Karl Ove Hufthammer
4d337621e5 (Again) don’t sort strings alphabetically (makes the translators’ work much easier). 2015-09-26 01:01:16 +10:00
hiker
b6c2dc632a Renamed 'version' file to have the right name for 0.9-rc1. 2015-09-25 23:39:23 +10:00
hiker
8066778620 Fixed kart getting stuck at doors of overworld (and other static
physical objects).
2015-09-25 23:36:49 +10:00
hiker
ecc70b75dd Fix #2300 (mostly,karts get stuck there atm, but can't drive through the door). 2015-09-25 09:19:10 +10:00
Marianne Gagnon
83fcdc1dcf Updates to changelog and credits. More work probably needed 2015-09-22 20:33:29 -04:00
Marianne Gagnon
19b4840312 Set version number to 0.9.1-rc1 2015-09-22 20:05:36 -04:00
106 changed files with 139125 additions and 194535 deletions

View File

@@ -1,3 +1,16 @@
## 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

View File

@@ -1,6 +1,6 @@
# root CMakeLists for the SuperTuxKart project
project(SuperTuxKart)
set(PROJECT_VERSION "0.8.1")
set(PROJECT_VERSION "0.9.1")
cmake_minimum_required(VERSION 2.8.4)
if(NOT (CMAKE_MAJOR_VERSION VERSION_LESS 3))

Binary file not shown.

View File

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

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

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

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

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

View File

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

View File

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

View File

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

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,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>

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

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

3
data/po/.gitignore vendored
View File

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

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

@@ -3364,6 +3364,10 @@ msgstr ""
msgid "standard"
msgstr ""
#: src/states_screens/credits.cpp:209
msgid "translator-credits"
msgstr ""
#: src/states_screens/credits.cpp:209
msgid "translator-credits"
msgstr "Launchpad Contributions:"

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

@@ -52,7 +52,7 @@ xgettext -j -d supertuxkart --keyword=_ --keyword=N_ --keyword=_LTR \
--package-name=supertuxkart
# Angelscript files (xgettext doesn't support AS so pretend it's c++)
xgettext -j -d supertuxkart -s --keyword="translate" --add-comments="I18N:" \
xgettext -j -d supertuxkart --keyword="translate" --add-comments="I18N:" \
-p ./data/po -o supertuxkart.pot $ANGELSCRIPT_FILE_LIST \
--package-name=supertuxkart --language=c++

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

@@ -23,5 +23,7 @@ void main(void)
col.xyz *= pow(color.xyz, vec3(2.2));
if (col.a * color.a < 0.5) discard;
float specmap = texture(SpecMap, uv).g;
FragColor = vec4(getLightFactor(col.xyz, vec3(1.), specmap, 0.), 1.);
float emitmap = texture(SpecMap, uv).b;
FragColor = vec4(getLightFactor(col.xyz, vec3(1.), specmap, emitmap), 1.);
}

View File

@@ -2,9 +2,7 @@ layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
in int layer[3];
in vec2 uv_in[3];
flat out int slice;
out vec2 uv;
void main(void)
{
@@ -12,7 +10,6 @@ void main(void)
for(int i=0; i<3; i++)
{
slice = layer[0];
uv = uv_in[i];
gl_Position = gl_in[i].gl_Position;
EmitVertex();
}

View File

@@ -4,3 +4,6 @@ Atm there is no mechanism in place to verify this.
stk release svn version of assets
---------------------------------------
0.8.2-beta2 needs r15985
0.9 needs r16279
0.9.1-rc1 needs r16470
0.9.1 needs r16503

View File

@@ -133,7 +133,7 @@ else()
endif()
add_library(${ANGELSCRIPT_LIBRARY_NAME} ${ANGELSCRIPT_SOURCE} ${ANGELSCRIPT_HEADERS})
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../lib)
#set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../lib)
target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} ${CMAKE_THREAD_LIBS_INIT})
set_target_properties(${ANGELSCRIPT_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
@@ -154,6 +154,6 @@ if(MSVC)
set_target_properties(${ANGELSCRIPT_LIBRARY_NAME} PROPERTIES COMPILE_FLAGS "/MP")
endif()
set(RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../../bin)
#set(RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../../bin)

View File

@@ -912,31 +912,17 @@ bool CIrrDeviceLinux::createWindow()
// window is showed in wrong screen. It doesn't matter for vidmode
// which displays cloned image in all devices.
#ifdef _IRR_LINUX_X11_RANDR_
XResizeWindow(display, window, Width, Height);
XMoveWindow(display, window, crtc_x, crtc_y);
XMoveResizeWindow(display, window, crtc_x, crtc_y, Width, Height);
XRaiseWindow(display, window);
XFlush(display);
#endif
// Workaround for Gnome which sometimes creates window smaller than display
XSizeHints *hints = XAllocSizeHints();
hints->flags=PMinSize;
hints->min_width=Width;
hints->min_height=Height;
XSetWMNormalHints(display, window, hints);
XFree(hints);
// Set the fullscreen mode via the window manager. This allows alt-tabing, volume hot keys & others.
// Get the needed atom from there freedesktop names
Atom WMStateAtom = XInternAtom(display, "_NET_WM_STATE", true);
Atom WMFullscreenAtom = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", true);
// Set the fullscreen property
XChangeProperty(display, window, WMStateAtom, XA_ATOM, 32, PropModeReplace,
reinterpret_cast<unsigned char*>(&WMFullscreenAtom), 1);
// Notify the root window
XEvent xev = {0}; // The event should be filled with zeros before setting its attributes
xev.type = ClientMessage;
xev.xclient.window = window;
xev.xclient.message_type = WMStateAtom;
@@ -947,6 +933,47 @@ bool CIrrDeviceLinux::createWindow()
SubstructureRedirectMask | SubstructureNotifyMask, &xev);
XFlush(display);
// Wait until window state is already changed to fullscreen
bool fullscreen = false;
for (int i = 0; i < 500; i++)
{
Atom type;
int format;
unsigned long numItems, bytesAfter;
unsigned char* data = NULL;
int s = XGetWindowProperty(display, window, WMStateAtom,
0l, 1024, False, XA_ATOM, &type,
&format, &numItems, &bytesAfter,
&data);
if (s == Success)
{
Atom* atoms = (Atom*)data;
for (unsigned int i = 0; i < numItems; ++i)
{
if (atoms[i] == WMFullscreenAtom)
{
fullscreen = true;
break;
}
}
}
XFree(data);
if (fullscreen == true)
break;
usleep(1000);
}
if (!fullscreen)
{
os::Printer::log("Warning! Got timeout while checking fullscreen sate", ELL_WARNING);
}
}
else
{

View File

@@ -96,6 +96,7 @@ GPUTimer m_perf_query[Q_LAST];
const int MIN_SUPPORTED_HEIGHT = 768;
const int MIN_SUPPORTED_WIDTH = 1024;
const bool ALLOW_1280_X_720 = true;
// ----------------------------------------------------------------------------
/** The constructor creates the irrlicht device. It first creates a NULL
@@ -157,7 +158,10 @@ IrrDriver::~IrrDriver()
delete m_shadow_matrices;
m_shadow_matrices = NULL;
Shaders::destroy();
if (CVS->isGLSL())
{
Shaders::destroy();
}
delete m_wind;
delete m_spherical_harmonics;
} // ~IrrDriver
@@ -324,8 +328,9 @@ void IrrDriver::createListOfVideoModes()
{
const int w = modes->getVideoModeResolution(i).Width;
const int h = modes->getVideoModeResolution(i).Height;
if ( (h < MIN_SUPPORTED_HEIGHT || w < MIN_SUPPORTED_WIDTH) &&
( ! (h==600 && w==800 && UserConfigParams::m_artist_debug_mode) ) )
if ((h < MIN_SUPPORTED_HEIGHT || w < MIN_SUPPORTED_WIDTH) &&
(!(h==600 && w==800 && UserConfigParams::m_artist_debug_mode) &&
(!(h==720 && w==1280 && ALLOW_1280_X_720 == true))))
continue;
VideoMode mode(w, h);
@@ -822,7 +827,10 @@ void IrrDriver::applyResolutionSettings()
GlowPassCmd::getInstance()->kill();
resetTextureTable();
// initDevice will drop the current device.
Shaders::destroy();
if (CVS->isGLSL())
{
Shaders::destroy();
}
initDevice();
// Re-init GUI engine
@@ -1383,7 +1391,11 @@ scene::ISceneNode *IrrDriver::addSkyBox(const std::vector<video::ITexture*> &tex
{
assert(texture.size() == 6);
m_skybox = new Skybox(texture);
if (CVS->isGLSL())
{
m_skybox = new Skybox(texture);
}
if(spherical_harmonics_textures.size() == 6)
{
m_spherical_harmonics->setTextures(spherical_harmonics_textures);

View File

@@ -1778,6 +1778,8 @@ void Kart::crashed(AbstractKart *k, bool update_attachments)
// -----------------------------------------------------------------------------
/** Kart hits the track with a given material.
* \param m Material hit, can be NULL if no specific material exists.
* \param normal The normal of the hit (used to push a kart back, which avoids
* that karts sometimes can get stuck).
*/
void Kart::crashed(const Material *m, const Vec3 &normal)
{

View File

@@ -20,6 +20,7 @@
#include "config/user_config.hpp"
#include "io/file_manager.hpp"
#include "graphics/central_settings.hpp"
#include "graphics/irr_driver.hpp"
#include "graphics/particle_emitter.hpp"
#include "graphics/particle_kind.hpp"
@@ -120,9 +121,13 @@ KartGFX::~KartGFX()
if(m_all_emitters[i])
delete m_all_emitters[i];
} // for i < KGFX_COUNT
m_nitro_light->drop();
m_skidding_light_1->drop();
m_skidding_light_2->drop();
if (CVS->isGLSL())
{
m_nitro_light->drop();
m_skidding_light_1->drop();
m_skidding_light_2->drop();
}
} // ~KartGFX

View File

@@ -496,6 +496,11 @@ void PhysicalObject::init()
btVector3 inertia(1,1,1);
if (m_body_type != MP_EXACT)
m_shape->calculateLocalInertia(m_mass, inertia);
else
{
if (m_mass == 0)
inertia.setValue(0, 0, 0);
}
btRigidBody::btRigidBodyConstructionInfo info(m_mass, m_motion_state,
m_shape, inertia);

View File

@@ -594,10 +594,21 @@ btScalar Physics::solveGroup(btCollisionObject** bodies, int numBodies,
upA, contact_manifold->getContactPoint(0).m_localPointA,
upB, contact_manifold->getContactPoint(0).m_localPointB);
else if(upB->is(UserPointer::UP_PHYSICAL_OBJECT))
{
// 2.3 kart hits physical object
m_all_collisions.push_back(
upB, contact_manifold->getContactPoint(0).m_localPointB,
upA, contact_manifold->getContactPoint(0).m_localPointA);
// If the object is a statical object (e.g. a door in
// overworld) add a push back to avoid that karts get stuck
if (objB->isStaticObject())
{
AbstractKart *kart = upA->getPointerKart();
const btVector3 &normal = contact_manifold->getContactPoint(0)
.m_normalWorldOnB;
kart->crashed((Material*)NULL, normal);
} // isStatiObject
}
else if(upB->is(UserPointer::UP_ANIMATION))
m_all_collisions.push_back(
upB, contact_manifold->getContactPoint(0).m_localPointB,

View File

@@ -143,7 +143,7 @@ void CreditsScreen::loadedFromFile()
std::string creditsfile = file_manager->getAsset("CREDITS");
std::ifstream file( creditsfile.c_str() ) ;
std::ifstream file( creditsfile.c_str(), std::ios::binary ) ;
if (file.fail() || !file.is_open() || file.eof())
{

View File

@@ -200,7 +200,7 @@ void OptionsScreenVideo::init()
CheckBoxWidget* rememberWinpos = getWidget<CheckBoxWidget>("rememberWinpos");
rememberWinpos->setState(UserConfigParams::m_remember_window_location);
rememberWinpos->setActive(UserConfigParams::m_fullscreen);
rememberWinpos->setActive(!UserConfigParams::m_fullscreen);
// --- get resolution list from irrlicht the first time
if (!m_inited)

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