From 1fad16fce06207eda5861559f4b6c908ee048712 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Mon, 30 May 2022 18:17:28 +0200 Subject: Invalid float vector dimension range: clamp and warn instead of crash --- src/script/common/c_converter.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/script/common/c_converter.cpp b/src/script/common/c_converter.cpp index b5ff52f73..351121abf 100644 --- a/src/script/common/c_converter.cpp +++ b/src/script/common/c_converter.cpp @@ -42,11 +42,13 @@ extern "C" { #define CHECK_POS_COORD(name) CHECK_TYPE(-1, "position coordinate '" name "'", LUA_TNUMBER) #define CHECK_FLOAT_RANGE(value, name) \ if (value < F1000_MIN || value > F1000_MAX) { \ - std::ostringstream error_text; \ - error_text << "Invalid float vector dimension range '" name "' " << \ + warningstream << "Invalid float vector dimension range '" name "' " << \ "(expected " << F1000_MIN << " < " name " < " << F1000_MAX << \ " got " << value << ")." << std::endl; \ - throw LuaError(error_text.str()); \ + if (value < F1000_MIN) \ + value = F1000_MIN; \ + else \ + value = F1000_MAX; \ } #define CHECK_POS_TAB(index) CHECK_TYPE(index, "position", LUA_TTABLE) -- cgit v1.2.3