diff --git a/bin/resources/managed_materials/managed_mats.material b/bin/resources/managed_materials/managed_mats.material
index 7ae4b820ca..e7b02f31f1 100644
--- a/bin/resources/managed_materials/managed_mats.material
+++ b/bin/resources/managed_materials/managed_mats.material
@@ -18,9 +18,9 @@ abstract material RoR/Managed_Mats/Base
abstract material RoR/Managed_Mats/BaseNoShadows
{
- technique
+ technique BaseTechnique
{
- pass
+ pass BaseRender
{
texture_unit Diffuse_Map
{
diff --git a/source/main/RoRVersion.h b/source/main/RoRVersion.h
index 2fb9991004..fa4af2b713 100644
--- a/source/main/RoRVersion.h
+++ b/source/main/RoRVersion.h
@@ -32,7 +32,7 @@ along with Rigs of Rods. If not, see .
// $Rev:$
#define ROR_VERSION_STRING_SHORT "0.4"
-#define ROR_VERSION_STRING "0.4.5.0-dev"
+#define ROR_VERSION_STRING "0.4.5.0"
#define ROR_VERSION_STRING_WIN 0,4,5,0
#endif //RORVERSION_H__
diff --git a/source/main/gfx/ShadowManager.cpp b/source/main/gfx/ShadowManager.cpp
index 1db7c6d53d..b8e21d85ea 100644
--- a/source/main/gfx/ShadowManager.cpp
+++ b/source/main/gfx/ShadowManager.cpp
@@ -185,6 +185,7 @@ void ShadowManager::updateTerrainMaterial(Ogre::TerrainPSSMMaterialGenerator::SM
matProfile->setReceiveDynamicShadowsLowLod(false);
matProfile->setReceiveDynamicShadowsEnabled(true);
matProfile->setReceiveDynamicShadowsPSSM(pssmSetup);
+ matProfile->setLightmapEnabled(false);
}
}
diff --git a/source/main/gfx/camera/CameraBehaviorOrbit.cpp b/source/main/gfx/camera/CameraBehaviorOrbit.cpp
index 68d6e6714f..13ace1d381 100644
--- a/source/main/gfx/camera/CameraBehaviorOrbit.cpp
+++ b/source/main/gfx/camera/CameraBehaviorOrbit.cpp
@@ -139,9 +139,9 @@ void CameraBehaviorOrbit::update(const CameraManager::CameraContext &ctx)
if ( ctx.mCurrTruck )
{
if (BeamFactory::getSingleton().getThreadingMode() == THREAD_MULTI)
- precedingPosition += ctx.mCurrTruck->nodes[0].Velocity * ctx.mCurrTruck->ttdt;
+ precedingPosition += ctx.mCurrTruck->nodes[0].Velocity * ctx.mCurrTruck->oldframe_global_dt;
else
- precedingPosition += ctx.mCurrTruck->nodes[0].Velocity * ctx.mCurrTruck->tdt;
+ precedingPosition += ctx.mCurrTruck->nodes[0].Velocity * ctx.mCurrTruck->global_dt;
}
Vector3 camPosition = (1.0f / (camRatio + 1.0f)) * desiredPosition + (camRatio / (camRatio + 1.0f)) * precedingPosition;
diff --git a/source/main/gfx/camera/CameraBehaviorVehicle.cpp b/source/main/gfx/camera/CameraBehaviorVehicle.cpp
index 87c9a7f789..5d94efccfa 100644
--- a/source/main/gfx/camera/CameraBehaviorVehicle.cpp
+++ b/source/main/gfx/camera/CameraBehaviorVehicle.cpp
@@ -49,9 +49,9 @@ void CameraBehaviorVehicle::update(const CameraManager::CameraContext &ctx)
}
if (BeamFactory::getSingleton().getThreadingMode() == THREAD_MULTI)
- camRatio = 1.0f / (ctx.mCurrTruck->ttdt * 4.0f);
+ camRatio = 1.0f / (ctx.mCurrTruck->oldframe_global_dt * 4.0f);
else
- camRatio = 1.0f / (ctx.mCurrTruck->tdt * 4.0f);
+ camRatio = 1.0f / (ctx.mCurrTruck->global_dt * 4.0f);
camDistMin = std::min(ctx.mCurrTruck->getMinimalCameraRadius() * 2.0f, 33.0f);
diff --git a/source/main/gui/panels/GUI_GameSettings.cpp b/source/main/gui/panels/GUI_GameSettings.cpp
index 4942507d90..92c8e49ef6 100644
--- a/source/main/gui/panels/GUI_GameSettings.cpp
+++ b/source/main/gui/panels/GUI_GameSettings.cpp
@@ -376,13 +376,14 @@ void CLASS::UpdateControls()
if (!IsLoaded)
{
m_water_type->addItem("Hydrax"); //It's working good enough to be here now.
+ m_shadow_type->addItem("Parallel-split Shadow Maps");
}
if (BSETTING("DevMode", false) && !IsLoaded)
{
//Things that aren't ready to be used yet.
m_sky_type->addItem("SkyX (best looking, slower)");
- m_shadow_type->addItem("Parallel-split Shadow Maps");
+
}
//Sky effects
@@ -396,9 +397,9 @@ void CLASS::UpdateControls()
//Shadow technique
Ogre::String shadowtype = GameSettingsMap["Shadow technique"];
- if (shadowtype == "Texture shadows")
+ if (shadowtype == "Texture shadows)")
m_shadow_type->setIndexSelected(1);
- else if (shadowtype == "Parallel-split Shadow Maps" && BSETTING("DevMode", false))
+ else if (shadowtype == "Parallel-split Shadow Maps")
m_shadow_type->setIndexSelected(2);
else
m_shadow_type->setIndexSelected(0);
@@ -1166,6 +1167,7 @@ void CLASS::OnReMapPress(MyGUI::WidgetPtr _sender)
isFrameActivated = true;
m_key_mapping_window_info->setCaptionWithReplacing("");
+ mMainWidget->setEnabledSilent(true);
str_text = "";
}
diff --git a/source/main/physics/Beam.cpp b/source/main/physics/Beam.cpp
index 2b84822e78..c274103927 100644
--- a/source/main/physics/Beam.cpp
+++ b/source/main/physics/Beam.cpp
@@ -1420,7 +1420,7 @@ void Beam::SyncReset()
void Beam::threadentry()
{
Beam **trucks = ttrucks;
- dtperstep = tdt / (Real)tsteps;
+ dtperstep = global_dt / (Real)tsteps;
for (curtstep=0; curtstepsetCompositeMapDistance(m_terrain_config.GetInt("CompositeMapDistance", 4000));
terrainOptions->setSkirtSize(m_terrain_config.GetInt("SkirtSize", 30));
terrainOptions->setLightMapSize(m_terrain_config.GetInt("LightMapSize", 1024));
- terrainOptions->setCastsDynamicShadows(m_terrain_config.GetBool("CastsDynamicShadows", false));
+
+ if (matProfile->getReceiveDynamicShadowsPSSM())
+ terrainOptions->setCastsDynamicShadows(true);
terrainOptions->setUseRayBoxDistanceCalculation(false);