From f1ccfd3c3d7d626087f70b8c5798110cd28b248a Mon Sep 17 00:00:00 2001 From: kwolekr Date: Fri, 8 May 2015 13:26:01 -0400 Subject: [PATCH] Replace Wieldmesh::setItem assertion that could be triggered by the server with an error --- src/wieldmesh.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/wieldmesh.cpp b/src/wieldmesh.cpp index 63c09786b..f12771968 100644 --- a/src/wieldmesh.cpp +++ b/src/wieldmesh.cpp @@ -357,8 +357,13 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, IGameDef *gamedef) def.wield_scale * WIELD_SCALE_FACTOR / (BS * f.visual_scale)); } - for (u32 i = 0; i < m_meshnode->getMaterialCount(); ++i) { - assert(i < 6); + u32 material_count = m_meshnode->getMaterialCount(); + if (material_count >= 6) { + errorstream << "WieldMeshSceneNode::setItem: Invalid material " + "count " << material_count << ", truncating to 6" << std::endl; + material_count = 6; + } + for (u32 i = 0; i < material_count; ++i) { video::SMaterial &material = m_meshnode->getMaterial(i); material.setFlag(video::EMF_BACK_FACE_CULLING, true); material.setFlag(video::EMF_BILINEAR_FILTER, m_bilinear_filter);