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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Nov 4 14:26:45 CET 2009


Revision: 45664
          http://scummvm.svn.sourceforge.net/scummvm/?rev=45664&view=rev
Author:   thebluegr
Date:     2009-11-04 13:26:43 +0000 (Wed, 04 Nov 2009)

Log Message:
-----------
Removed the reference to EngineState from the SciGuiGfx class

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/gui32/gui32.cpp

Modified: scummvm/trunk/engines/sci/gui/gui.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.cpp	2009-11-04 13:19:39 UTC (rev 45663)
+++ scummvm/trunk/engines/sci/gui/gui.cpp	2009-11-04 13:26:43 UTC (rev 45664)
@@ -56,7 +56,7 @@
 SciGui::SciGui(EngineState *state, SciGuiScreen *screen, SciGuiPalette *palette, SciGuiCursor *cursor)
 	: _s(state), _screen(screen), _palette(palette), _cursor(cursor) {
 
-	_gfx = new SciGuiGfx(_s, _screen, _palette);
+	_gfx = new SciGuiGfx(_s->resMan, _s->_segMan, _s->_kernel, _screen, _palette);
 	_transitions = new SciGuiTransitions(this, _screen, _palette, _s->resMan->isVGA());
 	_animate = new SciGuiAnimate(_s, _gfx, _screen, _palette);
 	_text = new SciGuiText(_s->resMan, _gfx, _screen);
@@ -81,7 +81,7 @@
 
 void SciGui::resetEngineState(EngineState *s) {
 	_s = s;
-	_gfx->resetEngineState(s);
+	_gfx->resetSegMan(s->_segMan);
 	_animate->resetEngineState(s);
 }
 

Modified: scummvm/trunk/engines/sci/gui/gui_gfx.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.cpp	2009-11-04 13:19:39 UTC (rev 45663)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.cpp	2009-11-04 13:26:43 UTC (rev 45664)
@@ -40,8 +40,8 @@
 
 namespace Sci {
 
-SciGuiGfx::SciGuiGfx(EngineState *state, SciGuiScreen *screen, SciGuiPalette *palette)
-	: _s(state), _screen(screen), _palette(palette) {
+SciGuiGfx::SciGuiGfx(ResourceManager *resMan, SegManager *segMan, Kernel *kernel, SciGuiScreen *screen, SciGuiPalette *palette)
+	: _resMan(resMan), _segMan(segMan), _kernel(kernel), _screen(screen), _palette(palette) {
 }
 
 SciGuiGfx::~SciGuiGfx() {
@@ -82,7 +82,7 @@
 		purgeCache();
 
 	if (!_cachedViews.contains(viewNum))
-		_cachedViews[viewNum] = new SciGuiView(_s->resMan, _screen, _palette, viewNum);
+		_cachedViews[viewNum] = new SciGuiView(_resMan, _screen, _palette, viewNum);
 
 	return _cachedViews[viewNum];
 }
@@ -280,8 +280,8 @@
 	// now actually ask _screen how much space it will need for saving
 	size = _screen->bitsGetDataSize(workerRect, screenMask);
 
-	memoryId = kalloc(_s->_segMan, "SaveBits()", size);
-	memoryPtr = kmem(_s->_segMan, memoryId);
+	memoryId = kalloc(_segMan, "SaveBits()", size);
+	memoryPtr = kmem(_segMan, memoryId);
 	_screen->bitsSave(workerRect, screenMask, memoryPtr);
 	return memoryId;
 }
@@ -290,7 +290,7 @@
 	byte *memoryPtr = NULL;
 
 	if (!memoryHandle.isNull()) {
-		memoryPtr = kmem(_s->_segMan, memoryHandle);;
+		memoryPtr = kmem(_segMan, memoryHandle);;
 
 		if (memoryPtr) {
 			_screen->bitsGetRect(memoryPtr, destRect);
@@ -302,25 +302,25 @@
 	byte *memoryPtr = NULL;
 
 	if (!memoryHandle.isNull()) {
-		memoryPtr = kmem(_s->_segMan, memoryHandle);;
+		memoryPtr = kmem(_segMan, memoryHandle);;
 
 		if (memoryPtr) {
 			_screen->bitsRestore(memoryPtr);
-			kfree(_s->_segMan, memoryHandle);
+			kfree(_segMan, memoryHandle);
 		}
 	}
 }
 
 void SciGuiGfx::BitsFree(GuiMemoryHandle memoryHandle) {
 	if (!memoryHandle.isNull()) {
-		kfree(_s->_segMan, memoryHandle);
+		kfree(_segMan, memoryHandle);
 	}
 }
 
 void SciGuiGfx::drawPicture(GuiResourceId pictureId, int16 animationNr, bool mirroredFlag, bool addToFlag, GuiResourceId paletteId) {
 	SciGuiPicture *picture;
 
-	picture = new SciGuiPicture(_s->resMan, this, _screen, _palette, pictureId);
+	picture = new SciGuiPicture(_resMan, this, _screen, _palette, pictureId);
 	// do we add to a picture? if not -> clear screen with white
 	if (!addToFlag) {
 		ClearScreen(_screen->_colorWhite);
@@ -477,7 +477,7 @@
 
 bool SciGuiGfx::CanBeHereCheckRectList(reg_t checkObject, Common::Rect checkRect, List *list) {
 	reg_t curAddress = list->first;
-	Node *curNode = _s->_segMan->lookupNode(curAddress);
+	Node *curNode = _segMan->lookupNode(curAddress);
 	reg_t curObject;
 	uint16 signal;
 	Common::Rect curRect;
@@ -485,12 +485,12 @@
 	while (curNode) {
 		curObject = curNode->value;
 		if (curObject != checkObject) {
-			signal = GET_SEL32V(_s->_segMan, curObject, signal);
+			signal = GET_SEL32V(_segMan, curObject, signal);
 			if ((signal & (kSignalIgnoreActor | kSignalRemoveView | kSignalNoUpdate)) == 0) {
-				curRect.left = GET_SEL32V(_s->_segMan, curObject, brLeft);
-				curRect.top = GET_SEL32V(_s->_segMan, curObject, brTop);
-				curRect.right = GET_SEL32V(_s->_segMan, curObject, brRight);
-				curRect.bottom = GET_SEL32V(_s->_segMan, curObject, brBottom);
+				curRect.left = GET_SEL32V(_segMan, curObject, brLeft);
+				curRect.top = GET_SEL32V(_segMan, curObject, brTop);
+				curRect.right = GET_SEL32V(_segMan, curObject, brRight);
+				curRect.bottom = GET_SEL32V(_segMan, curObject, brBottom);
 				// Check if curRect is within checkRect
 				if (curRect.right > checkRect.left && curRect.left < checkRect.right && curRect.bottom > checkRect.top && curRect.top < checkRect.bottom) {
 					return false;
@@ -498,7 +498,7 @@
 			}
 		}
 		curAddress = curNode->succ;
-		curNode = _s->_segMan->lookupNode(curAddress);
+		curNode = _segMan->lookupNode(curAddress);
 	}
 	return true;
 }
@@ -506,26 +506,25 @@
 void SciGuiGfx::SetNowSeen(reg_t objectReference) {
 	SciGuiView *view = NULL;
 	Common::Rect celRect(0, 0);
-	GuiResourceId viewId = (GuiResourceId)GET_SEL32V(_s->_segMan, objectReference, view);
-	GuiViewLoopNo loopNo = sign_extend_byte((GuiViewLoopNo)GET_SEL32V(_s->_segMan, objectReference, loop));
-	GuiViewCelNo celNo = sign_extend_byte((GuiViewCelNo)GET_SEL32V(_s->_segMan, objectReference, cel));
-	int16 x = (int16)GET_SEL32V(_s->_segMan, objectReference, x);
-	int16 y = (int16)GET_SEL32V(_s->_segMan, objectReference, y);
+	GuiResourceId viewId = (GuiResourceId)GET_SEL32V(_segMan, objectReference, view);
+	GuiViewLoopNo loopNo = sign_extend_byte((GuiViewLoopNo)GET_SEL32V(_segMan, objectReference, loop));
+	GuiViewCelNo celNo = sign_extend_byte((GuiViewCelNo)GET_SEL32V(_segMan, objectReference, cel));
+	int16 x = (int16)GET_SEL32V(_segMan, objectReference, x);
+	int16 y = (int16)GET_SEL32V(_segMan, objectReference, y);
 	int16 z = 0;
-	if (_s->_kernel->_selectorCache.z > -1) {
-		z = (int16)GET_SEL32V(_s->_segMan, objectReference, z);
-	}
+	if (_kernel->_selectorCache.z > -1)
+		z = (int16)GET_SEL32V(_segMan, objectReference, z);
 
 	// now get cel rectangle
 	view = getView(viewId);
 	view->getCelRect(loopNo, celNo, x, y, z, &celRect);
 
 	// TODO: sometimes loop is negative. Check what it means
-	if (lookup_selector(_s->_segMan, objectReference, _s->_kernel->_selectorCache.nsTop, NULL, NULL) == kSelectorVariable) {
-		PUT_SEL32V(_s->_segMan, objectReference, nsLeft, celRect.left);
-		PUT_SEL32V(_s->_segMan, objectReference, nsRight, celRect.right);
-		PUT_SEL32V(_s->_segMan, objectReference, nsTop, celRect.top);
-		PUT_SEL32V(_s->_segMan, objectReference, nsBottom, celRect.bottom);
+	if (lookup_selector(_segMan, objectReference, _kernel->_selectorCache.nsTop, NULL, NULL) == kSelectorVariable) {
+		PUT_SEL32V(_segMan, objectReference, nsLeft, celRect.left);
+		PUT_SEL32V(_segMan, objectReference, nsRight, celRect.right);
+		PUT_SEL32V(_segMan, objectReference, nsTop, celRect.top);
+		PUT_SEL32V(_segMan, objectReference, nsBottom, celRect.bottom);
 	}
 }
 

Modified: scummvm/trunk/engines/sci/gui/gui_gfx.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.h	2009-11-04 13:19:39 UTC (rev 45663)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.h	2009-11-04 13:26:43 UTC (rev 45664)
@@ -48,13 +48,12 @@
 
 class SciGuiGfx {
 public:
-	SciGuiGfx(EngineState *state, SciGuiScreen *screen, SciGuiPalette *palette);
+	SciGuiGfx(ResourceManager *resMan, SegManager *segMan, Kernel *kernel, SciGuiScreen *screen, SciGuiPalette *palette);
 	~SciGuiGfx();
 
 	void init(SciGuiText *text);
 
-	// FIXME: Don't store EngineState
-	void resetEngineState(EngineState *newState) { _s = newState; }
+	void resetSegMan(SegManager *segMan) { _segMan = segMan; }
 
 	byte *GetSegment(byte seg);
 	void ResetScreen();
@@ -111,7 +110,9 @@
 private:
 	void purgeCache();
 
-	EngineState *_s;
+	ResourceManager *_resMan;
+	SegManager *_segMan;
+	Kernel *_kernel;
 	SciGuiScreen *_screen;
 	SciGuiPalette *_palette;
 	SciGuiText *_text;

Modified: scummvm/trunk/engines/sci/gui32/gui32.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui32/gui32.cpp	2009-11-04 13:19:39 UTC (rev 45663)
+++ scummvm/trunk/engines/sci/gui32/gui32.cpp	2009-11-04 13:26:43 UTC (rev 45664)
@@ -392,7 +392,7 @@
 	_screen = screen;
 	_palette = palette;
 	_cursor = cursor;
-	_gfx = new SciGuiGfx(_s, _screen, _palette);
+	_gfx = new SciGuiGfx(_s->resMan, _s->_segMan, _s->_kernel, _screen, _palette);
 }
 
 SciGui32::~SciGui32() {
@@ -408,7 +408,7 @@
 
 void SciGui32::resetEngineState(EngineState *s) {
 	_s = s;
-	_gfx->resetEngineState(s);
+	_gfx->resetSegMan(s->_segMan);
 }
 
 void SciGui32::wait(int16 ticks) {


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