aboutsummaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp36
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);
}
}
}