[Scummvm-cvs-logs] scummvm master -> ac338c3517d85156e83884164d378c3bf76851e5

Strangerke Strangerke at scummvm.org
Sun Mar 24 22:57:32 CET 2013


This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b8e504518e HOPKINS: Some renaming and refactoring in Globals
b46f2ccdc7 HOPKINS: Move 2 variables from Globals to ObjectsManager and LinesManager
aa141c4355 HOPKINS: Move 3 variables from Globals to ObjectsManager, make them private
ee3c0cc4fa Hopkins: Move hotspotTextColor to LinesMAnager, make it private
b0f0a6cd92 HOPKINS: Move two more variables to ObjectsManager, make them private
57abce19b1 HOPKINS: More refactoring of Globals
ac338c3517 HOPKINS: Some more refactoring in Globals


Commit: b8e504518ea77e8106d7dd8be087c5f51c8dff01
    https://github.com/scummvm/scummvm/commit/b8e504518ea77e8106d7dd8be087c5f51c8dff01
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-24T14:12:43-07:00

Commit Message:
HOPKINS: Some renaming and refactoring in Globals

Changed paths:
    engines/hopkins/font.cpp
    engines/hopkins/font.h
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/graphics.cpp
    engines/hopkins/hopkins.cpp
    engines/hopkins/objects.cpp
    engines/hopkins/script.cpp



diff --git a/engines/hopkins/font.cpp b/engines/hopkins/font.cpp
index 0379e29..03b4e2e 100644
--- a/engines/hopkins/font.cpp
+++ b/engines/hopkins/font.cpp
@@ -84,6 +84,8 @@ void FontManager::clearAll() {
 
 	_tempText = g_PTRNUL;
 	_zoneText = g_PTRNUL;
+
+	_boxWidth = 240;
 }
 
 void FontManager::initData() {
@@ -160,7 +162,7 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in
 		error("Bad number for text");
 	_fontFixedWidth = 11;
 
-	_vm->_globals->_boxWidth = 11 * _text[idx]._length;
+	_boxWidth = 11 * _text[idx]._length;
 	if (_text[idx]._textLoadedFl) {
 		int textType = _text[idx]._textType;
 		if (textType != 6 && textType != 1 && textType != 3 && textType != 5) {
@@ -254,29 +256,29 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in
 
 		if (bufSize && bufSize > textLength) {
 			_text[idx]._length = textLength;
-			_vm->_globals->_boxWidth = 0;
+			_boxWidth = 0;
 
 			for (int curStrIdx = 0; curStrIdx < textLength + 1; curStrIdx++) {
 				byte curChar = _tempText[curStrIdx];
 				if (curChar <= 31)
 					curChar = ' ';
-				_vm->_globals->_boxWidth += _vm->_objectsManager->getWidth(_font, curChar - 32);
+				_boxWidth += _vm->_objectsManager->getWidth(_font, curChar - 32);
 			}
 
-			_vm->_globals->_boxWidth += 2;
-			_text[idx]._pos.x = 320 - abs(_vm->_globals->_boxWidth / 2);
+			_boxWidth += 2;
+			_text[idx]._pos.x = 320 - abs(_boxWidth / 2);
 			textPosX = _vm->_eventsManager->_startPos.x + _text[idx]._pos.x;
 			lineCount = 1;
 			_text[idx]._lines[0] = Common::String((const char *)_tempText, textLength);
 		} else {
-			if (!_vm->_globals->_boxWidth)
-				_vm->_globals->_boxWidth = 240;
+			if (!_boxWidth)
+				_boxWidth = 240;
 			int tempTextIdx = 0;
 			int lineSize;
 			byte curChar;
 			do {
 				int curLineSize = 0;
-				int ptrb = _vm->_globals->_boxWidth - 4;
+				int ptrb = _boxWidth - 4;
 				for (;;) {
 					lineSize = curLineSize;
 					do
@@ -330,12 +332,12 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in
 
 			for (int i = 0; i <= 19; i++) {
 				if (_textSortArray[i])
-					_vm->_globals->_boxWidth = _textSortArray[i];
+					_boxWidth = _textSortArray[i];
 			}
 
 			if ((_text[idx]._textType < 2) || (_text[idx]._textType > 3)) {
 				int i;
-				for (i = xp - _vm->_eventsManager->_startPos.x; _vm->_globals->_boxWidth + i > 638 && i > -2 && _text[idx]._textType; i -= 2)
+				for (i = xp - _vm->_eventsManager->_startPos.x; _boxWidth + i > 638 && i > -2 && _text[idx]._textType; i -= 2)
 					;
 				_text[idx]._pos.x = i;
 				textPosX = _vm->_eventsManager->_startPos.x + i;
@@ -345,7 +347,7 @@ void FontManager::box(int idx, int messageId, const Common::String &filename, in
 		}
 		int posX = textPosX;
 		int posY = yp;
-		int saveWidth = _vm->_globals->_boxWidth + 10;
+		int saveWidth = _boxWidth + 10;
 		int saveHeight = (_fontFixedHeight + 1) * lineCount + 12;
 		if (_text[idx]._textType == 6) {
 			_text[idx]._pos.x = 315 - abs(saveWidth / 2);
diff --git a/engines/hopkins/font.h b/engines/hopkins/font.h
index e9483bb..93e807e 100644
--- a/engines/hopkins/font.h
+++ b/engines/hopkins/font.h
@@ -68,6 +68,7 @@ private:
 	int _index[4048];
 	byte *_tempText;
 	byte *_zoneText;
+	int _boxWidth;
 
 	void loadZoneText();
 public:
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 79edddc..87efe99 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -107,13 +107,12 @@ Globals::Globals(HopkinsEngine *vm) {
 	_oldDirectionSpriteIdx = 59;
 	_lastDirection = DIR_NONE;
 	_curObjectFileNum = 0;
-	_boxWidth = 0;
 	_objectWidth = _objectHeight = 0;
 	_catalogPos = 0;
 	_catalogSize = 0;
 	iRegul = 0;
 	_exitId = 0;
-	PERSO = 0;
+	_characterSpriteBuf = 0;
 	_screenId = 0;
 	_prevScreenId = 0;
 	_characterMaxPosY = 0;
@@ -144,11 +143,11 @@ Globals::Globals(HopkinsEngine *vm) {
 	// Initialize pointers
 	for (int i = 0; i < 6; ++i)
 		_hidingItemData[i] = g_PTRNUL;
-	SPRITE_ECRAN = NULL;
+	_levelSpriteBuf = NULL;
 	_saveData = NULL;
 	_answerBuffer = g_PTRNUL;
 	_objectDataBuf = NULL;
-	PERSO = NULL;
+	_characterSpriteBuf = NULL;
 	_optionDialogSpr = NULL;
 
 	// Reset flags
@@ -176,11 +175,11 @@ Globals::Globals(HopkinsEngine *vm) {
 Globals::~Globals() {
 	for (int idx = 0; idx < 6; ++idx)
 		_hidingItemData[idx] = freeMemory(_hidingItemData[idx]);
-	freeMemory(SPRITE_ECRAN);
+	freeMemory(_levelSpriteBuf);
 	freeMemory((byte *)_saveData);
 	freeMemory(_answerBuffer);
 	freeMemory(_objectDataBuf);
-	freeMemory(PERSO);
+	freeMemory(_characterSpriteBuf);
 
 	clearVBob();
 
@@ -229,8 +228,6 @@ void Globals::clearAll() {
 
 	initAnimBqe();
 
-	_boxWidth = 0;
-
 	_vm->_fontManager->clearAll();
 
 	initVBob();
@@ -238,7 +235,7 @@ void Globals::clearAll() {
 	_curObjectFileNum = 0;
 	_vm->_dialogsManager->clearAll();
 	_answerBuffer = g_PTRNUL;
-	SPRITE_ECRAN = g_PTRNUL;
+	_levelSpriteBuf = g_PTRNUL;
 	_saveData = (Savegame *)g_PTRNUL;
 	_vm->_objectsManager->_curObjectIndex = 0;
 
@@ -248,8 +245,6 @@ void Globals::clearAll() {
 	_saveData = (Savegame *)malloc(sizeof(Savegame));
 	memset(_saveData, 0, sizeof(Savegame));
 
-	_boxWidth = 240;
-
 	_vm->_eventsManager->clearAll();
 
 	_objectDataBuf = g_PTRNUL;
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 84549fa..2a27d59 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -249,7 +249,6 @@ public:
 	int _objectWidth, _objectHeight;
 	int _screenId;
 	int _prevScreenId;
-	int _boxWidth;
 	int _characterMaxPosY;
 	int _baseMapColor;
 	int _spriteSize[500];
@@ -301,12 +300,12 @@ public:
 	ObjectAuthIcon _objectAuthIcons[300];
 	int _curObjectFileNum;
 	byte *_objectDataBuf;
+	byte *_characterSpriteBuf;
 	Common::String _zoneFilename;
 	Common::String _textFilename;
+	byte *_levelSpriteBuf;
 
 	int iRegul;
-	byte *SPRITE_ECRAN;
-	byte *PERSO;
 	ListeItem Liste[6];
 	ListeItem Liste2[35];
 	BankItem Bank[8];
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp
index 9730fba..5c65e59 100644
--- a/engines/hopkins/graphics.cpp
+++ b/engines/hopkins/graphics.cpp
@@ -1745,13 +1745,13 @@ void GraphicsManager::initScreen(const Common::String &file, int mode, bool init
 	}
 	if (!mode) {
 		filename = file + ".spr";
-		_vm->_globals->SPRITE_ECRAN = _vm->_globals->freeMemory(_vm->_globals->SPRITE_ECRAN);
+		_vm->_globals->_levelSpriteBuf = _vm->_globals->freeMemory(_vm->_globals->_levelSpriteBuf);
 		if (initializeScreen) {
-			_vm->_globals->SPRITE_ECRAN = _vm->_fileManager->searchCat(filename, RES_SLI);
-			if (_vm->_globals->SPRITE_ECRAN) {
-				_vm->_globals->SPRITE_ECRAN = _vm->_fileManager->loadFile(filename);
+			_vm->_globals->_levelSpriteBuf = _vm->_fileManager->searchCat(filename, RES_SLI);
+			if (_vm->_globals->_levelSpriteBuf) {
+				_vm->_globals->_levelSpriteBuf = _vm->_fileManager->loadFile(filename);
 			} else {
-				_vm->_globals->SPRITE_ECRAN = _vm->_fileManager->loadFile("RES_SLI.RES");
+				_vm->_globals->_levelSpriteBuf = _vm->_fileManager->loadFile("RES_SLI.RES");
 			}
 		}
 	}
diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp
index 76c085c..69c09aa 100644
--- a/engines/hopkins/hopkins.cpp
+++ b/engines/hopkins/hopkins.cpp
@@ -165,7 +165,7 @@ bool HopkinsEngine::runWin95Demo() {
 		_globals->_speed = 3;
 	_graphicsManager->fadeOutLong();
 	_globals->iRegul = 1;
-	_globals->PERSO = _fileManager->loadFile("PERSO.SPR");
+	_globals->_characterSpriteBuf = _fileManager->loadFile("PERSO.SPR");
 	_globals->_characterType = 0;
 	_objectsManager->_mapCarPosX = _objectsManager->_mapCarPosY = 0;
 	memset(_globals->_saveData, 0, 2000);
@@ -182,7 +182,7 @@ bool HopkinsEngine::runWin95Demo() {
 		if (!_globals->_exitId) {
 			_globals->_exitId = _menuManager->menu();
 			if (_globals->_exitId == -1) {
-				_globals->PERSO = _globals->freeMemory(_globals->PERSO);
+				_globals->_characterSpriteBuf = _globals->freeMemory(_globals->_characterSpriteBuf);
 				restoreSystem();
 				return false;
 			}
@@ -455,7 +455,7 @@ bool HopkinsEngine::runLinuxDemo() {
 		playIntro();
 
 	_globals->iRegul = 0;
-	_globals->PERSO = _fileManager->loadFile("PERSO.SPR");
+	_globals->_characterSpriteBuf = _fileManager->loadFile("PERSO.SPR");
 	_globals->_characterType = 0;
 	_objectsManager->_mapCarPosX = _objectsManager->_mapCarPosY = 0;
 	memset(_globals->_saveData, 0, 2000);
@@ -470,7 +470,7 @@ bool HopkinsEngine::runLinuxDemo() {
 			if (_globals->_exitId == -1) {
 				if (!shouldQuit())
 					endLinuxDemo();
-				_globals->PERSO = _globals->freeMemory(_globals->PERSO);
+				_globals->_characterSpriteBuf = _globals->freeMemory(_globals->_characterSpriteBuf);
 				restoreSystem();
 			}
 		}
@@ -819,7 +819,7 @@ bool HopkinsEngine::runFull() {
 		_graphicsManager->fadeOutLong();
 	}
 	_globals->iRegul = 0;
-	_globals->PERSO = _fileManager->loadFile("PERSO.SPR");
+	_globals->_characterSpriteBuf = _fileManager->loadFile("PERSO.SPR");
 	_globals->_characterType = 0;
 	_objectsManager->_mapCarPosX = _objectsManager->_mapCarPosY = 0;
 	memset(_globals->_saveData, 0, 2000);
@@ -832,7 +832,7 @@ bool HopkinsEngine::runFull() {
 		if (!_globals->_exitId) {
 			_globals->_exitId = _menuManager->menu();
 			if (_globals->_exitId == -1) {
-				_globals->PERSO = _globals->freeMemory(_globals->PERSO);
+				_globals->_characterSpriteBuf = _globals->freeMemory(_globals->_characterSpriteBuf);
 				restoreSystem();
 				return false;
 			}
@@ -1539,21 +1539,21 @@ bool HopkinsEngine::runFull() {
 		case 197:
 		case 198:
 		case 199:
-			_globals->PERSO = _globals->freeMemory(_globals->PERSO);
+			_globals->_characterSpriteBuf = _globals->freeMemory(_globals->_characterSpriteBuf);
 			_globals->iRegul = 1;
 			_soundManager->stopSound();
 			_soundManager->playSound(23);
 			_globals->_exitId = handleBaseMap();	// Handles the base map (non-Windows)
 			//_globals->_exitId = WBASE();	// Handles the 3D Doom level (Windows)
 			_soundManager->stopSound();
-			_globals->PERSO = _fileManager->loadFile("PERSO.SPR");
+			_globals->_characterSpriteBuf = _fileManager->loadFile("PERSO.SPR");
 			_globals->_characterType = 0;
 			_globals->iRegul = 0;
 			_graphicsManager->_lineNbr = SCREEN_WIDTH;
 			break;
 		}
 	}
-	_globals->PERSO = _globals->freeMemory(_globals->PERSO);
+	_globals->_characterSpriteBuf = _globals->freeMemory(_globals->_characterSpriteBuf);
 	restoreSystem();
 	return true;
 }
@@ -2058,7 +2058,7 @@ void HopkinsEngine::playUnderwaterBaseCutscene() {
 }
 
 void HopkinsEngine::playEnding() {
-	_globals->PERSO = _globals->freeMemory(_globals->PERSO);
+	_globals->_characterSpriteBuf = _globals->freeMemory(_globals->_characterSpriteBuf);
 	_dialogsManager->disableInvent();
 	_globals->_disableInventFl = true;
 	_graphicsManager->_scrollOffset = 0;
@@ -2203,7 +2203,7 @@ void HopkinsEngine::playEnding() {
 		_globals->iRegul = 0;
 		_globals->_exitId = 300;
 	}
-	_globals->PERSO = _fileManager->loadFile("PERSO.SPR");
+	_globals->_characterSpriteBuf = _fileManager->loadFile("PERSO.SPR");
 	_globals->_characterType = 0;
 	_globals->iRegul = 0;
 }
@@ -2547,13 +2547,13 @@ void HopkinsEngine::handleOceanMouseEvents() {
 	case 1:
 		switch (_globals->_oceanDirection) {
 		case DIR_UP:
-			_objectsManager->SPACTION(_globals->PERSO, "27,26,25,24,23,22,21,20,19,18,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "27,26,25,24,23,22,21,20,19,18,-1,", 6, false);
 			break;
 		case DIR_RIGHT:
-			_objectsManager->SPACTION(_globals->PERSO, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,-1,", 6, false);
 			break;
 		case DIR_DOWN:
-			_objectsManager->SPACTION(_globals->PERSO, "9,10,11,12,13,14,15,16,17,18,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "9,10,11,12,13,14,15,16,17,18,-1,", 6, false);
 			break;
 		default:
 			break;
@@ -2584,13 +2584,13 @@ void HopkinsEngine::handleOceanMouseEvents() {
 	case 2:
 		switch (_globals->_oceanDirection) {
 		case DIR_UP:
-			_objectsManager->SPACTION(_globals->PERSO, "27,28,29,30,31,32,33,34,35,36,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "27,28,29,30,31,32,33,34,35,36,-1,", 6, false);
 			break;
 		case DIR_DOWN:
-			_objectsManager->SPACTION(_globals->PERSO, "9,8,7,6,5,4,3,2,1,0,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "9,8,7,6,5,4,3,2,1,0,-1,", 6, false);
 			break;
 		case DIR_LEFT:
-			_objectsManager->SPACTION(_globals->PERSO, "18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,-1,", 6, false);
 			break;
 		default:
 			break;
@@ -2636,10 +2636,10 @@ void HopkinsEngine::handleOceanMouseEvents() {
 				}
 			} while (oldX <= 235);
 			if (!displAnim)
-				_objectsManager->SPACTION(_globals->PERSO, "36,35,34,33,32,31,30,29,28,27,-1,", 6, false);
+				_objectsManager->SPACTION(_globals->_characterSpriteBuf, "36,35,34,33,32,31,30,29,28,27,-1,", 6, false);
 			break;
 		case DIR_DOWN:
-			_objectsManager->SPACTION(_globals->PERSO, "9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,", 6, false);
 			break;
 		case DIR_LEFT:
 			oldX = _objectsManager->getSpriteX(0);
@@ -2659,7 +2659,7 @@ void HopkinsEngine::handleOceanMouseEvents() {
 				}
 			} while (oldX > 236);
 			if (!displAnim)
-				_objectsManager->SPACTION(_globals->PERSO, "18,19,20,21,22,23,24,25,26,27,-1,", 6, false);
+				_objectsManager->SPACTION(_globals->_characterSpriteBuf, "18,19,20,21,22,23,24,25,26,27,-1,", 6, false);
 			break;
 		default:
 			break;
@@ -2670,7 +2670,7 @@ void HopkinsEngine::handleOceanMouseEvents() {
 	case 4:
 		switch (_globals->_oceanDirection) {
 		case DIR_UP:
-			_objectsManager->SPACTION(_globals->PERSO, "27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,-1,", 6, false);
+			_objectsManager->SPACTION(_globals->_characterSpriteBuf, "27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,-1,", 6, false);
 			break;
 		case DIR_RIGHT:
 			oldX = _objectsManager->getSpriteX(0);
@@ -2690,7 +2690,7 @@ void HopkinsEngine::handleOceanMouseEvents() {
 				}
 			} while (oldX <= 235);
 			if (!displAnim)
-				_objectsManager->SPACTION(_globals->PERSO, "0,1,2,3,4,5,6,7,8,9,-1,", 6, false);
+				_objectsManager->SPACTION(_globals->_characterSpriteBuf, "0,1,2,3,4,5,6,7,8,9,-1,", 6, false);
 			break;
 		case DIR_LEFT:
 			oldX = _objectsManager->getSpriteX(0);
@@ -2709,7 +2709,7 @@ void HopkinsEngine::handleOceanMouseEvents() {
 
 				if (oldX <= 236) {
 					if (!displAnim)
-						_objectsManager->SPACTION(_globals->PERSO, "18,17,16,15,14,13,12,11,10,9,-1,", 6, false);
+						_objectsManager->SPACTION(_globals->_characterSpriteBuf, "18,17,16,15,14,13,12,11,10,9,-1,", 6, false);
 					break;
 				}
 			}
@@ -2749,7 +2749,7 @@ void HopkinsEngine::handleOceanMaze(int16 curExitId, Common::String backgroundFi
 	_globals->_exitId = 0;
 	_globals->_disableInventFl = true;
 	_soundManager->playSound(soundId);
-	_globals->PERSO = _fileManager->loadFile("VAISSEAU.SPR");
+	_globals->_characterSpriteBuf = _fileManager->loadFile("VAISSEAU.SPR");
 	if (backgroundFilename.size())
 		_graphicsManager->loadImage(backgroundFilename);
 
@@ -2795,7 +2795,7 @@ void HopkinsEngine::handleOceanMaze(int16 curExitId, Common::String backgroundFi
 		break;
 	}
 
-	_objectsManager->addStaticSprite(_globals->PERSO, Common::Point(_objectsManager->_characterPos.x, 110), 0, _objectsManager->_startSpriteIndex, 0, false, 0, 0);
+	_objectsManager->addStaticSprite(_globals->_characterSpriteBuf, Common::Point(_objectsManager->_characterPos.x, 110), 0, _objectsManager->_startSpriteIndex, 0, false, 0, 0);
 	_graphicsManager->SETCOLOR3(252, 100, 100, 100);
 	_graphicsManager->SETCOLOR3(253, 100, 100, 100);
 	_graphicsManager->SETCOLOR3(251, 100, 100, 100);
@@ -2836,7 +2836,7 @@ void HopkinsEngine::handleOceanMaze(int16 curExitId, Common::String backgroundFi
 	_graphicsManager->fadeOutLong();
 	_objectsManager->removeSprite(0);
 	_objectsManager->clearScreen();
-	_globals->PERSO = _fileManager->loadFile("PERSO.SPR");
+	_globals->_characterSpriteBuf = _fileManager->loadFile("PERSO.SPR");
 	_globals->_characterType = 0;
 }
 
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index c3e28bd..83c1158 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -2061,7 +2061,7 @@ void ObjectsManager::clearScreen() {
 	_vm->_linesManager->resetLastLine();
 	_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 	_vm->_globals->_answerBuffer = _vm->_globals->freeMemory(_vm->_globals->_answerBuffer);
-	_vm->_globals->SPRITE_ECRAN = _vm->_globals->freeMemory(_vm->_globals->SPRITE_ECRAN);
+	_vm->_globals->_levelSpriteBuf = _vm->_globals->freeMemory(_vm->_globals->_levelSpriteBuf);
 	_vm->_eventsManager->_startPos.x = 0;
 	_vm->_eventsManager->_mouseSpriteId = 0;
 	_vm->_globals->_saveData->_data[svLastMouseCursor] = 0;
@@ -2108,9 +2108,9 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
 		_vm->_globals->_saveData->_data[svField357] = 1;
 
 		loc = &_vm->_globals->_saveData->_realHopkins;
-		_vm->_globals->PERSO = _vm->_fileManager->loadFile("PERSO.SPR");
+		_vm->_globals->_characterSpriteBuf = _vm->_fileManager->loadFile("PERSO.SPR");
 		_vm->_globals->_characterType = 0;
-		addStaticSprite(_vm->_globals->PERSO, loc->_pos, 0, 64, loc->_zoomFactor, false, 34, 190);
+		addStaticSprite(_vm->_globals->_characterSpriteBuf, loc->_pos, 0, 64, loc->_zoomFactor, false, 34, 190);
 		animateSprite(0);
 		_vm->_globals->loadCharacterData();
 	} else if (oldCharacter == CHARACTER_HOPKINS && newCharacter == CHARACTER_SAMANTHA
@@ -2133,9 +2133,9 @@ void ObjectsManager::changeCharacterHead(PlayerCharacter oldCharacter, PlayerCha
 		_vm->_globals->_saveData->_data[svField357] = 0;
 
 		loc = &_vm->_globals->_saveData->_samantha;
-		_vm->_globals->PERSO = _vm->_fileManager->loadFile("PSAMAN.SPR");
+		_vm->_globals->_characterSpriteBuf = _vm->_fileManager->loadFile("PSAMAN.SPR");
 		_vm->_globals->_characterType = 2;
-		addStaticSprite(_vm->_globals->PERSO, loc->_pos, 0, 64, loc->_zoomFactor, false, 20, 127);
+		addStaticSprite(_vm->_globals->_characterSpriteBuf, loc->_pos, 0, 64, loc->_zoomFactor, false, 20, 127);
 		animateSprite(0);
 		_vm->_globals->loadCharacterData();
 	} else {
@@ -3204,7 +3204,7 @@ void ObjectsManager::sceneSpecialIni() {
 			animateSprite(0);
 			for (int i = 0; i <= 4; i++)
 				_vm->_eventsManager->refreshScreenAndEvents();
-			VBOB(_vm->_globals->SPRITE_ECRAN, 5, 15, 28, 1);
+			VBOB(_vm->_globals->_levelSpriteBuf, 5, 15, 28, 1);
 			_vm->_fontManager->hideText(9);
 			bool displayedTxtFl = false;
 			if (!_vm->_soundManager->_textOffFl) {
@@ -3677,7 +3677,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo
 	}
 	_vm->_eventsManager->mouseOn();
 	if (_vm->_globals->_screenId == 61) {
-		addStaticSprite(_vm->_globals->PERSO, Common::Point(330, 418), 0, 60, 0, false, 34, 190);
+		addStaticSprite(_vm->_globals->_characterSpriteBuf, Common::Point(330, 418), 0, 60, 0, false, 34, 190);
 		animateSprite(0);
 		_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 		computeAndSetSpriteSize();
@@ -3774,29 +3774,29 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
 	_vm->_graphicsManager->SETCOLOR3(254, 0, 0, 0);
 	if (_vm->_globals->_characterType) {
 		if (!_vm->_globals->_saveData->_data[svAlternateSpriteFl] && !_vm->_globals->_saveData->_data[svField356]) {
-			_vm->_globals->PERSO = _vm->_fileManager->loadFile("PERSO.SPR");
+			_vm->_globals->_characterSpriteBuf = _vm->_fileManager->loadFile("PERSO.SPR");
 			_vm->_globals->_characterType = 0;
 		}
 	}
 	if (!_vm->_globals->_characterType && _vm->_globals->_saveData->_data[svAlternateSpriteFl] == 1) {
-		_vm->_globals->PERSO = _vm->_fileManager->loadFile("HOPFEM.SPR");
+		_vm->_globals->_characterSpriteBuf = _vm->_fileManager->loadFile("HOPFEM.SPR");
 		_vm->_globals->_characterType = 1;
 	}
 
 	if (_vm->_globals->_characterType != 2 && _vm->_globals->_saveData->_data[svField356] == 1) {
-		_vm->_globals->PERSO = _vm->_fileManager->loadFile("PSAMAN.SPR");
+		_vm->_globals->_characterSpriteBuf = _vm->_fileManager->loadFile("PSAMAN.SPR");
 		_vm->_globals->_characterType = 2;
 	}
 	_vm->_globals->loadCharacterData();
 	switch (_vm->_globals->_characterType) {
 	case 0:
-		addStaticSprite(_vm->_globals->PERSO, _characterPos, 0, _startSpriteIndex, 0, false, 34, 190);
+		addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 34, 190);
 		break;
 	case 1:
-		addStaticSprite(_vm->_globals->PERSO, _characterPos, 0, _startSpriteIndex, 0, false, 28, 155);
+		addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 28, 155);
 		break;
 	case 2:
-		addStaticSprite(_vm->_globals->PERSO, _characterPos, 0, _startSpriteIndex, 0, false, 20, 127);
+		addStaticSprite(_vm->_globals->_characterSpriteBuf, _characterPos, 0, _startSpriteIndex, 0, false, 20, 127);
 		break;
 	}
 	_vm->_eventsManager->setMouseXY(_characterPos);
diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp
index 373b28a..3731ad6 100644
--- a/engines/hopkins/script.cpp
+++ b/engines/hopkins/script.cpp
@@ -180,11 +180,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			int vbobPosX = READ_LE_INT16(dataP + 8);
 			int vbobPosY = READ_LE_INT16(dataP + 10);
 			if (vbobIdx == 52) {
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, vbobPosX, READ_LE_INT16(dataP + 10), vbobFrameIndex);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, vbobPosX, READ_LE_INT16(dataP + 10), vbobFrameIndex);
 			} else if (vbobIdx == 51) {
 				_vm->_objectsManager->BOB_VIVANT(vbobFrameIndex);
 			} else if (vbobIdx != 50) {
-				_vm->_objectsManager->VBOB(_vm->_globals->SPRITE_ECRAN, vbobIdx, vbobPosX, vbobPosY, vbobFrameIndex);
+				_vm->_objectsManager->VBOB(_vm->_globals->_levelSpriteBuf, vbobIdx, vbobPosX, vbobPosY, vbobFrameIndex);
 				if (moveChange)
 					moveChange /= _vm->_globals->_speed;
 				if (moveChange > 1) {
@@ -808,14 +808,14 @@ int ScriptManager::handleOpcode(byte *dataP) {
 					playFl = false;
 					break;
 				case 12:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 249, 1);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 249, 1);
 					break;
 				case 23:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 249, 2);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 249, 2);
 					playFl = false;
 					break;
 				case 34:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 249, 3);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 249, 3);
 					playFl = false;
 					break;
 				}
@@ -954,7 +954,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 56:
-			_vm->_globals->PERSO = _vm->_fileManager->loadFile("HOPFEM.SPR");
+			_vm->_globals->_characterSpriteBuf = _vm->_fileManager->loadFile("HOPFEM.SPR");
 			_vm->_globals->_characterType = 1;
 			_vm->_globals->_saveData->_data[svAlternateSpriteFl] = 1;
 			_vm->_globals->loadCharacterData();
@@ -964,7 +964,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 57:
-			_vm->_globals->PERSO = _vm->_fileManager->loadFile("PERSO.SPR");
+			_vm->_globals->_characterSpriteBuf = _vm->_fileManager->loadFile("PERSO.SPR");
 			_vm->_globals->_characterType = 0;
 			_vm->_globals->_saveData->_data[svAlternateSpriteFl] = 0;
 			_vm->_globals->loadCharacterData();
@@ -1155,7 +1155,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				if (_vm->_objectsManager->getBobAnimDataIdx(8) == 32)
 					break;
 			}
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 201, 14, 1);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 201, 14, 1);
 			_vm->_objectsManager->animateSprite(0);
 			_vm->_objectsManager->stopBobAnimation(11);
 			_vm->_objectsManager->stopBobAnimation(8);
@@ -1256,7 +1256,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				}
 				_vm->_objectsManager->stopBobAnimation(1);
 				_vm->_objectsManager->stopBobAnimation(2);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 283, 160, 6);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 283, 160, 6);
 				_vm->_soundManager->removeSample(1);
 			}
 			if (_vm->_globals->_saveData->_data[svField183] == 2) {
@@ -1293,7 +1293,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				}
 				_vm->_objectsManager->stopBobAnimation(1);
 				_vm->_objectsManager->stopBobAnimation(3);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 283, 161, 8);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 283, 161, 8);
 				_vm->_soundManager->removeSample(1);
 			}
 			break;
@@ -1302,11 +1302,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField186]) {
 				_vm->_animationManager->playSequence("CIB5A.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 0);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 0);
 			} else if (_vm->_globals->_saveData->_data[svField186] == 1) {
 				_vm->_animationManager->playSequence("CIB5C.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 0);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 329, 87, 2);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 0);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 329, 87, 2);
 			}
 			break;
 
@@ -1314,11 +1314,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField186]) {
 				_vm->_animationManager->playSequence("CIB5B.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 5);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 5);
 			} else if (_vm->_globals->_saveData->_data[svField186] == 1) {
 				_vm->_animationManager->playSequence("CIB5D.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 5);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 283, 160, 6);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 5);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 283, 160, 6);
 			}
 			break;
 
@@ -1326,11 +1326,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField184]) {
 				_vm->_animationManager->playSequence("CIB6A.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 0);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 0);
 			} else if (_vm->_globals->_saveData->_data[svField184] == 1) {
 				_vm->_animationManager->playSequence("CIB6C.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 0);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 293, 139, 3);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 0);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 293, 139, 3);
 			}
 			break;
 
@@ -1338,11 +1338,11 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_soundManager->playSoundFile("SOUND52.WAV");
 			if (!_vm->_globals->_saveData->_data[svField184]) {
 				_vm->_animationManager->playSequence("CIB6B.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 5);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 5);
 			} else if (_vm->_globals->_saveData->_data[svField184] == 1) {
 				_vm->_animationManager->playSequence("CIB6D.SEQ", 1, 12, 1, false, false);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 155, 29, 5);
-				_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 283, 161, 8);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 155, 29, 5);
+				_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 283, 161, 8);
 			}
 			break;
 
@@ -1376,7 +1376,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 			} while (_vm->_objectsManager->getBobAnimDataIdx(12) != 117);
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 830, 122, 0);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 830, 122, 0);
 			_vm->_objectsManager->stopBobAnimation(12);
 			_vm->_objectsManager->stopBobAnimation(10);
 			_vm->_objectsManager->setBobAnimation(11);
@@ -1808,7 +1808,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 				_vm->_eventsManager->refreshScreenAndEvents();
 				if (_vm->_objectsManager->getBobAnimDataIdx(4) == 18)
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 18, 334, 0, false);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 18, 334, 0, false);
 			} while (_vm->_objectsManager->getBobAnimDataIdx(4) != 26);
 			_vm->_objectsManager->stopBobAnimation(4);
 			_vm->_objectsManager->animateSprite(0);
@@ -1944,7 +1944,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_soundManager->_specialSoundNum = 210;
 			_vm->_animationManager->playSequence2("SECRET1.SEQ", 1, 12, 1, true);
 			_vm->_soundManager->_specialSoundNum = 0;
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 192, 152, 0);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 192, 152, 0);
 			_vm->_objectsManager->setBobAnimation(9);
 			_vm->_objectsManager->OBSSEUL = true;
 			_vm->_objectsManager->loadLinkFile("IM73a");
@@ -1996,7 +1996,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_soundManager->_specialSoundNum = 229;
 			_vm->_animationManager->playSequence("MUR.SEQ", 1, 12, 1, false, false);
 			_vm->_soundManager->_specialSoundNum = 0;
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 340, 157, 2);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 340, 157, 2);
 			break;
 
 		case 230: {
@@ -2036,7 +2036,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->setSpriteX(0, 476);
 			_vm->_objectsManager->setSpriteY(0, 278);
 			_vm->_objectsManager->animateSprite(0);
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 337, 154, 3);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 337, 154, 3);
 			_vm->_objectsManager->OBSSEUL = true;
 			_vm->_objectsManager->loadLinkFile("IM93c");
 			_vm->_objectsManager->OBSSEUL = false;
@@ -2118,22 +2118,22 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 				switch (_vm->_globals->_saveData->_data[svField341]) {
 				case 1:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 27, 117, 0);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 27, 117, 0);
 					_vm->_globals->_saveData->_data[svField338] = 0;
 					break;
 				case 2:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 145, 166, 2);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 145, 166, 2);
 					_vm->_globals->_saveData->_data[svField339] = 0;
 					break;
 				case 3:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 296, 212, 4);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 296, 212, 4);
 					_vm->_globals->_saveData->_data[svField340] = 0;
 					break;
 				}
 			}
 			_vm->_soundManager->playSoundFile("SOUND83.WAV");
 			_vm->_objectsManager->OPTI_ONE(6, 0, 23, 0);
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 27, 117, 1);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 27, 117, 1);
 			break;
 			}
 
@@ -2156,15 +2156,15 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				
 				switch (_vm->_globals->_saveData->_data[svField341]) {
 				case 1:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 27, 117, 0);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 27, 117, 0);
 					_vm->_globals->_saveData->_data[svField338] = 0;
 					break;
 				case 2:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 145, 166, 2);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 145, 166, 2);
 					_vm->_globals->_saveData->_data[svField339] = 0;
 					break;
 				case 3:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 296, 212, 4);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 296, 212, 4);
 					_vm->_globals->_saveData->_data[svField340] = 0;
 					break;
 				}
@@ -2172,7 +2172,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 
 			_vm->_soundManager->playSoundFile("SOUND83.WAV");
 			_vm->_objectsManager->OPTI_ONE(5, 0, 23, 0);
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 145, 166, 3);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 145, 166, 3);
 			break;
 			}
 
@@ -2194,22 +2194,22 @@ int ScriptManager::handleOpcode(byte *dataP) {
 				_vm->_objectsManager->OPTI_ONE(vbobFrameIndex, 26, 50, 0);
 				switch (_vm->_globals->_saveData->_data[svField341]) {
 				case 1:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 27, 117, 0);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 27, 117, 0);
 					_vm->_globals->_saveData->_data[svField338] = 0;
 					break;
 				case 2:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 145, 166, 2);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 145, 166, 2);
 					_vm->_globals->_saveData->_data[svField339] = 0;
 					break;
 				case 3:
-					_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 296, 212, 4);
+					_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 296, 212, 4);
 					_vm->_globals->_saveData->_data[svField340] = 0;
 					break;
 				}
 			}
 			_vm->_soundManager->playSoundFile("SOUND83.WAV");
 			_vm->_objectsManager->OPTI_ONE(4, 0, 23, 0);
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 296, 212, 5);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 296, 212, 5);
 			break;
 			}
 
@@ -2298,7 +2298,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_globals->_saveData->_data[svField356] = 0;
 			_vm->_globals->_saveData->_data[svField355] = 1;
 			_vm->_objectsManager->_twoCharactersFl = true;
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 373, 191, 3);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 373, 191, 3);
 			_vm->_objectsManager->addStaticSprite(_vm->_objectsManager->_headSprites, samantha->_pos, 1, 3, samantha->_zoomFactor, false, 20, 127);
 			_vm->_objectsManager->animateSprite(1);
 			break;
@@ -2318,7 +2318,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_objectsManager->OPTI_ONE(5, 0, 6, 0);
 			_vm->_linesManager->ZONEP[4]._destX = 276;
 			_vm->_objectsManager->enableVerb(4, 19);
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 285, 379, 0);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 285, 379, 0);
 			_vm->_globals->_saveData->_data[svField399] = 1;
 			break;
 
@@ -2350,17 +2350,17 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 601:
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(2, 0, 16, 4);
 			break;
 
 		case 602:
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(4, 0, 16, 4);
 			break;
 
 		case 603:
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(3, 0, 16, 4);
 			_vm->_soundManager->_specialSoundNum = 199;
 			_vm->_graphicsManager->FADE_LINUX = 2;
@@ -2372,7 +2372,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 604:
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(1, 0, 16, 4);
 			_vm->_soundManager->_specialSoundNum = 199;
 			_vm->_animationManager->playAnim("BOMBE2A.ANM", 50, 14, 500);
@@ -2383,7 +2383,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 605:
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(5, 0, 16, 4);
 			_vm->_graphicsManager->fadeOutShort();
 			_vm->_soundManager->_specialSoundNum = 199;
@@ -2396,7 +2396,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			break;
 
 		case 606:
-			_vm->_graphicsManager->fastDisplay(_vm->_globals->SPRITE_ECRAN, 513, 163, 7, false);
+			_vm->_graphicsManager->fastDisplay(_vm->_globals->_levelSpriteBuf, 513, 163, 7, false);
 			_vm->_objectsManager->OPTI_ONE(6, 0, 16, 4);
 			if ((_vm->getPlatform() != Common::kPlatformWindows) || !_vm->getIsDemo()) {
 				_vm->_animationManager->playAnim("BOMBE3A.ANM", 50, 14, 500);


Commit: b46f2ccdc72c9cc9a53e4cf07efd502f21cc144c
    https://github.com/scummvm/scummvm/commit/b46f2ccdc72c9cc9a53e4cf07efd502f21cc144c
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-24T14:12:44-07:00

Commit Message:
HOPKINS: Move 2 variables from Globals to ObjectsManager and LinesManager

Changed paths:
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/lines.cpp
    engines/hopkins/lines.h
    engines/hopkins/objects.cpp
    engines/hopkins/objects.h



diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 87efe99..9fdba0b 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -102,7 +102,6 @@ Globals::Globals(HopkinsEngine *vm) {
 
 	_linuxEndDemoFl = false;
 	_speed = 1;
-	_oldFrameIndex = 0;
 	_oldDirection = DIR_NONE;
 	_oldDirectionSpriteIdx = 59;
 	_lastDirection = DIR_NONE;
@@ -169,7 +168,6 @@ Globals::Globals(HopkinsEngine *vm) {
 	_oldZoneNum = 0;
 	_oldMouseX = 0;
 	_oldMouseY = 0;
-	_forceHideText = false;
 }
 
 Globals::~Globals() {
@@ -261,7 +259,7 @@ void Globals::loadCharacterData() {
 		_hopkinsItem[idx]._speedY = *srcP++;
 	}
 
-	_oldFrameIndex = -1;
+	_vm->_objectsManager->resetOldFrameIndex();
 	_oldDirection = DIR_NONE;
 }
 
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 2a27d59..3a84ddb 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -236,14 +236,12 @@ public:
 	bool _censorshipFl;
 	bool _introSpeechOffFl;
 	bool _hidingActiveFl;
-	bool _forceHideText;
 	int _exitId;
 	Directions _oceanDirection;
 	Directions _oldDirection;
 	int _oldDirectionSpriteIdx;
 	int _actionDirection;
 	Directions _lastDirection;
-	int _oldFrameIndex;
 	int _hotspotTextColor;
 	int _inventory[36];
 	int _objectWidth, _objectHeight;
diff --git a/engines/hopkins/lines.cpp b/engines/hopkins/lines.cpp
index f47a444..3571cbc 100644
--- a/engines/hopkins/lines.cpp
+++ b/engines/hopkins/lines.cpp
@@ -75,6 +75,7 @@ LinesManager::LinesManager(HopkinsEngine *vm) {
 	_currentSegmentId = 0;
 	_largeBuf = g_PTRNUL;
 	_zoneSkipCount = 0;
+	_forceHideText = false;
 }
 
 LinesManager::~LinesManager() {
@@ -2846,9 +2847,9 @@ void LinesManager::checkZone() {
 			_vm->_graphicsManager->SETCOLOR4(251, 100, 100, 100);
 			_vm->_eventsManager->_mouseCursorId = 4;
 			_vm->_eventsManager->changeMouseCursor(4);
-			if (_vm->_globals->_forceHideText) {
+			if (_forceHideText) {
 				_vm->_fontManager->hideText(5);
-				_vm->_globals->_forceHideText = false;
+				_forceHideText = false;
 				return;
 			}
 		}
@@ -2861,7 +2862,7 @@ void LinesManager::checkZone() {
 					if (_vm->_globals->_oldMouseZoneId != zoneId) {
 						_vm->_fontManager->initTextBuffers(5, ZONEP[zoneId]._messageId, _vm->_globals->_zoneFilename, 0, 430, 0, 0, 252);
 						_vm->_fontManager->showText(5);
-						_vm->_globals->_forceHideText = true;
+						_forceHideText = true;
 					}
 					_vm->_globals->_hotspotTextColor += 25;
 					if (_vm->_globals->_hotspotTextColor > 100)
diff --git a/engines/hopkins/lines.h b/engines/hopkins/lines.h
index 2d0b3b0..ed7e2f0 100644
--- a/engines/hopkins/lines.h
+++ b/engines/hopkins/lines.h
@@ -106,6 +106,7 @@ class LinesManager {
 private:
 	HopkinsEngine *_vm;
 
+	bool _forceHideText;
 	int _pathFindingMaxDepth;
 	SmoothItem _smoothRoute[4000];
 	Directions _smoothMoveDirection;
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 83c1158..4b7a66a 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -75,6 +75,7 @@ ObjectsManager::ObjectsManager(HopkinsEngine *vm) {
 	_jumpVerb = 0;
 	_jumpZone = 0;
 	_oldSpriteIndex = 0;
+	_oldFrameIndex = 0;
 	_oldFlipFl = false;
 	_curObjectIndex = 0;
 	_forestFl = false;
@@ -1275,7 +1276,7 @@ void ObjectsManager::GOHOME() {
 		if (newPosX != -1 || newPosY != -1) {
 			_vm->_globals->_oldDirection = newDirection;
 			_vm->_globals->_oldDirectionSpriteIdx = newDirection + 59;
-			_vm->_globals->_oldFrameIndex = 0;
+			_oldFrameIndex = 0;
 			_oldCharacterPosX = newPosX;
 			_oldCharacterPosY = newPosY;
 		} else {
@@ -1309,13 +1310,13 @@ void ObjectsManager::GOHOME() {
 		return;
 	}
 	if (_vm->_globals->_oldDirection == DIR_RIGHT) {
-		if (_vm->_globals->_oldFrameIndex < 24 || _vm->_globals->_oldFrameIndex > 35) {
+		if (_oldFrameIndex < 24 || _oldFrameIndex > 35) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 24;
 		} else {
-			int deltaX = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedX;
-			int deltaY = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY;
+			int deltaX = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedX;
+			int deltaY = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY;
 
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaX = _vm->_graphicsManager->zoomOut(deltaX, -_sprite[0]._zoomFactor);
@@ -1326,20 +1327,20 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = _oldCharacterPosX + deltaX;
 			oldPosY = _oldCharacterPosY + deltaY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 35)
 				oldFrameIdx = 24;
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
 	if (_vm->_globals->_oldDirection == DIR_LEFT) {
-		if (_vm->_globals->_oldFrameIndex < 24 || _vm->_globals->_oldFrameIndex > 35) {
+		if (_oldFrameIndex < 24 || _oldFrameIndex > 35) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 24;
 		} else {
-			int deltaX = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedX;
-			int deltaY = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY;
+			int deltaX = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedX;
+			int deltaY = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY;
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaX = _vm->_graphicsManager->zoomOut(deltaX, -_sprite[0]._zoomFactor);
 				deltaY = _vm->_graphicsManager->zoomOut(deltaY, -_sprite[0]._zoomFactor);
@@ -1349,19 +1350,19 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = _oldCharacterPosX - deltaX;
 			oldPosY = _oldCharacterPosY - deltaY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 35)
 				oldFrameIdx = 24;
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
 	if (_vm->_globals->_oldDirection == DIR_UP) {
-		if (_vm->_globals->_oldFrameIndex > 11) {
+		if (_oldFrameIndex > 11) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 0;
 		} else {
-			int deltaY = abs(_vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY);
+			int deltaY = abs(_vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY);
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaY = _vm->_graphicsManager->zoomOut(deltaY, -_sprite[0]._zoomFactor);
 			} else if (_sprite[0]._zoomFactor > 0) {
@@ -1369,7 +1370,7 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY - deltaY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 11)
 				oldFrameIdx = 0;
 		}
@@ -1377,12 +1378,12 @@ void ObjectsManager::GOHOME() {
 	}
 
 	if (_vm->_globals->_oldDirection == DIR_DOWN) {
-		if (_vm->_globals->_oldFrameIndex < 48 || _vm->_globals->_oldFrameIndex > 59) {
+		if (_oldFrameIndex < 48 || _oldFrameIndex > 59) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 48;
 		} else {
-			int deltaY = abs(_vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY);
+			int deltaY = abs(_vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY);
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaY = _vm->_graphicsManager->zoomOut(deltaY, -_sprite[0]._zoomFactor);
 			} else if (_sprite[0]._zoomFactor > 0) {
@@ -1390,20 +1391,20 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = _oldCharacterPosX;
 			oldPosY = deltaY + _oldCharacterPosY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 59)
 				oldFrameIdx = 48;
 		}
 		_homeRateCounter = 4 / _vm->_globals->_speed;
 	}
 	if (_vm->_globals->_oldDirection == DIR_UP_RIGHT) {
-		if (_vm->_globals->_oldFrameIndex < 12 || _vm->_globals->_oldFrameIndex > 23) {
+		if (_oldFrameIndex < 12 || _oldFrameIndex > 23) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 12;
 		} else {
-			int deltaX = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedX;
-			int deltaY = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY;
+			int deltaX = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedX;
+			int deltaY = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY;
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaX = _vm->_graphicsManager->zoomOut(deltaX, -_sprite[0]._zoomFactor);
 				deltaY = _vm->_graphicsManager->zoomOut(deltaY, -_sprite[0]._zoomFactor);
@@ -1414,20 +1415,20 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = deltaX + _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY + deltaY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 23)
 				oldFrameIdx = 12;
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
 	if (_vm->_globals->_oldDirection == DIR_UP_LEFT) {
-		if (_vm->_globals->_oldFrameIndex < 12 || _vm->_globals->_oldFrameIndex > 23) {
+		if (_oldFrameIndex < 12 || _oldFrameIndex > 23) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 12;
 		} else {
-			int deltaX = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedX;
-			int deltaY = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY;
+			int deltaX = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedX;
+			int deltaY = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY;
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaX = _vm->_graphicsManager->zoomOut(deltaX, -_sprite[0]._zoomFactor);
 				deltaY = _vm->_graphicsManager->zoomOut(deltaY, -_sprite[0]._zoomFactor);
@@ -1437,20 +1438,20 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = _oldCharacterPosX - deltaX;
 			oldPosY = _oldCharacterPosY + deltaY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 23)
 				oldFrameIdx = 12;
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
 	if (_vm->_globals->_oldDirection == DIR_DOWN_RIGHT) {
-		if (_vm->_globals->_oldFrameIndex < 36 || _vm->_globals->_oldFrameIndex > 47) {
+		if (_oldFrameIndex < 36 || _oldFrameIndex > 47) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 36;
 		} else {
-			int deltaX = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedX;
-			int deltaY = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY;
+			int deltaX = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedX;
+			int deltaY = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY;
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaX = _vm->_graphicsManager->zoomOut(deltaX, -_sprite[0]._zoomFactor);
 				deltaY = _vm->_graphicsManager->zoomOut(deltaY, -_sprite[0]._zoomFactor);
@@ -1461,20 +1462,20 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = deltaX + _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY + deltaY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 47)
 				oldFrameIdx = 36;
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
 	if (_vm->_globals->_oldDirection == DIR_DOWN_LEFT) {
-		if (_vm->_globals->_oldFrameIndex < 36 || _vm->_globals->_oldFrameIndex > 47) {
+		if (_oldFrameIndex < 36 || _oldFrameIndex > 47) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
 			oldFrameIdx = 36;
 		} else {
-			int deltaX = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedX;
-			int deltaY = _vm->_globals->_hopkinsItem[_vm->_globals->_oldFrameIndex]._speedY;
+			int deltaX = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedX;
+			int deltaY = _vm->_globals->_hopkinsItem[_oldFrameIndex]._speedY;
 			if (_sprite[0]._zoomFactor < 0) {
 				deltaX = _vm->_graphicsManager->zoomOut(deltaX, -_sprite[0]._zoomFactor);
 				deltaY = _vm->_graphicsManager->zoomOut(deltaY, -_sprite[0]._zoomFactor);
@@ -1485,7 +1486,7 @@ void ObjectsManager::GOHOME() {
 			}
 			oldPosX = _oldCharacterPosX - deltaX;
 			oldPosY = _oldCharacterPosY + deltaY;
-			oldFrameIdx = _vm->_globals->_oldFrameIndex + 1;
+			oldFrameIdx = _oldFrameIndex + 1;
 			if (oldFrameIdx > 47)
 				oldFrameIdx = 36;
 		}
@@ -1560,7 +1561,7 @@ void ObjectsManager::GOHOME() {
 	}
 	_vm->_globals->_oldDirection = newDirection;
 	_vm->_globals->_oldDirectionSpriteIdx = newDirection + 59;
-	_vm->_globals->_oldFrameIndex = oldFrameIdx;
+	_oldFrameIndex = oldFrameIdx;
 	_oldCharacterPosX = newPosX;
 	_oldCharacterPosY = newPosY;
 }
diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h
index 9e22a52..34764f5 100644
--- a/engines/hopkins/objects.h
+++ b/engines/hopkins/objects.h
@@ -92,6 +92,7 @@ private:
 	const byte *_oldSpriteData;
 	int _verb;
 	int _oldSpriteIndex;
+	int _oldFrameIndex;
 	bool _oldFlipFl;
 	int _curGestureFile;
 	byte *_gestureBuf;
@@ -241,6 +242,8 @@ public:
 	void OPTI_BOBON(int idx1, int idx2, int idx3, int anim1Idx, int anim2Idx, int anim3Idx);
 	void SPACTION1(byte *spriteData, const Common::String &animString, int speed);
 	void PARADISE();
+
+	void resetOldFrameIndex() { _oldFrameIndex = -1; }
 };
 
 } // End of namespace Hopkins


Commit: aa141c43552ac407cf3088c806b7fdbe192c9627
    https://github.com/scummvm/scummvm/commit/aa141c43552ac407cf3088c806b7fdbe192c9627
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-24T14:12:46-07:00

Commit Message:
HOPKINS: Move 3 variables from Globals to ObjectsManager, make them private

Changed paths:
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/objects.cpp
    engines/hopkins/objects.h
    engines/hopkins/script.cpp



diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 9fdba0b..068c390 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -102,9 +102,6 @@ Globals::Globals(HopkinsEngine *vm) {
 
 	_linuxEndDemoFl = false;
 	_speed = 1;
-	_oldDirection = DIR_NONE;
-	_oldDirectionSpriteIdx = 59;
-	_lastDirection = DIR_NONE;
 	_curObjectFileNum = 0;
 	_objectWidth = _objectHeight = 0;
 	_catalogPos = 0;
@@ -260,7 +257,7 @@ void Globals::loadCharacterData() {
 	}
 
 	_vm->_objectsManager->resetOldFrameIndex();
-	_oldDirection = DIR_NONE;
+	_vm->_objectsManager->resetOldDirection();
 }
 
 void Globals::initAnimBqe() {
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 3a84ddb..a35f1a7 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -238,10 +238,7 @@ public:
 	bool _hidingActiveFl;
 	int _exitId;
 	Directions _oceanDirection;
-	Directions _oldDirection;
-	int _oldDirectionSpriteIdx;
 	int _actionDirection;
-	Directions _lastDirection;
 	int _hotspotTextColor;
 	int _inventory[36];
 	int _objectWidth, _objectHeight;
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 4b7a66a..b0170b2 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -85,6 +85,9 @@ ObjectsManager::ObjectsManager(HopkinsEngine *vm) {
 	_curGestureFile = 0;
 	_headSprites = NULL;
 	_homeRateCounter = 0;
+	_lastDirection = DIR_NONE;
+	_oldDirection = DIR_NONE;
+	_oldDirectionSpriteIdx = 59;
 }
 
 ObjectsManager::~ObjectsManager() {
@@ -1266,7 +1269,7 @@ void ObjectsManager::GOHOME() {
 	int oldPosY = 0;
 	int oldFrameIdx = 0;
 	_homeRateCounter = 0;
-	if (_vm->_globals->_oldDirection == DIR_NONE) {
+	if (_oldDirection == DIR_NONE) {
 		computeAndSetSpriteSize();
 		newPosX = _vm->_linesManager->_route->_x;
 		newPosY = _vm->_linesManager->_route->_y;
@@ -1274,13 +1277,13 @@ void ObjectsManager::GOHOME() {
 		_vm->_linesManager->_route++;
 
 		if (newPosX != -1 || newPosY != -1) {
-			_vm->_globals->_oldDirection = newDirection;
-			_vm->_globals->_oldDirectionSpriteIdx = newDirection + 59;
+			_oldDirection = newDirection;
+			_oldDirectionSpriteIdx = newDirection + 59;
 			_oldFrameIndex = 0;
 			_oldCharacterPosX = newPosX;
 			_oldCharacterPosY = newPosY;
 		} else {
-			setSpriteIndex(0, _vm->_globals->_oldDirection + 59);
+			setSpriteIndex(0, _oldDirection + 59);
 			_vm->_globals->_actionDirection = DIR_NONE;
 			int zoneId;
 			if (_vm->_globals->_actionMoveTo)
@@ -1292,7 +1295,7 @@ void ObjectsManager::GOHOME() {
 			setFlipSprite(0, false);
 			_homeRateCounter = 0;
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_oldDirection = DIR_NONE;
 			if (zoneId > 0) {
 				if (_vm->_linesManager->ZONEP[zoneId]._destX && _vm->_linesManager->ZONEP[zoneId]._destY && _vm->_linesManager->ZONEP[zoneId]._destY != 31) {
 					if (_vm->_linesManager->ZONEP[zoneId]._spriteIndex == -1) {
@@ -1309,7 +1312,7 @@ void ObjectsManager::GOHOME() {
 		_homeRateCounter = 0;
 		return;
 	}
-	if (_vm->_globals->_oldDirection == DIR_RIGHT) {
+	if (_oldDirection == DIR_RIGHT) {
 		if (_oldFrameIndex < 24 || _oldFrameIndex > 35) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1333,7 +1336,7 @@ void ObjectsManager::GOHOME() {
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
-	if (_vm->_globals->_oldDirection == DIR_LEFT) {
+	if (_oldDirection == DIR_LEFT) {
 		if (_oldFrameIndex < 24 || _oldFrameIndex > 35) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1356,7 +1359,7 @@ void ObjectsManager::GOHOME() {
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
-	if (_vm->_globals->_oldDirection == DIR_UP) {
+	if (_oldDirection == DIR_UP) {
 		if (_oldFrameIndex > 11) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1377,7 +1380,7 @@ void ObjectsManager::GOHOME() {
 		_homeRateCounter = 4 / _vm->_globals->_speed;
 	}
 
-	if (_vm->_globals->_oldDirection == DIR_DOWN) {
+	if (_oldDirection == DIR_DOWN) {
 		if (_oldFrameIndex < 48 || _oldFrameIndex > 59) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1397,7 +1400,7 @@ void ObjectsManager::GOHOME() {
 		}
 		_homeRateCounter = 4 / _vm->_globals->_speed;
 	}
-	if (_vm->_globals->_oldDirection == DIR_UP_RIGHT) {
+	if (_oldDirection == DIR_UP_RIGHT) {
 		if (_oldFrameIndex < 12 || _oldFrameIndex > 23) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1421,7 +1424,7 @@ void ObjectsManager::GOHOME() {
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
-	if (_vm->_globals->_oldDirection == DIR_UP_LEFT) {
+	if (_oldDirection == DIR_UP_LEFT) {
 		if (_oldFrameIndex < 12 || _oldFrameIndex > 23) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1444,7 +1447,7 @@ void ObjectsManager::GOHOME() {
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
-	if (_vm->_globals->_oldDirection == DIR_DOWN_RIGHT) {
+	if (_oldDirection == DIR_DOWN_RIGHT) {
 		if (_oldFrameIndex < 36 || _oldFrameIndex > 47) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1468,7 +1471,7 @@ void ObjectsManager::GOHOME() {
 		}
 		_homeRateCounter = 5 / _vm->_globals->_speed;
 	}
-	if (_vm->_globals->_oldDirection == DIR_DOWN_LEFT) {
+	if (_oldDirection == DIR_DOWN_LEFT) {
 		if (_oldFrameIndex < 36 || _oldFrameIndex > 47) {
 			oldPosX = _oldCharacterPosX;
 			oldPosY = _oldCharacterPosY;
@@ -1505,13 +1508,13 @@ void ObjectsManager::GOHOME() {
 				zoneId = _vm->_globals->_saveData->_data[svLastZoneNum];
 			else
 				zoneId = _zoneNum;
-			setSpriteIndex(0, _vm->_globals->_oldDirection + 59);
+			setSpriteIndex(0, _oldDirection + 59);
 			_vm->_globals->_actionDirection = DIR_NONE;
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 			computeAndSetSpriteSize();
 			setFlipSprite(0, false);
 			_homeRateCounter = 0;
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_oldDirection = DIR_NONE;
 			_oldCharacterPosX = getSpriteX(0);
 			_oldCharacterPosY = getSpriteY(0);
 
@@ -1530,37 +1533,37 @@ void ObjectsManager::GOHOME() {
 			_homeRateCounter = 0;
 			return;
 		}
-		if (_vm->_globals->_oldDirection != newDirection)
+		if (_oldDirection != newDirection)
 			break;
-		if ((newDirection == DIR_RIGHT && newPosX >= oldPosX) || (_vm->_globals->_oldDirection == DIR_LEFT && newPosX <= oldPosX) ||
-		    (_vm->_globals->_oldDirection == DIR_UP && newPosY <= oldPosY) || (_vm->_globals->_oldDirection == DIR_DOWN && newPosY >= oldPosY) ||
-		    (_vm->_globals->_oldDirection == DIR_UP_RIGHT && newPosX >= oldPosX)  || (_vm->_globals->_oldDirection == DIR_UP_LEFT && newPosX <= oldPosX) ||
-		    (_vm->_globals->_oldDirection == DIR_DOWN_RIGHT && newPosX >= oldPosX) || (_vm->_globals->_oldDirection == DIR_DOWN_LEFT && newPosX <= oldPosX))
+		if ((newDirection == DIR_RIGHT && newPosX >= oldPosX) || (_oldDirection == DIR_LEFT && newPosX <= oldPosX) ||
+		    (_oldDirection == DIR_UP && newPosY <= oldPosY) || (_oldDirection == DIR_DOWN && newPosY >= oldPosY) ||
+		    (_oldDirection == DIR_UP_RIGHT && newPosX >= oldPosX)  || (_oldDirection == DIR_UP_LEFT && newPosX <= oldPosX) ||
+		    (_oldDirection == DIR_DOWN_RIGHT && newPosX >= oldPosX) || (_oldDirection == DIR_DOWN_LEFT && newPosX <= oldPosX))
 			loopCond = true;
 	} while (!loopCond);
 	if (loopCond) {
 		computeAndSetSpriteSize();
-		if ((_vm->_globals->_oldDirection == DIR_DOWN_LEFT) || (_vm->_globals->_oldDirection == DIR_LEFT) || (_vm->_globals->_oldDirection == DIR_UP_LEFT))
+		if ((_oldDirection == DIR_DOWN_LEFT) || (_oldDirection == DIR_LEFT) || (_oldDirection == DIR_UP_LEFT))
 			setFlipSprite(0, true);
 
-		if ((_vm->_globals->_oldDirection == DIR_UP) || (_vm->_globals->_oldDirection == DIR_UP_RIGHT) || (_vm->_globals->_oldDirection == DIR_RIGHT) ||
-		    (_vm->_globals->_oldDirection == DIR_DOWN_RIGHT) || (_vm->_globals->_oldDirection == DIR_DOWN))
+		if ((_oldDirection == DIR_UP) || (_oldDirection == DIR_UP_RIGHT) || (_oldDirection == DIR_RIGHT) ||
+		    (_oldDirection == DIR_DOWN_RIGHT) || (_oldDirection == DIR_DOWN))
 			setFlipSprite(0, false);
 
 		setSpriteX(0, newPosX);
 		setSpriteY(0, newPosY);
 		setSpriteIndex(0, oldFrameIdx);
 	} else {
-		if ((_vm->_globals->_oldDirection == DIR_DOWN_LEFT) || (_vm->_globals->_oldDirection == DIR_LEFT) || (_vm->_globals->_oldDirection == DIR_UP_LEFT))
+		if ((_oldDirection == DIR_DOWN_LEFT) || (_oldDirection == DIR_LEFT) || (_oldDirection == DIR_UP_LEFT))
 			setFlipSprite(0, true);
 
-		if ((_vm->_globals->_oldDirection == DIR_UP) || (_vm->_globals->_oldDirection == DIR_UP_RIGHT) || (_vm->_globals->_oldDirection == DIR_RIGHT) ||
-		    (_vm->_globals->_oldDirection == DIR_DOWN_RIGHT) || (_vm->_globals->_oldDirection == DIR_DOWN))
+		if ((_oldDirection == DIR_UP) || (_oldDirection == DIR_UP_RIGHT) || (_oldDirection == DIR_RIGHT) ||
+		    (_oldDirection == DIR_DOWN_RIGHT) || (_oldDirection == DIR_DOWN))
 			setFlipSprite(0, false);
 		_homeRateCounter = 0;
 	}
-	_vm->_globals->_oldDirection = newDirection;
-	_vm->_globals->_oldDirectionSpriteIdx = newDirection + 59;
+	_oldDirection = newDirection;
+	_oldDirectionSpriteIdx = newDirection + 59;
 	_oldFrameIndex = oldFrameIdx;
 	_oldCharacterPosX = newPosX;
 	_oldCharacterPosY = newPosY;
@@ -1589,10 +1592,10 @@ void ObjectsManager::GOHOME2() {
 
 		++countColisionPixel;
 		if (countColisionPixel >= realSpeed) {
-			_vm->_globals->_lastDirection = newDirection;
+			_lastDirection = newDirection;
 			setSpriteX(0, nexPosX);
 			setSpriteY(0, newPosY);
-			switch (_vm->_globals->_lastDirection) {
+			switch (_lastDirection) {
 			case DIR_UP:
 				setSpriteIndex(0, 4);
 				break;
@@ -1613,7 +1616,7 @@ void ObjectsManager::GOHOME2() {
 		}
 	}
 
-	switch (_vm->_globals->_lastDirection) {
+	switch (_lastDirection) {
 	case DIR_UP:
 		setSpriteIndex(0, 0);
 		break;
@@ -1887,13 +1890,13 @@ void ObjectsManager::handleLeftButton() {
 	if (_forestFl && _zoneNum >= 20 && _zoneNum <= 23) {
 		if (getSpriteY(0) > 374 && getSpriteY(0) <= 410) {
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
-			setSpriteIndex(0, _vm->_globals->_oldDirectionSpriteIdx);
+			setSpriteIndex(0, _oldDirectionSpriteIdx);
 			_vm->_globals->_actionDirection = DIR_NONE;
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 			computeAndSetSpriteSize();
 			setFlipSprite(0, false);
 			_homeRateCounter = 0;
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_oldDirection = DIR_NONE;
 		} else {
 			_vm->_linesManager->_route = _vm->_linesManager->PARCOURS2(getSpriteX(0), getSpriteY(0), getSpriteX(0), 390);
 			if (_vm->_linesManager->_route != (RouteItem *)g_PTRNUL)
@@ -1902,7 +1905,7 @@ void ObjectsManager::handleLeftButton() {
 			_oldCharacterPosY = getSpriteY(0);
 			_homeRateCounter = 0;
 			if (_vm->_linesManager->_route != (RouteItem *)g_PTRNUL || oldRoute == _vm->_linesManager->_route) {
-				_vm->_globals->_oldDirection = DIR_NONE;
+				_oldDirection = DIR_NONE;
 			} else {
 				_vm->_linesManager->_route = oldRoute;
 			}
@@ -1916,7 +1919,7 @@ void ObjectsManager::handleLeftButton() {
 			_oldCharacterPosY = getSpriteY(0);
 			_homeRateCounter = 0;
 			if (_vm->_linesManager->_route != (RouteItem *)g_PTRNUL || oldRoute == _vm->_linesManager->_route)
-				_vm->_globals->_oldDirection = DIR_NONE;
+				_oldDirection = DIR_NONE;
 			else
 				_vm->_linesManager->_route = oldRoute;
 		}
@@ -2071,7 +2074,7 @@ void ObjectsManager::clearScreen() {
 	_forceZoneFl = true;
 	_changeVerbFl = false;
 	_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
-	_vm->_globals->_oldDirection = DIR_NONE;
+	_oldDirection = DIR_NONE;
 	_vm->_graphicsManager->resetDirtyRects();
 }
 
@@ -3696,7 +3699,7 @@ void ObjectsManager::PERSONAGE(const Common::String &backgroundFile, const Commo
 		stopBobAnimation(3);
 		_vm->_globals->_checkDistanceFl = true;
 		_oldCharacterPosX = getSpriteX(0);
-		_vm->_globals->_oldDirection = DIR_NONE;
+		_oldDirection = DIR_NONE;
 		_homeRateCounter = 0;
 		_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 		_vm->_linesManager->_route = _vm->_linesManager->PARCOURS2(getSpriteX(0), getSpriteY(0), 330, 345);
@@ -3812,7 +3815,7 @@ void ObjectsManager::PERSONAGE2(const Common::String &backgroundFile, const Comm
 	_vm->_eventsManager->_mouseSpriteId = 4;
 	_oldCharacterPosX = _characterPos.x;
 	_oldCharacterPosY = _characterPos.y;
-	_vm->_globals->_oldDirection = DIR_NONE;
+	_oldDirection = DIR_NONE;
 	_homeRateCounter = 0;
 
 	for (int idx = 0; idx < 5; ++idx)
diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h
index 34764f5..b194749 100644
--- a/engines/hopkins/objects.h
+++ b/engines/hopkins/objects.h
@@ -93,6 +93,9 @@ private:
 	int _verb;
 	int _oldSpriteIndex;
 	int _oldFrameIndex;
+	int _oldDirectionSpriteIdx;
+	Directions _oldDirection;
+	Directions _lastDirection;
 	bool _oldFlipFl;
 	int _curGestureFile;
 	byte *_gestureBuf;
@@ -244,6 +247,7 @@ public:
 	void PARADISE();
 
 	void resetOldFrameIndex() { _oldFrameIndex = -1; }
+	void resetOldDirection()  { _oldDirection = DIR_NONE; }
 };
 
 } // End of namespace Hopkins
diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp
index 3731ad6..50a0a90 100644
--- a/engines/hopkins/script.cpp
+++ b/engines/hopkins/script.cpp
@@ -984,7 +984,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 59: {
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_objectsManager->_oldCharacterPosX = _vm->_objectsManager->getSpriteX(0);
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_vm->_objectsManager->resetOldDirection();
 			_vm->_objectsManager->resetHomeRateCounter();
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 			_vm->_linesManager->_route = _vm->_linesManager->PARCOURS2(_vm->_objectsManager->getSpriteX(0), _vm->_objectsManager->getSpriteY(0), 445, 332);
@@ -1102,7 +1102,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 81: {
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_objectsManager->_oldCharacterPosX = _vm->_objectsManager->getSpriteX(0);
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_vm->_objectsManager->resetOldDirection();
 			_vm->_objectsManager->resetHomeRateCounter();
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 			_vm->_linesManager->_route = _vm->_linesManager->PARCOURS2(_vm->_objectsManager->getSpriteX(0), _vm->_objectsManager->getSpriteY(0), 119, 268);
@@ -1419,7 +1419,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 		case 105:
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_objectsManager->_oldCharacterPosX = _vm->_objectsManager->getSpriteX(0);
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_vm->_objectsManager->resetOldDirection();
 			_vm->_objectsManager->resetHomeRateCounter();
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
 			switch (_vm->_globals->_saveData->_data[svField253]) {
@@ -1666,7 +1666,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_globals->_introSpeechOffFl = false;
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_objectsManager->_oldCharacterPosX = _vm->_objectsManager->getSpriteX(0);
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_vm->_objectsManager->resetOldDirection();
 			_vm->_objectsManager->resetHomeRateCounter();
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
@@ -1694,7 +1694,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_globals->_introSpeechOffFl = false;
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_objectsManager->_oldCharacterPosX = _vm->_objectsManager->getSpriteX(0);
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_vm->_objectsManager->resetOldDirection();
 			_vm->_objectsManager->resetHomeRateCounter();
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;
@@ -2006,7 +2006,7 @@ int ScriptManager::handleOpcode(byte *dataP) {
 			_vm->_globals->enableHiding();
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_objectsManager->_oldCharacterPosX = _vm->_objectsManager->getSpriteX(0);
-			_vm->_globals->_oldDirection = DIR_NONE;
+			_vm->_objectsManager->resetOldDirection();
 			_vm->_objectsManager->resetHomeRateCounter();
 			_vm->_globals->_checkDistanceFl = true;
 			_vm->_linesManager->_route = (RouteItem *)g_PTRNUL;


Commit: ee3c0cc4faa66b57bf82ee59dac9c3484b582b5d
    https://github.com/scummvm/scummvm/commit/ee3c0cc4faa66b57bf82ee59dac9c3484b582b5d
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-24T14:12:47-07:00

Commit Message:
Hopkins: Move hotspotTextColor to LinesMAnager, make it private

Changed paths:
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/lines.cpp
    engines/hopkins/lines.h



diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 068c390..93997ea 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -156,7 +156,6 @@ Globals::Globals(HopkinsEngine *vm) {
 	_baseMapColor = 50;
 
 	// Reset indexed variables
-	_hotspotTextColor = 0;
 	_oldRouteFromX = 0;
 	_oldRouteFromY = 0;
 	_oldRouteDestX = 0;
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index a35f1a7..1b63e72 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -239,7 +239,6 @@ public:
 	int _exitId;
 	Directions _oceanDirection;
 	int _actionDirection;
-	int _hotspotTextColor;
 	int _inventory[36];
 	int _objectWidth, _objectHeight;
 	int _screenId;
diff --git a/engines/hopkins/lines.cpp b/engines/hopkins/lines.cpp
index 3571cbc..2cc86bd 100644
--- a/engines/hopkins/lines.cpp
+++ b/engines/hopkins/lines.cpp
@@ -75,6 +75,7 @@ LinesManager::LinesManager(HopkinsEngine *vm) {
 	_currentSegmentId = 0;
 	_largeBuf = g_PTRNUL;
 	_zoneSkipCount = 0;
+	_hotspotTextColor = 0;
 	_forceHideText = false;
 }
 
@@ -2864,11 +2865,10 @@ void LinesManager::checkZone() {
 						_vm->_fontManager->showText(5);
 						_forceHideText = true;
 					}
-					_vm->_globals->_hotspotTextColor += 25;
-					if (_vm->_globals->_hotspotTextColor > 100)
-						_vm->_globals->_hotspotTextColor = 0;
-					_vm->_graphicsManager->SETCOLOR4(251, _vm->_globals->_hotspotTextColor, _vm->_globals->_hotspotTextColor,
-						_vm->_globals->_hotspotTextColor);
+					_hotspotTextColor += 25;
+					if (_hotspotTextColor > 100)
+						_hotspotTextColor = 0;
+					_vm->_graphicsManager->SETCOLOR4(251, _hotspotTextColor, _hotspotTextColor, _hotspotTextColor);
 					if (_vm->_eventsManager->_mouseCursorId == 4) {
 						if (ZONEP[zoneId]._verbFl1 == 2) {
 							_vm->_eventsManager->changeMouseCursor(16);
diff --git a/engines/hopkins/lines.h b/engines/hopkins/lines.h
index ed7e2f0..82ad4a3 100644
--- a/engines/hopkins/lines.h
+++ b/engines/hopkins/lines.h
@@ -107,6 +107,7 @@ private:
 	HopkinsEngine *_vm;
 
 	bool _forceHideText;
+	int _hotspotTextColor;
 	int _pathFindingMaxDepth;
 	SmoothItem _smoothRoute[4000];
 	Directions _smoothMoveDirection;


Commit: b0f0a6cd92d922115916947929060096f91a19d5
    https://github.com/scummvm/scummvm/commit/b0f0a6cd92d922115916947929060096f91a19d5
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-24T14:12:48-07:00

Commit Message:
HOPKINS: Move two more variables to ObjectsManager, make them private

Changed paths:
    engines/hopkins/dialogs.cpp
    engines/hopkins/events.cpp
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/objects.cpp
    engines/hopkins/objects.h



diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp
index 281f3dd..712ee7b 100644
--- a/engines/hopkins/dialogs.cpp
+++ b/engines/hopkins/dialogs.cpp
@@ -396,7 +396,7 @@ void DialogsManager::showInventory() {
 				if (inventIdx && inventCount <= 29) {
 					byte *obj = _vm->_objectsManager->loadObjectFromFile(inventIdx, false);
 					_vm->_graphicsManager->restoreSurfaceRect(_vm->_graphicsManager->_vesaBuffer, obj, _inventX + curPosX + 6,
-						curPosY + 120, _vm->_globals->_objectWidth, _vm->_globals->_objectHeight);
+						curPosY + 120, _vm->_objectsManager->getObjectWidth(), _vm->_objectsManager->getObjectHeight());
 					_vm->_globals->freeMemory(obj);
 				}
 				curPosX += 54;
diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp
index 8e25539..1f42bf1 100644
--- a/engines/hopkins/events.cpp
+++ b/engines/hopkins/events.cpp
@@ -369,8 +369,8 @@ void EventsManager::refreshScreenAndEvents() {
 		width = _mouseSizeX;
 		height = _mouseSizeY;
 		if (_mouseCursorId == 23) {
-			width = _vm->_globals->_objectWidth;
-			height = _vm->_globals->_objectHeight;
+			width = _vm->_objectsManager->getObjectWidth();
+			height = _vm->_objectsManager->getObjectHeight();
 		} else {
 			if (_breakoutFl) {
 				if (xp < _vm->_graphicsManager->_minX)
@@ -492,14 +492,14 @@ void EventsManager::updateCursor() {
 	Common::Rect clipBounds(_vm->_graphicsManager->_minX, _vm->_graphicsManager->_minY,
 		_vm->_graphicsManager->_maxX, _vm->_graphicsManager->_maxY);
 	_vm->_graphicsManager->_minX = _vm->_graphicsManager->_minY = 0;
-	_vm->_graphicsManager->_maxX = _vm->_globals->_objectWidth;
-	_vm->_graphicsManager->_maxY = _vm->_globals->_objectHeight;
+	_vm->_graphicsManager->_maxX = _vm->_objectsManager->getObjectWidth();
+	_vm->_graphicsManager->_maxY = _vm->_objectsManager->getObjectHeight();
 	int pitch = _vm->_graphicsManager->_lineNbr2;
-	_vm->_graphicsManager->_lineNbr2 = _vm->_globals->_objectWidth;
+	_vm->_graphicsManager->_lineNbr2 = _vm->_objectsManager->getObjectWidth();
 
 	// Create the temporary cursor surface
-	byte *cursorSurface = new byte[_vm->_globals->_objectHeight * _vm->_globals->_objectWidth];
-	Common::fill(cursorSurface, cursorSurface + _vm->_globals->_objectHeight * _vm->_globals->_objectWidth, 0);
+	byte *cursorSurface = new byte[_vm->_objectsManager->getObjectHeight() * _vm->_objectsManager->getObjectWidth()];
+	Common::fill(cursorSurface, cursorSurface + _vm->_objectsManager->getObjectHeight() * _vm->_objectsManager->getObjectWidth(), 0);
 
 	if (_mouseCursorId != 23) {
 		// Draw standard cursor
@@ -535,7 +535,7 @@ void EventsManager::updateCursor() {
 
 	// Set the ScummVM cursor from the surface
 	CursorMan.replaceCursorPalette(cursorPalette, 0, PALETTE_SIZE - 1);
-	CursorMan.replaceCursor(cursorSurface, _vm->_globals->_objectWidth, _vm->_globals->_objectHeight,
+	CursorMan.replaceCursor(cursorSurface, _vm->_objectsManager->getObjectWidth(), _vm->_objectsManager->getObjectHeight(),
 		xOffset, 0, 0, true);
 
 	// Delete the cursor surface and palette
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 93997ea..eff4c13 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -103,7 +103,6 @@ Globals::Globals(HopkinsEngine *vm) {
 	_linuxEndDemoFl = false;
 	_speed = 1;
 	_curObjectFileNum = 0;
-	_objectWidth = _objectHeight = 0;
 	_catalogPos = 0;
 	_catalogSize = 0;
 	iRegul = 0;
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 1b63e72..5be467c 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -240,7 +240,6 @@ public:
 	Directions _oceanDirection;
 	int _actionDirection;
 	int _inventory[36];
-	int _objectWidth, _objectHeight;
 	int _screenId;
 	int _prevScreenId;
 	int _characterMaxPosY;
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index b0170b2..5bf8342 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -88,6 +88,7 @@ ObjectsManager::ObjectsManager(HopkinsEngine *vm) {
 	_lastDirection = DIR_NONE;
 	_oldDirection = DIR_NONE;
 	_oldDirectionSpriteIdx = 59;
+	_objectWidth = _objectHeight = 0;
 }
 
 ObjectsManager::~ObjectsManager() {
@@ -130,8 +131,8 @@ byte *ObjectsManager::loadObjectFromFile(int objIndex, bool mode) {
 
 	int width = ObjectsManager::getWidth(_vm->_globals->_objectDataBuf, idx);
 	int height = ObjectsManager::getHeight(_vm->_globals->_objectDataBuf, idx);
-	_vm->_globals->_objectWidth = width;
-	_vm->_globals->_objectHeight = height;
+	_objectWidth = width;
+	_objectHeight = height;
 
 	if (mode) {
 		sprite_alone(_vm->_globals->_objectDataBuf, _vm->_eventsManager->_objectBuf, idx);
diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h
index b194749..44cd4e7 100644
--- a/engines/hopkins/objects.h
+++ b/engines/hopkins/objects.h
@@ -86,6 +86,7 @@ class ObjectsManager {
 private:
 	HopkinsEngine *_vm;
 
+	int _objectWidth, _objectHeight;
 	int _oldBorderSpriteIndex;
 	int _borderSpriteIndex;
 	byte *_spritePtr;
@@ -248,6 +249,8 @@ public:
 
 	void resetOldFrameIndex() { _oldFrameIndex = -1; }
 	void resetOldDirection()  { _oldDirection = DIR_NONE; }
+	int getObjectWidth()  { return _objectWidth; }
+	int getObjectHeight() { return _objectHeight; }
 };
 
 } // End of namespace Hopkins


Commit: 57abce19b1da832f1f108f6aff22e40649572f97
    https://github.com/scummvm/scummvm/commit/57abce19b1da832f1f108f6aff22e40649572f97
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-24T14:12:50-07:00

Commit Message:
HOPKINS: More refactoring of Globals

Changed paths:
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/lines.cpp
    engines/hopkins/lines.h
    engines/hopkins/objects.cpp
    engines/hopkins/objects.h



diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index eff4c13..015ebb1 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -94,8 +94,6 @@ Globals::Globals(HopkinsEngine *vm) {
 
 	for (int i = 0; i < 36; ++i)
 		_inventory[i] = 0;
-	for (int i = 0; i < 51; ++i)
-		Common::fill((byte *)&_sortedDisplay[i], (byte *)&_sortedDisplay[i] + sizeof(SortItem), 0);
 
 	// Initialize fields
 	_language = LANG_EN;
@@ -118,7 +116,6 @@ Globals::Globals(HopkinsEngine *vm) {
 	_menuMusicOff = 0;
 	_menuTextOff = 0;
 	_menuDisplayType = 0;
-	_sortedDisplayCount = 0;
 	_checkDistanceFl = false;
 	_characterType = 0;
 	_actionMoveTo = false;
@@ -159,10 +156,7 @@ Globals::Globals(HopkinsEngine *vm) {
 	_oldRouteFromY = 0;
 	_oldRouteDestX = 0;
 	_oldRouteDestY = 0;
-	_oldMouseZoneId = 0;
 	_oldZoneNum = 0;
-	_oldMouseX = 0;
-	_oldMouseY = 0;
 }
 
 Globals::~Globals() {
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 5be467c..05e563f 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -245,16 +245,12 @@ public:
 	int _characterMaxPosY;
 	int _baseMapColor;
 	int _spriteSize[500];
-	int _sortedDisplayCount;
-	int _oldMouseZoneId;
-	int _oldMouseX, _oldMouseY;
 	int _characterType;
 	uint _speed;
 	byte *_answerBuffer;
 	Savegame *_saveData;
 	Language _language;
 	HopkinsItem _hopkinsItem[70];
-	SortItem _sortedDisplay[51];
 
 	CreditItem _creditsItem[200];
 	int _creditsLineNumb;
diff --git a/engines/hopkins/lines.cpp b/engines/hopkins/lines.cpp
index 2cc86bd..33a2c79 100644
--- a/engines/hopkins/lines.cpp
+++ b/engines/hopkins/lines.cpp
@@ -77,6 +77,9 @@ LinesManager::LinesManager(HopkinsEngine *vm) {
 	_zoneSkipCount = 0;
 	_hotspotTextColor = 0;
 	_forceHideText = false;
+	_oldMouseZoneId = 0;
+	_oldMouseX = 0;
+	_oldMouseY = 0;
 }
 
 LinesManager::~LinesManager() {
@@ -2826,9 +2829,9 @@ void LinesManager::checkZone() {
 	}
 	if (_vm->_objectsManager->_forceZoneFl) {
 		_zoneSkipCount = 100;
-		_vm->_globals->_oldMouseZoneId = -1;
-		_vm->_globals->_oldMouseX = -200;
-		_vm->_globals->_oldMouseY = -220;
+		_oldMouseZoneId = -1;
+		_oldMouseX = -200;
+		_oldMouseY = -220;
 		_vm->_objectsManager->_forceZoneFl = false;
 	}
 
@@ -2839,12 +2842,12 @@ void LinesManager::checkZone() {
 	if (_vm->_globals->_freezeCharacterFl || (_route == (RouteItem *)g_PTRNUL) || _zoneSkipCount > 4) {
 		_zoneSkipCount = 0;
 		int zoneId;
-		if (_vm->_globals->_oldMouseX != mouseX || _vm->_globals->_oldMouseY != oldMouseY) {
+		if (_oldMouseX != mouseX || _oldMouseY != oldMouseY) {
 			zoneId = getMouseZone();
 		} else {
-			zoneId = _vm->_globals->_oldMouseZoneId;
+			zoneId = _oldMouseZoneId;
 		}
-		if (_vm->_globals->_oldMouseZoneId != zoneId) {
+		if (_oldMouseZoneId != zoneId) {
 			_vm->_graphicsManager->SETCOLOR4(251, 100, 100, 100);
 			_vm->_eventsManager->_mouseCursorId = 4;
 			_vm->_eventsManager->changeMouseCursor(4);
@@ -2860,7 +2863,7 @@ void LinesManager::checkZone() {
 				ZONEP[zoneId]._verbFl5 || ZONEP[zoneId]._verbFl6 ||
 				ZONEP[zoneId]._verbFl7 || ZONEP[zoneId]._verbFl8 ||
 				ZONEP[zoneId]._verbFl9 || ZONEP[zoneId]._verbFl10) {
-					if (_vm->_globals->_oldMouseZoneId != zoneId) {
+					if (_oldMouseZoneId != zoneId) {
 						_vm->_fontManager->initTextBuffers(5, ZONEP[zoneId]._messageId, _vm->_globals->_zoneFilename, 0, 430, 0, 0, 252);
 						_vm->_fontManager->showText(5);
 						_forceHideText = true;
@@ -2883,9 +2886,9 @@ void LinesManager::checkZone() {
 			}
 		}
 		_vm->_objectsManager->_zoneNum = zoneId;
-		_vm->_globals->_oldMouseX = mouseX;
-		_vm->_globals->_oldMouseY = oldMouseY;
-		_vm->_globals->_oldMouseZoneId = zoneId;
+		_oldMouseX = mouseX;
+		_oldMouseY = oldMouseY;
+		_oldMouseZoneId = zoneId;
 		if (_vm->_globals->_freezeCharacterFl && (_vm->_eventsManager->_mouseCursorId == 4)) {
 			if (zoneId != -1 && zoneId != 0)
 				_vm->_objectsManager->handleRightButton();
diff --git a/engines/hopkins/lines.h b/engines/hopkins/lines.h
index 82ad4a3..3a4d615 100644
--- a/engines/hopkins/lines.h
+++ b/engines/hopkins/lines.h
@@ -123,6 +123,7 @@ private:
 	int _newRouteIdx;
 	int _newPosX;
 	int _newPosY;
+	int _oldMouseX, _oldMouseY;
 
 	byte *_largeBuf;
 	RouteItem *_testRoute0;
@@ -131,6 +132,7 @@ private:
 	LigneItem _lineItem[400];
 	RouteItem _bestRoute[8001];
 	int _zoneSkipCount;
+	int _oldMouseZoneId;
 
 	int checkInventoryHotspotsRow(int posX, int minZoneNum, bool lastRow);
 	void removeZoneLine(int idx);
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 5bf8342..27689af 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -44,6 +44,10 @@ ObjectsManager::ObjectsManager(HopkinsEngine *vm) {
 	for (int i = 0; i < 36; ++i)
 		Common::fill((byte *)&_bob[i], (byte *)&_bob[i] + sizeof(BobItem), 0);
 
+	_sortedDisplayCount = 0;
+	for (int i = 0; i < 51; ++i)
+		Common::fill((byte *)&_sortedDisplay[i], (byte *)&_sortedDisplay[i] + sizeof(SortItem), 0);
+
 	_helicopterFl = false;
 	_priorityFl = false;
 	_oldBorderPos = Common::Point(0, 0);
@@ -300,7 +304,7 @@ void ObjectsManager::displaySprite() {
 	uint16 arr[50];
 
 	// Handle copying any background areas that text are going to be drawn on
-	_vm->_globals->_sortedDisplayCount = 0;
+	_sortedDisplayCount = 0;
 	for (int idx = 0; idx <= 10; ++idx) {
 		if (_vm->_fontManager->_textList[idx]._enabledFl && _vm->_fontManager->_text[idx]._textType != 2) {
 			clipX = _vm->_fontManager->_textList[idx]._pos.x - 2;
@@ -356,64 +360,64 @@ void ObjectsManager::displaySprite() {
 			checkHidingItem();
 	}
 
-	if (_priorityFl && _vm->_globals->_sortedDisplayCount) {
+	if (_priorityFl && _sortedDisplayCount) {
 		for (int i = 1; i <= 48; i++) 
 			arr[i] = i;
 
 		do {
 			loopCondFl = false;
-			for (int sortIdx = 1; sortIdx < _vm->_globals->_sortedDisplayCount; sortIdx++) {
-				if (_vm->_globals->_sortedDisplay[arr[sortIdx]]._priority > _vm->_globals->_sortedDisplay[arr[sortIdx + 1]]._priority) {
+			for (int sortIdx = 1; sortIdx < _sortedDisplayCount; sortIdx++) {
+				if (_sortedDisplay[arr[sortIdx]]._priority > _sortedDisplay[arr[sortIdx + 1]]._priority) {
 					SWAP(arr[sortIdx], arr[sortIdx + 1]);
 					loopCondFl = true;
 				}
 			}
 		} while (loopCondFl);
 
-		for (int sortIdx = 1; sortIdx < _vm->_globals->_sortedDisplayCount + 1; sortIdx++) {
+		for (int sortIdx = 1; sortIdx < _sortedDisplayCount + 1; sortIdx++) {
 			int idx = arr[sortIdx];
-			switch (_vm->_globals->_sortedDisplay[idx]._sortMode) {
+			switch (_sortedDisplay[idx]._sortMode) {
 			case SORT_BOB:
-				setBobInfo(_vm->_globals->_sortedDisplay[idx]._index);
+				setBobInfo(_sortedDisplay[idx]._index);
 				break;
 			case SORT_SPRITE:
-				DEF_SPRITE(_vm->_globals->_sortedDisplay[idx]._index);
+				DEF_SPRITE(_sortedDisplay[idx]._index);
 				break;
 			case SORT_HIDING:
-				displayHiding(_vm->_globals->_sortedDisplay[idx]._index);
+				displayHiding(_sortedDisplay[idx]._index);
 				break;
 			default:
 				break;
 			}
-			_vm->_globals->_sortedDisplay[idx]._sortMode = SORT_NONE;
+			_sortedDisplay[idx]._sortMode = SORT_NONE;
 		}
 	} else {
-		for (int idx = 1; idx < _vm->_globals->_sortedDisplayCount + 1; ++idx) {
-			switch (_vm->_globals->_sortedDisplay[idx]._sortMode) {
+		for (int idx = 1; idx < _sortedDisplayCount + 1; ++idx) {
+			switch (_sortedDisplay[idx]._sortMode) {
 			case SORT_BOB:
-				setBobInfo(_vm->_globals->_sortedDisplay[idx]._index);
+				setBobInfo(_sortedDisplay[idx]._index);
 				break;
 			case SORT_SPRITE:
-				DEF_SPRITE(_vm->_globals->_sortedDisplay[idx]._index);
+				DEF_SPRITE(_sortedDisplay[idx]._index);
 				break;
 			case SORT_HIDING:
-				displayHiding(_vm->_globals->_sortedDisplay[idx]._index);
+				displayHiding(_sortedDisplay[idx]._index);
 				break;
 			default:
 				break;
 			}
-			_vm->_globals->_sortedDisplay[idx]._sortMode = SORT_NONE;
+			_sortedDisplay[idx]._sortMode = SORT_NONE;
 		}
 	}
 
 	// Reset the Sort array
 	for (int idx = 0; idx < 50; ++idx) {
-		_vm->_globals->_sortedDisplay[idx]._sortMode = SORT_NONE;
-		_vm->_globals->_sortedDisplay[idx]._index = 0;
-		_vm->_globals->_sortedDisplay[idx]._priority = 0;
+		_sortedDisplay[idx]._sortMode = SORT_NONE;
+		_sortedDisplay[idx]._index = 0;
+		_sortedDisplay[idx]._priority = 0;
 	}
 
-	_vm->_globals->_sortedDisplayCount = 0;
+	_sortedDisplayCount = 0;
 
 	_vm->_dialogsManager->drawInvent(_oldBorderPos, _oldBorderSpriteIndex, _borderPos, _borderSpriteIndex);
 
@@ -907,12 +911,12 @@ void ObjectsManager::computeSprite(int idx) {
 
 // Before Sort
 void ObjectsManager::beforeSort(SortMode sortMode, int index, int priority) {
-	++_vm->_globals->_sortedDisplayCount;
-	assert (_vm->_globals->_sortedDisplayCount <= 48);
+	++_sortedDisplayCount;
+	assert (_sortedDisplayCount <= 48);
 
-	_vm->_globals->_sortedDisplay[_vm->_globals->_sortedDisplayCount]._sortMode = sortMode;
-	_vm->_globals->_sortedDisplay[_vm->_globals->_sortedDisplayCount]._index = index;
-	_vm->_globals->_sortedDisplay[_vm->_globals->_sortedDisplayCount]._priority = priority;
+	_sortedDisplay[_sortedDisplayCount]._sortMode = sortMode;
+	_sortedDisplay[_sortedDisplayCount]._index = index;
+	_sortedDisplay[_sortedDisplayCount]._priority = priority;
 }
 
 // Display BOB Anim
diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h
index 44cd4e7..80dfb3a 100644
--- a/engines/hopkins/objects.h
+++ b/engines/hopkins/objects.h
@@ -101,6 +101,8 @@ private:
 	int _curGestureFile;
 	byte *_gestureBuf;
 	int _homeRateCounter;
+	int _sortedDisplayCount;
+	SortItem _sortedDisplay[51];
 
 	void sprite_alone(const byte *objectData, byte *sprite, int objIndex);
 	void removeObjectDataBuf();


Commit: ac338c3517d85156e83884164d378c3bf76851e5
    https://github.com/scummvm/scummvm/commit/ac338c3517d85156e83884164d378c3bf76851e5
Author: Strangerke (strangerke at scummvm.org)
Date: 2013-03-24T14:56:06-07:00

Commit Message:
HOPKINS: Some more refactoring in Globals

Changed paths:
    engines/hopkins/files.cpp
    engines/hopkins/files.h
    engines/hopkins/globals.cpp
    engines/hopkins/globals.h
    engines/hopkins/graphics.cpp
    engines/hopkins/objects.cpp
    engines/hopkins/objects.h
    engines/hopkins/sound.cpp
    engines/hopkins/talk.cpp



diff --git a/engines/hopkins/files.cpp b/engines/hopkins/files.cpp
index 78ff7b2..98cc344 100644
--- a/engines/hopkins/files.cpp
+++ b/engines/hopkins/files.cpp
@@ -35,6 +35,9 @@ namespace Hopkins {
 
 FileManager::FileManager(HopkinsEngine *vm) {
 	_vm = vm;
+
+	_catalogPos = 0;
+	_catalogSize = 0;
 }
 
 /**
@@ -196,8 +199,8 @@ byte *FileManager::searchCat(const Common::String &file, CatMode mode) {
 		if (name == filename) {
 			// Found entry for file, so get it's details from the catalogue entry
 			const byte *pData = ptr + offsetVal;
-			_vm->_globals->_catalogPos = READ_LE_UINT32(pData + 15);
-			_vm->_globals->_catalogSize = READ_LE_UINT32(pData + 19);
+			_catalogPos = READ_LE_UINT32(pData + 15);
+			_catalogSize = READ_LE_UINT32(pData + 19);
 			matchFlag = true;
 		}
 
@@ -215,13 +218,13 @@ byte *FileManager::searchCat(const Common::String &file, CatMode mode) {
 		if (!f.open(secondaryFilename))
 			error("CHARGE_FICHIER");
 
-		f.seek(_vm->_globals->_catalogPos);
+		f.seek(_catalogPos);
 
-		byte *catData = _vm->_globals->allocMemory(_vm->_globals->_catalogSize);
+		byte *catData = _vm->_globals->allocMemory(_catalogSize);
 		if (catData == g_PTRNUL)
 			error("CHARGE_FICHIER");
 
-		readStream(f, catData, _vm->_globals->_catalogSize);
+		readStream(f, catData, _catalogSize);
 		f.close();
 		result = catData;
 	} else {
diff --git a/engines/hopkins/files.h b/engines/hopkins/files.h
index 145c267..6d2904a 100644
--- a/engines/hopkins/files.h
+++ b/engines/hopkins/files.h
@@ -38,6 +38,9 @@ enum CatMode { RES_INI = 1, RES_REP = 2, RES_LIN = 3, RES_PER = 5,
 
 class FileManager {
 public:
+	uint32 _catalogPos;
+	uint32 _catalogSize;
+
 	HopkinsEngine *_vm;
 
 	FileManager(HopkinsEngine *vm);
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp
index 015ebb1..a495a80 100644
--- a/engines/hopkins/globals.cpp
+++ b/engines/hopkins/globals.cpp
@@ -78,10 +78,8 @@ Globals::Globals(HopkinsEngine *vm) {
 		Common::fill((byte *)&Liste[i], (byte *)&Liste[i] + sizeof(ListeItem), 0);
 	for (int i = 0; i < 35; ++i)
 		Common::fill((byte *)&Liste2[i], (byte *)&Liste2[i] + sizeof(ListeItem), 0);
-	for (int i = 0; i < 30; ++i) {
-		Common::fill((byte *)&_lockedAnims[i], (byte *)&_lockedAnims[i] + sizeof(LockAnimItem), 0);
+	for (int i = 0; i < 30; ++i)
 		Common::fill((byte *)&VBob[i], (byte *)&VBob[i] + sizeof(VBobItem), 0);
-	}
 	for (int i = 0; i < 300; ++i)
 		Common::fill((byte *)&_objectAuthIcons[i], (byte *)&_objectAuthIcons[i] + sizeof(ObjectAuthIcon), 0);
 	for (int i = 0; i < 25; ++i)
@@ -101,8 +99,6 @@ Globals::Globals(HopkinsEngine *vm) {
 	_linuxEndDemoFl = false;
 	_speed = 1;
 	_curObjectFileNum = 0;
-	_catalogPos = 0;
-	_catalogSize = 0;
 	iRegul = 0;
 	_exitId = 0;
 	_characterSpriteBuf = 0;
diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h
index 05e563f..c1725d5 100644
--- a/engines/hopkins/globals.h
+++ b/engines/hopkins/globals.h
@@ -50,11 +50,6 @@ struct ListeItem {
 	int _height;
 };
 
-struct LockAnimItem {
-	bool _enableFl;
-	int _posX;
-};
-
 struct VBobItem {
 	byte *_spriteData;
 	int _displayMode;
@@ -271,9 +266,6 @@ public:
 
 	byte *_optionDialogSpr;
 	bool _optionDialogFl;
-	uint32 _catalogPos;
-	uint32 _catalogSize;
-	LockAnimItem _lockedAnims[30];
 	int _oldRouteFromX;
 	int _oldRouteFromY;
 	int _oldRouteDestX;
diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp
index 5c65e59..14f23ad 100644
--- a/engines/hopkins/graphics.cpp
+++ b/engines/hopkins/graphics.cpp
@@ -310,7 +310,7 @@ void GraphicsManager::loadPCX640(byte *surface, const Common::String &file, byte
 		// Load PCX from within the PIC resource
 		if (!f.open("PIC.RES"))
 			error("Error opening PIC.RES.");
-		f.seek(_vm->_globals->_catalogPos);
+		f.seek(_vm->_fileManager->_catalogPos);
 	} else {
 		// Load stand alone PCX file
 		if (!f.open(file))
@@ -1074,7 +1074,7 @@ void GraphicsManager::endDisplayBob() {
 	}
 
 	for (int idx = 1; idx <= 29; ++idx) {
-		_vm->_globals->_lockedAnims[idx]._enableFl = false;
+		_vm->_objectsManager->_lockedAnims[idx]._enableFl = false;
 	}
 
 	for (int idx = 1; idx <= 20; ++idx) {
diff --git a/engines/hopkins/objects.cpp b/engines/hopkins/objects.cpp
index 27689af..cd8cc1b 100644
--- a/engines/hopkins/objects.cpp
+++ b/engines/hopkins/objects.cpp
@@ -44,6 +44,10 @@ ObjectsManager::ObjectsManager(HopkinsEngine *vm) {
 	for (int i = 0; i < 36; ++i)
 		Common::fill((byte *)&_bob[i], (byte *)&_bob[i] + sizeof(BobItem), 0);
 
+	for (int i = 0; i < 30; ++i) {
+		Common::fill((byte *)&_lockedAnims[i], (byte *)&_lockedAnims[i] + sizeof(LockAnimItem), 0);
+	}
+
 	_sortedDisplayCount = 0;
 	for (int i = 0; i < 51; ++i)
 		Common::fill((byte *)&_sortedDisplay[i], (byte *)&_sortedDisplay[i] + sizeof(SortItem), 0);
@@ -953,8 +957,8 @@ void ObjectsManager::displayBobAnim() {
 		byte *dataPtr = _bob[idx]._animData + 20;
 		int dataIdx = _bob[idx]._animDataIdx;
 		_bob[idx]._xp = READ_LE_INT16(dataPtr + 2 * dataIdx);
-		if (_vm->_globals->_lockedAnims[idx]._enableFl)
-			_bob[idx]._xp = _vm->_globals->_lockedAnims[idx]._posX;
+		if (_vm->_objectsManager->_lockedAnims[idx]._enableFl)
+			_bob[idx]._xp = _vm->_objectsManager->_lockedAnims[idx]._posX;
 		if ( PERSO_ON && idx > 20 )
 			_bob[idx]._xp += _vm->_eventsManager->_startPos.x;
 
@@ -986,8 +990,8 @@ void ObjectsManager::displayBobAnim() {
 				byte *bobData = _bob[idx]._animData + 20;
 				_bob[idx]._xp = READ_LE_INT16(bobData);
 
-				if (_vm->_globals->_lockedAnims[idx]._enableFl)
-					_bob[idx]._xp = _vm->_globals->_lockedAnims[idx]._posX;
+				if (_vm->_objectsManager->_lockedAnims[idx]._enableFl)
+					_bob[idx]._xp = _vm->_objectsManager->_lockedAnims[idx]._posX;
 				if (PERSO_ON && idx > 20)
 					_bob[idx]._xp += _vm->_eventsManager->_startPos.x;
 
@@ -3044,7 +3048,7 @@ void ObjectsManager::loadLinkFile(const Common::String &file) {
 	Common::File f;
 	Common::String filename = file + ".LNK";
 	byte *ptr = _vm->_fileManager->searchCat(filename, RES_LIN);
-	size_t nbytes = _vm->_globals->_catalogSize;
+	size_t nbytes = _vm->_fileManager->_catalogSize;
 	if (ptr == g_PTRNUL) {
 		if (!f.open(filename))
 			error("Error opening file - %s", filename.c_str());
@@ -3652,8 +3656,8 @@ void ObjectsManager::handleForest(int screenId, int minX, int maxX, int minY, in
 }
 
 void ObjectsManager::lockAnimX(int idx, int x) {
-	_vm->_globals->_lockedAnims[idx]._enableFl = true;
-	_vm->_globals->_lockedAnims[idx]._posX = x;
+	_vm->_objectsManager->_lockedAnims[idx]._enableFl = true;
+	_vm->_objectsManager->_lockedAnims[idx]._posX = x;
 }
 
 /**
diff --git a/engines/hopkins/objects.h b/engines/hopkins/objects.h
index 80dfb3a..f43b09f 100644
--- a/engines/hopkins/objects.h
+++ b/engines/hopkins/objects.h
@@ -80,6 +80,11 @@ struct BobItem {
 	int _zoomOutFactor;
 };
 
+struct LockAnimItem {
+	bool _enableFl;
+	int _posX;
+};
+
 class HopkinsEngine;
 
 class ObjectsManager {
@@ -167,6 +172,7 @@ public:
 	byte *_headSprites;
 	SpriteItem _sprite[6];
 	BobItem _bob[36];
+	LockAnimItem _lockedAnims[30];
 
 	bool PERSO_ON;
 	bool BOBTOUS;
diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp
index 1605b03..246e611 100644
--- a/engines/hopkins/sound.cpp
+++ b/engines/hopkins/sound.cpp
@@ -528,8 +528,8 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
 		else if (_vm->_globals->_language == LANG_SP)
 			filename = "RES_VES.RES";
 
-		catPos = _vm->_globals->_catalogPos;
-		catLen = _vm->_globals->_catalogSize;
+		catPos = _vm->_fileManager->_catalogPos;
+		catLen = _vm->_fileManager->_catalogSize;
 	} else if (!_vm->_fileManager->searchCat(filename + ".APC", RES_VOI)) {
 		if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
 			filename = "ENG_VOI.RES";
@@ -541,8 +541,8 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
 		else if (_vm->_globals->_language == LANG_SP)
 			filename = "RES_VES.RES";
 
-		catPos = _vm->_globals->_catalogPos;
-		catLen = _vm->_globals->_catalogSize;
+		catPos = _vm->_fileManager->_catalogPos;
+		catLen = _vm->_fileManager->_catalogSize;
 	} else if (!_vm->_fileManager->searchCat(filename + ".RAW", RES_VOI)) {
 		if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS)
 			filename = "ENG_VOI.RES";
@@ -554,8 +554,8 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) {
 		else if (_vm->_globals->_language == LANG_SP)
 			filename = "RES_VES.RES";
 
-		catPos = _vm->_globals->_catalogPos;
-		catLen = _vm->_globals->_catalogSize;
+		catPos = _vm->_fileManager->_catalogPos;
+		catLen = _vm->_fileManager->_catalogSize;
 	} else {
 		if (!f.exists(filename + ".WAV")) {
 			if (!f.exists(filename + ".APC"))
diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp
index 30148bd..562d96d 100644
--- a/engines/hopkins/talk.cpp
+++ b/engines/hopkins/talk.cpp
@@ -56,7 +56,7 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename)
 	bool oldDisableInventFl = _vm->_globals->_disableInventFl;
 	_vm->_globals->_disableInventFl = true;
 	_characterBuffer = _vm->_fileManager->searchCat(filename, RES_PER);
-	_characterSize = _vm->_globals->_catalogSize;
+	_characterSize = _vm->_fileManager->_catalogSize;
 	if (_characterBuffer == g_PTRNUL) {
 		_characterBuffer = _vm->_fileManager->loadFile(filename);
 		_characterSize = _vm->_fileManager->fileSize(filename);
@@ -156,7 +156,7 @@ void TalkManager::startStaticCharacterDialogue(const Common::String &filename) {
 	bool oldDisableInventFl = _vm->_globals->_disableInventFl;
 	_vm->_globals->_disableInventFl = true;
 	_characterBuffer = _vm->_fileManager->searchCat(filename, RES_PER);
-	_characterSize = _vm->_globals->_catalogSize;
+	_characterSize = _vm->_fileManager->_catalogSize;
 	if (_characterBuffer == g_PTRNUL) {
 		_characterBuffer = _vm->_fileManager->loadFile(filename);
 		_characterSize = _vm->_fileManager->fileSize(filename);
@@ -976,7 +976,7 @@ void TalkManager::animateObject(const Common::String &filename) {
 	_vm->_eventsManager->_mouseCursorId = 4;
 	_vm->_eventsManager->changeMouseCursor(0);
 	_characterBuffer = _vm->_fileManager->searchCat(filename, RES_PER);
-	_characterSize = _vm->_globals->_catalogSize;
+	_characterSize = _vm->_fileManager->_catalogSize;
 	if (_characterBuffer == g_PTRNUL) {
 		_characterBuffer = _vm->_fileManager->loadFile(filename);
 		_characterSize = _vm->_fileManager->fileSize(filename);






More information about the Scummvm-git-logs mailing list