diff options
| -rw-r--r-- | engines/sci/engine/kgraphics.cpp | 24 | ||||
| -rw-r--r-- | engines/sci/engine/state.h | 10 | ||||
| -rw-r--r-- | engines/sci/graphics/controls.cpp | 121 | ||||
| -rw-r--r-- | engines/sci/graphics/controls.h | 25 | ||||
| -rw-r--r-- | engines/sci/graphics/gui.cpp | 106 | ||||
| -rw-r--r-- | engines/sci/graphics/gui.h | 14 | ||||
| -rw-r--r-- | engines/sci/sci.cpp | 3 | 
7 files changed, 153 insertions, 150 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 0d8c809e28..f14f20c97a 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -36,11 +36,12 @@  #include "sci/engine/kernel.h"  #include "sci/graphics/gui.h"  #include "sci/graphics/gui32.h" -#include "sci/graphics/ports.h"  #include "sci/graphics/animate.h"  #include "sci/graphics/cache.h" +#include "sci/graphics/controls.h"  #include "sci/graphics/cursor.h"  #include "sci/graphics/palette.h" +#include "sci/graphics/ports.h"  #include "sci/graphics/screen.h"  #include "sci/graphics/view.h" @@ -812,13 +813,13 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {  	switch (type) {  	case SCI_CONTROLS_TYPE_BUTTON:  		debugC(2, kDebugLevelGraphics, "drawing button %04x:%04x to %d,%d", PRINT_REG(controlObject), x, y); -		s->_gui->drawControlButton(rect, controlObject, s->strSplit(text.c_str(), NULL).c_str(), fontId, style, hilite); +		s->_gfxControls->kernelDrawButton(rect, controlObject, s->strSplit(text.c_str(), NULL).c_str(), fontId, style, hilite);  		return;  	case SCI_CONTROLS_TYPE_TEXT:  		alignment = GET_SEL32V(s->_segMan, controlObject, mode);  		debugC(2, kDebugLevelGraphics, "drawing text %04x:%04x ('%s') to %d,%d, mode=%d", PRINT_REG(controlObject), text.c_str(), x, y, alignment); -		s->_gui->drawControlText(rect, controlObject, s->strSplit(text.c_str()).c_str(), fontId, alignment, style, hilite); +		s->_gfxControls->kernelDrawText(rect, controlObject, s->strSplit(text.c_str()).c_str(), fontId, alignment, style, hilite);  		return;  	case SCI_CONTROLS_TYPE_TEXTEDIT: @@ -826,7 +827,7 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {  		maxChars = GET_SEL32V(s->_segMan, controlObject, max);  		cursorPos = GET_SEL32V(s->_segMan, controlObject, cursor);  		debugC(2, kDebugLevelGraphics, "drawing edit control %04x:%04x (text %04x:%04x, '%s') to %d,%d", PRINT_REG(controlObject), PRINT_REG(textReference), text.c_str(), x, y); -		s->_gui->drawControlTextEdit(rect, controlObject, s->strSplit(text.c_str(), NULL).c_str(), fontId, mode, style, cursorPos, maxChars, hilite); +		s->_gfxControls->kernelDrawTextEdit(rect, controlObject, s->strSplit(text.c_str(), NULL).c_str(), fontId, mode, style, cursorPos, maxChars, hilite);  		return;  	case SCI_CONTROLS_TYPE_ICON: @@ -846,7 +847,7 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {  				priority = -1;  		}  		debugC(2, kDebugLevelGraphics, "drawing icon control %04x:%04x to %d,%d", PRINT_REG(controlObject), x, y - 1); -		s->_gui->drawControlIcon(rect, controlObject, viewId, loopNo, celNo, priority, style, hilite); +		s->_gfxControls->kernelDrawIcon(rect, controlObject, viewId, loopNo, celNo, priority, style, hilite);  		return;  	case SCI_CONTROLS_TYPE_LIST: @@ -894,7 +895,7 @@ void _k_GenericDrawControl(EngineState *s, reg_t controlObject, bool hilite) {  		}  		debugC(2, kDebugLevelGraphics, "drawing list control %04x:%04x to %d,%d, diff %d", PRINT_REG(controlObject), x, y, SCI_MAX_SAVENAME_LENGTH); -		s->_gui->drawControlList(rect, controlObject, maxChars, listCount, listEntries, fontId, style, upperPos, cursorPos, isAlias, hilite); +		s->_gfxControls->kernelDrawList(rect, controlObject, maxChars, listCount, listEntries, fontId, style, upperPos, cursorPos, isAlias, hilite);  		free(listEntries);  		delete[] listStrings;  		return; @@ -934,8 +935,15 @@ reg_t kEditControl(EngineState *s, int argc, reg_t *argv) {  	reg_t controlObject = argv[0];  	reg_t eventObject = argv[1]; -	if (!controlObject.isNull()) -		s->_gui->editControl(controlObject, eventObject); +	if (!controlObject.isNull()) { +		int16 controlType = GET_SEL32V(s->_segMan, controlObject, type); + +		switch (controlType) { +		case SCI_CONTROLS_TYPE_TEXTEDIT: +			// Only process textedit controls in here +			s->_gfxControls->kernelTexteditChange(controlObject, eventObject); +		} +	}  	return s->r_acc;  } diff --git a/engines/sci/engine/state.h b/engines/sci/engine/state.h index 9d7a7a5ab4..1acee49dba 100644 --- a/engines/sci/engine/state.h +++ b/engines/sci/engine/state.h @@ -52,10 +52,11 @@ namespace Sci {  class SciEvent;  class Menubar;  class GfxAnimate; +class GfxCache; +class GfxControls; +class GfxPalette;  class GfxPorts;  class GfxScreen; -class GfxPalette; -class GfxCache;  class SciGui;  class Cursor;  class MessageState; @@ -157,10 +158,11 @@ public:  	/* Non-VM information */  	GfxAnimate *_gfxAnimate; // Animate for 16-bit gfx +	GfxCache *_gfxCache; +	GfxControls *_gfxControls; // Controls for 16-bit gfx +	GfxPalette *_gfxPalette;  	GfxPorts *_gfxPorts; // Port managment for 16-bit gfx  	GfxScreen *_gfxScreen; -	GfxPalette *_gfxPalette; -	GfxCache *_gfxCache;  	SciGui *_gui; /* Currently active Gui */  #ifdef ENABLE_SCI32 diff --git a/engines/sci/graphics/controls.cpp b/engines/sci/graphics/controls.cpp index fb1e40122f..7bfe050db9 100644 --- a/engines/sci/graphics/controls.cpp +++ b/engines/sci/graphics/controls.cpp @@ -34,27 +34,28 @@  #include "sci/graphics/ports.h"  #include "sci/graphics/paint16.h"  #include "sci/graphics/font.h" +#include "sci/graphics/screen.h"  #include "sci/graphics/text16.h"  #include "sci/graphics/controls.h"  namespace Sci { -Controls::Controls(SegManager *segMan, GfxPorts *ports, GfxPaint16 *paint16, GfxText16 *text16) -	: _segMan(segMan), _ports(ports), _paint16(paint16), _text16(text16) { +GfxControls::GfxControls(SegManager *segMan, GfxPorts *ports, GfxPaint16 *paint16, GfxText16 *text16, GfxScreen *screen) +	: _segMan(segMan), _ports(ports), _paint16(paint16), _text16(text16), _screen(screen) {  	init();  } -Controls::~Controls() { +GfxControls::~GfxControls() {  } -void Controls::init() { +void GfxControls::init() {  	_texteditCursorVisible = false;  }  const char controlListUpArrow[2]	= { 0x18, 0 };  const char controlListDownArrow[2]	= { 0x19, 0 }; -void Controls::drawListControl(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 upperPos, int16 cursorPos, bool isAlias) { +void GfxControls::drawListControl(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 upperPos, int16 cursorPos, bool isAlias) {  	Common::Rect workerRect = rect;  	GuiResourceId oldFontId = _text16->GetFontId();  	int16 oldPenColor = _ports->_curPort->penClr; @@ -109,7 +110,7 @@ void Controls::drawListControl(Common::Rect rect, reg_t obj, int16 maxChars, int  	_text16->SetFont(oldFontId);  } -void Controls::TexteditCursorDraw(Common::Rect rect, const char *text, uint16 curPos) { +void GfxControls::texteditCursorDraw(Common::Rect rect, const char *text, uint16 curPos) {  	int16 textWidth, i;  	if (!_texteditCursorVisible) {  		textWidth = 0; @@ -123,24 +124,24 @@ void Controls::TexteditCursorDraw(Common::Rect rect, const char *text, uint16 cu  		_paint16->invertRect(_texteditCursorRect);  		_paint16->bitsShow(_texteditCursorRect);  		_texteditCursorVisible = true; -		TexteditSetBlinkTime(); +		texteditSetBlinkTime();  	}  } -void Controls::TexteditCursorErase() { +void GfxControls::texteditCursorErase() {  	if (_texteditCursorVisible) {  		_paint16->invertRect(_texteditCursorRect);  		_paint16->bitsShow(_texteditCursorRect);  		_texteditCursorVisible = false;  	} -	TexteditSetBlinkTime(); +	texteditSetBlinkTime();  } -void Controls::TexteditSetBlinkTime() { +void GfxControls::texteditSetBlinkTime() {  	_texteditBlinkTime = g_system->getMillis() + (30 * 1000 / 60);  } -void Controls::TexteditChange(reg_t controlObject, reg_t eventObject) { +void GfxControls::kernelTexteditChange(reg_t controlObject, reg_t eventObject) {  	uint16 cursorPos = GET_SEL32V(_segMan, controlObject, cursor);  	uint16 maxChars = GET_SEL32V(_segMan, controlObject, max);  	reg_t textReference = GET_SEL32(_segMan, controlObject, text); @@ -209,12 +210,12 @@ void Controls::TexteditChange(reg_t controlObject, reg_t eventObject) {  		GuiResourceId fontId = GET_SEL32V(_segMan, controlObject, font);  		rect = Common::Rect(GET_SEL32V(_segMan, controlObject, nsLeft), GET_SEL32V(_segMan, controlObject, nsTop),  							  GET_SEL32V(_segMan, controlObject, nsRight), GET_SEL32V(_segMan, controlObject, nsBottom)); -		TexteditCursorErase(); +		texteditCursorErase();  		_paint16->eraseRect(rect);  		_text16->Box(text.c_str(), 0, rect, SCI_TEXT16_ALIGNMENT_LEFT, fontId);  		_paint16->bitsShow(rect);  		_text16->SetFont(fontId); -		TexteditCursorDraw(rect, text.c_str(), cursorPos); +		texteditCursorDraw(rect, text.c_str(), cursorPos);  		_text16->SetFont(oldFontId);  		// Write back string  		_segMan->strcpy(textReference, text.c_str()); @@ -223,11 +224,103 @@ void Controls::TexteditChange(reg_t controlObject, reg_t eventObject) {  			_paint16->invertRect(_texteditCursorRect);  			_paint16->bitsShow(_texteditCursorRect);  			_texteditCursorVisible = !_texteditCursorVisible; -			TexteditSetBlinkTime(); +			texteditSetBlinkTime();  		}  	}  	PUT_SEL32V(_segMan, controlObject, cursor, cursorPos);  } +int GfxControls::getPicNotValid() { +	if (getSciVersion() >= SCI_VERSION_1_1) +		return _screen->_picNotValidSci11; +	return _screen->_picNotValid; +} + +void GfxControls::kernelDrawButton(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 style, bool hilite) { +	if (!hilite) { +		rect.grow(1); +		_paint16->eraseRect(rect); +		_paint16->frameRect(rect); +		rect.grow(-2); +		_ports->textGreyedOutput(style & 1 ? false : true); +		_text16->Box(text, 0, rect, SCI_TEXT16_ALIGNMENT_CENTER, fontId); +		_ports->textGreyedOutput(false); +		rect.grow(1); +		if (style & 8) // selected +			_paint16->frameRect(rect); +		if (!getPicNotValid()) { +			rect.grow(1); +			_paint16->bitsShow(rect); +		} +	} else { +		_paint16->invertRect(rect); +		_paint16->bitsShow(rect); +	} +} + +void GfxControls::kernelDrawText(Common::Rect rect, reg_t obj, const char *text, int16 fontId, TextAlignment alignment, int16 style, bool hilite) { +	if (!hilite) { +		rect.grow(1); +		_paint16->eraseRect(rect); +		rect.grow(-1); +		_text16->Box(text, 0, rect, alignment, fontId); +		if (style & 8) { // selected +			_paint16->frameRect(rect); +		} +		rect.grow(1); +		if (!getPicNotValid()) +			_paint16->bitsShow(rect); +	} else { +		_paint16->invertRect(rect); +		_paint16->bitsShow(rect); +	} +} + +void GfxControls::kernelDrawTextEdit(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 mode, int16 style, int16 cursorPos, int16 maxChars, bool hilite) { +	Common::Rect textRect = rect; +	uint16 oldFontId = _text16->GetFontId(); + +	rect.grow(1); +	texteditCursorErase(); +	_paint16->eraseRect(rect); +	_text16->Box(text, 0, textRect, SCI_TEXT16_ALIGNMENT_LEFT, fontId); +	_paint16->frameRect(rect); +	if (style & 8) { +		_text16->SetFont(fontId); +		rect.grow(-1); +		texteditCursorDraw(rect, text, cursorPos); +		_text16->SetFont(oldFontId); +		rect.grow(1); +	} +	if (!getPicNotValid()) +		_paint16->bitsShow(rect); +} + +void GfxControls::kernelDrawIcon(Common::Rect rect, reg_t obj, GuiResourceId viewId, int16 loopNo, int16 celNo, int16 priority, int16 style, bool hilite) { +	if (!hilite) { +		_paint16->drawCelAndShow(viewId, loopNo, celNo, rect.left, rect.top, priority, 0); +		if (style & 0x20) { +			_paint16->frameRect(rect); +		} +		if (!getPicNotValid()) +			_paint16->bitsShow(rect); +	} else { +		_paint16->invertRect(rect); +		_paint16->bitsShow(rect); +	} +} + +void GfxControls::kernelDrawList(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 style, int16 upperPos, int16 cursorPos, bool isAlias, bool hilite) { +	if (!hilite) { +		drawListControl(rect, obj, maxChars, count, entries, fontId, upperPos, cursorPos, isAlias); +		rect.grow(1); +		if (isAlias && (style & 8)) { +			_paint16->frameRect(rect); +		} +		if (!getPicNotValid()) +			_paint16->bitsShow(rect); +	} +} +  } // End of namespace Sci diff --git a/engines/sci/graphics/controls.h b/engines/sci/graphics/controls.h index 8be3b61810..5f2194f258 100644 --- a/engines/sci/graphics/controls.h +++ b/engines/sci/graphics/controls.h @@ -32,24 +32,33 @@ class GfxPorts;  class GfxPaint16;  class Font;  class GfxText16; -class Controls { +class GfxScreen; +class GfxControls {  public: -	Controls(SegManager *segMan, GfxPorts *ports, GfxPaint16 *paint16, GfxText16 *text16); -	~Controls(); +	GfxControls(SegManager *segMan, GfxPorts *ports, GfxPaint16 *paint16, GfxText16 *text16, GfxScreen *screen); +	~GfxControls(); -	void drawListControl(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 upperPos, int16 cursorPos, bool isAlias); -	void TexteditCursorDraw(Common::Rect rect, const char *text, uint16 curPos); -	void TexteditCursorErase(); -	void TexteditChange(reg_t controlObject, reg_t eventObject); +	void kernelDrawButton(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 style, bool hilite); +	void kernelDrawText(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 alignment, int16 style, bool hilite); +	void kernelDrawTextEdit(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 mode, int16 style, int16 cursorPos, int16 maxChars, bool hilite); +	void kernelDrawIcon(Common::Rect rect, reg_t obj, GuiResourceId viewId, int16 loopNo, int16 celNo, int16 priority, int16 style, bool hilite); +	void kernelDrawList(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 style, int16 upperPos, int16 cursorPos, bool isAlias, bool hilite); +	void kernelTexteditChange(reg_t controlObject, reg_t eventObject);  private:  	void init(); -	void TexteditSetBlinkTime(); +	void texteditSetBlinkTime(); + +	void drawListControl(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 upperPos, int16 cursorPos, bool isAlias); +	void texteditCursorDraw(Common::Rect rect, const char *text, uint16 curPos); +	void texteditCursorErase(); +	int getPicNotValid();  	SegManager *_segMan;  	GfxPorts *_ports;  	GfxPaint16 *_paint16;  	GfxText16 *_text16; +	GfxScreen *_screen;  	// Textedit-Control related  	Common::Rect _texteditCursorRect; diff --git a/engines/sci/graphics/gui.cpp b/engines/sci/graphics/gui.cpp index 111038dcd0..a1aeee2033 100644 --- a/engines/sci/graphics/gui.cpp +++ b/engines/sci/graphics/gui.cpp @@ -59,7 +59,8 @@ SciGui::SciGui(EngineState *state, GfxScreen *screen, GfxPalette *palette, GfxCa  	_animate = new GfxAnimate(_s, _cache, _ports, _paint16, _screen, _palette, _cursor, _transitions);  	_s->_gfxAnimate = _animate;  	_text16 = new GfxText16(_s->resMan, _cache, _ports, _paint16, _screen); -	_controls = new Controls(_s->_segMan, _ports, _paint16, _text16); +	_controls = new GfxControls(_s->_segMan, _ports, _paint16, _text16, _screen); +	_s->_gfxControls = _controls;  	_menu = new Menu(_s->_event, _s->_segMan, this, _ports, _paint16, _text16, _screen, _cursor);  } @@ -320,109 +321,6 @@ void SciGui::drawCel(GuiResourceId viewId, int16 loopNo, int16 celNo, uint16 lef  	_palette->setOnScreen();  } -int SciGui::getControlPicNotValid() { -	if (getSciVersion() >= SCI_VERSION_1_1) -		return _screen->_picNotValidSci11; -	return _screen->_picNotValid; -} - -void SciGui::drawControlButton(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 style, bool hilite) { -	if (!hilite) { -		rect.grow(1); -		_paint16->eraseRect(rect); -		_paint16->frameRect(rect); -		rect.grow(-2); -		_ports->textGreyedOutput(style & 1 ? false : true); -		_text16->Box(text, 0, rect, SCI_TEXT16_ALIGNMENT_CENTER, fontId); -		_ports->textGreyedOutput(false); -		rect.grow(1); -		if (style & 8) // selected -			_paint16->frameRect(rect); -		if (!getControlPicNotValid()) { -			rect.grow(1); -			_paint16->bitsShow(rect); -		} -	} else { -		_paint16->invertRect(rect); -		_paint16->bitsShow(rect); -	} -} - -void SciGui::drawControlText(Common::Rect rect, reg_t obj, const char *text, int16 fontId, TextAlignment alignment, int16 style, bool hilite) { -	if (!hilite) { -		rect.grow(1); -		_paint16->eraseRect(rect); -		rect.grow(-1); -		_text16->Box(text, 0, rect, alignment, fontId); -		if (style & 8) { // selected -			_paint16->frameRect(rect); -		} -		rect.grow(1); -		if (!getControlPicNotValid()) -			_paint16->bitsShow(rect); -	} else { -		_paint16->invertRect(rect); -		_paint16->bitsShow(rect); -	} -} - -void SciGui::drawControlTextEdit(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 mode, int16 style, int16 cursorPos, int16 maxChars, bool hilite) { -	Common::Rect textRect = rect; -	uint16 oldFontId = _text16->GetFontId(); - -	rect.grow(1); -	_controls->TexteditCursorErase(); -	_paint16->eraseRect(rect); -	_text16->Box(text, 0, textRect, SCI_TEXT16_ALIGNMENT_LEFT, fontId); -	_paint16->frameRect(rect); -	if (style & 8) { -		_text16->SetFont(fontId); -		rect.grow(-1); -		_controls->TexteditCursorDraw(rect, text, cursorPos); -		_text16->SetFont(oldFontId); -		rect.grow(1); -	} -	if (!getControlPicNotValid()) -		_paint16->bitsShow(rect); -} - -void SciGui::drawControlIcon(Common::Rect rect, reg_t obj, GuiResourceId viewId, int16 loopNo, int16 celNo, int16 priority, int16 style, bool hilite) { -	if (!hilite) { -		_paint16->drawCelAndShow(viewId, loopNo, celNo, rect.left, rect.top, priority, 0); -		if (style & 0x20) { -			_paint16->frameRect(rect); -		} -		if (!getControlPicNotValid()) -			_paint16->bitsShow(rect); -	} else { -		_paint16->invertRect(rect); -		_paint16->bitsShow(rect); -	} -} - -void SciGui::drawControlList(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 style, int16 upperPos, int16 cursorPos, bool isAlias, bool hilite) { -	if (!hilite) { -		_controls->drawListControl(rect, obj, maxChars, count, entries, fontId, upperPos, cursorPos, isAlias); -		rect.grow(1); -		if (isAlias && (style & 8)) { -			_paint16->frameRect(rect); -		} -		if (!getControlPicNotValid()) -			_paint16->bitsShow(rect); -	} -} - -void SciGui::editControl(reg_t controlObject, reg_t eventObject) { -	int16 controlType = GET_SEL32V(_s->_segMan, controlObject, type); - -	switch (controlType) { -	case SCI_CONTROLS_TYPE_TEXTEDIT: -		// Only process textedit controls in here -		_controls->TexteditChange(controlObject, eventObject); -		return; -	} -} -  void SciGui::graphFillBoxForeground(Common::Rect rect) {  	_paint16->paintRect(rect);  } diff --git a/engines/sci/graphics/gui.h b/engines/sci/graphics/gui.h index 001553585e..cbdcc6c488 100644 --- a/engines/sci/graphics/gui.h +++ b/engines/sci/graphics/gui.h @@ -48,9 +48,8 @@ class GfxCache;  class GfxCompare;  class GfxPorts;  class GfxPaint16; -class WindowMgr; -class SciGuiAnimate; -class Controls; +class GfxAnimate; +class GfxControls;  class Menu;  class GfxText16;  class Transitions; @@ -84,12 +83,6 @@ public:  	virtual void drawPicture(GuiResourceId pictureId, int16 animationNr, bool animationBlackoutFlag, bool mirroredFlag, bool addToFlag, int16 EGApaletteNo);  	virtual void drawCel(GuiResourceId viewId, int16 loopNo, int16 celNo, uint16 leftPos, uint16 topPos, int16 priority, uint16 paletteNo, bool hiresMode = false, reg_t upscaledHiresHandle = NULL_REG); -	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 alignment, int16 style, bool hilite); -	virtual void drawControlTextEdit(Common::Rect rect, reg_t obj, const char *text, int16 fontId, int16 mode, int16 style, int16 cursorPos, int16 maxChars, bool hilite); -	virtual void drawControlIcon(Common::Rect rect, reg_t obj, GuiResourceId viewId, int16 loopNo, int16 celNo, int16 priority, int16 style, bool hilite); -	virtual void drawControlList(Common::Rect rect, reg_t obj, int16 maxChars, int16 count, const char **entries, GuiResourceId fontId, int16 style, int16 upperPos, int16 cursorPos, bool isAlias, bool hilite); -	virtual void editControl(reg_t controlObject, reg_t eventObject);  	virtual void graphFillBoxForeground(Common::Rect rect);  	virtual void graphFillBoxBackground(Common::Rect rect); @@ -150,13 +143,12 @@ protected:  private:  	virtual void initPriorityBands(); -	virtual int getControlPicNotValid();  	static void palVaryCallback(void *refCon);  	void doPalVary();  	AudioPlayer *_audio;  	GfxAnimate *_animate; -	Controls *_controls; +	GfxControls *_controls;  	Menu *_menu;  	GfxText16 *_text16;  	Transitions *_transitions; diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp index 2c3319745b..1128dce170 100644 --- a/engines/sci/sci.cpp +++ b/engines/sci/sci.cpp @@ -173,8 +173,9 @@ Common::Error SciEngine::run() {  #ifdef ENABLE_SCI32  	if (getSciVersion() >= SCI_VERSION_2) { -		_gamestate->_gfxPorts = 0;  		_gamestate->_gfxAnimate = 0; +		_gamestate->_gfxControls = 0; +		_gamestate->_gfxPorts = 0;  		_gamestate->_gui = 0;  		_gamestate->_gui32 = new SciGui32(_gamestate, screen, palette, cache, cursor);  	} else {  | 
