From dd8a324f9b87710280cd4ec2aeaeb6e7e7630917 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sun, 10 Apr 2016 13:27:56 +0200 Subject: [PATCH] Fixed crash when loading level with incorrect object type --- src/level/parser/parserparam.cpp | 2 +- src/level/parser/parserparam.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/level/parser/parserparam.cpp b/src/level/parser/parserparam.cpp index 317d388b..fb3c82f7 100644 --- a/src/level/parser/parserparam.cpp +++ b/src/level/parser/parserparam.cpp @@ -530,7 +530,7 @@ ObjectType CLevelParserParam::ToObjectType(std::string value) if (value == "Me" ) return OBJECT_HUMAN; if (value == "Tech" ) return OBJECT_TECH; if (value == "MissionController" ) return OBJECT_CONTROLLER; - return static_cast(boost::lexical_cast(value)); + return static_cast(Cast(value, "object")); } const std::string CLevelParserParam::FromObjectType(ObjectType value) diff --git a/src/level/parser/parserparam.h b/src/level/parser/parserparam.h index f620d845..c72be4f0 100644 --- a/src/level/parser/parserparam.h +++ b/src/level/parser/parserparam.h @@ -123,7 +123,6 @@ public: bool IsDefined(); static const std::string FromObjectType(ObjectType value); - static ObjectType ToObjectType(std::string value); private: void ParseArray(); @@ -133,6 +132,7 @@ private: template T Cast(std::string requestedType); std::string ToPath(std::string path, const std::string defaultDir); + ObjectType ToObjectType(std::string value); DriveType ToDriveType(std::string value); ToolType ToToolType(std::string value); Gfx::WaterType ToWaterType(std::string value);