From 01000b9d13f8162792af785e11248fdebcdd6f26 Mon Sep 17 00:00:00 2001 From: Antoine Pilote Date: Mon, 2 Sep 2024 14:05:59 -0400 Subject: [PATCH] Added float type and default values for trenchbroom integration --- Nuake/src/Resource/Project.cpp | 34 +++++++++++++++++++-- Nuake/src/Scene/Systems/QuakeMapBuilder.cpp | 6 ++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/Nuake/src/Resource/Project.cpp b/Nuake/src/Resource/Project.cpp index b352ea6b..65c9e254 100644 --- a/Nuake/src/Resource/Project.cpp +++ b/Nuake/src/Resource/Project.cpp @@ -160,13 +160,41 @@ namespace Nuake ClassProperty classProp; classProp.name = t.Name; classProp.type = ClassPropertyType::String; - if (t.Type == ExposedVarTypes::String && t.Value.has_value()) + if (t.Type == ExposedVarTypes::String) { - classProp.value = std::any_cast(t.Value); + if (t.Value.has_value()) + { + classProp.value = std::any_cast(t.Value); + } + + classProp.type = ClassPropertyType::String; } else if (t.Type == ExposedVarTypes::Int) { - classProp.value = std::to_string(std::any_cast(t.Value)); + if (t.Value.has_value()) + { + classProp.value = std::to_string(std::any_cast(t.Value)); + } + + classProp.type = ClassPropertyType::Integer; + } + else if (t.Type == ExposedVarTypes::Float) + { + if (t.Value.has_value()) + { + classProp.value = std::to_string(std::any_cast(t.Value)); + } + + classProp.type = ClassPropertyType::Float; + } + else if (t.Type == ExposedVarTypes::Bool) + { + if (t.Value.has_value()) + { + classProp.value = std::to_string(std::any_cast(t.Value)); + } + + classProp.type = ClassPropertyType::Float; } else { diff --git a/Nuake/src/Scene/Systems/QuakeMapBuilder.cpp b/Nuake/src/Scene/Systems/QuakeMapBuilder.cpp index bd62a8a6..995d3992 100644 --- a/Nuake/src/Scene/Systems/QuakeMapBuilder.cpp +++ b/Nuake/src/Scene/Systems/QuakeMapBuilder.cpp @@ -199,6 +199,12 @@ namespace Nuake { ev.Value = properties[ev.Name]; ev.DefaultValue = ev.Value; } + else if (ev.Type == NetScriptExposedVarType::Float) + { + float value = atof(properties[ev.Name].c_str()); + ev.Value = value; + ev.DefaultValue = ev.Value; + } } } }