diff options
| author | Strangerke | 2014-01-09 08:21:52 +0100 | 
|---|---|---|
| committer | Strangerke | 2014-01-09 08:21:52 +0100 | 
| commit | d8d4a2c3bb635151e3c044ab7b87496eb6854305 (patch) | |
| tree | 81cd1f110e3750f81c8f9375cb47a24f61082296 | |
| parent | 0a5d92527dae7c8b0fc49dbfef186016d16da499 (diff) | |
| download | scummvm-rg350-d8d4a2c3bb635151e3c044ab7b87496eb6854305.tar.gz scummvm-rg350-d8d4a2c3bb635151e3c044ab7b87496eb6854305.tar.bz2 scummvm-rg350-d8d4a2c3bb635151e3c044ab7b87496eb6854305.zip | |
MORTEVIELLE: Get rid of setParent() in Menu and MouseHandler
| -rw-r--r-- | engines/mortevielle/actions.cpp | 80 | ||||
| -rw-r--r-- | engines/mortevielle/dialogs.cpp | 28 | ||||
| -rw-r--r-- | engines/mortevielle/graphics.cpp | 4 | ||||
| -rw-r--r-- | engines/mortevielle/menu.cpp | 17 | ||||
| -rw-r--r-- | engines/mortevielle/menu.h | 3 | ||||
| -rw-r--r-- | engines/mortevielle/mortevielle.cpp | 13 | ||||
| -rw-r--r-- | engines/mortevielle/mortevielle.h | 4 | ||||
| -rw-r--r-- | engines/mortevielle/mouse.cpp | 8 | ||||
| -rw-r--r-- | engines/mortevielle/mouse.h | 2 | ||||
| -rw-r--r-- | engines/mortevielle/outtext.cpp | 6 | ||||
| -rw-r--r-- | engines/mortevielle/saveload.cpp | 8 | ||||
| -rw-r--r-- | engines/mortevielle/utils.cpp | 208 | 
12 files changed, 190 insertions, 191 deletions
| diff --git a/engines/mortevielle/actions.cpp b/engines/mortevielle/actions.cpp index b68dd48b0f..0c45f8dba5 100644 --- a/engines/mortevielle/actions.cpp +++ b/engines/mortevielle/actions.cpp @@ -40,7 +40,7 @@ namespace Mortevielle {   * @remarks	Originally called 'taller'   */  void MortevielleEngine::fctMove() { -	int oldMenu = (_menu._moveMenu[6]._menuId << 8) | _menu._moveMenu[6]._actionId; +	int oldMenu = (_menu->_moveMenu[6]._menuId << 8) | _menu->_moveMenu[6]._actionId;  	if ((_coreVar._currPlace == ROOM26) && (_currAction == oldMenu)) {  		_coreVar._currPlace = LANDING;  		_caff = _coreVar._currPlace; @@ -65,10 +65,10 @@ void MortevielleEngine::fctMove() {  		if (_num == 1) {  			_coreVar._currPlace = OWN_ROOM; -			_menu.setDestinationText(OWN_ROOM); +			_menu->setDestinationText(OWN_ROOM);  		} else if (_num == 7) {  			_coreVar._currPlace = ATTIC; -			_menu.setDestinationText(ATTIC); +			_menu->setDestinationText(ATTIC);  		} else if (_num != 6)  			_coreVar._currPlace = ROOM26; @@ -85,10 +85,10 @@ void MortevielleEngine::fctMove() {  	}  	exitRoom();  	int menuChoice = 1; -	oldMenu = (_menu._moveMenu[menuChoice]._menuId << 8) | _menu._moveMenu[menuChoice]._actionId; +	oldMenu = (_menu->_moveMenu[menuChoice]._menuId << 8) | _menu->_moveMenu[menuChoice]._actionId;  	while (oldMenu != _currAction) {  		++menuChoice; -		oldMenu = (_menu._moveMenu[menuChoice]._menuId << 8) | _menu._moveMenu[menuChoice]._actionId; +		oldMenu = (_menu->_moveMenu[menuChoice]._menuId << 8) | _menu->_moveMenu[menuChoice]._actionId;  	}  	switch (_coreVar._currPlace) { @@ -97,14 +97,14 @@ void MortevielleEngine::fctMove() {  			gotoManorFront();  		else if (menuChoice == 2)  			checkManorDistance(); -		_menu.setDestinationText(_coreVar._currPlace); +		_menu->setDestinationText(_coreVar._currPlace);  		return;  	case INSIDE_WELL:  		if (menuChoice == 1)  			floodedInWell();  		else if (menuChoice == 2)  			gotoManorBack(); -		_menu.setDestinationText(_coreVar._currPlace); +		_menu->setDestinationText(_coreVar._currPlace);  		return;  	case BUREAU:  		if (menuChoice == 1) @@ -193,7 +193,7 @@ void MortevielleEngine::fctMove() {  	if ((menuChoice < 5) || (menuChoice == 13) || (menuChoice == 14))  		prepareDisplayText();  	resetRoomVariables(_coreVar._currPlace); -	_menu.setDestinationText(_coreVar._currPlace); +	_menu->setDestinationText(_coreVar._currPlace);  }  /** @@ -224,7 +224,7 @@ void MortevielleEngine::fctTake() {  					_coreVar._secretPassageObjectId = 0;  				if (_coreVar._currPlace == WELL)  					_coreVar._wellObjectId = 0; -				_menu.unsetSearchMenu(); +				_menu->unsetSearchMenu();  				_obpart = false;  				prepareDisplayText();  			} else { @@ -325,7 +325,7 @@ void MortevielleEngine::fctInventoryTake() {  	int oldMenu = 0;  	do {  		++inventIndex; -		oldMenu = (_menu._inventoryMenu[inventIndex]._menuId << 8) | _menu._inventoryMenu[inventIndex]._actionId; +		oldMenu = (_menu->_inventoryMenu[inventIndex]._menuId << 8) | _menu->_inventoryMenu[inventIndex]._actionId;  	} while (oldMenu != _currAction);  	int cz = 0;  	int cy = 0; @@ -336,7 +336,7 @@ void MortevielleEngine::fctInventoryTake() {  	} while (cz != inventIndex);  	cz = _coreVar._inventory[cy];  	_coreVar._inventory[cy] = 0; -	_menu.setInventoryText(); +	_menu->setInventoryText();  	putInHand(cz);  	_crep = 998;  	clearDescriptionBar(); @@ -536,7 +536,7 @@ void MortevielleEngine::fctSearch() {  				if (_curSearchObjId != 0) {  					_searchCount = 0;  					_heroSearching = true; -					_menu.setSearchMenu(); +					_menu->setSearchMenu();  					prepareNextObject();  				} else  					_crep = 997; @@ -607,7 +607,7 @@ void MortevielleEngine::fctOpen() {  	if (_caff == ROOM26) {  		if (_roomDoorId != OWN_ROOM) { -			_currAction = _menu._opcodeEnter; +			_currAction = _menu->_opcodeEnter;  			_syn = true;  		} else  			_crep = 997; @@ -740,12 +740,12 @@ void MortevielleEngine::fctPlace() {  						_dialogManager.show(alertTxt);  						bool enterPassageFl = _dialogManager.showKnowledgeCheck(); -						_mouse.hideMouse(); +						_mouse->hideMouse();  						clearScreen();  						drawRightFrame();  						clearDescriptionBar();  						clearVerbBar(); -						_mouse.showMouse(); +						_mouse->showMouse();  						prepareRoom();  						drawClock();  						if (_currBitIndex != 0) @@ -753,12 +753,12 @@ void MortevielleEngine::fctPlace() {  						else  							displayAloneText(); -						_menu.displayMenu(); +						_menu->displayMenu();  						if (enterPassageFl) {  							_coreVar._currPlace = SECRET_PASSAGE; -							_menu.setDestinationText(SECRET_PASSAGE); +							_menu->setDestinationText(SECRET_PASSAGE);  						} else { -							_menu.setDestinationText(_coreVar._currPlace); +							_menu->setDestinationText(_coreVar._currPlace);  							setPal(14);  							drawPicture();  							displayAnimFrame(1, 2); @@ -1132,7 +1132,7 @@ void MortevielleEngine::fctEat() {  		_coreVar._currPlace = DINING_ROOM;  		_caff = DINING_ROOM;  		resetRoomVariables(_coreVar._currPlace); -		_menu.setDestinationText(_coreVar._currPlace); +		_menu->setDestinationText(_coreVar._currPlace);  		int day, hour, minute;  		updateHour(day, hour, minute); @@ -1168,7 +1168,7 @@ void MortevielleEngine::fctEat() {  void MortevielleEngine::fctEnter() {  	if ((_coreVar._currPlace == MANOR_FRONT) || (_coreVar._currPlace == MANOR_BACK)) {  		gotoDiningRoom(); -		_menu.setDestinationText(_coreVar._currPlace); +		_menu->setDestinationText(_coreVar._currPlace);  	} else if (_coreVar._currPlace == LANDING)  		showMoveMenuAlert();  	else if (_roomDoorId == OWN_ROOM) @@ -1193,7 +1193,7 @@ void MortevielleEngine::fctEnter() {  				++_coreVar._faithScore;  				_coreVar._currPlace = LANDING;  				_currMenu = MENU_DISCUSS; -				_currAction = (_menu._discussMenu[charIndex]._menuId << 8) | _menu._discussMenu[charIndex]._actionId; +				_currAction = (_menu->_discussMenu[charIndex]._menuId << 8) | _menu->_discussMenu[charIndex]._actionId;  				_syn = true;  				if (_roomDoorId == JULIA_ROOM) {  					_col = true; @@ -1214,7 +1214,7 @@ void MortevielleEngine::fctEnter() {  			_coreVar._currPlace = _roomDoorId;  			prepareDisplayText();  			resetRoomVariables(_coreVar._currPlace); -			_menu.setDestinationText(_coreVar._currPlace); +			_menu->setDestinationText(_coreVar._currPlace);  			_roomDoorId = OWN_ROOM;  			_savedBitIndex = 0;  			_currBitIndex = 0; @@ -1237,7 +1237,7 @@ void MortevielleEngine::fctSleep() {  		prepareDisplayText();  		drawPictureWithText();  		resetRoomVariables(_coreVar._currPlace); -		_menu.setDestinationText(_coreVar._currPlace); +		_menu->setDestinationText(_coreVar._currPlace);  	}  	clearVerbBar();  	clearDescriptionBar(); @@ -1321,7 +1321,7 @@ void MortevielleEngine::fctLeave() {  		if (_crep == 0)  			_crep = nextPlace;  		resetRoomVariables(nextPlace); -		_menu.setDestinationText(nextPlace); +		_menu->setDestinationText(nextPlace);  	}  } @@ -1394,7 +1394,7 @@ void MortevielleEngine::fctDiscuss() {  		int oldMenu;  		do {  			++cx; -			oldMenu = (_menu._discussMenu[cx]._menuId << 8) | _menu._discussMenu[cx]._actionId; +			oldMenu = (_menu->_discussMenu[cx]._menuId << 8) | _menu->_discussMenu[cx]._actionId;  		} while (oldMenu != _currAction);  		_caff = 69 + cx;  		drawPictureWithText(); @@ -1403,7 +1403,7 @@ void MortevielleEngine::fctDiscuss() {  	}  	testKey(false);  	menuUp(); -	_mouse.hideMouse(); +	_mouse->hideMouse();  	clearScreen();  	drawDiscussionBox();  	startDialog(displId); @@ -1417,7 +1417,7 @@ void MortevielleEngine::fctDiscuss() {  	}  	lib[46] = lib[45];  	lib[45] = ' '; -	_mouse.showMouse(); +	_mouse->showMouse();  	do {  		choice = 0;  		int posX = 0; @@ -1444,11 +1444,11 @@ void MortevielleEngine::fctDiscuss() {  		bool click;  		do {  			bool dummyFl; -			_mouse.moveMouse(dummyFl, retKey); +			_mouse->moveMouse(dummyFl, retKey);  			if (shouldQuit())  				return; -			_mouse.getMousePosition(x, y, click); +			_mouse->getMousePosition(x, y, click);  			x *= (3 - kResolutionScaler);  			if (x > 319)  				cx = 41; @@ -1533,11 +1533,11 @@ void MortevielleEngine::fctDiscuss() {  				_coreVar._faithScore += 3;  				displId = 139;  			} -			_mouse.hideMouse(); +			_mouse->hideMouse();  			clearScreen();  			drawDiscussionBox();  			startDialog(displId); -			_mouse.showMouse(); +			_mouse->showMouse();  			if ((displId == 84) || (displId == 86)) {  				_coreVar._pctHintFound[5] = '*';  				_coreVar._availableQuestion[7] = '*'; @@ -1551,32 +1551,32 @@ void MortevielleEngine::fctDiscuss() {  				_coreVar._pctHintFound[8] = '*';  				_coreVar._availableQuestion[32] = '*';  			} -			_mouse.hideMouse(); +			_mouse->hideMouse();  			clearScreen(); -			_mouse.showMouse(); +			_mouse->showMouse();  		}  	} while ((choice != 46) && (displId != 138));  	if (_col) {  		_coreVar._faithScore += (3 * (_coreVar._faithScore / 10)); -		_mouse.hideMouse(); +		_mouse->hideMouse();  		clearScreen();  		drawDiscussionBox();  		startDialog(138); -		_mouse.showMouse(); +		_mouse->showMouse();  		_col = false;  		_coreVar._currPlace = LANDING;  	}  	_controlMenu = 0; -	_mouse.hideMouse(); +	_mouse->hideMouse();  	clearScreen();  	drawRightFrame(); -	_mouse.showMouse(); +	_mouse->showMouse();  	showPeoplePresent(_currBitIndex);  	prepareRoom();  	drawClock();  	prepareDisplayText();  	/* chech;*/ -	_menu.setDestinationText(_coreVar._currPlace); +	_menu->setDestinationText(_coreVar._currPlace);  	clearVerbBar();  } @@ -1625,13 +1625,13 @@ void MortevielleEngine::endGame() {  	clearVerbBar();  	handleDescriptionText(9, 1509);  	testKey(false); -	_mouse.hideMouse(); +	_mouse->hideMouse();  	_caff = 70;  	_text.taffich();  	clearScreen();  	drawDiscussionBox();  	startDialog(141); -	_mouse.showMouse(); +	_mouse->showMouse();  	clearUpperLeftPart();  	handleDescriptionText(9, 1509);  	handleDescriptionText(2, 142); diff --git a/engines/mortevielle/dialogs.cpp b/engines/mortevielle/dialogs.cpp index 9a2ade60ab..9e197abdd4 100644 --- a/engines/mortevielle/dialogs.cpp +++ b/engines/mortevielle/dialogs.cpp @@ -43,7 +43,7 @@ int DialogManager::show(const Common::String &msg) {  	// Make a copy of the current screen surface for later restore  	_vm->_backgroundSurface.copyFrom(_vm->_screenSurface); -	_vm->_mouse.hideMouse(); +	_vm->_mouse->hideMouse();  	while (_vm->keyPressed())  		_vm->getChar(); @@ -99,17 +99,17 @@ int DialogManager::show(const Common::String &msg) {  		limit[2][1] = ((uint)(320 + ((uint)esp >> 1)) / 2) * kResolutionScaler;  		limit[2][2] = (limit[2][1]) + 40;  	} -	_vm->_mouse.showMouse(); +	_vm->_mouse->showMouse();  	int id = 0;  	bool dummyFl = false;  	bool test3;  	do {  		char dummyKey = '\377'; -		_vm->_mouse.moveMouse(dummyFl, dummyKey); +		_vm->_mouse->moveMouse(dummyFl, dummyKey);  		if (_vm->shouldQuit())  			return 0; -		curPos = _vm->_mouse._pos; +		curPos = _vm->_mouse->_pos;  		bool newaff = false;  		if ((curPos.y > 95) && (curPos.y < 105)) {  			bool test1 = (curPos.x > limit[1][1]) && (curPos.x < limit[1][2]); @@ -125,7 +125,7 @@ int DialogManager::show(const Common::String &msg) {  				else  					ix = 2;  				if (ix != id) { -					_vm->_mouse.hideMouse(); +					_vm->_mouse->hideMouse();  					if (id != 0) {  						setPosition(id, coldep, esp); @@ -142,12 +142,12 @@ int DialogManager::show(const Common::String &msg) {  					_vm->_screenSurface.drawString(tmp2, 1);  					id = ix; -					_vm->_mouse.showMouse(); +					_vm->_mouse->showMouse();  				}  			}  		}  		if ((id != 0) && !newaff) { -			_vm->_mouse.hideMouse(); +			_vm->_mouse->hideMouse();  			setPosition(id, coldep, esp);  			Common::String tmp3(" "); @@ -156,13 +156,13 @@ int DialogManager::show(const Common::String &msg) {  			_vm->_screenSurface.drawString(tmp3, 0);  			id = 0; -			_vm->_mouse.showMouse(); +			_vm->_mouse->showMouse();  		}  		test3 = (curPos.y > 95) && (curPos.y < 105) && (((curPos.x > limit[1][1]) && (curPos.x < limit[1][2]))  		                                    || ((curPos.x > limit[2][1]) && (curPos.x < limit[2][2])));  	} while (!_vm->getMouseClick());  	_vm->setMouseClick(false); -	_vm->_mouse.hideMouse(); +	_vm->_mouse->hideMouse();  	if (!test3)  {  		id = 1;  		setPosition(1, coldep, esp); @@ -171,7 +171,7 @@ int DialogManager::show(const Common::String &msg) {  		tmp4 += " ";  		_vm->_screenSurface.drawString(tmp4, 1);  	} -	_vm->_mouse.showMouse(); +	_vm->_mouse->showMouse();  	/* Restore the background area */  	_vm->_screenSurface.copyFrom(_vm->_backgroundSurface, 0, 0); @@ -292,9 +292,9 @@ bool DialogManager::showKnowledgeCheck() {  	int correctCount = 0;  	for (int indx = 0; indx < 10; ++indx) { -		_vm->_mouse.hideMouse(); +		_vm->_mouse->hideMouse();  		_vm->clearScreen(); -		_vm->_mouse.showMouse(); +		_vm->_mouse->showMouse();  		int dialogHeight = 23;  		_vm->_screenSurface.fillRect(15, Common::Rect(0, 14, 630, dialogHeight));  		Common::String tmpStr = _vm->getString(textIndexArr[indx]); @@ -342,12 +342,12 @@ bool DialogManager::showKnowledgeCheck() {  			_vm->setMouseClick(false);  			bool flag;  			char key; -			_vm->_mouse.moveMouse(flag, key); +			_vm->_mouse->moveMouse(flag, key);  			if (_vm->shouldQuit())  				return false;  			currChoice = 1; -			while (coor[currChoice]._enabled && !_vm->_mouse.isMouseIn(coor[currChoice]._rect)) +			while (coor[currChoice]._enabled && !_vm->_mouse->isMouseIn(coor[currChoice]._rect))  				++currChoice;  			if (coor[currChoice]._enabled) {  				if ((prevChoice != 0) && (prevChoice != currChoice)) { diff --git a/engines/mortevielle/graphics.cpp b/engines/mortevielle/graphics.cpp index daf7926438..7a7e9265c5 100644 --- a/engines/mortevielle/graphics.cpp +++ b/engines/mortevielle/graphics.cpp @@ -1070,7 +1070,7 @@ void ScreenSurface::drawString(const Common::String &l, int command) {  	if (l == "")  		return; -	_vm->_mouse.hideMouse(); +	_vm->_mouse->hideMouse();  	Common::Point pt = _textPos;  	int charWidth = 6; @@ -1102,7 +1102,7 @@ void ScreenSurface::drawString(const Common::String &l, int command) {  		_vm->_screenSurface.writeCharacter(Common::Point(pt.x, pt.y), l[x - 1], color);  		pt.x += charWidth;  	} -	_vm->_mouse.showMouse(); +	_vm->_mouse->showMouse();  }  /** diff --git a/engines/mortevielle/menu.cpp b/engines/mortevielle/menu.cpp index 641a527c98..32e4dd25b6 100644 --- a/engines/mortevielle/menu.cpp +++ b/engines/mortevielle/menu.cpp @@ -48,7 +48,8 @@ const byte menuConstants[8][4] = {  	{62, 46, 13, 10}  }; -Menu::Menu() { +Menu::Menu(MortevielleEngine *vm) { +	_vm = vm;  	_opcodeAttach = _opcodeWait = _opcodeForce = _opcodeSleep = OPCODE_NONE;  	_opcodeListen = _opcodeEnter = _opcodeClose = _opcodeSearch = OPCODE_NONE;  	_opcodeKnock = _opcodeScratch = _opcodeRead = _opcodeEat = OPCODE_NONE; @@ -295,7 +296,7 @@ void Menu::enableMenuItem(MenuItem item) {  }  void Menu::displayMenu() { -	_vm->_mouse.hideMouse(); +	_vm->_mouse->hideMouse();  	_vm->_screenSurface.fillRect(7, Common::Rect(0, 0, 639, 10));  	int col = 28 * kResolutionScaler; @@ -322,7 +323,7 @@ void Menu::displayMenu() {  		}  		col += 48 * kResolutionScaler;  	} -	_vm->_mouse.showMouse(); +	_vm->_mouse->showMouse();  }  /** @@ -424,7 +425,7 @@ void Menu::menuDown(int ii) {  	// Draw the menu  	int minX = menuConstants[ii - 1][0] << 3;  	int lineNum = menuConstants[ii - 1][3]; -	_vm->_mouse.hideMouse(); +	_vm->_mouse->hideMouse();  	int deltaX = 6;  	int maxX = minX + (menuConstants[ii - 1][2] * deltaX) + 6;  	if ((ii == 4) && (_vm->getLanguage() == Common::EN_ANY)) @@ -483,7 +484,7 @@ void Menu::menuDown(int ii) {  		_vm->_screenSurface.putxy(minX, _vm->_screenSurface._textPos.y + 8);  	}  	_multiTitle = true; -	_vm->_mouse.showMouse(); +	_vm->_mouse->showMouse();  }  /** @@ -523,7 +524,7 @@ void Menu::updateMenu() {  	if (!_menuActive)  		return; -	Common::Point curPos = _vm->_mouse._pos; +	Common::Point curPos = _vm->_mouse->_pos;  	if (!_vm->getMouseClick()) {  		if (curPos == _vm->_prevPos)  			return; @@ -590,10 +591,6 @@ void Menu::updateMenu() {  	}  } -void Menu::setParent(MortevielleEngine *vm) { -	_vm = vm; -} -  void Menu::initMenu() {  	Common::File f; diff --git a/engines/mortevielle/menu.h b/engines/mortevielle/menu.h index debf5b09b6..d8a3b4d0d6 100644 --- a/engines/mortevielle/menu.h +++ b/engines/mortevielle/menu.h @@ -60,7 +60,7 @@ private:  	void menuDown(int ii);  public: -	Menu(); +	Menu(MortevielleEngine *vm);  	bool _menuActive;  	bool _menuSelected; @@ -103,7 +103,6 @@ public:  	int _opcodeSLook;  	MenuItem _actionMenu[12]; -	void setParent(MortevielleEngine *vm);  	void readVerbNums(Common::File &f, int dataSize);  	void setText(MenuItem item, Common::String name);  	void setDestinationText(int roomId); diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp index d434150977..01750b0512 100644 --- a/engines/mortevielle/mortevielle.cpp +++ b/engines/mortevielle/mortevielle.cpp @@ -53,11 +53,11 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const MortevielleGameDescr  	_debugger.setParent(this);  	_dialogManager.setParent(this);  	_screenSurface.setParent(this); -	_mouse.setParent(this); +	_mouse = new MouseHandler(this);  	_text.setParent(this);  	_soundManager.setParent(this);  	_savegameManager.setParent(this); -	_menu.setParent(this); +	_menu = new Menu(this);  	_lastGameFrame = 0;  	_mouseClick = false; @@ -105,6 +105,9 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const MortevielleGameDescr  }  MortevielleEngine::~MortevielleEngine() { +	delete _menu; +	delete _mouse; +  	free(_curPict);  	free(_curAnim);  	free(_rightFramePict); @@ -284,7 +287,7 @@ Common::ErrorCode MortevielleEngine::loadMortDat() {  		} else if ((!strncmp(dataType, "GSTR", 4)) && (!_txxFileFl)) {  			readStaticStrings(f, dataSize, kGameStrings);  		} else if (!strncmp(dataType, "VERB", 4)) { -			_menu.readVerbNums(f, dataSize); +			_menu->readVerbNums(f, dataSize);  		} else {  			// Unknown section  			f.skip(dataSize); @@ -419,13 +422,13 @@ void MortevielleEngine::mainGame() {  	for (_crep = 1; _crep <= _x26KeyCount; ++_crep)  		decodeNumber(&_cfiecBuffer[161 * 16], (_cfiecBufferSize - (161 * 16)) / 64); -	_menu.initMenu(); +	_menu->initMenu();  	charToHour();  	initGame();  	clearScreen();  	drawRightFrame(); -	_mouse.showMouse(); +	_mouse->showMouse();  	// Loop to play the game  	do { diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h index 5ae94987a0..b0f1af3e99 100644 --- a/engines/mortevielle/mortevielle.h +++ b/engines/mortevielle/mortevielle.h @@ -434,8 +434,8 @@ public:  	Common::RandomSource _randomSource;  	SoundManager _soundManager;  	SavegameManager _savegameManager; -	Menu _menu; -	MouseHandler _mouse; +	Menu *_menu; +	MouseHandler *_mouse;  	TextHandler _text;  	DialogManager _dialogManager; diff --git a/engines/mortevielle/mouse.cpp b/engines/mortevielle/mouse.cpp index 480b4381ef..2077a4cdc5 100644 --- a/engines/mortevielle/mouse.cpp +++ b/engines/mortevielle/mouse.cpp @@ -33,6 +33,10 @@  namespace Mortevielle { +MouseHandler::MouseHandler(MortevielleEngine *vm) { +	_vm = vm; +} +  /**   * Initialize the mouse   * @remarks	Originally called 'init_mouse' @@ -264,8 +268,4 @@ bool MouseHandler::isMouseIn(Common::Rect r) {  	return false;  } -void MouseHandler::setParent(MortevielleEngine *vm) { -	_vm = vm; -} -  } // End of namespace Mortevielle diff --git a/engines/mortevielle/mouse.h b/engines/mortevielle/mouse.h index 90d1ef310e..81c02dc8bd 100644 --- a/engines/mortevielle/mouse.h +++ b/engines/mortevielle/mouse.h @@ -38,8 +38,8 @@ private:  	MortevielleEngine *_vm;  public:  	Common::Point _pos; +	MouseHandler(MortevielleEngine *vm); -	void setParent(MortevielleEngine *vm);  	void initMouse();  	void hideMouse();  	void showMouse(); diff --git a/engines/mortevielle/outtext.cpp b/engines/mortevielle/outtext.cpp index d50f4005de..79b04e39a5 100644 --- a/engines/mortevielle/outtext.cpp +++ b/engines/mortevielle/outtext.cpp @@ -218,7 +218,7 @@ void TextHandler::taffich() {  	}  	_vm->_destinationOk = true; -	_vm->_mouse.hideMouse(); +	_vm->_mouse->hideMouse();  	drawingStartPos = 0;  	Common::String filename, altFilename; @@ -291,8 +291,8 @@ void TextHandler::taffich() {  		}  		loadAniFile(filename, drawingStartPos, drawingSize);  	} -	_vm->_mouse.showMouse(); -	if ((a < COAT_ARMS) && ((_vm->_maff < COAT_ARMS) || (_vm->_coreVar._currPlace == LANDING)) && (_vm->_currAction != _vm->_menu._opcodeEnter)) { +	_vm->_mouse->showMouse(); +	if ((a < COAT_ARMS) && ((_vm->_maff < COAT_ARMS) || (_vm->_coreVar._currPlace == LANDING)) && (_vm->_currAction != _vm->_menu->_opcodeEnter)) {  		if ((a == ATTIC) || (a == CELLAR))  			_vm->displayAloneText();  		else if (!_vm->_blo) diff --git a/engines/mortevielle/saveload.cpp b/engines/mortevielle/saveload.cpp index c14a03cd60..9f6a36c98c 100644 --- a/engines/mortevielle/saveload.cpp +++ b/engines/mortevielle/saveload.cpp @@ -116,14 +116,14 @@ bool SavegameManager::loadSavegame(const Common::String &filename) {   * Load a saved game   */  Common::Error SavegameManager::loadGame(const Common::String &filename) { -	g_vm->_mouse.hideMouse(); +	g_vm->_mouse->hideMouse();  	g_vm->displayEmptyHand();  	if (loadSavegame(filename)) {  		/* Initialization */  		g_vm->charToHour();  		g_vm->initGame();  		g_vm->gameLoaded(); -		g_vm->_mouse.showMouse(); +		g_vm->_mouse->showMouse();  		return Common::kNoError;  	} else   		return Common::kUnknownError; @@ -136,7 +136,7 @@ Common::Error SavegameManager::saveGame(int n, const Common::String &saveName) {  	Common::OutSaveFile *f;  	int i; -	g_vm->_mouse.hideMouse(); +	g_vm->_mouse->hideMouse();  	g_vm->hourToChar();  	for (i = 0; i <= 389; ++i) @@ -165,7 +165,7 @@ Common::Error SavegameManager::saveGame(int n, const Common::String &saveName) {  	// Skipped: dialog asking to swap floppy -	g_vm->_mouse.showMouse(); +	g_vm->_mouse->showMouse();  	return Common::kNoError;  } diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp index c4f2d5714b..991ff893d6 100644 --- a/engines/mortevielle/utils.cpp +++ b/engines/mortevielle/utils.cpp @@ -92,8 +92,8 @@ bool MortevielleEngine::handleEvents() {  	case Common::EVENT_LBUTTONUP:  	case Common::EVENT_MOUSEMOVE:  		_mousePos = Common::Point(event.mouse.x, event.mouse.y / 2); -		_mouse._pos.x = event.mouse.x; -		_mouse._pos.y = event.mouse.y / 2; +		_mouse->_pos.x = event.mouse.x; +		_mouse->_pos.y = event.mouse.y / 2;  		if (event.type == Common::EVENT_LBUTTONDOWN)  			_mouseClick = true; @@ -208,7 +208,7 @@ void MortevielleEngine::initMouse() {  	CursorMan.replaceCursor(CURSOR_ARROW_DATA, 16, 16, 0, 0, 0xff);  	CursorMan.showMouse(true); -	_mouse.initMouse(); +	_mouse->initMouse();  }  /** @@ -261,8 +261,8 @@ void MortevielleEngine::handleAction() {  	bool handledOpcodeFl = false;  	_controlMenu = 0;  	if (!_keyPressedEsc) { -		_menu.drawMenu(); -		_menu._menuDisplayed = true; +		_menu->drawMenu(); +		_menu->_menuDisplayed = true;  		temps = 0;  		_key = 0;  		funct = false; @@ -270,25 +270,25 @@ void MortevielleEngine::handleAction() {  		_inMainGameLoop = true;  		do { -			_menu.updateMenu(); +			_menu->updateMenu();  			prepareRoom(); -			_mouse.moveMouse(funct, inkey); +			_mouse->moveMouse(funct, inkey);  			if (shouldQuit())  				return;  			++temps;  			if (keyPressed() || _mouseClick) {  				_soundManager._mixer->stopHandle(_soundManager._soundHandle);  			} -		} while (!((_menu._menuSelected) || (temps > lim) || (funct) || (_anyone))); +		} while (!((_menu->_menuSelected) || (temps > lim) || (funct) || (_anyone)));  		_inMainGameLoop = false; -		_menu.eraseMenu(); -		_menu._menuDisplayed = false; -		if (_menu._menuSelected && (_currMenu == MENU_SAVE)) { +		_menu->eraseMenu(); +		_menu->_menuDisplayed = false; +		if (_menu->_menuSelected && (_currMenu == MENU_SAVE)) {  			Common::String saveName = Common::String::format("Savegame #%d", _currAction & 15);  			_savegameManager.saveGame(_currAction & 15, saveName);  		} -		if (_menu._menuSelected && (_currMenu == MENU_LOAD)) +		if (_menu->_menuSelected && (_currMenu == MENU_LOAD))  			_savegameManager.loadGame((_currAction & 15) - 1);  		if (inkey == '\103') {       /* F9 */  			temps = _dialogManager.show(_hintPctMessage); @@ -321,12 +321,12 @@ void MortevielleEngine::handleAction() {  				_menuOpcode = _currAction;  			if (!_anyone) {  				if ((_heroSearching) || (_obpart)) { -					if (_mouse._pos.y < 12) +					if (_mouse->_pos.y < 12)  						return; -					if ((_currAction == _menu._opcodeSound) || (_currAction == _menu._opcodeLift)) { +					if ((_currAction == _menu->_opcodeSound) || (_currAction == _menu->_opcodeLift)) {  						handledOpcodeFl = true; -						if ((_currAction == _menu._opcodeLift) || (_obpart)) { +						if ((_currAction == _menu->_opcodeLift) || (_obpart)) {  							endSearch();  							_caff = _coreVar._currPlace;  							_crep = 998; @@ -503,48 +503,48 @@ void MortevielleEngine::showPeoplePresent(int bitIndex) {  	int xp = 580 - (_screenSurface.getStringWidth("LEO") / 2);  	for (int i = 1; i <= 8; ++i) -		_menu.disableMenuItem(_menu._discussMenu[i]); +		_menu->disableMenuItem(_menu->_discussMenu[i]);  	clearUpperRightPart();  	if ((bitIndex & 128) == 128) {  		_screenSurface.putxy(xp, 24);  		_screenSurface.drawString("LEO", 4); -		_menu.enableMenuItem(_menu._discussMenu[1]); +		_menu->enableMenuItem(_menu->_discussMenu[1]);  	}  	if ((bitIndex & 64) == 64) {  		_screenSurface.putxy(xp, 32);  		_screenSurface.drawString("PAT", 4); -		_menu.enableMenuItem(_menu._discussMenu[2]); +		_menu->enableMenuItem(_menu->_discussMenu[2]);  	}  	if ((bitIndex & 32) == 32) {  		_screenSurface.putxy(xp, 40);  		_screenSurface.drawString("GUY", 4); -		_menu.enableMenuItem(_menu._discussMenu[3]); +		_menu->enableMenuItem(_menu->_discussMenu[3]);  	}  	if ((bitIndex & 16) == 16) {  		_screenSurface.putxy(xp, 48);  		_screenSurface.drawString("EVA", 4); -		_menu.enableMenuItem(_menu._discussMenu[4]); +		_menu->enableMenuItem(_menu->_discussMenu[4]);  	}  	if ((bitIndex & 8) == 8) {  		_screenSurface.putxy(xp, 56);  		_screenSurface.drawString("BOB", 4); -		_menu.enableMenuItem(_menu._discussMenu[5]); +		_menu->enableMenuItem(_menu->_discussMenu[5]);  	}  	if ((bitIndex & 4) == 4) {  		_screenSurface.putxy(xp, 64);  		_screenSurface.drawString("LUC", 4); -		_menu.enableMenuItem(_menu._discussMenu[6]); +		_menu->enableMenuItem(_menu->_discussMenu[6]);  	}  	if ((bitIndex & 2) == 2) {  		_screenSurface.putxy(xp, 72);  		_screenSurface.drawString("IDA", 4); -		_menu.enableMenuItem(_menu._discussMenu[7]); +		_menu->enableMenuItem(_menu->_discussMenu[7]);  	}  	if ((bitIndex & 1) == 1) {  		_screenSurface.putxy(xp, 80);  		_screenSurface.drawString("MAX", 4); -		_menu.enableMenuItem(_menu._discussMenu[8]); +		_menu->enableMenuItem(_menu->_discussMenu[8]);  	}  	_currBitIndex = bitIndex;  } @@ -605,7 +605,7 @@ int MortevielleEngine::getPresenceStatsGreenRoom() {  	else if ((hour >= 0) && (hour < 8))  		retVal = 70; -	_menu.updateMenu(); +	_menu->updateMenu();  	return retVal;  } @@ -698,7 +698,7 @@ int MortevielleEngine::getPresenceStatsRedRoom() {   */  void MortevielleEngine::displayAloneText() {  	for (int i = 1; i <= 8; ++i) -		_menu.disableMenuItem(_menu._discussMenu[i]); +		_menu->disableMenuItem(_menu->_discussMenu[i]);  	Common::String sYou = getEngineString(S_YOU);  	Common::String sAre = getEngineString(S_ARE); @@ -1284,7 +1284,7 @@ void MortevielleEngine::loseGame() {  	resetOpenObjects();  	_roomDoorId = OWN_ROOM;  	_curSearchObjId = 0; -	_menu.unsetSearchMenu(); +	_menu->unsetSearchMenu();  	if (!_blo)  		getPresence(MANOR_FRONT); @@ -1333,7 +1333,7 @@ void MortevielleEngine::startDialog(int16 rep) {  	assert(rep >= 0); -	_mouse.hideMouse(); +	_mouse->hideMouse();  	Common::String dialogStr = getString(rep + kDialogStringIndex);  	_text.displayStr(dialogStr, 230, 4, 65, 26, 5);  	_dialogManager.drawF3F8(); @@ -1346,7 +1346,7 @@ void MortevielleEngine::startDialog(int16 rep) {  			return;  	} while (key != 66);  	clearScreen(); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -1357,7 +1357,7 @@ void MortevielleEngine::endSearch() {  	_heroSearching = false;  	_obpart = false;  	_searchCount = 0; -	_menu.unsetSearchMenu(); +	_menu->unsetSearchMenu();  }  /** @@ -1383,13 +1383,13 @@ void MortevielleEngine::gotoDiningRoom() {  		handleDescriptionText(2, 33);  		testKey(false);  		menuUp(); -		_mouse.hideMouse(); +		_mouse->hideMouse();  		clearScreen();  		drawDiscussionBox();  		startDialog(140);  		drawRightFrame();  		drawClock(); -		_mouse.showMouse(); +		_mouse->showMouse();  		_coreVar._currPlace = OWN_ROOM;  		prepareDisplayText();  		resetPresenceInRooms(DINING_ROOM); @@ -1451,8 +1451,8 @@ void MortevielleEngine::floodedInWell() {   * @remarks	Originally called 'antegame'   */  void MortevielleEngine::gameLoaded() { -	_mouse.hideMouse(); -	_menu._menuDisplayed = false; +	_mouse->hideMouse(); +	_menu->_menuDisplayed = false;  	_loseGame = true;  	_anyone = false;  	_destinationOk = true; @@ -1490,11 +1490,11 @@ void MortevielleEngine::gameLoaded() {  	handleDescriptionText(2, _crep);  	clearVerbBar();  	_endGame = false; -	_menu.setDestinationText(_coreVar._currPlace); -	_menu.setInventoryText(); +	_menu->setDestinationText(_coreVar._currPlace); +	_menu->setInventoryText();  	if (_coreVar._selectedObjectId != 0)  		displayItemInHand(_coreVar._selectedObjectId + 400); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -1508,7 +1508,7 @@ void MortevielleEngine::handleOpcode() {  	_keyPressedEsc = false;  	if (!_anyone) {  		if (_uptodatePresence) { -			if ((_currMenu == MENU_MOVE) || (_currAction == _menu._opcodeLeave) || (_currAction == _menu._opcodeSleep) || (_currAction == _menu._opcodeEat)) { +			if ((_currMenu == MENU_MOVE) || (_currAction == _menu->_opcodeLeave) || (_currAction == _menu->_opcodeSleep) || (_currAction == _menu->_opcodeEat)) {  				_controlMenu = 4;  				menuUp();  				return; @@ -1521,60 +1521,60 @@ void MortevielleEngine::handleOpcode() {  			fctDiscuss();  		else if (_currMenu == MENU_INVENTORY)  			fctInventoryTake(); -		else if (_currAction == _menu._opcodeAttach) +		else if (_currAction == _menu->_opcodeAttach)  			fctAttach(); -		else if (_currAction == _menu._opcodeWait) +		else if (_currAction == _menu->_opcodeWait)  			fctWait(); -		else if (_currAction == _menu._opcodeForce) +		else if (_currAction == _menu->_opcodeForce)  			fctForce(); -		else if (_currAction == _menu._opcodeSleep) +		else if (_currAction == _menu->_opcodeSleep)  			fctSleep(); -		else if (_currAction == _menu._opcodeListen) +		else if (_currAction == _menu->_opcodeListen)  			fctListen(); -		else if (_currAction == _menu._opcodeEnter) +		else if (_currAction == _menu->_opcodeEnter)  			fctEnter(); -		else if (_currAction == _menu._opcodeClose) +		else if (_currAction == _menu->_opcodeClose)  			fctClose(); -		else if (_currAction == _menu._opcodeSearch) +		else if (_currAction == _menu->_opcodeSearch)  			fctSearch(); -		else if (_currAction == _menu._opcodeKnock) +		else if (_currAction == _menu->_opcodeKnock)  			fctKnock(); -		else if (_currAction == _menu._opcodeScratch) +		else if (_currAction == _menu->_opcodeScratch)  			fctScratch(); -		else if (_currAction == _menu._opcodeRead) +		else if (_currAction == _menu->_opcodeRead)  			fctRead(); -		else if (_currAction == _menu._opcodeEat) +		else if (_currAction == _menu->_opcodeEat)  			fctEat(); -		else if (_currAction == _menu._opcodePlace) +		else if (_currAction == _menu->_opcodePlace)  			fctPlace(); -		else if (_currAction == _menu._opcodeOpen) +		else if (_currAction == _menu->_opcodeOpen)  			fctOpen(); -		else if (_currAction == _menu._opcodeTake) +		else if (_currAction == _menu->_opcodeTake)  			fctTake(); -		else if (_currAction == _menu._opcodeLook) +		else if (_currAction == _menu->_opcodeLook)  			fctLook(); -		else if (_currAction == _menu._opcodeSmell) +		else if (_currAction == _menu->_opcodeSmell)  			fctSmell(); -		else if (_currAction == _menu._opcodeSound) +		else if (_currAction == _menu->_opcodeSound)  			fctSound(); -		else if (_currAction == _menu._opcodeLeave) +		else if (_currAction == _menu->_opcodeLeave)  			fctLeave(); -		else if (_currAction == _menu._opcodeLift) +		else if (_currAction == _menu->_opcodeLift)  			fctLift(); -		else if (_currAction == _menu._opcodeTurn) +		else if (_currAction == _menu->_opcodeTurn)  			fctTurn(); -		else if (_currAction == _menu._opcodeSSearch) +		else if (_currAction == _menu->_opcodeSSearch)  			fctSelfSearch(); -		else if (_currAction == _menu._opcodeSRead) +		else if (_currAction == _menu->_opcodeSRead)  			fctSelfRead(); -		else if (_currAction == _menu._opcodeSPut) +		else if (_currAction == _menu->_opcodeSPut)  			fctSelfPut(); -		else if (_currAction == _menu._opcodeSLook) +		else if (_currAction == _menu->_opcodeSLook)  			fctSelftLook();  		_hiddenHero = false; -		if (_currAction == _menu._opcodeSHide) +		if (_currAction == _menu->_opcodeSHide)  			fctSelfHide();  	} else if (_anyone) {  		interactNPC(); @@ -1640,9 +1640,9 @@ void MortevielleEngine::charToHour() {   * @remarks	Originally called 'clsf1'   */  void MortevielleEngine::clearUpperLeftPart() { -	_mouse.hideMouse(); +	_mouse->hideMouse();  	_screenSurface.fillRect(0, Common::Rect(0, 11, 514, 175)); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -1650,7 +1650,7 @@ void MortevielleEngine::clearUpperLeftPart() {   * @remarks	Originally called 'clsf2'   */  void MortevielleEngine::clearDescriptionBar() { -	_mouse.hideMouse(); +	_mouse->hideMouse();  	if (_largestClearScreen) {  		_screenSurface.fillRect(0, Common::Rect(1, 176, 633, 199));  		_screenSurface.drawBox(0, 176, 634, 23, 15); @@ -1659,7 +1659,7 @@ void MortevielleEngine::clearDescriptionBar() {  		_screenSurface.fillRect(0, Common::Rect(1, 176, 633, 190));  		_screenSurface.drawBox(0, 176, 634, 14, 15);  	} -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -1667,10 +1667,10 @@ void MortevielleEngine::clearDescriptionBar() {   * @remarks	Originally called 'clsf3'   */  void MortevielleEngine::clearVerbBar() { -	_mouse.hideMouse(); +	_mouse->hideMouse();  	_screenSurface.fillRect(0, Common::Rect(1, 192, 633, 199));  	_screenSurface.drawBox(0, 191, 634, 8, 15); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -1680,7 +1680,7 @@ void MortevielleEngine::clearVerbBar() {  void MortevielleEngine::clearUpperRightPart() {  	Common::String st; -	_mouse.hideMouse(); +	_mouse->hideMouse();  	// Clear ambiance description  	_screenSurface.fillRect(15, Common::Rect(544, 93, 600, 98)); @@ -1697,7 +1697,7 @@ void MortevielleEngine::clearUpperRightPart() {  	// Clear person list  	_screenSurface.fillRect(15, Common::Rect(560, 24, 610, 86)); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -2135,10 +2135,10 @@ void MortevielleEngine::showTitleScreen() {   * @remarks	Originally called 'dessine'   */  void MortevielleEngine::draw(int x, int y) { -	_mouse.hideMouse(); +	_mouse->hideMouse();  	setPal(_numpal);  	displayPicture(_curPict, x, y); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -2147,9 +2147,9 @@ void MortevielleEngine::draw(int x, int y) {   */  void MortevielleEngine::drawRightFrame() {  	setPal(89); -	_mouse.hideMouse(); +	_mouse->hideMouse();  	displayPicture(_rightFramePict, 0, 0); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -2205,7 +2205,7 @@ void MortevielleEngine::prepareRoom() {  		_minute = 30;  		drawClock();  	} -	if (_mouse._pos.y < 12) +	if (_mouse->_pos.y < 12)  		return;  	if (!_blo) { @@ -2221,8 +2221,8 @@ void MortevielleEngine::prepareRoom() {  		int newTime = readclock();  		if ((newTime - _currentTime) > _inGameHourDuration) { -			bool activeMenu = _menu._menuActive; -			_menu.eraseMenu(); +			bool activeMenu = _menu->_menuActive; +			_menu->eraseMenu();  			_currentHourCount += ((newTime - _currentTime) / _inGameHourDuration);  			_currentTime = newTime;  			switch (_place) { @@ -2289,7 +2289,7 @@ void MortevielleEngine::prepareRoom() {  			}  			if (activeMenu) -				_menu.drawMenu(); +				_menu->drawMenu();  		}  	}  	_endTime = readclock(); @@ -2315,7 +2315,7 @@ void MortevielleEngine::drawClock() {  	const int y = 123;  	const int rg = 9; -	_mouse.hideMouse(); +	_mouse->hideMouse();  	_screenSurface.drawRectangle(570, 118, 20, 10);  	_screenSurface.drawRectangle(578, 114, 6, 18); @@ -2332,7 +2332,7 @@ void MortevielleEngine::drawClock() {  		hour12 = 12;  	_screenSurface.drawLine(((uint)x >> 1) * kResolutionScaler, y, ((uint)(x + cv[0][hour12 - 1]) >> 1) * kResolutionScaler, y + cv[1][hour12 - 1], 1); -	_mouse.showMouse(); +	_mouse->showMouse();  	_screenSurface.putxy(568, 154);  	if (_hour > 11) @@ -2622,8 +2622,8 @@ void MortevielleEngine::displayItemInHand(int objId) {  	if (objId != 500)  		strp = getString(objId - 501 + kInventoryStringIndex); -	_menu.setText(_menu._inventoryMenu[8], strp); -	_menu.disableMenuItem(_menu._inventoryMenu[8]); +	_menu->setText(_menu->_inventoryMenu[8], strp); +	_menu->disableMenuItem(_menu->_inventoryMenu[8]);  }  /** @@ -2924,7 +2924,7 @@ void MortevielleEngine::testKey(bool d) {  	int x, y;  	bool click; -	_mouse.hideMouse(); +	_mouse->hideMouse();  	displayStatusInDescriptionBar('K');  	// Wait for release from any key or mouse button @@ -2932,7 +2932,7 @@ void MortevielleEngine::testKey(bool d) {  		_key = gettKeyPressed();  	do { -		_mouse.getMousePosition(x, y, click); +		_mouse->getMousePosition(x, y, click);  		quest = keyPressed();  		if (quest && shouldQuit())  			return; @@ -2943,14 +2943,14 @@ void MortevielleEngine::testKey(bool d) {  		if (d)  			prepareRoom();  		quest = keyPressed(); -		_mouse.getMousePosition(x, y, click); +		_mouse->getMousePosition(x, y, click);  		if (shouldQuit())  			return;  	} while (!(quest || (click) || (d && _anyone)));  	if (quest)  		gettKeyPressed();  	setMouseClick(false); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** @@ -3061,7 +3061,7 @@ void MortevielleEngine::getSearchDescription(int objId) {   * @remarks	Originally called 'mennor'   */  void MortevielleEngine::menuUp() { -	_menu.menuUp(_currMenu); +	_menu->menuUp(_currMenu);  }  /** @@ -3101,7 +3101,7 @@ void MortevielleEngine::addObjectToInventory(int objectId) {  	if (_coreVar._inventory[i] == 0) {  		_coreVar._inventory[i] = objectId; -		_menu.setInventoryText(); +		_menu->setInventoryText();  	} else  		// Inventory is full  		_crep = 139; @@ -3112,8 +3112,8 @@ void MortevielleEngine::addObjectToInventory(int objectId) {   * @remarks	Originally called 'quelquun'   */  void MortevielleEngine::interactNPC() { -	if (_menu._menuDisplayed) -		_menu.eraseMenu(); +	if (_menu->_menuDisplayed) +		_menu->eraseMenu();  	endSearch();  	_crep = 997; @@ -3134,12 +3134,12 @@ L1:  		else  			_coreVar._faithScore += 3 * (_coreVar._faithScore / 10);  		exitRoom(); -		_menu.setDestinationText(LANDING); +		_menu->setDestinationText(LANDING);  		int charIdx = convertBitIndexToCharacterIndex(_currBitIndex);  		_caff = 69 + charIdx;  		_crep = _caff;  		_currMenu = MENU_DISCUSS; -		_currAction = (_menu._discussMenu[charIdx]._menuId << 8) | _menu._discussMenu[charIdx]._actionId; +		_currAction = (_menu->_discussMenu[charIdx]._menuId << 8) | _menu->_discussMenu[charIdx]._actionId;  		_syn = true;  		_col = true;  	} else { @@ -3157,8 +3157,8 @@ L1:  			prepareDisplayText();  		}  	} -	if (_menu._menuDisplayed) -		_menu.drawMenu(); +	if (_menu->_menuDisplayed) +		_menu->drawMenu();  }  /** @@ -3206,12 +3206,12 @@ void MortevielleEngine::displayStatusArrow() {  		touch = '\0';  		do { -			_mouse.moveMouse(qust, touch); +			_mouse->moveMouse(qust, touch);  			if (shouldQuit())  				return;  			if (getMouseClick()) -				inRect = (_mouse._pos.x < 256 * kResolutionScaler) && (_mouse._pos.y < 176) && (_mouse._pos.y > 12); +				inRect = (_mouse->_pos.x < 256 * kResolutionScaler) && (_mouse->_pos.y < 176) && (_mouse->_pos.y > 12);  			prepareRoom();  		} while (!(qust || inRect || _anyone)); @@ -3223,8 +3223,8 @@ void MortevielleEngine::displayStatusArrow() {  		_keyPressedEsc = true;  	if (inRect) { -		_x = _mouse._pos.x; -		_y = _mouse._pos.y; +		_x = _mouse->_pos.x; +		_y = _mouse->_pos.y;  	}  } @@ -3292,7 +3292,7 @@ void MortevielleEngine::displayLookScreen(int objId) {  	int mdes = _caff;  	_caff = objId; -	if (((_caff > 29) && (_caff < 33)) || (_caff == 144) || (_caff == 147) || (_caff == 149) || (_currAction == _menu._opcodeSLook)) { +	if (((_caff > 29) && (_caff < 33)) || (_caff == 144) || (_caff == 147) || (_caff == 149) || (_currAction == _menu->_opcodeSLook)) {  		drawPictureWithText();  		if ((_caff > 29) && (_caff < 33))  			handleDescriptionText(2, _caff); @@ -3305,7 +3305,7 @@ void MortevielleEngine::displayLookScreen(int objId) {  	} else {  		_obpart = true;  		_crep = _caff + 400; -		_menu.setSearchMenu(); +		_menu->setSearchMenu();  	}  } @@ -3357,10 +3357,10 @@ int MortevielleEngine::checkLeaveSecretPassage() {   * @remarks	Originally called 'fenat'   */  void MortevielleEngine::displayStatusInDescriptionBar(char stat) { -	_mouse.hideMouse(); +	_mouse->hideMouse();  	_screenSurface.writeCharacter(Common::Point(306, 193), stat, 12);  	_screenSurface.drawBox(300, 191, 16, 8, 15); -	_mouse.showMouse(); +	_mouse->showMouse();  }  /** | 
