- // If loaded, copy data and flags
- if((m_flags[m_area.index(x,y,z)] & VOXELFLAG_NOT_LOADED) == false)
- {
- new_data[new_area.index(x,y,z)] = m_data[m_area.index(x,y,z)];
- new_flags[new_area.index(x,y,z)] = m_flags[m_area.index(x,y,z)];
- }
+ unsigned int old_index = m_area.index(m_area.MinEdge.X,y,z);
+ unsigned int new_index = new_area.index(m_area.MinEdge.X,y,z);
+
+ memcpy(&new_data[new_index], &m_data[old_index],
+ old_x_width * sizeof(MapNode));
+ memcpy(&new_flags[new_index], &m_flags[old_index],
+ old_x_width * sizeof(u8));