diff --git a/client/windows/CQuestLog.cpp b/client/windows/CQuestLog.cpp index 10223d68e..c61b8a07f 100644 --- a/client/windows/CQuestLog.cpp +++ b/client/windows/CQuestLog.cpp @@ -72,26 +72,21 @@ CMinimap (position), void CQuestMinimap::addQuestMarks (const QuestInfo * q) { OBJ_CONSTRUCTION_CAPTURING_ALL; - for (auto icon : icons) - delete icon; icons.clear(); int3 tile; if (q->obj) - { tile = q->obj->pos; - } else - { tile = q->tile; - } + int x,y; minimap->tileToPixels (tile, x, y); if (level != tile.z) setLevel(tile.z); - CQuestIcon * pic = new CQuestIcon ("VwSymbol.def", 3, x, y); + auto pic = make_shared("VwSymbol.def", 3, x, y); pic->moveBy (Point ( -pic->pos.w/2, -pic->pos.h/2)); pic->callback = std::bind (&CQuestMinimap::iconClicked, this); diff --git a/client/windows/CQuestLog.h b/client/windows/CQuestLog.h index 9031179fa..cb2b4f9ed 100644 --- a/client/windows/CQuestLog.h +++ b/client/windows/CQuestLog.h @@ -57,7 +57,7 @@ public: class CQuestMinimap : public CMinimap { - std::vector icons; + std::vector > icons; void clickLeft(tribool down, bool previousState){}; //minimap ignores clicking on its surface void iconClicked();