diff --git a/DROD/RoomWidget.cpp b/DROD/RoomWidget.cpp index 3283ae8d..91384f6e 100644 --- a/DROD/RoomWidget.cpp +++ b/DROD/RoomWidget.cpp @@ -6436,6 +6436,14 @@ void CRoomWidget::AnimateMonster(CMonster* pMonster) this->pTileImages[this->pRoom->ARRAYINDEX(pMonster->wX, pMonster->wY)].dirty = 1; + // Also dirty the tile with the weapon, to ensure it's properly redrawn + const CArmedMonster* pArmedMonster = dynamic_cast(pMonster); + if (pArmedMonster + && pArmedMonster->HasSword() + && this->pRoom->IsValidColRow(pArmedMonster->GetWeaponX(), pArmedMonster->GetWeaponY()) + ) + this->pTileImages[this->pRoom->ARRAYINDEX(pArmedMonster->GetWeaponX(), pArmedMonster->GetWeaponY())].dirty = 1; + //Redraw all changing parts of large monsters. if (pMonster->IsLongMonster() && !bIsSerpentOrGentryii(pMonster->wType)) {