diff --git a/src/client/luafunctions.cpp b/src/client/luafunctions.cpp index e3161d4e..6f19b276 100644 --- a/src/client/luafunctions.cpp +++ b/src/client/luafunctions.cpp @@ -568,6 +568,10 @@ void Client::registerLuaFunctions() g_lua.bindClassMemberFunction("isClickable", &Tile::isClickable); g_lua.bindClassMemberFunction("isPathable", &Tile::isPathable); g_lua.bindClassMemberFunction("overwriteMinimapColor", &Tile::overwriteMinimapColor); + g_lua.bindClassMemberFunction("select", &Tile::select); + g_lua.bindClassMemberFunction("unselect", &Tile::unselect); + g_lua.bindClassMemberFunction("isSelected", &Tile::isSelected); + g_lua.bindClassMemberFunction("remFlag", &Tile::remFlag); g_lua.bindClassMemberFunction("setFlag", &Tile::setFlag); g_lua.bindClassMemberFunction("setFlags", &Tile::setFlags); g_lua.bindClassMemberFunction("getFlags", &Tile::getFlags); diff --git a/src/client/tile.cpp b/src/client/tile.cpp index 049eda50..07702242 100644 --- a/src/client/tile.cpp +++ b/src/client/tile.cpp @@ -52,7 +52,6 @@ void Tile::draw(const Point& dest, float scaleFactor, int drawFlags, LightView * TILESTATE_HARDCOREZONE, TILESTATE_REFRESH, TILESTATE_NOLOGOUT, - TILESTATE_TRANSLUECENT_LIGHT, TILESTATE_LAST }; @@ -74,6 +73,9 @@ void Tile::draw(const Point& dest, float scaleFactor, int drawFlags, LightView * break; } } + } else if(m_selected) { + g_painter->setColor(Color::darkGreen); + g_painter->setOpacity(0.9); } if((thing->isGround() && drawFlags & Otc::DrawGround) || diff --git a/src/client/tile.h b/src/client/tile.h index e2688d1d..4f75e1b2 100644 --- a/src/client/tile.h +++ b/src/client/tile.h @@ -112,6 +112,7 @@ public: bool hasElevation(int elevation = 1); void overwriteMinimapColor(uint8 color) { m_minimapColor = color; } + void remFlag(uint32 flag) { m_flags &= ~flag; } void setFlag(uint32 flag) { m_flags |= flag; } void setFlags(uint32 flags) { m_flags = flags; } bool hasFlag(uint32 flag) { return (m_flags & flag) == flag; } @@ -121,6 +122,10 @@ public: uint32 getHouseId() { return m_houseId; } bool isHouseTile() const { return m_houseId != 0 && (m_flags & TILESTATE_HOUSE) == TILESTATE_HOUSE; } + void select() { m_selected = true; } + void unselect() { m_selected = false; } + bool isSelected() { return m_selected; } + TilePtr asTile() { return static_self_cast(); } private: @@ -133,6 +138,8 @@ private: uint8 m_drawElevation; uint8 m_minimapColor; uint32 m_flags, m_houseId; + + stdext::boolean m_selected; }; #endif