/*!
* Holds color information of an item mesh's buffer.
*/
-struct ItemPartColor {
+struct ItemPartColor
+{
/*!
* If this is false, the global base color of the item
* will be used instead of the specific color of the
* buffer.
*/
- bool override_base;
+ bool override_base = false;
/*!
* The color of the buffer.
*/
- video::SColor color;
+ video::SColor color = 0;
- ItemPartColor():
- override_base(false),
- color(0)
- {}
+ ItemPartColor() {}
- ItemPartColor(bool override, video::SColor color):
- override_base(override),
- color(color)
- {}
+ ItemPartColor(bool override, video::SColor color)
+ : override_base(override), color(color)
+ {
+ }
};
struct ItemMesh
{
- scene::IMesh *mesh;
+ scene::IMesh *mesh = nullptr;
/*!
* Stores the color of each mesh buffer.
*/
std::vector<ItemPartColor> buffer_colors;
+ /*!
+ * If false, all faces of the item should have the same brightness.
+ * Disables shading based on normal vectors.
+ */
+ bool needs_shading = true;
- ItemMesh() : mesh(NULL), buffer_colors() {}
+ ItemMesh() {}
};
/*
class WieldMeshSceneNode : public scene::ISceneNode
{
public:
- WieldMeshSceneNode(scene::ISceneNode *parent, scene::ISceneManager *mgr,
- s32 id = -1, bool lighting = false);
+ WieldMeshSceneNode(scene::ISceneManager *mgr, s32 id = -1, bool lighting = false);
virtual ~WieldMeshSceneNode();
- void setCube(const ContentFeatures &f, v3f wield_scale,
- ITextureSource *tsrc);
+ void setCube(const ContentFeatures &f, v3f wield_scale);
void setExtruded(const std::string &imagename, v3f wield_scale,
ITextureSource *tsrc, u8 num_frames);
void setItem(const ItemStack &item, Client *client);
void changeToMesh(scene::IMesh *mesh);
// Child scene node with the current wield mesh
- scene::IMeshSceneNode *m_meshnode;
+ scene::IMeshSceneNode *m_meshnode = nullptr;
video::E_MATERIAL_TYPE m_material_type;
// True if EMF_LIGHTING should be enabled.
* be NULL to leave the original material.
* \param colors returns the colors of the mesh buffers in the mesh.
*/
-void postProcessNodeMesh(scene::SMesh *mesh, const ContentFeatures &f,
- bool use_shaders, bool set_material, video::E_MATERIAL_TYPE *mattype,
- std::vector<ItemPartColor> *colors);
+void postProcessNodeMesh(scene::SMesh *mesh, const ContentFeatures &f, bool use_shaders,
+ bool set_material, video::E_MATERIAL_TYPE *mattype,
+ std::vector<ItemPartColor> *colors);
#endif