From 01a7094cd8655c15c62ea25c5c471b2cdf2e7e90 Mon Sep 17 00:00:00 2001 From: Deve Date: Mon, 3 Nov 2014 13:32:23 +0100 Subject: [PATCH 01/13] Don't show jump animation during rescue --- src/karts/kart.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/karts/kart.cpp b/src/karts/kart.cpp index 5de119a5b..04ca2a445 100644 --- a/src/karts/kart.cpp +++ b/src/karts/kart.cpp @@ -1329,7 +1329,7 @@ void Kart::update(float dt) // is rescued isOnGround might still be true, since the kart rigid // body was removed from the physics, but still retain the old // values for the raycasts). - if (!isOnGround()) + if (!isOnGround() && !getKartAnimation()) { const Material *m = getMaterial(); const Material *last_m = getLastMaterial(); @@ -1359,11 +1359,15 @@ void Kart::update(float dt) { // Kart touched ground again m_is_jumping = false; - HitEffect *effect = new Explosion(getXYZ(), "jump", - "jump_explosion.xml"); - projectile_manager->addHitEffect(effect); m_kart_model->setAnimation(KartModel::AF_DEFAULT); m_jump_time = 0; + + if (!getKartAnimation()) + { + HitEffect *effect = new Explosion(getXYZ(), "jump", + "jump_explosion.xml"); + projectile_manager->addHitEffect(effect); + } } //const bool dyn_shadows = World::getWorld()->getTrack()->hasShadows() && From 1e384ebb521fae584c23dd9cb9a94bd17f7e78ad Mon Sep 17 00:00:00 2001 From: Tobias Markus Date: Mon, 3 Nov 2014 13:54:19 +0100 Subject: [PATCH 02/13] Fix mac compilation (syntax error) --- lib/irrlicht/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/irrlicht/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm b/lib/irrlicht/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm index d8371ddd0..3cdaafe94 100644 --- a/lib/irrlicht/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm +++ b/lib/irrlicht/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm @@ -1709,7 +1709,7 @@ bool CIrrDeviceMacOSX::activateJoysticks(core::array & joystickIn SJoystickInfo returnInfo; returnInfo.Joystick = jindex; - returnInfo..HasGenericName = false; + returnInfo.HasGenericName = false; returnInfo.Axes = info.axes; //returnInfo.Hats = info.hats; returnInfo.Buttons = info.buttons; From 3cec4b25fb1bdf5dfa67d8b64e2637352ba59f29 Mon Sep 17 00:00:00 2001 From: Deve Date: Mon, 3 Nov 2014 16:48:38 +0100 Subject: [PATCH 03/13] Set jump animation only if any other animation os not used. It avoids to break eg. win/lose animation. Remove unused variable. --- src/karts/kart.cpp | 15 ++++++++------- src/karts/kart.hpp | 2 -- src/karts/kart_model.hpp | 3 +++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/karts/kart.cpp b/src/karts/kart.cpp index 04ca2a445..24660e19d 100644 --- a/src/karts/kart.cpp +++ b/src/karts/kart.cpp @@ -127,7 +127,6 @@ Kart::Kart (const std::string& ident, unsigned int world_kart_id, m_flying = false; m_sky_particles_emitter= NULL; m_stars_effect = NULL; - m_jump_time = 0; m_is_jumping = false; m_min_nitro_time = 0.0f; m_fire_clicked = 0; @@ -1336,10 +1335,11 @@ void Kart::update(float dt) // A jump starts only the kart isn't already jumping, is on a new // (or no) texture. - if(!m_is_jumping && last_m && last_m!=m ) + if (!m_is_jumping && last_m && last_m != m && + m_kart_model->getAnimation() == KartModel::AF_DEFAULT) { float v = getVelocity().getY(); - float force = World::getWorld()->getTrack()->getGravity();; + float force = World::getWorld()->getTrack()->getGravity(); // Velocity / force is the time it takes to reach the peak // of the jump (i.e. when vertical speed becomes 0). Assuming // that jump start height and end height are the same, it will @@ -1348,19 +1348,20 @@ void Kart::update(float dt) // Jump if either the jump is estimated to be long enough, or // the texture has the jump property set. - if(t>getKartProperties()->getJumpAnimationTime() || - last_m->isJumpTexture() ) + if (t > getKartProperties()->getJumpAnimationTime() || + last_m->isJumpTexture()) + { m_kart_model->setAnimation(KartModel::AF_JUMP_START); + } + m_is_jumping = true; } - m_jump_time+=dt; } else if (m_is_jumping) { // Kart touched ground again m_is_jumping = false; m_kart_model->setAnimation(KartModel::AF_DEFAULT); - m_jump_time = 0; if (!getKartAnimation()) { diff --git a/src/karts/kart.hpp b/src/karts/kart.hpp index 01fc9bd27..a044fc85a 100644 --- a/src/karts/kart.hpp +++ b/src/karts/kart.hpp @@ -166,8 +166,6 @@ private: // Graphical effects // ----------------- - /** Time a kart is jumping. */ - float m_jump_time; /** Is time flying activated */ bool m_is_jumping; diff --git a/src/karts/kart_model.hpp b/src/karts/kart_model.hpp index 391904030..454a66427 100644 --- a/src/karts/kart_model.hpp +++ b/src/karts/kart_model.hpp @@ -302,6 +302,9 @@ public: /** Lowest coordinate on up axis */ float getLowestPoint () const { return m_kart_lowest_point; } // ------------------------------------------------------------------------ + /** Returns information about currently played animation */ + AnimationFrameType getAnimation() { return m_current_animation; } + // ------------------------------------------------------------------------ /** Enables- or disables the end animation. */ void setAnimation(AnimationFrameType type); // ------------------------------------------------------------------------ From d7caebe847dc46de95a8738f1f905da4fcd5e7a1 Mon Sep 17 00:00:00 2001 From: samuncle Date: Mon, 3 Nov 2014 21:53:44 +0100 Subject: [PATCH 04/13] enable vignette during races --- data/shaders/tonemap.frag | 2 +- src/graphics/post_processing.cpp | 14 +++++++++++--- src/graphics/shaders.cpp | 2 +- src/graphics/shaders.hpp | 3 ++- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/data/shaders/tonemap.frag b/data/shaders/tonemap.frag index f7b2d54b7..1ebd6c119 100644 --- a/data/shaders/tonemap.frag +++ b/data/shaders/tonemap.frag @@ -4,7 +4,7 @@ uniform sampler2D tex; uniform sampler2D logluminancetex; uniform float exposure = .09; uniform float Lwhite = 1.; -uniform float vignette_weight = 0.; +uniform float vignette_weight; out vec4 FragColor; diff --git a/src/graphics/post_processing.cpp b/src/graphics/post_processing.cpp index dc662d4e3..86a626103 100644 --- a/src/graphics/post_processing.cpp +++ b/src/graphics/post_processing.cpp @@ -535,11 +535,11 @@ static void renderGodRay(GLuint tex, const core::vector2df &sunpos) glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } -static void toneMap(FrameBuffer &fbo, GLuint rtt) +static void toneMap(FrameBuffer &fbo, GLuint rtt, float vignette_weight) { fbo.Bind(); FullScreenShader::ToneMapShader::getInstance()->SetTextureUnits(rtt); - DrawFullScreenEffect(); + DrawFullScreenEffect(vignette_weight); } static void renderDoF(FrameBuffer &fbo, GLuint rtt) @@ -737,7 +737,15 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode, boo { PROFILER_PUSH_CPU_MARKER("- Tonemap", 0xFF, 0x00, 0x00); ScopedGPUTimer Timer(irr_driver->getGPUTimer(Q_TONEMAP)); - toneMap(*out_fbo, in_fbo->getRTT()[0]); + // only enable vignette during race + if(isRace) + { + toneMap(*out_fbo, in_fbo->getRTT()[0], 1.0); + } + else + { + toneMap(*out_fbo, in_fbo->getRTT()[0], 0.0); + } std::swap(in_fbo, out_fbo); PROFILER_POP_CPU_MARKER(); } diff --git a/src/graphics/shaders.cpp b/src/graphics/shaders.cpp index 337daed5d..459f276d1 100644 --- a/src/graphics/shaders.cpp +++ b/src/graphics/shaders.cpp @@ -1569,7 +1569,7 @@ namespace FullScreenShader GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/utils/getRGBfromCIEXxy.frag").c_str(), GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/utils/getCIEXYZ.frag").c_str(), GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/tonemap.frag").c_str()); - AssignUniforms(); + AssignUniforms("vignette_weight"); AssignSamplerNames(Program, 0, "text"); } diff --git a/src/graphics/shaders.hpp b/src/graphics/shaders.hpp index c429fc48a..55b773d51 100644 --- a/src/graphics/shaders.hpp +++ b/src/graphics/shaders.hpp @@ -377,9 +377,10 @@ public: BloomBlendShader(); }; -class ToneMapShader : public ShaderHelperSingleton, public TextureRead +class ToneMapShader : public ShaderHelperSingleton, public TextureRead { public: + ToneMapShader(); }; From aeed2618a498c8049758c6e9fc8bf797d94c97a4 Mon Sep 17 00:00:00 2001 From: Marianne Gagnon Date: Mon, 3 Nov 2014 17:47:07 -0500 Subject: [PATCH 05/13] Set anisotropic filtering to 16 on highest graphical level, fixes #1655 --- src/states_screens/options_screen_video.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/states_screens/options_screen_video.cpp b/src/states_screens/options_screen_video.cpp index c6c3a121c..561b30144 100644 --- a/src/states_screens/options_screen_video.cpp +++ b/src/states_screens/options_screen_video.cpp @@ -97,7 +97,7 @@ static GFXPreset GFX_PRESETS[] = { true /* light */, 2 /* shadow */, true /* bloom */, true /* motionblur */, true /* lightshaft */, true /* glow */, true /* mlaa */, true /* ssao */, true /* weather */, - true /* animatedScenery */, 2 /* animatedCharacters */, 8 /* anisotropy */, + true /* animatedScenery */, 2 /* animatedCharacters */, 16 /* anisotropy */, true /* depth of field */, true /* global illumination */ } }; From c93e6c0ee3cd021c3044def005f722945a543ca4 Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Tue, 4 Nov 2014 01:48:50 +0100 Subject: [PATCH 06/13] Fix shadow glitches in minigolf --- src/graphics/render.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/graphics/render.cpp b/src/graphics/render.cpp index 21e64047d..6309117bd 100644 --- a/src/graphics/render.cpp +++ b/src/graphics/render.cpp @@ -638,7 +638,7 @@ core::matrix4 getTighestFitOrthoProj(const core::matrix4 &transform, const std:: return tmp_matrix; tmp_matrix.buildProjectionMatrixOrthoLH(left, right, down, up, - 30, zmax); + zmin - 30, zmax); return tmp_matrix; } From 2f4edb6183434f84b65d2d94a02166f25093663c Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Tue, 4 Nov 2014 01:55:10 +0100 Subject: [PATCH 07/13] Higher value for zmin --- src/graphics/render.cpp | 2 +- src/graphics/render_geometry.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/graphics/render.cpp b/src/graphics/render.cpp index 6309117bd..ec47e5aa3 100644 --- a/src/graphics/render.cpp +++ b/src/graphics/render.cpp @@ -638,7 +638,7 @@ core::matrix4 getTighestFitOrthoProj(const core::matrix4 &transform, const std:: return tmp_matrix; tmp_matrix.buildProjectionMatrixOrthoLH(left, right, down, up, - zmin - 30, zmax); + zmin - 100, zmax); return tmp_matrix; } diff --git a/src/graphics/render_geometry.cpp b/src/graphics/render_geometry.cpp index d5fe29c4b..769d082ab 100644 --- a/src/graphics/render_geometry.cpp +++ b/src/graphics/render_geometry.cpp @@ -981,8 +981,8 @@ void IrrDriver::renderShadows() m_rtts->getShadowFBO().Bind(); glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(1.5, 0.); - glCullFace(GL_BACK); - glEnable(GL_CULL_FACE); +// glCullFace(GL_BACK); +// glEnable(GL_CULL_FACE); glClearColor(1., 1., 1., 1.); glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); From 3eafdd9729027b0645b52c92134600cc2997cb33 Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Tue, 4 Nov 2014 02:06:17 +0100 Subject: [PATCH 08/13] Culling was wrongly disabled --- src/graphics/render_geometry.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/graphics/render_geometry.cpp b/src/graphics/render_geometry.cpp index 769d082ab..d5fe29c4b 100644 --- a/src/graphics/render_geometry.cpp +++ b/src/graphics/render_geometry.cpp @@ -981,8 +981,8 @@ void IrrDriver::renderShadows() m_rtts->getShadowFBO().Bind(); glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(1.5, 0.); -// glCullFace(GL_BACK); -// glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + glEnable(GL_CULL_FACE); glClearColor(1., 1., 1., 1.); glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); From e27e7a013275d9f4b0aa05c4573a7cb10856b37f Mon Sep 17 00:00:00 2001 From: Deve Date: Tue, 4 Nov 2014 11:27:07 +0100 Subject: [PATCH 09/13] Reset kart rotation when skidding is broken by rescue animation. Minor improvements with breaking during skidding. --- src/karts/skidding.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/karts/skidding.cpp b/src/karts/skidding.cpp index 2f13521b3..4a6060fe5 100644 --- a/src/karts/skidding.cpp +++ b/src/karts/skidding.cpp @@ -77,6 +77,9 @@ void Skidding::reset() m_kart->getKartGFX()->setCreationRateAbsolute(KartGFX::KGFX_SKIDL, 0); m_kart->getKartGFX()->setCreationRateAbsolute(KartGFX::KGFX_SKIDR, 0); m_kart->getControls().m_skid = KartControl::SC_NONE; + + btVector3 rot(0, 0, 0); + m_kart->getVehicle()->setTimedRotation(0, rot); } // reset // ---------------------------------------------------------------------------- @@ -120,8 +123,8 @@ void Skidding::updateSteering(float steer, float dt) break; case SKID_BREAK: m_real_steering = steer; - if (m_visual_rotation > 0.05f) m_visual_rotation -= 0.05f; - else if (m_visual_rotation < -0.05f) m_visual_rotation += 0.05f; + if (m_visual_rotation > 0.1f) m_visual_rotation -= 0.1f; + else if (m_visual_rotation < -0.1f) m_visual_rotation += 0.1f; else { reset(); @@ -212,7 +215,7 @@ void Skidding::update(float dt, bool is_on_ground, } // No skidding backwards or while stopped - if(m_kart->getSpeed() < 0.001f && + if(m_kart->getSpeed() < m_min_skid_speed && m_skid_state != SKID_NONE && m_skid_state != SKID_BREAK) { m_skid_state = SKID_BREAK; @@ -355,7 +358,6 @@ void Skidding::update(float dt, bool is_on_ground, } case SKID_BREAK: { - updateSteering(steering, dt); break; } case SKID_ACCUMULATE_LEFT: From 66a1ff2b2b44e4d2c7d870aae2f1fdc38a5fe2b6 Mon Sep 17 00:00:00 2001 From: Deve Date: Tue, 4 Nov 2014 20:10:36 +0100 Subject: [PATCH 10/13] Don't allow to run locked tracks in random GPs --- src/race/grand_prix_data.cpp | 6 +++ src/states_screens/gp_info_screen.cpp | 68 +++++++++++++++++++-------- src/states_screens/gp_info_screen.hpp | 6 +++ 3 files changed, 61 insertions(+), 19 deletions(-) diff --git a/src/race/grand_prix_data.cpp b/src/race/grand_prix_data.cpp index e1c7d8f25..92e999d64 100644 --- a/src/race/grand_prix_data.cpp +++ b/src/race/grand_prix_data.cpp @@ -106,6 +106,9 @@ void GrandPrixData::changeTrackNumber(const unsigned int number_of_tracks, // Ignore no-racing tracks: if(!track->isRaceTrack()) continue; + + if (PlayerManager::getCurrentPlayer()->isLocked(track->getIdent())) + continue; // Only add tracks that are not already picked. if(std::find(m_tracks.begin(), m_tracks.end(), track->getIdent())== @@ -129,6 +132,9 @@ void GrandPrixData::changeTrackNumber(const unsigned int number_of_tracks, const Track *track = track_manager->getTrack(track_index); std::string id = track->getIdent(); + + if (PlayerManager::getCurrentPlayer()->isLocked(track->getIdent())) + continue; m_tracks.push_back(id); m_laps.push_back(track->getDefaultNumberOfLaps()); diff --git a/src/states_screens/gp_info_screen.cpp b/src/states_screens/gp_info_screen.cpp index db587f75c..f08911cb1 100644 --- a/src/states_screens/gp_info_screen.cpp +++ b/src/states_screens/gp_info_screen.cpp @@ -59,6 +59,7 @@ GPInfoScreen::GPInfoScreen() : Screen("gp_info.stkgui") // Necessary to test if loadedFroMFile() was executed (in setGP) m_reverse_spinner = NULL; m_screenshot_widget = NULL; + m_max_num_tracks = 0; } // GPInfoScreen // ---------------------------------------------------------------------------- @@ -192,16 +193,12 @@ void GPInfoScreen::init() else m_group_name = stringc(m_group_spinner->getStringValue().c_str()).c_str(); - // If there are more tracks selected atm as in the group (which can - // happen if the group has been changed since last time this screen - // was shown), adjust it: - int max_num_tracks = m_group_name=="all" - ? track_manager->getNumberOfRaceTracks() - : (int)track_manager->getTracksInGroup(m_group_name).size(); - m_num_tracks_spinner->setMax(max_num_tracks); - if(m_num_tracks_spinner->getValue() > max_num_tracks) + m_max_num_tracks = getMaxNumTracks(m_group_name); + + m_num_tracks_spinner->setMax(m_max_num_tracks); + if(m_num_tracks_spinner->getValue() > m_max_num_tracks) { - m_num_tracks_spinner->setValue(max_num_tracks); + m_num_tracks_spinner->setValue(m_max_num_tracks); } // Now create the random GP: @@ -330,16 +327,11 @@ void GPInfoScreen::eventCallback(Widget *, const std::string &name, { m_group_name = stringc(m_group_spinner->getStringValue()).c_str(); - // Update the maximum for the number of tracks since it's depending on - // the current track. The current value in the Number-of-tracks-spinner - // has to be updated, since otherwise the displayed (and used) value - // can be bigger than the maximum. (Might be a TODO to fix this) - int max_num_tracks = m_group_name=="all" - ? track_manager->getNumberOfRaceTracks() - : (int)track_manager->getTracksInGroup(m_group_name).size(); - m_num_tracks_spinner->setMax(max_num_tracks); - if (m_num_tracks_spinner->getValue() > max_num_tracks) - m_num_tracks_spinner->setValue(max_num_tracks); + m_max_num_tracks = getMaxNumTracks(m_group_name); + + m_num_tracks_spinner->setMax(m_max_num_tracks); + if (m_num_tracks_spinner->getValue() > m_max_num_tracks) + m_num_tracks_spinner->setValue(m_max_num_tracks); // Create a new (i.e. with new tracks) random gp, since the old // tracks might not all belong to the newly selected group. @@ -389,3 +381,41 @@ void GPInfoScreen::onUpdate(float dt) m_screenshot_widget->setImage(file, IconButtonWidget::ICON_PATH_TYPE_ABSOLUTE); m_screenshot_widget->m_properties[PROP_ICON] = file; } // onUpdate + +/** Get number of available tracks for random GPs + */ +int GPInfoScreen::getMaxNumTracks(std::string group) +{ + int max_num_tracks = 0; + + if (group == "all") + { + for (unsigned int i = 0; i < track_manager->getNumberOfTracks(); i++) + { + std::string id = track_manager->getTrack(i)->getIdent(); + + if (!PlayerManager::getCurrentPlayer()->isLocked(id) && + track_manager->getTrack(i)->isRaceTrack()) + { + max_num_tracks++; + } + } + } + else + { + std::vector tracks = track_manager->getTracksInGroup(group); + + for (unsigned int i = 0; i < tracks.size(); i++) + { + std::string id = track_manager->getTrack(tracks[i])->getIdent(); + + if (!PlayerManager::getCurrentPlayer()->isLocked(id) && + track_manager->getTrack(tracks[i])->isRaceTrack()) + { + max_num_tracks++; + } + } + } + + return max_num_tracks; +} diff --git a/src/states_screens/gp_info_screen.hpp b/src/states_screens/gp_info_screen.hpp index 039936e61..2e2149c04 100644 --- a/src/states_screens/gp_info_screen.hpp +++ b/src/states_screens/gp_info_screen.hpp @@ -53,6 +53,12 @@ private: /** The currently selected group name. */ std::string m_group_name; + + /** Number of available tracks */ + int m_max_num_tracks; + + /** Get number of available tracks for random GPs */ + int getMaxNumTracks(std::string group); protected: // Necessary for RandomGPInfoScreen GUIEngine::IconButtonWidget* m_screenshot_widget; From 6d07189474276bc242ae066f91030f98d3f036c0 Mon Sep 17 00:00:00 2001 From: Deve Date: Tue, 4 Nov 2014 20:27:01 +0100 Subject: [PATCH 11/13] Don't allow doubled tracks in random GP. Otherwise track number limit wouldn't have sense. --- src/race/grand_prix_data.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/race/grand_prix_data.cpp b/src/race/grand_prix_data.cpp index 92e999d64..cc91402b1 100644 --- a/src/race/grand_prix_data.cpp +++ b/src/race/grand_prix_data.cpp @@ -135,10 +135,24 @@ void GrandPrixData::changeTrackNumber(const unsigned int number_of_tracks, if (PlayerManager::getCurrentPlayer()->isLocked(track->getIdent())) continue; + + bool is_already_added = false; + for (unsigned int i = 0; i < m_tracks.size(); i++) + { + if (m_tracks[i] == id) + { + is_already_added = true; + break; + } + } + + if (!is_already_added) + { + m_tracks.push_back(id); + m_laps.push_back(track->getDefaultNumberOfLaps()); + m_reversed.push_back(false); // This will be changed later in the code + } - m_tracks.push_back(id); - m_laps.push_back(track->getDefaultNumberOfLaps()); - m_reversed.push_back(false); // This will be changed later in the code track_indices.erase(track_indices.begin()+index); } } From 2077676f8ea4968e62ecf523e7d7b2ee2bb25a43 Mon Sep 17 00:00:00 2001 From: hiker Date: Wed, 5 Nov 2014 11:23:46 +1100 Subject: [PATCH 12/13] Updated windows build instructions. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 146aca2e1..6d98155f8 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,11 @@ Hope you enjoy the game. ##Compiling SuperTuxKart ###Windows -1. Install VS 2012 or later. The free express versions work fine. +1. Install VS 2013 (or later). The free express versions work fine. 2. Download and install a source package - either a released package or from our [git/svn repositories](http://supertuxkart.sourceforge.net/Source_control) 3. Download the latest dependency package depdendencies_for_0.8.2.zip from [here](https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart%20Dependencies/Windows/). Unzip it in the root directory, so that the dependencies directory is next to the src and data directory (if you are updating from a previous dependency package, you can delete the .dll files in the root directory, they are not needed anymore). 4. Download cmake and install it. Then start cmake-gui and select the STK root directory as 'Where is the source code', and a new directory in the root directory (next to src, data etc) as build directory (for now I assume that this directory is called bld). -5. Click on configure. You will be asked to create the directory (yes), then for your VS version. Make sure to select the right version (be aware of the easy to confuse version numbers: VS 2012 = version 11; VS 2013 = version 12). Click on configure, then generate. This will create the directory 'bld', and a VS solution in that directory. +5. Click on configure. You will be asked to create the directory (yes), then for your VS version. Make sure to select the right version (be aware of the easy to confuse version numbers: VS 2013 = version 12). Click on configure, then generate. This will create the directory 'bld', and a VS solution in that directory. 6. In Visual Studio open the project file generated in the 'bld' folder 7. Right click on the supertuxkart project in the solution explorer, and select "Set as StartUp Project". 8. Select Build->Build Solution (or press F7) to compile. From cfb4dc13a87c3315514d8e5723f766d8f972f0a5 Mon Sep 17 00:00:00 2001 From: hiker Date: Wed, 5 Nov 2014 13:39:57 +1100 Subject: [PATCH 13/13] Updated GP for new mines track. --- data/grandprix/4_atworldsend.grandprix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/grandprix/4_atworldsend.grandprix b/data/grandprix/4_atworldsend.grandprix index 0aa43f1e2..0341793a1 100644 --- a/data/grandprix/4_atworldsend.grandprix +++ b/data/grandprix/4_atworldsend.grandprix @@ -4,7 +4,7 @@ - +