/*
-Minetest-c55
-Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
+Minetest
+Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+GNU Lesser General Public License for more details.
-You should have received a copy of the GNU General Public License along
+You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef CLIENTMAP_HEADER
#define CLIENTMAP_HEADER
-#include "common_irrlicht.h"
+#include "irrlichttypes_extrabloated.h"
#include "map.h"
+#include <set>
+#include <map>
struct MapDrawControl
{
wanted_max_blocks(0),
wanted_min_range(0),
blocks_drawn(0),
- blocks_would_have_drawn(0)
+ blocks_would_have_drawn(0),
+ farthest_drawn(0)
{
}
// Overrides limits by drawing everything
u32 blocks_drawn;
// Number of blocks that would have been drawn in wanted_range
u32 blocks_would_have_drawn;
+ // Distance to the farthest block drawn
+ float farthest_drawn;
};
class Client;
{
return m_box;
}
-
+
+ void updateDrawList(video::IVideoDriver* driver);
void renderMap(video::IVideoDriver* driver, s32 pass);
int getBackgroundBrightness(float max_d, u32 daylight_factor,
// Check if sector was drawn on last render()
bool sectorWasDrawn(v2s16 p)
{
- return (m_last_drawn_sectors.find(p) != NULL);
+ return (m_last_drawn_sectors.find(p) != m_last_drawn_sectors.end());
}
private:
v3f m_camera_direction;
f32 m_camera_fov;
JMutex m_camera_mutex;
+
+ std::map<v3s16, MapBlock*> m_drawlist;
- core::map<v2s16, bool> m_last_drawn_sectors;
+ std::set<v2s16> m_last_drawn_sectors;
};
#endif