[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