[Scummvm-cvs-logs] SF.net SVN: scummvm:[53624] scummvm/trunk/engines/lastexpress/game/action. cpp
littleboy at users.sourceforge.net
littleboy at users.sourceforge.net
Tue Oct 19 22:53:43 CEST 2010
Revision: 53624
http://scummvm.svn.sourceforge.net/scummvm/?rev=53624&view=rev
Author: littleboy
Date: 2010-10-19 20:53:43 +0000 (Tue, 19 Oct 2010)
Log Message:
-----------
LASTEXPRESS: Fix corpse disappearing when hiding the body in the bed
The setItemLocation action had a typo that prevented it from setting the item location.
The "corpse moved" event was not set and it broke the scene progression.
Also clean up the pickCorpse code and add better comments.
Modified Paths:
--------------
scummvm/trunk/engines/lastexpress/game/action.cpp
Modified: scummvm/trunk/engines/lastexpress/game/action.cpp
===================================================================
--- scummvm/trunk/engines/lastexpress/game/action.cpp 2010-10-19 20:52:47 UTC (rev 53623)
+++ scummvm/trunk/engines/lastexpress/game/action.cpp 2010-10-19 20:53:43 UTC (rev 53624)
@@ -638,18 +638,14 @@
return kSceneInvalid;
Inventory::InventoryEntry* entry = getInventory()->get(item);
- if (!entry->isPresent)
+ if (entry->isPresent)
return kSceneInvalid;
entry->location = (ObjectLocation)hotspot.param2;
if (item == kItemCorpse) {
ObjectLocation corpseLocation = getInventory()->get(kItemCorpse)->location;
-
- if (corpseLocation == kObjectLocation3 || corpseLocation == kObjectLocation4)
- getProgress().eventCorpseMovedFromFloor = true;
- else
- getProgress().eventCorpseMovedFromFloor = false;
+ getProgress().eventCorpseMovedFromFloor = (corpseLocation == kObjectLocation3 || corpseLocation == kObjectLocation4);
}
return kSceneInvalid;
@@ -1514,20 +1510,20 @@
// Floor
case kObjectLocation1:
- if (bedPosition != 4) {
- playAnimation(getProgress().jacket == kJacketGreen ? kEventCorpsePickFloorGreen : kEventCorpsePickFloorOriginal);
+ // Bed is fully opened, move corpse directly there
+ if (bedPosition == 4) {
+ playAnimation(kEventCorpsePickFloorOpenedBedOriginal);
+
+ getInventory()->get(kItemCorpse)->location = kObjectLocation5;
break;
}
- if (getProgress().jacket)
- playAnimation(kEventCorpsePickFloorOpenedBedOriginal);
-
- getInventory()->get(kItemCorpse)->location = kObjectLocation5;
+ playAnimation(getProgress().jacket == kJacketGreen ? kEventCorpsePickFloorGreen : kEventCorpsePickFloorOriginal);
break;
// Bed
case kObjectLocation2:
- playAnimation(getProgress().jacket == kJacketGreen ? kEventCorpsePickFloorGreen : kEventCorpsePickBedOriginal);
+ playAnimation(getProgress().jacket == kJacketGreen ? kEventCorpsePickBedGreen : kEventCorpsePickBedOriginal);
break;
}
@@ -1535,7 +1531,7 @@
getScenes()->processScene();
// Add corpse to inventory
- if (bedPosition != 4) { // bed position
+ if (bedPosition != 4) { // bed is not fully opened
getInventory()->addItem(kItemCorpse);
getInventory()->selectItem(kItemCorpse);
_engine->getCursor()->setStyle(kCursorCorpse);
@@ -1765,7 +1761,7 @@
return kCursorNormal;
if ((!getInventory()->getSelectedItem() || getInventory()->getSelectedEntry()->manualSelect)
- && (object != kObject21 || getProgress().eventCorpseMovedFromFloor == 1))
+ && (object != kObject21 || getProgress().eventCorpseMovedFromFloor == true))
return kCursorHand;
else
return kCursorNormal;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list