diff options
Diffstat (limited to 'engines/lab/engine.cpp')
-rw-r--r-- | engines/lab/engine.cpp | 59 |
1 files changed, 19 insertions, 40 deletions
diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp index a34926f48d..81c401fcd7 100644 --- a/engines/lab/engine.cpp +++ b/engines/lab/engine.cpp @@ -130,15 +130,15 @@ void LabEngine::drawRoomMessage(uint16 curInv, CloseDataPtr closePtr) { } if (_alternate) { - if ((curInv <= _numInv) && _conditions->in(curInv) && _inventory[curInv]._bitmapName) { + if ((curInv <= _numInv) && _conditions->in(curInv) && _inventory[curInv]._bitmapName != "") { if ((curInv == kItemLamp) && _conditions->in(kCondLampOn)) // LAB: Labyrinth specific drawStaticMessage(kTextkLampOn); else if (_inventory[curInv]._many > 1) { - Common::String roomMessage = Common::String(_inventory[curInv]._name) + " (" + Common::String::format("%d", _inventory[curInv]._many) + ")"; + Common::String roomMessage = _inventory[curInv]._name + " (" + Common::String::format("%d", _inventory[curInv]._many) + ")"; _graphics->drawMessage(roomMessage.c_str()); } else - _graphics->drawMessage(_inventory[curInv]._name); + _graphics->drawMessage(_inventory[curInv]._name.c_str()); } } else drawDirection(closePtr); @@ -219,7 +219,7 @@ bool LabEngine::doCloseUp(CloseDataPtr closePtr) { case kMonitorMuseum: case kMonitorLibrary: case kMonitorWindow: - doMonitor(closePtr->_graphicName, closePtr->_message, false, textRect); + doMonitor(closePtr->_graphicName.c_str(), closePtr->_message.c_str(), false, textRect); break; case kMonitorGramophone: textRect.right = 171; @@ -261,7 +261,7 @@ bool LabEngine::doCloseUp(CloseDataPtr closePtr) { /** * Gets the current inventory name. */ -const char *LabEngine::getInvName(uint16 curInv) { +Common::String LabEngine::getInvName(uint16 curInv) { if (_mainDisplay) return _inventory[curInv]._bitmapName; @@ -401,7 +401,7 @@ void LabEngine::decIncInv(uint16 *curInv, bool decreaseFl) { interfaceOff(); while (newInv && (newInv <= _numInv)) { - if (_conditions->in(newInv) && _inventory[newInv]._bitmapName) { + if (_conditions->in(newInv) && _inventory[newInv]._bitmapName != "") { _nextFileName = getInvName(newInv); *curInv = newInv; break; @@ -477,11 +477,11 @@ void LabEngine::mainGameLoop() { if (_noUpdateDiff) { // Potentially entered another room _roomsFound->inclElement(_roomNum); - forceDraw |= (strcmp(_nextFileName, _curFileName) != 0); + forceDraw |= (_nextFileName != _curFileName); _noUpdateDiff = false; _curFileName = _nextFileName; - } else if (strcmp(_nextFileName, _curFileName) != 0) { + } else if (_nextFileName != _curFileName) { interfaceOff(); // Potentially entered another room _roomsFound->inclElement(_roomNum); @@ -491,19 +491,19 @@ void LabEngine::mainGameLoop() { switch (_closeDataPtr->_closeUpType) { case SPECIALLOCK: if (_mainDisplay) - _tilePuzzle->showCombination(_curFileName); + _tilePuzzle->showCombination(_curFileName.c_str()); break; case SPECIALBRICK: case SPECIALBRICKNOMOUSE: if (_mainDisplay) - _tilePuzzle->showTile(_curFileName, (_closeDataPtr->_closeUpType == SPECIALBRICKNOMOUSE)); + _tilePuzzle->showTile(_curFileName.c_str(), (_closeDataPtr->_closeUpType == SPECIALBRICKNOMOUSE)); break; default: - _graphics->readPict(_curFileName, false); + _graphics->readPict(_curFileName.c_str(), false); break; } } else - _graphics->readPict(_curFileName, false); + _graphics->readPict(_curFileName.c_str(), false); drawRoomMessage(curInv, _closeDataPtr); forceDraw = false; @@ -577,23 +577,8 @@ void LabEngine::mainGameLoop() { delete _conditions; delete _roomsFound; - - if (_rooms) { - delete[] _rooms; - _rooms = nullptr; - } - - if (_inventory) { - for (int i = 1; i <= _numInv; i++) { - if (_inventory[i]._name) - delete[] _inventory[i]._name; - - if (_inventory[i]._bitmapName) - delete[] _inventory[i]._bitmapName; - } - - delete[] _inventory; - } + delete[] _rooms; + delete[] _inventory; } void LabEngine::showLab2Teaser() { @@ -1014,7 +999,7 @@ void LabEngine::processAltButton(uint16 &curInv, uint16 &lastInv, uint16 buttonI curInv++; } - if ((curInv <= _numInv) && _conditions->in(curInv) && _inventory[curInv]._bitmapName) + if ((curInv <= _numInv) && _conditions->in(curInv) && _inventory[curInv]._bitmapName != "") _nextFileName = getInvName(curInv); break; @@ -1112,16 +1097,10 @@ void LabEngine::performAction(uint16 actionMode, Common::Point curPos, uint16 &c if (_closeDataPtr == tmpClosePtr) { if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2))) drawStaticMessage(kTextNothing); - } - else if (tmpClosePtr->_graphicName) { - if (*(tmpClosePtr->_graphicName)) { - _anim->_doBlack = true; - _closeDataPtr = tmpClosePtr; - } - else if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2))) - drawStaticMessage(kTextNothing); - } - else if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2))) + } else if (tmpClosePtr->_graphicName != "") { + _anim->_doBlack = true; + _closeDataPtr = tmpClosePtr; + } else if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2))) drawStaticMessage(kTextNothing); } break; |