[Scummvm-cvs-logs] SF.net SVN: scummvm:[52972] scummvm/branches/branch-1-2-0/engines/lure

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sat Oct 2 02:10:23 CEST 2010


Revision: 52972
          http://scummvm.svn.sourceforge.net/scummvm/?rev=52972&view=rev
Author:   dreammaster
Date:     2010-10-02 00:10:21 +0000 (Sat, 02 Oct 2010)

Log Message:
-----------
LURE: Backport for #3008511 Goewin getting stuck

This workaround prevents the Weregate from closing whilst Goewin is still within it

Modified Paths:
--------------
    scummvm/branches/branch-1-2-0/engines/lure/hotspots.h
    scummvm/branches/branch-1-2-0/engines/lure/scripts.cpp

Modified: scummvm/branches/branch-1-2-0/engines/lure/hotspots.h
===================================================================
--- scummvm/branches/branch-1-2-0/engines/lure/hotspots.h	2010-10-02 00:08:13 UTC (rev 52971)
+++ scummvm/branches/branch-1-2-0/engines/lure/hotspots.h	2010-10-02 00:10:21 UTC (rev 52972)
@@ -236,7 +236,6 @@
 	BarPlaceResult getBarPlace();
 	bool findClearBarPlace();
 	bool characterWalkingCheck(uint16 id);
-	bool doorCloseCheck(uint16 doorId);
 	void resetDirection();
 
 	// Action set
@@ -450,6 +449,7 @@
 	void updateMovement();
 	void updateMovement2(CharacterMode value);
 	void resetPosition();
+	bool doorCloseCheck(uint16 doorId);
 
 	void doAction();
 	void doAction(Action action, HotspotData *hotspot);

Modified: scummvm/branches/branch-1-2-0/engines/lure/scripts.cpp
===================================================================
--- scummvm/branches/branch-1-2-0/engines/lure/scripts.cpp	2010-10-02 00:08:13 UTC (rev 52971)
+++ scummvm/branches/branch-1-2-0/engines/lure/scripts.cpp	2010-10-02 00:10:21 UTC (rev 52972)
@@ -901,6 +901,16 @@
 	uint16 offset = startOffset;
 	bool breakFlag = false;
 
+	// WORKAROUND: Prevents the Weregate door closing prematurely
+	if (startOffset == 3941) {
+		Hotspot *goewinHotspot = r.getActiveHotspot(GOEWIN_ID);
+		if (!goewinHotspot->doorCloseCheck(10025)) {
+			// Goewin is still blocking the door, so reschedule the closing
+			r.delayList().add(1, startOffset, false);
+			return 0;
+		}
+	}
+
 	param = 0;
 	fields.setField(SEQUENCE_RESULT, 0);
 


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