mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-04 01:46:42 +00:00
MORTEVIELLE: Get rid of setParent() in Menu and MouseHandler
This commit is contained in:
parent
0a5d92527d
commit
d8d4a2c3bb
@ -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);
|
||||
|
@ -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)) {
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
@ -434,8 +434,8 @@ public:
|
||||
Common::RandomSource _randomSource;
|
||||
SoundManager _soundManager;
|
||||
SavegameManager _savegameManager;
|
||||
Menu _menu;
|
||||
MouseHandler _mouse;
|
||||
Menu *_menu;
|
||||
MouseHandler *_mouse;
|
||||
TextHandler _text;
|
||||
DialogManager _dialogManager;
|
||||
|
||||
|
@ -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
|
||||
|
@ -38,8 +38,8 @@ private:
|
||||
MortevielleEngine *_vm;
|
||||
public:
|
||||
Common::Point _pos;
|
||||
MouseHandler(MortevielleEngine *vm);
|
||||
|
||||
void setParent(MortevielleEngine *vm);
|
||||
void initMouse();
|
||||
void hideMouse();
|
||||
void showMouse();
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user