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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Oct 14 20:09:59 CEST 2009


Revision: 45089
          http://scummvm.svn.sourceforge.net/scummvm/?rev=45089&view=rev
Author:   m_kiewitz
Date:     2009-10-14 18:09:54 +0000 (Wed, 14 Oct 2009)

Log Message:
-----------
SCI: kDrawPic now reads out blackout flag for transitions

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

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-10-14 18:03:47 UTC (rev 45088)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-10-14 18:09:54 UTC (rev 45089)
@@ -500,20 +500,24 @@
 
 void _k_view_list_free_backgrounds(EngineState *s, ViewObject *list, int list_nr);
 
-#define K_DRAWPIC_FLAG_MIRRORED (1 << 14)
+#define K_DRAWPIC_FLAGS_MIRRORED				(1 << 14)
+#define K_DRAWPIC_FLAGS_ANIMATIONBLACKOUT	(1 << 15)
 
 reg_t kDrawPic(EngineState *s, int argc, reg_t *argv) {
 	GuiResourceId pictureId = argv[0].toUint16();
 	uint16 flags = 0;
 	int16 animationNr = -1;
+	bool animationBlackoutFlag = false;
 	bool mirroredFlag = false;
 	bool addToFlag = false;
 	int16 EGApaletteNo = 0; // default needs to be 0
 
 	if (argc >= 2) {
 		flags = argv[1].toUint16();
+		if (flags & K_DRAWPIC_FLAGS_ANIMATIONBLACKOUT)
+			animationBlackoutFlag = true;
 		animationNr = flags & 0xFF;
-		if (flags & K_DRAWPIC_FLAG_MIRRORED)
+		if (flags & K_DRAWPIC_FLAGS_MIRRORED)
 			mirroredFlag = true;
 	}
 	if (argc >= 3) {
@@ -525,7 +529,7 @@
 	if (argc >= 4)
 		EGApaletteNo = argv[3].toUint16();
 
-	s->_gui->drawPicture(pictureId, animationNr, mirroredFlag, addToFlag, EGApaletteNo);
+	s->_gui->drawPicture(pictureId, animationNr, animationBlackoutFlag, mirroredFlag, addToFlag, EGApaletteNo);
 
 	return s->r_acc;
 }

Modified: scummvm/trunk/engines/sci/gui/gui.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.cpp	2009-10-14 18:03:47 UTC (rev 45088)
+++ scummvm/trunk/engines/sci/gui/gui.cpp	2009-10-14 18:09:54 UTC (rev 45089)
@@ -300,13 +300,13 @@
 	// TODO: Implement menubar
 }
 
-void SciGui::drawPicture(GuiResourceId pictureId, int16 animationNr, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo) {
+void SciGui::drawPicture(GuiResourceId pictureId, int16 animationNr, bool animationBlackoutFlag, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo) {
 	GuiPort *oldPort = _gfx->SetPort((GuiPort *)_windowMgr->_picWind);
 
 	if (_windowMgr->isFrontWindow(_windowMgr->_picWind)) {
 		_screen->_picNotValid = 1;
 		_gfx->drawPicture(pictureId, animationNr, mirroredFlag, addToFlag, EGApaletteNo);
-		_transitions->setup(animationNr);
+		_transitions->setup(animationNr, animationBlackoutFlag);
 	} else {
 		_windowMgr->BeginUpdate(_windowMgr->_picWind);
 		_gfx->drawPicture(pictureId, animationNr, mirroredFlag, addToFlag, EGApaletteNo);

Modified: scummvm/trunk/engines/sci/gui/gui.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.h	2009-10-14 18:03:47 UTC (rev 45088)
+++ scummvm/trunk/engines/sci/gui/gui.h	2009-10-14 18:09:54 UTC (rev 45089)
@@ -80,7 +80,7 @@
 	virtual void drawStatus(const char *text, int16 colorPen, int16 colorBack);
 	virtual void drawMenuBar();
 	virtual void clearMenuBar();
-	virtual void drawPicture(GuiResourceId pictureId, int16 animationNr, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo);
+	virtual void drawPicture(GuiResourceId pictureId, int16 animationNr, bool animationBlackoutFlag, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo);
 	virtual void drawCel(GuiResourceId viewId, GuiViewLoopNo loopNo, GuiViewCelNo celNo, uint16 leftPos, uint16 topPos, int16 priority, uint16 paletteNo);
 	virtual void drawControlButton(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 style, bool hilite);
 	virtual void drawControlText(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 mode, int16 style, bool hilite);

Modified: scummvm/trunk/engines/sci/gui/gui_transitions.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_transitions.cpp	2009-10-14 18:03:47 UTC (rev 45088)
+++ scummvm/trunk/engines/sci/gui/gui_transitions.cpp	2009-10-14 18:09:54 UTC (rev 45089)
@@ -50,8 +50,9 @@
 	_oldScreen = new byte[_screen->_displayHeight * _screen->_displayWidth];
 }
 
-void SciGuiTransitions::setup(int16 number) {
+void SciGuiTransitions::setup(int16 number, bool blackoutFlag) {
 	_number = number;
+	_blackoutFlag = blackoutFlag;
 }
 
 void SciGuiTransitions::doit(Common::Rect picRect) {

Modified: scummvm/trunk/engines/sci/gui/gui_transitions.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_transitions.h	2009-10-14 18:03:47 UTC (rev 45088)
+++ scummvm/trunk/engines/sci/gui/gui_transitions.h	2009-10-14 18:09:54 UTC (rev 45089)
@@ -62,7 +62,7 @@
 	SciGuiTransitions(SciGui *gui, SciGuiScreen *screen, SciGuiPalette *palette, bool isVGA);
 	~SciGuiTransitions();
 
-	void setup(int16 number);
+	void setup(int16 number, bool blackoutFlag);
 	void doit(Common::Rect picRect);
 
 private:
@@ -81,6 +81,7 @@
 
 	bool _isVGA;
 	int16 _number;
+	bool _blackoutFlag;
 	Common::Rect _picRect;
 	byte *_oldScreen; // buffer for saving current active screen data to, has dimenions of _screen->_displayScreen
 };

Modified: scummvm/trunk/engines/sci/gui32/gui32.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.cpp	2009-10-14 18:03:47 UTC (rev 45088)
+++ scummvm/trunk/engines/sci/gui32/gui32.cpp	2009-10-14 18:09:54 UTC (rev 45089)
@@ -890,7 +890,7 @@
 	gfxop_update(_s->gfx_state);
 }
 
-void SciGui32::drawPicture(GuiResourceId pictureId, int16 animationNr, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo) {
+void SciGui32::drawPicture(GuiResourceId pictureId, int16 animationNr, bool animationBlackoutFlag, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo) {
 	gfx_color_t transparent = _s->wm_port->_bgcolor;
 	int picFlags = DRAWPIC01_FLAG_FILL_NORMALLY;
 	int palNo = (EGApaletteNo != -1) ? EGApaletteNo : 0;

Modified: scummvm/trunk/engines/sci/gui32/gui32.h
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.h	2009-10-14 18:03:47 UTC (rev 45088)
+++ scummvm/trunk/engines/sci/gui32/gui32.h	2009-10-14 18:09:54 UTC (rev 45089)
@@ -58,7 +58,7 @@
 	void drawStatus(const char *text, int16 colorPen, int16 colorBack);
 	void drawMenuBar();
 	void clearMenuBar();
-	void drawPicture(GuiResourceId pictureId, int16 animationNr, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo);
+	void drawPicture(GuiResourceId pictureId, int16 animationNr, bool animationBlackoutFlag, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo);
 	void drawCel(GuiResourceId viewId, GuiViewLoopNo loopNo, GuiViewCelNo celNo, uint16 leftPos, uint16 topPos, int16 priority, uint16 paletteNo);
 	void drawControlButton(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 style, bool hilite);
 	void drawControlText(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 mode, int16 style, bool hilite);


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