diff options
-rw-r--r-- | src/gui/gui.cpp | 10 | ||||
-rw-r--r-- | src/gui/windows/skilldialog.cpp | 7 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 3 | ||||
-rw-r--r-- | src/render/graphics_calcImageRect.hpp | 3 | ||||
-rw-r--r-- | src/resources/db/mapdb.cpp | 4 | ||||
-rw-r--r-- | src/resources/mapreader.cpp | 7 |
6 files changed, 21 insertions, 13 deletions
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index f0a4137c1..410891416 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -275,7 +275,10 @@ Gui::~Gui() if (windowContainer) windowContainer->slowLogic(); - delete getTop(); + Widget *top = mTop; + if (Widget::widgetExists(mTop)) + setTop(nullptr); + delete top; delete2(mGuiFont); delete2(boldFont); @@ -283,14 +286,9 @@ Gui::~Gui() delete2(mSecureFont); delete2(mInfoParticleFont); delete2(mNpcFont); - delete2(guiInput); - delete2(theme); - if (Widget::widgetExists(mTop)) - setTop(nullptr); - delete2(mFocusHandler); Label::finalCleanup(); Tab::finalCleanup(); diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index 69e5f5bf3..b973c09be 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -874,8 +874,11 @@ void SkillDialog::useSkillTarget(const SkillInfo *const info, { if (!being && autoTarget == AutoTarget_true) { - being = localPlayer->setNewTarget(ActorType::Monster, - AllowSort_true); + if (localPlayer) + { + being = localPlayer->setNewTarget(ActorType::Monster, + AllowSort_true); + } } if (being) { diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp index 915be5cbd..1fc49deaf 100644 --- a/src/net/eathena/beingrecv.cpp +++ b/src/net/eathena/beingrecv.cpp @@ -1074,7 +1074,8 @@ void BeingRecv::processSkillCastingContinue(Net::MessageIn &msg, castTime / MILLISECONDS_IN_A_TICK); } } - if (srcBeing == localPlayer && + if (localPlayer && + srcBeing == localPlayer && (inf2 & SkillType2::FreeCastAny) == 0) { localPlayer->freezeMoving(castTime / MILLISECONDS_IN_A_TICK); diff --git a/src/render/graphics_calcImageRect.hpp b/src/render/graphics_calcImageRect.hpp index c33ec94e6..a0cc73ff7 100644 --- a/src/render/graphics_calcImageRect.hpp +++ b/src/render/graphics_calcImageRect.hpp @@ -68,7 +68,8 @@ if (top && left && bottom && right) calcPatternInline(vert, right, x + w - rw, y + th, rw, h - th - bh); } -calcTileVertexesInline(vert, topLeft, x, y); +if (topLeft) + calcTileVertexesInline(vert, topLeft, x, y); if (topRight) { const int trw = topRight->getWidth(); diff --git a/src/resources/db/mapdb.cpp b/src/resources/db/mapdb.cpp index 48d234bb4..fde608496 100644 --- a/src/resources/db/mapdb.cpp +++ b/src/resources/db/mapdb.cpp @@ -213,11 +213,11 @@ const MapInfo *MapDB::getMapAtlas(const std::string &name) const MapInfo *MapDB::getAtlas(const std::string &name) { - MapInfo *const info = new MapInfo; - const AtlasCIter it = mAtlases.find(name); if (it == mAtlases.end()) return nullptr; + + MapInfo *const info = new MapInfo; info->atlas = name; info->files = &(*it).second; return info; diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index 0b06fb455..5c6282135 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -1199,7 +1199,12 @@ Tileset *MapReader::readTileset(XmlNodePtr node, const int duration = XML::getProperty( frameNode, "duration", 0) / 10; - ani->addFrame(set->get(tileId), duration, 0, 0, 100); + if (set) + { + ani->addFrame(set->get(tileId), + duration, + 0, 0, 100); + } } } |