[Scummvm-cvs-logs] SF.net SVN: scummvm:[52971] scummvm/trunk/engines/lure

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sat Oct 2 02:08:14 CEST 2010


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

Log Message:
-----------
LURE: Partial fix for #3008511 Goewin getting stuck

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

Modified Paths:
--------------
    scummvm/trunk/engines/lure/hotspots.h
    scummvm/trunk/engines/lure/scripts.cpp

Modified: scummvm/trunk/engines/lure/hotspots.h
===================================================================
--- scummvm/trunk/engines/lure/hotspots.h	2010-10-01 21:43:12 UTC (rev 52970)
+++ scummvm/trunk/engines/lure/hotspots.h	2010-10-02 00:08:13 UTC (rev 52971)
@@ -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/trunk/engines/lure/scripts.cpp
===================================================================
--- scummvm/trunk/engines/lure/scripts.cpp	2010-10-01 21:43:12 UTC (rev 52970)
+++ scummvm/trunk/engines/lure/scripts.cpp	2010-10-02 00:08:13 UTC (rev 52971)
@@ -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