From 9ca98dd00e9c19c49237f8eece4ee4db69d505ee Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Thu, 1 Sep 2011 21:00:29 -0300 Subject: [PATCH] change comments --- src/otclient/core/map.cpp | 18 +++++++++++------- src/otclient/core/map.h | 4 ++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/otclient/core/map.cpp b/src/otclient/core/map.cpp index efca9f8c..9e419c18 100644 --- a/src/otclient/core/map.cpp +++ b/src/otclient/core/map.cpp @@ -57,9 +57,13 @@ void Map::draw(const Rect& rect) Position tilePos(m_centralPosition.x + (ix - PLAYER_OFFSET_X), m_centralPosition.y + (iy - PLAYER_OFFSET_Y), m_centralPosition.z); // adjust tilePos to the wanted floor tilePos.perspectiveUp(m_centralPosition.z - iz); - // TODO: skip tiles that are behind another tile - if(const TilePtr& tile = m_tiles[tilePos]) + //TODO: cache visible tiles, m_tiles[] has a high cost (50% fps decrease) + if(const TilePtr& tile = m_tiles[tilePos]) { + // skip tiles that are behind another tile + //if(isCompletlyCovered(tilePos, firstFloor)) + // continue; tile->draw(tilePos.to2D(m_centralPosition) - Point(walkOffsetX, walkOffsetY)); + } } } } @@ -74,7 +78,7 @@ void Map::draw(const Rect& rect) float verticalStretchFactor = rect.height() / (float)(MAP_VISIBLE_HEIGHT * NUM_TILE_PIXELS); // draw player names and health bars - //TODO: this could be cached to improve framerate + //TODO: this must be cached with creature walks for(int x = 0; x < MAP_VISIBLE_WIDTH; ++x) { for(int y = 0; y < MAP_VISIBLE_HEIGHT; ++y) { Position tilePos = Position(m_centralPosition.x + (x - PLAYER_OFFSET_X + 1), m_centralPosition.y + (y - PLAYER_OFFSET_Y + 1), m_centralPosition.z); @@ -152,11 +156,11 @@ bool Map::isLookPossible(const Position& pos) return true; } -bool Map::isCovered(const Position& pos, int maxFloor) +bool Map::isCovered(const Position& pos, int firstFloor) { Position tilePos = pos; tilePos.perspectiveUp(); - while(tilePos.z >= maxFloor) { + while(tilePos.z >= firstFloor) { TilePtr tile = m_tiles[tilePos]; if(tile && tile->isFullGround()) return true; @@ -165,11 +169,11 @@ bool Map::isCovered(const Position& pos, int maxFloor) return false; } -bool Map::isCompletlyCovered(const Position& pos, int maxFloor) +bool Map::isCompletlyCovered(const Position& pos, int firstFloor) { Position tilePos = pos; tilePos.perspectiveUp(); - while(tilePos.z >= maxFloor) { + while(tilePos.z >= firstFloor) { bool covered = true; for(int x=0;x<2;++x) { for(int y=0;y<2;++y) { diff --git a/src/otclient/core/map.h b/src/otclient/core/map.h index 0117c14f..e0ada9b2 100644 --- a/src/otclient/core/map.h +++ b/src/otclient/core/map.h @@ -46,8 +46,8 @@ public: int getFirstVisibleFloor(); bool isLookPossible(const Position& pos); - bool isCovered(const Position& pos, int maxFloor); - bool isCompletlyCovered(const Position& pos, int maxFloor); + bool isCovered(const Position& pos, int firstFloor = 0); + bool isCompletlyCovered(const Position& pos, int firstFloor = 0); void addThing(const ThingPtr& thing, const Position& pos, int stackPos = -1); ThingPtr getThing(const Position& pos, int stackPos);