[Scummvm-cvs-logs] SF.net SVN: scummvm:[45156] scummvm/trunk/engines/sci/gui

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Fri Oct 16 11:44:01 CEST 2009


Revision: 45156
          http://scummvm.svn.sourceforge.net/scummvm/?rev=45156&view=rev
Author:   m_kiewitz
Date:     2009-10-16 09:44:00 +0000 (Fri, 16 Oct 2009)

Log Message:
-----------
SCI/newgui: SciGuiTransitions now supports vertical roll from/to center (e.g. qfg1ega)

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gui/gui_transitions.cpp
    scummvm/trunk/engines/sci/gui/gui_transitions.h

Modified: scummvm/trunk/engines/sci/gui/gui_transitions.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_transitions.cpp	2009-10-16 09:40:12 UTC (rev 45155)
+++ scummvm/trunk/engines/sci/gui/gui_transitions.cpp	2009-10-16 09:44:00 UTC (rev 45156)
@@ -48,8 +48,10 @@
 
 // This table contains a mapping between oldIDs (prior SCI1LATE) and newIDs
 static const GuiTransitionTranslateEntry oldTransitionIDs[] = {
+	{   0, SCI_TRANSITIONS_VERTICALROLLFROMCENTER,		false },
 	{   1, SCI_TRANSITIONS_HORIZONTALROLLFROMCENTER,	false },
 	{   8, SCI_TRANSITIONS_BLOCKS,						false },
+	{   9, SCI_TRANSITIONS_VERTICALROLLTOCENTER,		false },
 	{  10, SCI_TRANSITIONS_HORIZONTALROLLTOCENTER,		false },
 	{  17, SCI_TRANSITIONS_BLOCKS,						true },
 	{  18, SCI_TRANSITIONS_PIXELATION,					false },
@@ -104,6 +106,12 @@
 		warning("SciGuiTransitions: blackout flag currently not supported");
 
 	switch (_number) {
+	case SCI_TRANSITIONS_VERTICALROLLFROMCENTER:
+		setNewPalette(); verticalRollFromCenter();
+		break;
+	case SCI_TRANSITIONS_VERTICALROLLTOCENTER:
+		setNewPalette(); verticalRollFromCenter();
+		break;
 	case SCI_TRANSITIONS_HORIZONTALROLLFROMCENTER:
 		setNewPalette(); horizontalRollFromCenter();
 		break;
@@ -300,6 +308,36 @@
 	}
 }
 
+// vertically displays new screen starting from center - works on _picRect area only
+void SciGuiTransitions::verticalRollFromCenter() {
+	Common::Rect leftRect = Common::Rect(_picRect.left + (_picRect.width() / 2) -1, _picRect.top, _picRect.left + (_picRect.width() / 2), _picRect.bottom);
+	Common::Rect rightRect = Common::Rect(leftRect.right, _picRect.top, leftRect.right + 1, _picRect.bottom);
+
+	while ((leftRect.left > _picRect.left) && (rightRect.right < _picRect.right)) {
+		if (leftRect.left < _picRect.left)
+			leftRect.translate(1, 0);
+		if (rightRect.right > _picRect.right)
+			rightRect.translate(-1, 0);
+		_screen->copyRectToScreen(leftRect); leftRect.translate(-1, 0);
+		_screen->copyRectToScreen(rightRect); rightRect.translate(1, 0);
+		g_system->updateScreen();
+		g_system->delayMillis(2);
+	}
+}
+
+// vertically displays new screen starting from edges - works on _picRect area only
+void SciGuiTransitions::verticalRollToCenter() {
+	Common::Rect leftRect = Common::Rect(_picRect.left, _picRect.top, _picRect.left + 1, _picRect.bottom);
+	Common::Rect rightRect = Common::Rect(leftRect.right - 1, _picRect.top, leftRect.right, _picRect.bottom);
+
+	while (leftRect.left < rightRect.right) {
+		_screen->copyRectToScreen(leftRect); leftRect.translate(1, 0);
+		_screen->copyRectToScreen(rightRect); rightRect.translate(-1, 0);
+		g_system->updateScreen();
+		g_system->delayMillis(2);
+	}
+}
+
 // horizontally displays new screen starting from center - works on _picRect area only
 void SciGuiTransitions::horizontalRollFromCenter() {
 	Common::Rect upperRect = Common::Rect(_picRect.left, _picRect.top + (_picRect.height() / 2) - 1, _picRect.right, _picRect.top + (_picRect.height() / 2));

Modified: scummvm/trunk/engines/sci/gui/gui_transitions.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_transitions.h	2009-10-16 09:40:12 UTC (rev 45155)
+++ scummvm/trunk/engines/sci/gui/gui_transitions.h	2009-10-16 09:44:00 UTC (rev 45156)
@@ -37,6 +37,7 @@
 };
 
 enum {
+	SCI_TRANSITIONS_VERTICALROLLFROMCENTER		= 0,
 	SCI_TRANSITIONS_HORIZONTALROLLFROMCENTER	= 1,
 	SCI_TRANSITIONS_BLOCKS						= 8,
 	SCI_TRANSITIONS_PIXELATION					= 9,
@@ -47,7 +48,8 @@
 	SCI_TRANSITIONS_SCROLLDOWN					= 14,
 	SCI_TRANSITIONS_NONE						= 100,
 	// here are transitions that are used by the old tableset, but are not included anymore in the new tableset
-	SCI_TRANSITIONS_HORIZONTALROLLTOCENTER		= 300
+	SCI_TRANSITIONS_VERTICALROLLTOCENTER		= 300,
+	SCI_TRANSITIONS_HORIZONTALROLLTOCENTER		= 301
 };
 
 class SciGuiScreen;
@@ -68,6 +70,8 @@
 	void pixelation();
 	void blocks();
 	void scroll();
+	void verticalRollFromCenter();
+	void verticalRollToCenter();
 	void horizontalRollFromCenter();
 	void horizontalRollToCenter();
 


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