diff options
author | Paul Gilbert | 2018-04-20 22:27:33 -0400 |
---|---|---|
committer | Paul Gilbert | 2018-04-20 22:27:33 -0400 |
commit | ea524fa7928813585f666d2f64e57253c464bb60 (patch) | |
tree | 256563253fde09b491027f1886dc7dbef534480d | |
parent | 030582af001507e441429fb1f2215fe246198624 (diff) | |
download | scummvm-rg350-ea524fa7928813585f666d2f64e57253c464bb60.tar.gz scummvm-rg350-ea524fa7928813585f666d2f64e57253c464bb60.tar.bz2 scummvm-rg350-ea524fa7928813585f666d2f64e57253c464bb60.zip |
TINSEL: Fix held items not in either inventory being lost
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | engines/tinsel/dialogs.cpp | 5 |
2 files changed, 7 insertions, 0 deletions
@@ -28,6 +28,8 @@ For a more comprehensive changelog of the latest experimental code, see: Tinsel: - Fix loading Discworld 1 savegames from the launcher where Rincewind had a held item - Script patch for hang in Discworld 1 GRA using items on Temple big hammer + - In Discworld 1, Held items being released that were never in the Luggage or Rincewind's inventory + will now be automatically dropped into the Luggage rather than being lost Tucker: - Fixed multiple graphic issues in Bud Tucker in Double Trouble. diff --git a/engines/tinsel/dialogs.cpp b/engines/tinsel/dialogs.cpp index b5d090ec15..755b9275c6 100644 --- a/engines/tinsel/dialogs.cpp +++ b/engines/tinsel/dialogs.cpp @@ -1907,6 +1907,11 @@ extern void HoldItem(int item, bool bKeepFilm) { invObj = GetInvObject(item); SetAuxCursor(invObj->hIconFilm); // and is aux. cursor } + + // WORKAROUND: If a held item is being removed that's not in either inventory (i.e. it was picked up + // but never put in them), then when removing it from being held, drop it in the luggage + if (g_heldItem != INV_NOICON && InventoryPos(g_heldItem) == INV_HELDNOTIN) + AddToInventory(INV_1, g_heldItem); } g_heldItem = item; // Item held |