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

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sun Sep 16 10:03:18 CEST 2007


Revision: 28920
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28920&view=rev
Author:   dreammaster
Date:     2007-09-16 01:03:18 -0700 (Sun, 16 Sep 2007)

Log Message:
-----------
Fix to make characters face upwards initially, and to stand straight when not actively moving

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

Modified: scummvm/trunk/engines/lure/hotspots.cpp
===================================================================
--- scummvm/trunk/engines/lure/hotspots.cpp	2007-09-16 04:31:15 UTC (rev 28919)
+++ scummvm/trunk/engines/lure/hotspots.cpp	2007-09-16 08:03:18 UTC (rev 28920)
@@ -77,6 +77,12 @@
 	_tickHandler = HotspotTickHandlers::getHandler(_data->tickProcOffset);
 	_nameBuffer[0] = '\0';
 
+	if (_hotspotId < FIRST_NONCHARACTER_ID) {
+		// Default characters to facing upwards until they start moving
+		_direction = UP;
+		setFrameNumber(_anim->upFrame);
+	}
+
 	_frameCtr = 0;
 	_skipFlag = false;
 	_charRectY = 0;
@@ -693,6 +699,8 @@
 			setOccupied(true);
 		}
 	}
+
+	resetDirection();
 }
 
 void Hotspot::updateMovement2(CharacterMode value) {
@@ -1091,6 +1099,29 @@
 	return true;
 }
 
+void Hotspot::resetDirection() {
+	uint16 newFrameNumber;
+	switch (_direction) {
+	case UP:
+		newFrameNumber = _anim->upFrame;
+		break;
+	case DOWN:
+		newFrameNumber = _anim->downFrame;
+		break;
+	case LEFT:
+		newFrameNumber = _anim->leftFrame;
+		break;
+	case RIGHT:
+		newFrameNumber = _anim->rightFrame;
+		break;
+	default:
+		// No need to change
+		return;
+	}
+
+	setFrameNumber(newFrameNumber);
+}
+
 /*-------------------------------------------------------------------------*/
 
 typedef void (Hotspot::*ActionProcPtr)(HotspotData *hotspot);
@@ -2389,7 +2420,7 @@
 
 	switch (action) {
 	case NO_ACTION:
-		h.setCharacterMode(CHARMODE_IDLE);
+		h.updateMovement2(CHARMODE_IDLE);
 		break;
 
 	case DISPATCH_ACTION:


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