summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/graphics/engine/lightman.cpp5
-rw-r--r--src/object/robotmain.cpp9
2 files changed, 10 insertions, 4 deletions
diff --git a/src/graphics/engine/lightman.cpp b/src/graphics/engine/lightman.cpp
index eae622b..16c84ea 100644
--- a/src/graphics/engine/lightman.cpp
+++ b/src/graphics/engine/lightman.cpp
@@ -389,7 +389,8 @@ void CLightManager::UpdateDeviceLights(EngineObjectType type)
m_lightMap[i] = -1;
std::vector<DynamicLight> sortedLights = m_dynLights;
- std::sort(sortedLights.begin(), sortedLights.end(), LightsComparator(m_engine->GetEyePt(), type));
+ LightsComparator lightsComparator(m_engine->GetEyePt(), type);
+ std::sort(sortedLights.begin(), sortedLights.end(), lightsComparator);
int lightMapIndex = 0;
for (int i = 0; i < static_cast<int>( sortedLights.size() ); i++)
@@ -460,7 +461,7 @@ bool CLightManager::LightsComparator::operator()(const DynamicLight& left, const
float leftWeight = GetLightWeight(left);
float rightWeight = GetLightWeight(right);
- return leftWeight <= rightWeight;
+ return leftWeight < rightWeight;
}
} // namespace Gfx
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index 29fdd31..7c6cb77 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -3833,7 +3833,12 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
int rankObj = 0;
int rankGadget = 0;
CObject* sel = 0;
+
+ std::string oldLocale;
char *locale = setlocale(LC_NUMERIC, nullptr);
+ if (locale != nullptr)
+ oldLocale = locale;
+
setlocale(LC_NUMERIC, "C");
while (fgets(line, 500, file) != NULL)
@@ -4568,8 +4573,8 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
}
m_dialog->SetSceneRead("");
m_dialog->SetStackRead("");
-
- setlocale(LC_NUMERIC, locale);
+
+ setlocale(LC_NUMERIC, oldLocale.c_str());
}
//! Creates an object of decoration mobile or stationary