diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-11-04 16:19:54 +0100 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2020-11-04 16:19:54 +0100 |
commit | ad148587dcf5244c2d2011dba339786c765c54c4 (patch) | |
tree | bdd914121cd326da2ed26679838878e3edffc841 /src/voxel.cpp | |
parent | 1145b05ea0bda87dc0827821385810eced08f774 (diff) | |
download | dragonfireclient-ad148587dcf5244c2d2011dba339786c765c54c4.tar.xz |
Make Lint Happy
Diffstat (limited to 'src/voxel.cpp')
-rw-r--r-- | src/voxel.cpp | 168 |
1 files changed, 77 insertions, 91 deletions
diff --git a/src/voxel.cpp b/src/voxel.cpp index 1f1d25373..ffedbd583 100644 --- a/src/voxel.cpp +++ b/src/voxel.cpp @@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "nodedef.h" #include "util/directiontables.h" #include "util/timetaker.h" -#include <cstring> // memcpy, memset +#include <cstring> // memcpy, memset /* Debug stuff @@ -48,81 +48,71 @@ void VoxelManipulator::clear() m_flags = nullptr; } -void VoxelManipulator::print(std::ostream &o, const NodeDefManager *ndef, - VoxelPrintMode mode) +void VoxelManipulator::print( + std::ostream &o, const NodeDefManager *ndef, VoxelPrintMode mode) { const v3s16 &em = m_area.getExtent(); v3s16 of = m_area.MinEdge; - o<<"size: "<<em.X<<"x"<<em.Y<<"x"<<em.Z - <<" offset: ("<<of.X<<","<<of.Y<<","<<of.Z<<")"<<std::endl; - - for(s32 y=m_area.MaxEdge.Y; y>=m_area.MinEdge.Y; y--) - { - if(em.X >= 3 && em.Y >= 3) - { - if (y==m_area.MinEdge.Y+2) o<<"^ "; - else if(y==m_area.MinEdge.Y+1) o<<"| "; - else if(y==m_area.MinEdge.Y+0) o<<"y x-> "; - else o<<" "; + o << "size: " << em.X << "x" << em.Y << "x" << em.Z << " offset: (" << of.X << "," + << of.Y << "," << of.Z << ")" << std::endl; + + for (s32 y = m_area.MaxEdge.Y; y >= m_area.MinEdge.Y; y--) { + if (em.X >= 3 && em.Y >= 3) { + if (y == m_area.MinEdge.Y + 2) + o << "^ "; + else if (y == m_area.MinEdge.Y + 1) + o << "| "; + else if (y == m_area.MinEdge.Y + 0) + o << "y x-> "; + else + o << " "; } - for(s32 z=m_area.MinEdge.Z; z<=m_area.MaxEdge.Z; z++) - { - for(s32 x=m_area.MinEdge.X; x<=m_area.MaxEdge.X; x++) - { - u8 f = m_flags[m_area.index(x,y,z)]; + for (s32 z = m_area.MinEdge.Z; z <= m_area.MaxEdge.Z; z++) { + for (s32 x = m_area.MinEdge.X; x <= m_area.MaxEdge.X; x++) { + u8 f = m_flags[m_area.index(x, y, z)]; char c; - if(f & VOXELFLAG_NO_DATA) + if (f & VOXELFLAG_NO_DATA) c = 'N'; - else - { + else { c = 'X'; - MapNode n = m_data[m_area.index(x,y,z)]; + MapNode n = m_data[m_area.index(x, y, z)]; content_t m = n.getContent(); u8 pr = n.param2; - if(mode == VOXELPRINT_MATERIAL) - { - if(m <= 9) + if (mode == VOXELPRINT_MATERIAL) { + if (m <= 9) c = m + '0'; - } - else if(mode == VOXELPRINT_WATERPRESSURE) - { - if(ndef->get(m).isLiquid()) - { + } else if (mode == VOXELPRINT_WATERPRESSURE) { + if (ndef->get(m).isLiquid()) { c = 'w'; - if(pr <= 9) + if (pr <= 9) c = pr + '0'; - } - else if(m == CONTENT_AIR) - { + } else if (m == CONTENT_AIR) { c = ' '; - } - else - { + } else { c = '#'; } - } - else if(mode == VOXELPRINT_LIGHT_DAY) - { - if(ndef->get(m).light_source != 0) + } else if (mode == VOXELPRINT_LIGHT_DAY) { + if (ndef->get(m).light_source != 0) c = 'S'; - else if(!ndef->get(m).light_propagates) + else if (!ndef->get(m).light_propagates) c = 'X'; - else - { - u8 light = n.getLight(LIGHTBANK_DAY, ndef); - if(light < 10) + else { + u8 light = n.getLight( + LIGHTBANK_DAY, + ndef); + if (light < 10) c = '0' + light; else - c = 'a' + (light-10); + c = 'a' + (light - 10); } } } - o<<c; + o << c; } - o<<' '; + o << ' '; } - o<<std::endl; + o << std::endl; } } @@ -133,7 +123,7 @@ void VoxelManipulator::addArea(const VoxelArea &area) return; // Cancel if m_area already contains the requested area - if(m_area.contains(area)) + if (m_area.contains(area)) return; TimeTaker timer("addArea", &addarea_time); @@ -141,13 +131,11 @@ void VoxelManipulator::addArea(const VoxelArea &area) // Calculate new area VoxelArea new_area; // New area is the requested area if m_area has zero volume - if(m_area.hasEmptyExtent()) - { + if (m_area.hasEmptyExtent()) { new_area = area; } // Else add requested area to m_area - else - { + else { new_area = m_area; new_area.addArea(area); } @@ -172,17 +160,16 @@ void VoxelManipulator::addArea(const VoxelArea &area) // Copy old data s32 old_x_width = m_area.MaxEdge.X - m_area.MinEdge.X + 1; - for(s32 z=m_area.MinEdge.Z; z<=m_area.MaxEdge.Z; z++) - for(s32 y=m_area.MinEdge.Y; y<=m_area.MaxEdge.Y; y++) - { - 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)); - } + for (s32 z = m_area.MinEdge.Z; z <= m_area.MaxEdge.Z; z++) + for (s32 y = m_area.MinEdge.Y; y <= m_area.MaxEdge.Y; y++) { + 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)); + } // Replace area, data and flags @@ -200,11 +187,11 @@ void VoxelManipulator::addArea(const VoxelArea &area) delete[] old_data; delete[] old_flags; - //dstream<<"addArea done"<<std::endl; + // dstream<<"addArea done"<<std::endl; } -void VoxelManipulator::copyFrom(MapNode *src, const VoxelArea& src_area, - v3s16 from_pos, v3s16 to_pos, const v3s16 &size) +void VoxelManipulator::copyFrom(MapNode *src, const VoxelArea &src_area, v3s16 from_pos, + v3s16 to_pos, const v3s16 &size) { /* The reason for this optimised code is that we're a member function * and the data type/layout of m_data is know to us: it's stored as @@ -233,9 +220,8 @@ void VoxelManipulator::copyFrom(MapNode *src, const VoxelArea& src_area, s32 src_step = src_area.getExtent().X; s32 dest_step = m_area.getExtent().X; - s32 dest_mod = m_area.index(to_pos.X, to_pos.Y, to_pos.Z + 1) - - m_area.index(to_pos.X, to_pos.Y, to_pos.Z) - - dest_step * size.Y; + s32 dest_mod = m_area.index(to_pos.X, to_pos.Y, to_pos.Z + 1) - + m_area.index(to_pos.X, to_pos.Y, to_pos.Z) - dest_step * size.Y; s32 i_src = src_area.index(from_pos.X, from_pos.Y, from_pos.Z); s32 i_local = m_area.index(to_pos.X, to_pos.Y, to_pos.Z); @@ -251,21 +237,22 @@ void VoxelManipulator::copyFrom(MapNode *src, const VoxelArea& src_area, } } -void VoxelManipulator::copyTo(MapNode *dst, const VoxelArea& dst_area, - v3s16 dst_pos, v3s16 from_pos, const v3s16 &size) +void VoxelManipulator::copyTo(MapNode *dst, const VoxelArea &dst_area, v3s16 dst_pos, + v3s16 from_pos, const v3s16 &size) { - for(s16 z=0; z<size.Z; z++) - for(s16 y=0; y<size.Y; y++) - { - s32 i_dst = dst_area.index(dst_pos.X, dst_pos.Y+y, dst_pos.Z+z); - s32 i_local = m_area.index(from_pos.X, from_pos.Y+y, from_pos.Z+z); - for (s16 x = 0; x < size.X; x++) { - if (m_data[i_local].getContent() != CONTENT_IGNORE) - dst[i_dst] = m_data[i_local]; - i_dst++; - i_local++; + for (s16 z = 0; z < size.Z; z++) + for (s16 y = 0; y < size.Y; y++) { + s32 i_dst = dst_area.index( + dst_pos.X, dst_pos.Y + y, dst_pos.Z + z); + s32 i_local = m_area.index( + from_pos.X, from_pos.Y + y, from_pos.Z + z); + for (s16 x = 0; x < size.X; x++) { + if (m_data[i_local].getContent() != CONTENT_IGNORE) + dst[i_dst] = m_data[i_local]; + i_dst++; + i_local++; + } } - } } /* @@ -278,13 +265,13 @@ void VoxelManipulator::clearFlag(u8 flags) // 0-1ms on moderate area TimeTaker timer("clearFlag", &clearflag_time); - //v3s16 s = m_area.getExtent(); + // v3s16 s = m_area.getExtent(); /*dstream<<"clearFlag clearing area of size " <<""<<s.X<<"x"<<s.Y<<"x"<<s.Z<<"" <<std::endl;*/ - //s32 count = 0; + // s32 count = 0; /*for(s32 z=m_area.MinEdge.Z; z<=m_area.MaxEdge.Z; z++) for(s32 y=m_area.MinEdge.Y; y<=m_area.MaxEdge.Y; y++) @@ -297,8 +284,7 @@ void VoxelManipulator::clearFlag(u8 flags) }*/ s32 volume = m_area.getVolume(); - for(s32 i=0; i<volume; i++) - { + for (s32 i = 0; i < volume; i++) { m_flags[i] &= ~flags; } @@ -317,4 +303,4 @@ void VoxelManipulator::clearFlag(u8 flags) const MapNode VoxelManipulator::ContentIgnoreNode = MapNode(CONTENT_IGNORE); -//END +// END |