diff options
Diffstat (limited to '')
-rw-r--r-- | src/map.cpp | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/src/map.cpp b/src/map.cpp index a53680065..58443a000 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -57,7 +57,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "database/database-postgresql.h" #endif - /* Map */ @@ -146,25 +145,6 @@ bool Map::isValidPosition(v3s16 p) return (block != NULL); } -// Returns a CONTENT_IGNORE node if not found -MapNode Map::getNode(v3s16 p, bool *is_valid_position) -{ - v3s16 blockpos = getNodeBlockPos(p); - MapBlock *block = getBlockNoCreateNoEx(blockpos); - if (block == NULL) { - if (is_valid_position != NULL) - *is_valid_position = false; - return {CONTENT_IGNORE}; - } - - v3s16 relpos = p - blockpos*MAP_BLOCKSIZE; - bool is_valid_p; - MapNode node = block->getNodeNoCheck(relpos, &is_valid_p); - if (is_valid_position != NULL) - *is_valid_position = is_valid_p; - return node; -} - static void set_node_in_block(MapBlock *block, v3s16 relpos, MapNode n) { // Never allow placing CONTENT_IGNORE, it causes problems @@ -942,8 +922,9 @@ NodeMetadata *Map::getNodeMetadata(v3s16 p) block = emergeBlock(blockpos, false); } if(!block){ - warningstream<<"Map::getNodeMetadata(): Block not found" - <<std::endl; + // bleh pipeworks +// warningstream<<"Map::getNodeMetadata(): Block not found" +// <<std::endl; return NULL; } NodeMetadata *meta = block->m_node_metadata.get(p_rel); @@ -961,8 +942,9 @@ bool Map::setNodeMetadata(v3s16 p, NodeMetadata *meta) block = emergeBlock(blockpos, false); } if(!block){ - warningstream<<"Map::setNodeMetadata(): Block not found" - <<std::endl; + // bleh pipeworks +// warningstream<<"Map::setNodeMetadata(): Block not found" +// <<std::endl; return false; } block->m_node_metadata.set(p_rel, meta); @@ -1919,6 +1901,9 @@ MMVManip::MMVManip(Map *map): assert(map); } +static_assert(sizeof(content_t) == 2 && (MAP_BLOCKSIZE/2)*2 == MAP_BLOCKSIZE, "This code will break, please rewrite."); +static_assert(sizeof(wchar_t) == 4, "Stop using Windows"); + void MMVManip::initialEmerge(v3s16 blockpos_min, v3s16 blockpos_max, bool load_if_inexistent) { @@ -1989,6 +1974,9 @@ void MMVManip::initialEmerge(v3s16 blockpos_min, v3s16 blockpos_max, { s32 i = m_area.index(a.MinEdge.X,y,z); memset(&m_flags[i], VOXELFLAG_NO_DATA, MAP_BLOCKSIZE); + +// RELEVANT PROBLEMATIC LINE + wmemset((wchar_t*)&m_data[i], (((uint32_t)CONTENT_IGNORE)<<16)|CONTENT_IGNORE, MAP_BLOCKSIZE/2); } } } |