Fix stats gsc funcs

This commit is contained in:
fed 2023-06-20 18:46:14 +02:00
parent 33b42ef098
commit 7b08d9433f

View File

@ -268,6 +268,16 @@ namespace gsc
#undef CHECK_TYPE #undef CHECK_TYPE
} }
void return_value(const scripting::script_value& value)
{
if (game::scr_VmPub->outparamcount)
{
game::Scr_ClearOutParams();
}
scripting::push_value(value);
}
} }
void scr_error(bool force_print, const char* fmt, ...) void scr_error(bool force_print, const char* fmt, ...)
@ -398,7 +408,7 @@ namespace gsc
{ {
const auto key = game::Scr_GetString(0); const auto key = game::Scr_GetString(0);
const auto& value = mod_stats::get(key); const auto& value = mod_stats::get(key);
scripting::push_value(json_to_gsc(value)); return_value(json_to_gsc(value));
}); });
add_function("statsgetor", []() add_function("statsgetor", []()
@ -407,7 +417,7 @@ namespace gsc
const auto default_value = get_argument(1); const auto default_value = get_argument(1);
const auto json_default_value = gsc_to_json(default_value); const auto json_default_value = gsc_to_json(default_value);
const auto value = mod_stats::get(key, json_default_value); const auto value = mod_stats::get(key, json_default_value);
scripting::push_value(json_to_gsc(value)); return_value(json_to_gsc(value));
}); });
add_function("statsgetstruct", []() add_function("statsgetstruct", []()
@ -415,7 +425,7 @@ namespace gsc
const auto struct_ = game::Scr_GetString(0); const auto struct_ = game::Scr_GetString(0);
const auto field = game::Scr_GetString(1); const auto field = game::Scr_GetString(1);
const auto value = mod_stats::get_struct(struct_, field); const auto value = mod_stats::get_struct(struct_, field);
scripting::push_value(json_to_gsc(value)); return_value(json_to_gsc(value));
}); });
add_function("statsgetstructor", []() add_function("statsgetstructor", []()
@ -425,7 +435,7 @@ namespace gsc
const auto default_value = get_argument(2); const auto default_value = get_argument(2);
const auto json_default_value = gsc_to_json(default_value); const auto json_default_value = gsc_to_json(default_value);
const auto value = mod_stats::get_struct(struct_, field, json_default_value); const auto value = mod_stats::get_struct(struct_, field, json_default_value);
scripting::push_value(json_to_gsc(value)); return_value(json_to_gsc(value));
}); });
add_function("typeof", []() add_function("typeof", []()