[Scummvm-cvs-logs] SF.net SVN: scummvm:[44844] scummvm/trunk/engines/sci/gui
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Fri Oct 9 21:50:20 CEST 2009
Revision: 44844
http://scummvm.svn.sourceforge.net/scummvm/?rev=44844&view=rev
Author: m_kiewitz
Date: 2009-10-09 19:50:20 +0000 (Fri, 09 Oct 2009)
Log Message:
-----------
SCI/newgui: moved priority band initialization to init() call of SciGui to avoid having to call usesOldGfxFunctions() within constructor, where it would crash on some games (sq3)
Modified Paths:
--------------
scummvm/trunk/engines/sci/gui/gui.cpp
scummvm/trunk/engines/sci/gui/gui_gfx.cpp
scummvm/trunk/engines/sci/gui/gui_gfx.h
scummvm/trunk/engines/sci/gui/gui_picture.cpp
Modified: scummvm/trunk/engines/sci/gui/gui.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.cpp 2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui.cpp 2009-10-09 19:50:20 UTC (rev 44844)
@@ -64,6 +64,12 @@
}
void SciGui::init(bool usesOldGfxFunctions) {
+ // Initialize priority bands
+ if (usesOldGfxFunctions) {
+ _gfx->PriorityBandsInit(15, 42, 200);
+ } else {
+ _gfx->PriorityBandsInit(14, 42, 190);
+ }
}
Modified: scummvm/trunk/engines/sci/gui/gui_gfx.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.cpp 2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.cpp 2009-10-09 19:50:20 UTC (rev 44844)
@@ -65,15 +65,6 @@
SetFont(0);
_menuPort->rect = Common::Rect(0, 0, _screen->_width, _screen->_height);
_menuRect = Common::Rect(0, 0, _screen->_width, 9);
-
- // Initialize priority bands
- if (_s->usesOldGfxFunctions()) {
- _priorityBandCount = 15;
- PriorityBandsInit(42, 200);
- } else {
- _priorityBandCount = 14;
- PriorityBandsInit(42, 190);
- }
}
GuiPort *SciGuiGfx::SetPort(GuiPort *newPort) {
@@ -773,10 +764,13 @@
return value;
}
-void SciGuiGfx::PriorityBandsInit(int16 top, int16 bottom) {
+void SciGuiGfx::PriorityBandsInit(int16 bandCount, int16 top, int16 bottom) {
double bandSize;
int16 y;
+ if (bandCount != -1)
+ _priorityBandCount = bandCount;
+
_priorityTop = top;
_priorityBottom = bottom;
bandSize = (_priorityBottom - _priorityTop) / (_priorityBandCount - 1);
Modified: scummvm/trunk/engines/sci/gui/gui_gfx.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.h 2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.h 2009-10-09 19:50:20 UTC (rev 44844)
@@ -109,7 +109,7 @@
uint16 onControl(uint16 screenMask, Common::Rect rect);
- void PriorityBandsInit(int16 top, int16 bottom);
+ void PriorityBandsInit(int16 bandCount, int16 top, int16 bottom);
void PriorityBandsInit(byte *data);
byte CoordinateToPriority(int16 y);
int16 PriorityToCoordinate(byte priority);
Modified: scummvm/trunk/engines/sci/gui/gui_picture.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_picture.cpp 2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui_picture.cpp 2009-10-09 19:50:20 UTC (rev 44844)
@@ -482,7 +482,7 @@
curPos += size;
break;
case PIC_OPX_VGA_PRIORITY_TABLE_EQDIST:
- _gfx->PriorityBandsInit(READ_LE_UINT16(data + curPos), READ_LE_UINT16(data + curPos + 2));
+ _gfx->PriorityBandsInit(-1, READ_LE_UINT16(data + curPos), READ_LE_UINT16(data + curPos + 2));
curPos += 4;
break;
case PIC_OPX_VGA_PRIORITY_TABLE_EXPLICIT:
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