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

Strangerke Strangerke at scummvm.org
Thu Jan 9 08:22:51 CET 2014


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

Summary:
0a5d92527d AVALANCHE: Avoid check in isHolding when _thing isn't set
d8d4a2c3bb MORTEVIELLE: Get rid of setParent() in Menu and MouseHandler


Commit: 0a5d92527dae7c8b0fc49dbfef186016d16da499
    https://github.com/scummvm/scummvm/commit/0a5d92527dae7c8b0fc49dbfef186016d16da499
Author: Strangerke (strangerke at scummvm.org)
Date: 2014-01-08T22:54:25-08:00

Commit Message:
AVALANCHE: Avoid check in isHolding when _thing isn't set

Changed paths:
    engines/avalanche/parser.cpp



diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp
index 811e71e..7ba482f 100644
--- a/engines/avalanche/parser.cpp
+++ b/engines/avalanche/parser.cpp
@@ -1040,6 +1040,8 @@ bool Parser::isHolding() {
 	// Also object
 	if ((51 <= _thing) && (_thing <= 99))
 		return true;
+	if (_thing == 0)
+		return false;
 
 	bool holdingResult = false;
 


Commit: d8d4a2c3bb635151e3c044ab7b87496eb6854305
    https://github.com/scummvm/scummvm/commit/d8d4a2c3bb635151e3c044ab7b87496eb6854305
Author: Strangerke (strangerke at scummvm.org)
Date: 2014-01-08T23:21:52-08:00

Commit Message:
MORTEVIELLE: Get rid of setParent() in Menu and MouseHandler

Changed paths:
    engines/mortevielle/actions.cpp
    engines/mortevielle/dialogs.cpp
    engines/mortevielle/graphics.cpp
    engines/mortevielle/menu.cpp
    engines/mortevielle/menu.h
    engines/mortevielle/mortevielle.cpp
    engines/mortevielle/mortevielle.h
    engines/mortevielle/mouse.cpp
    engines/mortevielle/mouse.h
    engines/mortevielle/outtext.cpp
    engines/mortevielle/saveload.cpp
    engines/mortevielle/utils.cpp



diff --git a/engines/mortevielle/actions.cpp b/engines/mortevielle/actions.cpp
index b68dd48..0c45f8d 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 9a2ade6..9e197ab 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 daf7926..7a7e926 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 641a527..32e4dd2 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 debf5b0..d8a3b4d 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 d434150..01750b0 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 5ae9498..b0f1af3 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 480b438..2077a4c 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 90d1ef3..81c02dc 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 d50f400..79b04e3 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 c14a03c..9f6a36c 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 c4f2d57..991ff89 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();
 }
 
 /**






More information about the Scummvm-git-logs mailing list