[Scummvm-cvs-logs] CVS: scummvm/kyra screen.cpp,1.25,1.26 script_v1.cpp,1.25,1.26

Johannes Schickel lordhoto at users.sourceforge.net
Sat Nov 26 16:13:04 CET 2005


Update of /cvsroot/scummvm/scummvm/kyra
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29476

Modified Files:
	screen.cpp script_v1.cpp 
Log Message:
Implemented cmd_runSceneAnimUntilDone and cmd_displayWSAFrameOnHidPage.
Also fixed cursor hotspot position.


Index: screen.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/screen.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- screen.cpp	18 Nov 2005 23:55:31 -0000	1.25
+++ screen.cpp	27 Nov 2005 00:12:07 -0000	1.26
@@ -1621,7 +1621,7 @@
 
 	_system->showMouse(false);
 	copyRegionToBuffer(8, 0, 0, mouseWidth, mouseHeight, cursor);
-	_system->setMouseCursor(cursor, mouseWidth, mouseHeight, 0, 0, 0);
+	_system->setMouseCursor(cursor, mouseWidth, mouseHeight, x, y, 0);
 	_system->showMouse(true);
 	free(cursor);
 

Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/script_v1.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- script_v1.cpp	26 Nov 2005 16:37:20 -0000	1.25
+++ script_v1.cpp	27 Nov 2005 00:12:07 -0000	1.26
@@ -483,7 +483,19 @@
 }
 
 int KyraEngine::cmd_runSceneAnimUntilDone(ScriptState *script) {
-	warning("STUB: cmd_runSceneAnimUntilDone");
+	debug(3, "cmd_runSceneAnimUntilDone(0x%X) (%d)", script, stackPos(0));
+	_sprites->_anims[stackPos(0)].play = true;
+	_sprites->_animObjects[stackPos(0)].active = 1;
+	_screen->hideMouse();
+	restoreAllObjectBackgrounds();
+	flagAllObjectsForBkgdChange();
+	preserveAnyChangedBackgrounds();
+	while (_sprites->_anims[stackPos(0)].play) {
+		_sprites->updateSceneAnims();
+		updateAllObjectShapes();
+	}
+	restoreAllObjectBackgrounds();
+	_screen->showMouse();
 	return 0;
 }
 
@@ -634,6 +646,7 @@
 		if (wsaFrame >= wsa_getNumFrames(_wsaObjects[wsaIndex]))
 			running = false;
 		
+		// XXX
 		waitTicks(waitTime);
 		if (worldUpdate) {
 			_sprites->updateSceneAnims();
@@ -656,6 +669,7 @@
 	int wsaIndex = stackPos(4);
 	_screen->hideMouse();
 	wsa_play(_wsaObjects[wsaIndex], frame, xpos, ypos, 0);
+	// XXX
 	waitTicks(waitTime);
 	_sprites->updateSceneAnims();
 	updateAllObjectShapes();
@@ -832,7 +846,21 @@
 }
 
 int KyraEngine::cmd_displayWSAFrameOnHidPage(ScriptState *script) {
-	warning("STUB: cmd_displayWSAFrameOnHidPage");
+	debug(3, "cmd_displayWSAFrameOnHidPage(0x%X) (%d, %d, %d, %d, %d)", script, stackPos(0), stackPos(1), stackPos(3), stackPos(4));
+	int frame = stackPos(0);
+	int xpos = stackPos(1);
+	int ypos = stackPos(2);
+	int waitTime = stackPos(3);
+	int wsaIndex = stackPos(4);
+	
+	_screen->hideMouse();
+	wsa_play(_wsaObjects[wsaIndex], frame, xpos, ypos, 2);
+	// XXX
+	waitTicks(waitTime);
+	_sprites->updateSceneAnims();
+	updateAllObjectShapes();
+	_screen->showMouse();
+	
 	return 0;
 }
 





More information about the Scummvm-git-logs mailing list