aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-06-26 01:31:43 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-06-26 01:31:43 +0300
commit2915bd5518150955ed1581110527f4bb4adadfe8 (patch)
tree142947902c6ec80bbe36d949e4af6e7496c27906 /src
parentcb130d9158dc4e9c456d088d5e214b7d829ccc3a (diff)
downloadminetest-2915bd5518150955ed1581110527f4bb4adadfe8.tar.gz
minetest-2915bd5518150955ed1581110527f4bb4adadfe8.tar.bz2
minetest-2915bd5518150955ed1581110527f4bb4adadfe8.zip
more reorganizing of map code
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt3
-rw-r--r--src/map.cpp4
-rw-r--r--src/map.h6
-rw-r--r--src/mapblock.cpp2
-rw-r--r--src/mapblock.h15
-rw-r--r--src/mapblock_mesh.cpp6
-rw-r--r--src/mapblockobject.cpp11
-rw-r--r--src/mapsector.cpp8
-rw-r--r--src/mapsector.h12
-rw-r--r--src/test.cpp11
10 files changed, 38 insertions, 40 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index ac58d1d0f..73a960ecc 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -206,8 +206,7 @@ else()
endif()
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
- #set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}")
- set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall ${WARNING_FLAGS}")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}")
if(USE_GPROF)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
diff --git a/src/map.cpp b/src/map.cpp
index 4a8aeed59..d8cc34ca7 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -126,7 +126,9 @@ MapSector * Map::getSectorNoGenerate(v2s16 p)
MapBlock * Map::getBlockNoCreateNoEx(v3s16 p3d)
{
v2s16 p2d(p3d.X, p3d.Z);
- MapSector * sector = getSectorNoGenerate(p2d);
+ MapSector * sector = getSectorNoGenerateNoEx(p2d);
+ if(sector == NULL)
+ return NULL;
MapBlock *block = sector->getBlockNoCreateNoEx(p3d.Y);
return block;
}
diff --git a/src/map.h b/src/map.h
index 99593a589..406b1bc84 100644
--- a/src/map.h
+++ b/src/map.h
@@ -110,17 +110,17 @@ public:
virtual void onMapEditEvent(MapEditEvent *event) = 0;
};
-class Map : public NodeContainer
+class Map /*: public NodeContainer*/
{
public:
Map(std::ostream &dout);
virtual ~Map();
- virtual u16 nodeContainerId() const
+ /*virtual u16 nodeContainerId() const
{
return NODECONTAINER_ID_MAP;
- }
+ }*/
virtual s32 mapType() const
{
diff --git a/src/mapblock.cpp b/src/mapblock.cpp
index 2f6a4b850..7036cd035 100644
--- a/src/mapblock.cpp
+++ b/src/mapblock.cpp
@@ -28,7 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
MapBlock
*/
-MapBlock::MapBlock(NodeContainer *parent, v3s16 pos, bool dummy):
+MapBlock::MapBlock(Map *parent, v3s16 pos, bool dummy):
m_parent(parent),
m_pos(pos),
m_modified(MOD_STATE_WRITE_NEEDED),
diff --git a/src/mapblock.h b/src/mapblock.h
index 693bc5190..8f3b8464a 100644
--- a/src/mapblock.h
+++ b/src/mapblock.h
@@ -38,6 +38,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "mapblock_mesh.h"
#endif
+class Map;
#define BLOCK_TIMESTAMP_UNDEFINED 0xffffffff
@@ -81,6 +82,7 @@ enum ModifiedState
BLOCKGEN_FULLY_GENERATED=6
};*/
+#if 0
enum
{
NODECONTAINER_ID_MAPBLOCK,
@@ -108,23 +110,24 @@ public:
}
}
};
+#endif
/*
MapBlock itself
*/
-class MapBlock : public NodeContainer
+class MapBlock /*: public NodeContainer*/
{
public:
- MapBlock(NodeContainer *parent, v3s16 pos, bool dummy=false);
+ MapBlock(Map *parent, v3s16 pos, bool dummy=false);
~MapBlock();
- virtual u16 nodeContainerId() const
+ /*virtual u16 nodeContainerId() const
{
return NODECONTAINER_ID_MAPBLOCK;
- }
+ }*/
- NodeContainer * getParent()
+ Map * getParent()
{
return m_parent;
}
@@ -640,7 +643,7 @@ private:
*/
// NOTE: Lots of things rely on this being the Map
- NodeContainer *m_parent;
+ Map *m_parent;
// Position in blocks on parent
v3s16 m_pos;
diff --git a/src/mapblock_mesh.cpp b/src/mapblock_mesh.cpp
index d4921c2c5..447716d00 100644
--- a/src/mapblock_mesh.cpp
+++ b/src/mapblock_mesh.cpp
@@ -64,11 +64,7 @@ void MeshMakeData::fill(u32 daynight_ratio, MapBlock *block)
*/
// Get map
- NodeContainer *parentcontainer = block->getParent();
- // This will only work if the parent is the map
- assert(parentcontainer->nodeContainerId() == NODECONTAINER_ID_MAP);
- // OK, we have the map!
- Map *map = (Map*)parentcontainer;
+ Map *map = block->getParent();
for(u16 i=0; i<6; i++)
{
diff --git a/src/mapblockobject.cpp b/src/mapblockobject.cpp
index 009163a18..51ac4c66b 100644
--- a/src/mapblockobject.cpp
+++ b/src/mapblockobject.cpp
@@ -856,16 +856,7 @@ bool MapBlockObjectList::wrapObject(MapBlockObject *object)
assert(m_objects.find(object->m_id) != NULL);
assert(m_objects[object->m_id] == object);
- NodeContainer *parentcontainer = m_block->getParent();
- // This will only work if the parent is the map
- if(parentcontainer->nodeContainerId() != NODECONTAINER_ID_MAP)
- {
- dstream<<"WARNING: Wrapping object not possible: "
- "MapBlock's parent is not map"<<std::endl;
- return true;
- }
- // OK, we have the map!
- Map *map = (Map*)parentcontainer;
+ Map *map = m_block->getParent();
// Calculate blockpos on map
v3s16 oldblock_pos_i_on_map = m_block->getPosRelative();
diff --git a/src/mapsector.cpp b/src/mapsector.cpp
index 389714f40..4a526c412 100644
--- a/src/mapsector.cpp
+++ b/src/mapsector.cpp
@@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "exceptions.h"
#include "mapblock.h"
-MapSector::MapSector(NodeContainer *parent, v2s16 pos):
+MapSector::MapSector(Map *parent, v2s16 pos):
differs_from_disk(false),
m_parent(parent),
m_pos(pos),
@@ -151,7 +151,7 @@ void MapSector::getBlocks(core::list<MapBlock*> &dest)
ServerMapSector
*/
-ServerMapSector::ServerMapSector(NodeContainer *parent, v2s16 pos):
+ServerMapSector::ServerMapSector(Map *parent, v2s16 pos):
MapSector(parent, pos)
{
}
@@ -184,7 +184,7 @@ void ServerMapSector::serialize(std::ostream &os, u8 version)
ServerMapSector* ServerMapSector::deSerialize(
std::istream &is,
- NodeContainer *parent,
+ Map *parent,
v2s16 p2d,
core::map<v2s16, MapSector*> & sectors
)
@@ -247,7 +247,7 @@ ServerMapSector* ServerMapSector::deSerialize(
ClientMapSector
*/
-ClientMapSector::ClientMapSector(NodeContainer *parent, v2s16 pos):
+ClientMapSector::ClientMapSector(Map *parent, v2s16 pos):
MapSector(parent, pos)
{
}
diff --git a/src/mapsector.h b/src/mapsector.h
index c5a41ca19..44f45d8f0 100644
--- a/src/mapsector.h
+++ b/src/mapsector.h
@@ -30,7 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <ostream>
class MapBlock;
-class NodeContainer;
+class Map;
/*
This is an Y-wise stack of MapBlocks.
@@ -43,7 +43,7 @@ class MapSector
{
public:
- MapSector(NodeContainer *parent, v2s16 pos);
+ MapSector(Map *parent, v2s16 pos);
virtual ~MapSector();
virtual u32 getId() const = 0;
@@ -73,7 +73,7 @@ protected:
// The pile of MapBlocks
core::map<s16, MapBlock*> m_blocks;
- NodeContainer *m_parent;
+ Map *m_parent;
// Position on parent (in MapBlock widths)
v2s16 m_pos;
@@ -92,7 +92,7 @@ protected:
class ServerMapSector : public MapSector
{
public:
- ServerMapSector(NodeContainer *parent, v2s16 pos);
+ ServerMapSector(Map *parent, v2s16 pos);
~ServerMapSector();
u32 getId() const
@@ -109,7 +109,7 @@ public:
static ServerMapSector* deSerialize(
std::istream &is,
- NodeContainer *parent,
+ Map *parent,
v2s16 p2d,
core::map<v2s16, MapSector*> & sectors
);
@@ -121,7 +121,7 @@ private:
class ClientMapSector : public MapSector
{
public:
- ClientMapSector(NodeContainer *parent, v2s16 pos);
+ ClientMapSector(Map *parent, v2s16 pos);
~ClientMapSector();
u32 getId() const
diff --git a/src/test.cpp b/src/test.cpp
index 9ea402b6f..7d71552a8 100644
--- a/src/test.cpp
+++ b/src/test.cpp
@@ -340,6 +340,12 @@ struct TestVoxelManipulator
}
};
+/*
+ NOTE: These tests became non-working then NodeContainer was removed.
+ These should be redone, utilizing some kind of a virtual
+ interface for Map (IMap would be fine).
+*/
+#if 0
struct TestMapBlock
{
class TC : public NodeContainer
@@ -663,6 +669,7 @@ struct TestMapSector
}
};
+#endif
struct TestSocket
{
@@ -1029,8 +1036,8 @@ void run_tests()
TEST(TestCompress);
TEST(TestMapNode);
TEST(TestVoxelManipulator);
- TEST(TestMapBlock);
- TEST(TestMapSector);
+ //TEST(TestMapBlock);
+ //TEST(TestMapSector);
if(INTERNET_SIMULATOR == false){
TEST(TestSocket);
dout_con<<"=== BEGIN RUNNING UNIT TESTS FOR CONNECTION ==="<<std::endl;