[Scummvm-cvs-logs] SF.net SVN: scummvm:[45079] scummvm/trunk/engines/sci/gui
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Wed Oct 14 15:58:37 CEST 2009
Revision: 45079
http://scummvm.svn.sourceforge.net/scummvm/?rev=45079&view=rev
Author: m_kiewitz
Date: 2009-10-14 13:58:37 +0000 (Wed, 14 Oct 2009)
Log Message:
-----------
SCI/newgui: SciGuiTransitions now supports block-pixelation as well (EGA and VGA), e.g. qfg1/ega
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-14 13:28:36 UTC (rev 45078)
+++ scummvm/trunk/engines/sci/gui/gui_transitions.cpp 2009-10-14 13:58:37 UTC (rev 45079)
@@ -61,6 +61,11 @@
case SCI_TRANSITIONS_VGA_PIXELATION:
setNewPalette(); pixelation();
break;
+
+ case SCI_TRANSITIONS_VGA_BLOCKS:
+ setNewPalette(); blocks();
+ break;
+
case SCI_TRANSITIONS_VGA_FADEPALETTE:
fadeOut(); setNewScreen(); fadeIn();
break;
@@ -72,13 +77,21 @@
} else {
// === EGA transitions
switch (_number) {
+ case SCI_TRANSITIONS_EGA_PIXELATION:
+ pixelation();
+ break;
+
+ case SCI_TRANSITIONS_EGA_BLOCKS:
+ blocks();
+ break;
+
case SCI_TRANSITIONS_EGA_FADEPALETTE:
fadeOut(); setNewScreen(); fadeIn();
break;
default:
warning("SciGuiTransitions: EGA-%d not implemented", _number);
- setNewPalette(); setNewScreen();
+ setNewScreen();
}
}
_screen->_picNotValid = 0;
@@ -149,4 +162,24 @@
} while (mask != 0x40);
}
+// like pixelation but uses 8x8 blocks
+void SciGuiTransitions::blocks() {
+ uint16 mask = 0x40, stepNr = 0;
+ Common::Rect blockRect;
+
+ do {
+ mask = (mask & 1) ? (mask >> 1) ^ 0x240 : mask >> 1;
+ if (mask >= 40 * 25)
+ continue;
+ blockRect.left = (mask % 40) << 3; blockRect.right = blockRect.left + 8;
+ blockRect.top = (mask / 40) << 3; blockRect.bottom = blockRect.top + 8;
+ _screen->copyRectToScreen(blockRect);
+ if ((stepNr & 7) == 0) {
+ g_system->updateScreen();
+ g_system->delayMillis(4);
+ }
+ stepNr++;
+ } while (mask != 0x40);
+}
+
} // End of namespace Sci
Modified: scummvm/trunk/engines/sci/gui/gui_transitions.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_transitions.h 2009-10-14 13:28:36 UTC (rev 45078)
+++ scummvm/trunk/engines/sci/gui/gui_transitions.h 2009-10-14 13:58:37 UTC (rev 45079)
@@ -31,10 +31,13 @@
namespace Sci {
enum {
+ SCI_TRANSITIONS_EGA_BLOCKS = 8,
+ SCI_TRANSITIONS_EGA_PIXELATION = 18,
SCI_TRANSITIONS_EGA_FADEPALETTE = 30
};
enum {
+ SCI_TRANSITIONS_VGA_BLOCKS = 8,
SCI_TRANSITIONS_VGA_PIXELATION = 9,
SCI_TRANSITIONS_VGA_FADEPALETTE = 10
};
@@ -55,6 +58,7 @@
void fadeOut();
void fadeIn();
void pixelation();
+ void blocks();
SciGui *_gui;
SciGuiScreen *_screen;
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