VoxelManipulator::~VoxelManipulator()
{
clear();
- if(m_data)
- delete[] m_data;
- if(m_flags)
- delete[] m_flags;
}
void VoxelManipulator::clear()
{
// Reset area to volume=0
m_area = VoxelArea();
- if(m_data)
- delete[] m_data;
+ delete[] m_data;
m_data = NULL;
- if(m_flags)
- delete[] m_flags;
+ delete[] m_flags;
m_flags = NULL;
}
dstream<<std::endl;*/
// Allocate and clear new data
- MapNode *new_data = new MapNode[new_size];
+ // FIXME: UGLY KLUDGE because MapNode default constructor is FUBAR; it
+ // initialises data that is going to be overwritten anyway
+ MapNode *new_data = (MapNode*)new char[new_size * sizeof (*new_data)];
assert(new_data);
u8 *new_flags = new u8[new_size];
assert(new_flags);
m_data = new_data;
m_flags = new_flags;
- if(old_data)
- delete[] old_data;
- if(old_flags)
- delete[] old_flags;
+ delete[] old_data;
+ delete[] old_flags;
//dstream<<"addArea done"<<std::endl;
}
std::map<v3s16, u8> & from_nodes,
std::set<v3s16> & light_sources, INodeDefManager *nodemgr)
{
- if(from_nodes.size() == 0)
+ if(from_nodes.empty())
return;
for(std::map<v3s16, u8>::iterator j = from_nodes.begin();
v3s16(-1,0,0), // left
};
- if(from_nodes.size() == 0)
+ if(from_nodes.empty())
return;
std::set<v3s16> lighted_nodes;
<<" for "<<from_nodes.size()<<" nodes"
<<std::endl;*/
- if(lighted_nodes.size() > 0)
+ if(!lighted_nodes.empty())
spreadLight(bank, lighted_nodes, nodemgr);
}
#endif