From 6a1670dbc31cc0e44178bbd9ad34ff0d5981a060 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Thu, 20 Dec 2012 21:19:49 +0400 Subject: Migrate to STL containers/algorithms. --- src/map.h | 92 +++++++++++++++++++++++++++------------------------------------ 1 file changed, 40 insertions(+), 52 deletions(-) (limited to 'src/map.h') diff --git a/src/map.h b/src/map.h index d356da2d1..3833cceb4 100644 --- a/src/map.h +++ b/src/map.h @@ -25,6 +25,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include +#include +#include +#include #include "irrlichttypes_bloated.h" #include "mapnode.h" @@ -75,7 +78,7 @@ struct MapEditEvent MapEditEventType type; v3s16 p; MapNode n; - core::map modified_blocks; + std::set modified_blocks; u16 already_known_by_peer; MapEditEvent(): @@ -90,14 +93,7 @@ struct MapEditEvent event->type = type; event->p = p; event->n = n; - for(core::map::Iterator - i = modified_blocks.getIterator(); - i.atEnd()==false; i++) - { - v3s16 p = i.getNode()->getKey(); - bool v = i.getNode()->getValue(); - event->modified_blocks.insert(p, v); - } + event->modified_blocks = modified_blocks; return event; } @@ -117,11 +113,11 @@ struct MapEditEvent case MEET_OTHER: { VoxelArea a; - for(core::map::Iterator - i = modified_blocks.getIterator(); - i.atEnd()==false; i++) + for(std::set::iterator + i = modified_blocks.begin(); + i != modified_blocks.end(); ++i) { - v3s16 p = i.getNode()->getKey(); + v3s16 p = *i; v3s16 np1 = p*MAP_BLOCKSIZE; v3s16 np2 = np1 + v3s16(1,1,1)*MAP_BLOCKSIZE - v3s16(1,1,1); a.addPoint(np1); @@ -186,7 +182,7 @@ public: */ virtual MapSector * emergeSector(v2s16 p){ return NULL; } virtual MapSector * emergeSector(v2s16 p, - core::map &changed_blocks){ return NULL; } + std::map &changed_blocks){ return NULL; } // Returns InvalidPositionException if not found MapBlock * getBlockNoCreate(v3s16 p); @@ -212,42 +208,42 @@ public: MapNode getNodeNoEx(v3s16 p); void unspreadLight(enum LightBank bank, - core::map & from_nodes, - core::map & light_sources, - core::map & modified_blocks); + std::map & from_nodes, + std::set & light_sources, + std::map & modified_blocks); void unLightNeighbors(enum LightBank bank, v3s16 pos, u8 lightwas, - core::map & light_sources, - core::map & modified_blocks); + std::set & light_sources, + std::map & modified_blocks); void spreadLight(enum LightBank bank, - core::map & from_nodes, - core::map & modified_blocks); + std::set & from_nodes, + std::map & modified_blocks); void lightNeighbors(enum LightBank bank, v3s16 pos, - core::map & modified_blocks); + std::map & modified_blocks); v3s16 getBrightestNeighbour(enum LightBank bank, v3s16 p); s16 propagateSunlight(v3s16 start, - core::map & modified_blocks); + std::map & modified_blocks); void updateLighting(enum LightBank bank, - core::map & a_blocks, - core::map & modified_blocks); + std::map & a_blocks, + std::map & modified_blocks); - void updateLighting(core::map & a_blocks, - core::map & modified_blocks); + void updateLighting(std::map & a_blocks, + std::map & modified_blocks); /* These handle lighting but not faces. */ void addNodeAndUpdate(v3s16 p, MapNode n, - core::map &modified_blocks); + std::map &modified_blocks); void removeNodeAndUpdate(v3s16 p, - core::map &modified_blocks); + std::map &modified_blocks); /* Wrappers for the latter ones. @@ -281,12 +277,12 @@ public: Saves modified blocks before unloading on MAPTYPE_SERVER. */ void timerUpdate(float dtime, float unload_timeout, - core::list *unloaded_blocks=NULL); + std::list *unloaded_blocks=NULL); // Deletes sectors and their blocks from memory // Takes cache into account // If deleted sector is in sector cache, clears cache - void deleteSectors(core::list &list); + void deleteSectors(std::list &list); #if 0 /* @@ -301,8 +297,8 @@ public: // For debug printing. Prints "Map: ", "ServerMap: " or "ClientMap: " virtual void PrintInfo(std::ostream &out); - void transformLiquids(core::map & modified_blocks); - void transformLiquidsFinite(core::map & modified_blocks); + void transformLiquids(std::map & modified_blocks); + void transformLiquidsFinite(std::map & modified_blocks); /* Node metadata @@ -325,7 +321,7 @@ public: /* Misc. */ - core::map *getSectorsPtr(){return &m_sectors;} + std::map *getSectorsPtr(){return &m_sectors;} /* Variables @@ -340,9 +336,9 @@ protected: IGameDef *m_gamedef; - core::map m_event_receivers; + std::set m_event_receivers; - core::map m_sectors; + std::map m_sectors; // Be sure to set this to NULL when the cached sector is deleted MapSector *m_sector_cache; @@ -385,13 +381,7 @@ public: */ bool initBlockMake(BlockMakeData *data, v3s16 blockpos); MapBlock *finishBlockMake(BlockMakeData *data, - core::map &changed_blocks); - - // A non-threaded wrapper to the above - DEFUNCT -/* MapBlock * generateBlock( - v3s16 p, - core::map &modified_blocks - );*/ + std::map &changed_blocks); /* Get a block from somewhere. @@ -444,9 +434,7 @@ public: void save(ModifiedState save_level); //void loadAll(); - - void listAllLoadableBlocks(core::list &dst); - + void listAllLoadableBlocks(std::list &dst); // Saves map seed and possibly other stuff void saveMapMeta(); void loadMapMeta(); @@ -538,15 +526,15 @@ public: virtual void emerge(VoxelArea a, s32 caller_id=-1); - void blitBack(core::map & modified_blocks); - + void blitBack(std::map & modified_blocks); + +protected: + Map *m_map; /* key = blockpos value = flags describing the block */ - core::map m_loaded_blocks; -protected: - Map *m_map; + std::map m_loaded_blocks; }; class ManualMapVoxelManipulator : public MapVoxelManipulator @@ -563,7 +551,7 @@ public: void initialEmerge(v3s16 blockpos_min, v3s16 blockpos_max); // This is much faster with big chunks of generated data - void blitBackAll(core::map * modified_blocks); + void blitBackAll(std::map * modified_blocks); protected: bool m_create_area; -- cgit v1.2.3 From ca7043e52d6a5d0ee1b91f287371fbe7f216697e Mon Sep 17 00:00:00 2001 From: Mukul Sati Date: Sat, 23 Mar 2013 02:24:31 -0400 Subject: Set of changes to build mineTest using Visual Studio 11.0. These affect the following: 1. String concatenation in guiMainMenu.cpp - it is required for all individual strings to be of the same type ; adding explicit L qualifier before the other strings. 2. Correcting type of BlockMakeData to struct in place of class forward declarations. This information is used for name decoration by Visual Studio, leading to linker errors in case of mismatches. 3. Windows headers define max as a macro somewhere, leading to a compile time error in profiler.h; using () around function to prevent macro match from occurring. --- src/map.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/map.h') diff --git a/src/map.h b/src/map.h index 3833cceb4..31001e4c3 100644 --- a/src/map.h +++ b/src/map.h @@ -50,7 +50,7 @@ class NodeMetadata; class IGameDef; class IRollbackReportSink; class EmergeManager; -class BlockMakeData; +struct BlockMakeData; /* -- cgit v1.2.3