From 798130a40da63d2a2e0558b23e4ff7da68153ef7 Mon Sep 17 00:00:00 2001 From: Marc Coll Carrillo Date: Wed, 24 Dec 2014 13:42:22 +0100 Subject: [PATCH 1/4] Fix music stop problem when loading track selection screen Populate irrlicht's texture cache on startup with all the track screenshots to avoid the problem --- src/tracks/track_manager.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/tracks/track_manager.cpp b/src/tracks/track_manager.cpp index fbcd6d43c..e39601f7b 100644 --- a/src/tracks/track_manager.cpp +++ b/src/tracks/track_manager.cpp @@ -17,6 +17,7 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "tracks/track_manager.hpp" +#include "graphics/irr_driver.hpp" #include #include @@ -207,6 +208,10 @@ bool TrackManager::loadTrack(const std::string& dirname) m_tracks.push_back(track); m_track_avail.push_back(true); updateGroups(track); + + //Populate the texture cache with track screenshots + irr_driver->getTexture(track->getScreenshotFile()); + return true; } // loadTrack From 2c7474af02a16627398ed9b23293ced86fd7b8fa Mon Sep 17 00:00:00 2001 From: konstin Date: Mon, 12 Jan 2015 22:48:06 +0100 Subject: [PATCH 2/4] adding the possibility to override STK_INSTALL_DATA_DIR_ABSOLUTE; This was necessary to create a ppa --- CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fbf277093..3482a4c7f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -250,11 +250,15 @@ else() mark_as_advanced(PTHREAD_LIBRARY) # Set data dir (absolute or relative to CMAKE_INSTALL_PREFIX) - get_filename_component(STK_INSTALL_DATA_DIR_ABSOLUTE ${STK_INSTALL_DATA_DIR} ABSOLUTE) - if(${STK_INSTALL_DATA_DIR_ABSOLUTE} STREQUAL ${STK_INSTALL_DATA_DIR}) - add_definitions(-DSUPERTUXKART_DATADIR=\"${STK_INSTALL_DATA_DIR_ABSOLUTE}\") + if(NOT STK_INSTALL_DATA_DIR_ABSOLUTE) + get_filename_component(STK_INSTALL_DATA_DIR_ABSOLUTE ${STK_INSTALL_DATA_DIR} ABSOLUTE) + if(${STK_INSTALL_DATA_DIR_ABSOLUTE} STREQUAL ${STK_INSTALL_DATA_DIR}) + add_definitions(-DSUPERTUXKART_DATADIR=\"${STK_INSTALL_DATA_DIR_ABSOLUTE}\") + else() + add_definitions(-DSUPERTUXKART_DATADIR=\"${CMAKE_INSTALL_PREFIX}/${STK_INSTALL_DATA_DIR}\") + endif() else() - add_definitions(-DSUPERTUXKART_DATADIR=\"${CMAKE_INSTALL_PREFIX}/${STK_INSTALL_DATA_DIR}\") + add_definitions(-DSUPERTUXKART_DATADIR=\"${STK_INSTALL_DATA_DIR_ABSOLUTE}\") endif() # Build the final executable From 6e4f8eef9e3306e8b0ee1cf2b46ac8261cefbd10 Mon Sep 17 00:00:00 2001 From: Deve Date: Tue, 13 Jan 2015 17:49:06 +0100 Subject: [PATCH 3/4] Make sure that we have created SoccerWorld before typecasting --- src/physics/physics.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/physics/physics.cpp b/src/physics/physics.cpp index ff9828910..2da99af70 100644 --- a/src/physics/physics.cpp +++ b/src/physics/physics.cpp @@ -37,6 +37,7 @@ #include "physics/physical_object.hpp" #include "physics/stk_dynamics_world.hpp" #include "physics/triangle_mesh.hpp" +#include "race/race_manager.hpp" #include "scriptengine/script_engine.hpp" #include "tracks/track.hpp" #include "utils/profiler.hpp" @@ -208,7 +209,8 @@ void Physics::update(float dt) kart->setSquash(kp->getSquashDuration() * kart->getPlayerDifficulty()->getSquashDuration(), kp->getSquashSlowdown() * kart->getPlayerDifficulty()->getSquashSlowdown()); } - else if(obj->isSoccerBall()) + else if(obj->isSoccerBall() && + race_manager->getMinorMode() == RaceManager::MINOR_MODE_SOCCER) { int kartId = p->getUserPointer(1)->getPointerKart()->getWorldKartId(); SoccerWorld* soccerWorld = (SoccerWorld*)World::getWorld(); @@ -266,7 +268,8 @@ void Physics::update(float dt) ->hit(NULL, p->getUserPointer(1)->getPointerPhysicalObject()); PhysicalObject* obj = p->getUserPointer(1)->getPointerPhysicalObject(); - if(obj->isSoccerBall()) + if (obj->isSoccerBall() && + race_manager->getMinorMode() == RaceManager::MINOR_MODE_SOCCER) { int kartId = p->getUserPointer(0)->getPointerFlyable()->getOwnerId(); SoccerWorld* soccerWorld = (SoccerWorld*)World::getWorld(); From cacb474c42a6be6f8fb70078776f964e63f6c0de Mon Sep 17 00:00:00 2001 From: Deve Date: Tue, 13 Jan 2015 17:57:16 +0100 Subject: [PATCH 4/4] Add initial values in TrackObject --- src/tracks/track_object.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tracks/track_object.cpp b/src/tracks/track_object.cpp index a9a899abd..8351c7858 100644 --- a/src/tracks/track_object.cpp +++ b/src/tracks/track_object.cpp @@ -65,7 +65,11 @@ TrackObject::TrackObject(const core::vector3df& xyz, const core::vector3df& hpr, m_physical_object = NULL; m_interaction = interaction; m_presentation = presentation; - m_soccer_ball = false; + m_is_driveable = false; + m_soccer_ball = false; + m_garage = false; + m_distance = 0; + m_type = ""; if (m_interaction != "ghost" && m_interaction != "none" && physics_settings )