From 4a3fd54d539cb9f06248b40a0e83147dc8decddf Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Fri, 27 May 2011 08:11:19 +0000
Subject: [PATCH] Fixed the jewelry creation

git-svn-id: http://svn.net-core.org/repos/t-engine4@3448 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/engines/default/engine/dialogs/ShowInventory.lua   | 5 +++--
 game/modules/tome/class/Player.lua                      | 3 +++
 game/modules/tome/data/zones/crypt-kryl-feijan/zone.lua | 3 ++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/game/engines/default/engine/dialogs/ShowInventory.lua b/game/engines/default/engine/dialogs/ShowInventory.lua
index 032aa5dff4..45da191392 100644
--- a/game/engines/default/engine/dialogs/ShowInventory.lua
+++ b/game/engines/default/engine/dialogs/ShowInventory.lua
@@ -71,11 +71,12 @@ function _M:select(item)
 	end
 end
 function _M:use(item)
+	local dont_end = false
 	if item and item.object then
-		self.action(item.object, item.item)
+		dont_end = self.action(item.object, item.item)
 	end
 	self:generateList()
-	--game:unregisterDialog(self)
+	if not dont_end then game:unregisterDialog(self) end
 end
 
 function _M:generateList()
diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua
index bdbd75952d..337451da88 100644
--- a/game/modules/tome/class/Player.lua
+++ b/game/modules/tome/class/Player.lua
@@ -728,6 +728,7 @@ function _M:playerDrop()
 	local d d = self:showInventory(titleupdator(), inven, nil, function(o, item)
 		self:doDrop(inven, item)
 		d:updateTitle(titleupdator())
+		return true
 	end)
 end
 
@@ -739,6 +740,7 @@ function _M:playerWear()
 	end, function(o, item)
 		self:doWear(inven, item, o)
 		d:updateTitle(titleupdator())
+		return true
 	end)
 end
 
@@ -747,6 +749,7 @@ function _M:playerTakeoff()
 	local d d = self:showEquipment(titleupdator(), nil, function(o, inven, item)
 		self:doTakeoff(inven, item, o)
 		d:updateTitle(titleupdator())
+		return true
 	end)
 end
 
diff --git a/game/modules/tome/data/zones/crypt-kryl-feijan/zone.lua b/game/modules/tome/data/zones/crypt-kryl-feijan/zone.lua
index f3bf95235b..4dbfa610e0 100644
--- a/game/modules/tome/data/zones/crypt-kryl-feijan/zone.lua
+++ b/game/modules/tome/data/zones/crypt-kryl-feijan/zone.lua
@@ -104,7 +104,8 @@ return {
 			return nil, nil, true
 		end
 
-		if melinda and not melinda.dead and not game.player:isQuestStatus("kryl-feijan-escape", engine.Quest.FAILED) then
+		local g = game.level.map(game.player.x, game.player.y, engine.Map.TERRAIN)
+		if melinda and not melinda.dead and not game.player:isQuestStatus("kryl-feijan-escape", engine.Quest.FAILED) and g and g.change_level then
 			game.player:setQuestStatus("kryl-feijan-escape", engine.Quest.DONE)
 			world:gainAchievement("MELINDA_SAVED", game.player)
 		end
-- 
GitLab