From 39c272c971b56a011d28f2e454a4d5c271dce48c Mon Sep 17 00:00:00 2001 From: cx384 Date: Thu, 16 Jan 2025 18:06:58 +0100 Subject: [PATCH] Fixup --- src/client/content_cao.cpp | 8 ++++---- src/object_properties.cpp | 2 +- src/object_properties.h | 2 +- src/script/common/c_content.cpp | 9 +++++++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index d790bde532889..37a66453148d0 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -743,7 +743,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) errorstream<<"GenericCAO::addToScene(): Could not load mesh "<setItem(item, m_client, - (m_prop.visual == OBJECTVISUAL_WIELDITEM_ITEM)); + (m_prop.visual == OBJECTVISUAL_WIELDITEMITEM)); m_wield_meshnode->setScale(m_prop.visual_size / 2.0f); break; @@ -883,7 +883,7 @@ void GenericCAO::updateLight(u32 day_night_ratio) void GenericCAO::setNodeLight(const video::SColor &light_color) { - if (m_prop.visual == OBJECTVISUAL_WIELDITEM_ITEM || m_prop.visual == OBJECTVISUAL_ITEM) { + if (m_prop.visual == OBJECTVISUAL_WIELDITEMITEM || m_prop.visual == OBJECTVISUAL_ITEM) { if (m_wield_meshnode) m_wield_meshnode->setNodeLightColor(light_color); return; @@ -1573,7 +1573,7 @@ bool GenericCAO::visualExpiryRequired(const ObjectProperties &new_) const */ bool uses_legacy_texture = new_.wield_item.empty() && - (new_.visual == OBJECTVISUAL_WIELDITEM_ITEM || new_.visual == OBJECTVISUAL_ITEM); + (new_.visual == OBJECTVISUAL_WIELDITEMITEM || new_.visual == OBJECTVISUAL_ITEM); // Ordered to compare primitive types before std::vectors return old.backface_culling != new_.backface_culling || old.is_visible != new_.is_visible || diff --git a/src/object_properties.cpp b/src/object_properties.cpp index fa42d7a591574..f4d713e8d9659 100644 --- a/src/object_properties.cpp +++ b/src/object_properties.cpp @@ -22,7 +22,7 @@ const struct EnumString es_ObjectVisual[] = {OBJECTVISUAL_CUBE, "cube"}, {OBJECTVISUAL_MESH, "mesh"}, {OBJECTVISUAL_ITEM, "item"}, - {OBJECTVISUAL_WIELDITEM_ITEM, "wielditem_item"}, + {OBJECTVISUAL_WIELDITEMITEM, "wielditem"}, {0, nullptr}, }; diff --git a/src/object_properties.h b/src/object_properties.h index 1aea6fdfb5a18..1515c7bee2943 100644 --- a/src/object_properties.h +++ b/src/object_properties.h @@ -20,7 +20,7 @@ enum ObjectVisual : u8 { OBJECTVISUAL_CUBE, OBJECTVISUAL_MESH, OBJECTVISUAL_ITEM, - OBJECTVISUAL_WIELDITEM_ITEM, + OBJECTVISUAL_WIELDITEMITEM, }; extern const EnumString es_ObjectVisual[]; diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 86191983f9be0..16d7211109f3d 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -334,8 +334,13 @@ void read_object_properties(lua_State *L, int index, } lua_pop(L, 1); - prop->visual = static_cast(getenumfield(L, -1, "visual", es_ObjectVisual, - OBJECTVISUAL_UNKNOWN)); + // Don't set if nil + std::string visual; + if (getstringfield(L, -1, "visual", visual)) { + int result; + prop->visual = string_to_enum(es_ObjectVisual, result, visual) ? + static_cast(result) : OBJECTVISUAL_UNKNOWN; + } getstringfield(L, -1, "mesh", prop->mesh);