[Scummvm-cvs-logs] SF.net SVN: scummvm:[46297] scummvm/trunk/engines/teenagent

megath at users.sourceforge.net megath at users.sourceforge.net
Tue Dec 8 23:04:01 CET 2009


Revision: 46297
          http://scummvm.svn.sourceforge.net/scummvm/?rev=46297&view=rev
Author:   megath
Date:     2009-12-08 22:04:00 +0000 (Tue, 08 Dec 2009)

Log Message:
-----------
added final credits

Modified Paths:
--------------
    scummvm/trunk/engines/teenagent/callbacks.cpp
    scummvm/trunk/engines/teenagent/scene.cpp
    scummvm/trunk/engines/teenagent/scene.h
    scummvm/trunk/engines/teenagent/teenagent.cpp
    scummvm/trunk/engines/teenagent/teenagent.h

Modified: scummvm/trunk/engines/teenagent/callbacks.cpp
===================================================================
--- scummvm/trunk/engines/teenagent/callbacks.cpp	2009-12-08 22:03:33 UTC (rev 46296)
+++ scummvm/trunk/engines/teenagent/callbacks.cpp	2009-12-08 22:04:00 UTC (rev 46297)
@@ -3784,7 +3784,7 @@
 		waitAnimation();
 
 		playMusic(11);
-		//BIG FIXME: show scrolling credits
+		displayCredits();
 		loadScene(39, 192, 177, 0);
 		hideActor();
 		Dialog::showMono(scene, 0x8b4d, 953, 0xe3, 1); //well...

Modified: scummvm/trunk/engines/teenagent/scene.cpp
===================================================================
--- scummvm/trunk/engines/teenagent/scene.cpp	2009-12-08 22:03:33 UTC (rev 46296)
+++ scummvm/trunk/engines/teenagent/scene.cpp	2009-12-08 22:04:00 UTC (rev 46297)
@@ -491,6 +491,20 @@
 	do {
 		restart = false;
 		busy = processEventQueue();
+		
+		if (current_event.type == SceneEvent::kCredits) {
+			system->fillScreen(0);
+			///\todo: optimize me
+			Graphics::Surface *surface = system->lockScreen();
+			res->font7.render(surface, current_event.dst.x, current_event.dst.y--, current_event.message, current_event.color);
+			system->unlockScreen();
+
+			if (current_event.dst.y < -(int)current_event.timer)
+				current_event.clear();
+			
+			return true;
+		}
+
 		if (!message.empty() && message_timer != 0) {
 			if (--message_timer == 0) {
 				clearMessage();
@@ -925,6 +939,10 @@
 			debug(0, "*stub* shaking the screen");
 			current_event.clear();
 			break;
+			
+		case SceneEvent::kCredits:
+			debug(0, "showing credits");
+			break;
 
 		case SceneEvent::kQuit:
 			debug(0, "quit!");

Modified: scummvm/trunk/engines/teenagent/scene.h
===================================================================
--- scummvm/trunk/engines/teenagent/scene.h	2009-12-08 22:03:33 UTC (rev 46296)
+++ scummvm/trunk/engines/teenagent/scene.h	2009-12-08 22:04:00 UTC (rev 46297)
@@ -57,6 +57,7 @@
 		kWaitForAnimation,
 		kWaitLanAnimationFrame,
 		kCreditsMessage,		//16
+		kCredits,
 		kTimer,
 		kEffect,
 		kQuit

Modified: scummvm/trunk/engines/teenagent/teenagent.cpp
===================================================================
--- scummvm/trunk/engines/teenagent/teenagent.cpp	2009-12-08 22:03:33 UTC (rev 46296)
+++ scummvm/trunk/engines/teenagent/teenagent.cpp	2009-12-08 22:04:00 UTC (rev 46297)
@@ -489,6 +489,21 @@
 	scene->push(event);
 }
 
+void TeenAgentEngine::displayCredits() {
+	SceneEvent event(SceneEvent::kCredits);
+	event.message = parseMessage(0xe488);
+	event.dst.y = 200;
+
+	int lines = 1;
+	for(uint i = 0; i < event.message.size(); ++i)
+		if (event.message[i] == '\n')
+			++lines;
+	event.dst.x = (320 - Resources::instance()->font7.render(NULL, 0, 0, event.message, 0xd1)) / 2;
+	event.timer = 11 * lines - event.dst.y + 22;
+	//debug(0, "credits = %s", event.message.c_str());
+	scene->push(event);
+}
+
 void TeenAgentEngine::displayCutsceneMessage(uint16 addr, uint16 position) {
 	SceneEvent event(SceneEvent::kCreditsMessage);
 

Modified: scummvm/trunk/engines/teenagent/teenagent.h
===================================================================
--- scummvm/trunk/engines/teenagent/teenagent.h	2009-12-08 22:03:33 UTC (rev 46296)
+++ scummvm/trunk/engines/teenagent/teenagent.h	2009-12-08 22:04:00 UTC (rev 46297)
@@ -105,6 +105,7 @@
 	void waitLanAnimationFrame(byte slot, uint16 frame);
 	void setTimerCallback(uint16 addr, uint16 frames);
 	void shakeScreen();
+	void displayCredits();
 
 	Common::RandomSource random;
 


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