diff --git a/engines/nancy/action/actionmanager.cpp b/engines/nancy/action/actionmanager.cpp index 567edf86f03..25803659f7f 100644 --- a/engines/nancy/action/actionmanager.cpp +++ b/engines/nancy/action/actionmanager.cpp @@ -41,48 +41,48 @@ namespace Action { void ActionManager::handleInput(NancyInput &input) { for (auto &rec : _records) { - if (rec->isActive) { + if (rec->_isActive) { // Send input to all active records rec->handleInput(input); } - if (rec->isActive && rec->hasHotspot && NancySceneState.getViewport().convertViewportToScreen(rec->hotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(rec->getHoverCursor()); + if (rec->_isActive && rec->_hasHotspot && NancySceneState.getViewport().convertViewportToScreen(rec->_hotspot).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(rec->getHoverCursor()); if (input.input & NancyInput::kLeftMouseButtonUp) { input.input &= ~NancyInput::kLeftMouseButtonUp; bool shouldTrigger = false; int16 heldItem = NancySceneState.getHeldItem(); - if (rec->itemRequired != -1) { - if (heldItem == -1 && rec->itemRequired == -2) { + if (rec->_itemRequired != -1) { + if (heldItem == -1 && rec->_itemRequired == -2) { shouldTrigger = true; } else { - if (rec->itemRequired <= 100) { - if (heldItem == rec->itemRequired) { + if (rec->_itemRequired <= 100) { + if (heldItem == rec->_itemRequired) { shouldTrigger = true; } - } else if (rec->itemRequired <= 110 && rec->itemRequired - 100 != heldItem) { + } else if (rec->_itemRequired <= 110 && rec->_itemRequired - 100 != heldItem) { // IDs 100 - 110 mean the record will activate when the object is _not_ the specified one shouldTrigger = true; } } if (!shouldTrigger) { - g_nancy->sound->playSound(17); // Hardcoded by original engine + g_nancy->_sound->playSound(17); // Hardcoded by original engine } } else { shouldTrigger = true; } if (shouldTrigger) { - rec->state = ActionRecord::ExecutionState::kActionTrigger; + rec->_state = ActionRecord::ExecutionState::kActionTrigger; - if (rec->itemRequired > 100 && rec->itemRequired <= 110) { - rec->itemRequired -= 100; + if (rec->_itemRequired > 100 && rec->_itemRequired <= 110) { + rec->_itemRequired -= 100; } // Re-add the object to the inventory unless it's marked as a one-time use - if (rec->itemRequired == heldItem && rec->itemRequired != -1) { + if (rec->_itemRequired == heldItem && rec->_itemRequired != -1) { if (NancySceneState.getInventoryBox().getItemDescription(heldItem).oneTimeUse != 0) { NancySceneState.getInventoryBox().addItem(heldItem); } @@ -105,11 +105,11 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) { inputData.seek(0); char *descBuf = new char[0x30]; inputData.read(descBuf, 0x30); - newRecord->description = Common::String(descBuf); + newRecord->_description = Common::String(descBuf); delete[] descBuf; - newRecord->type = inputData.readByte(); // redundant - newRecord->execType = (ActionRecord::ExecutionType)inputData.readByte(); + newRecord->_type = inputData.readByte(); // redundant + newRecord->_execType = (ActionRecord::ExecutionType)inputData.readByte(); uint16 localChunkSize = inputData.pos(); newRecord->readData(inputData); @@ -128,8 +128,8 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) { // Initialize the dependencies data inputData.seek(localChunkSize); for (uint16 i = 0; i < numDependencies; ++i) { - newRecord->dependencies.push_back(DependencyRecord()); - DependencyRecord &dep = newRecord->dependencies.back(); + newRecord->_dependencies.push_back(DependencyRecord()); + DependencyRecord &dep = newRecord->_dependencies.back(); dep.type = (DependencyType)inputData.readByte(); dep.label = inputData.readByte(); @@ -146,7 +146,7 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) { } } else { // Set new record to active if it doesn't depend on anything - newRecord->isActive = true; + newRecord->_isActive = true; } _records.push_back(newRecord); @@ -154,68 +154,68 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) { debugC(1, kDebugActionRecord, "Loaded action record %i, type %s, typeID %i, description \"%s\", execType == %s", _records.size() - 1, newRecord->getRecordTypeName().c_str(), - newRecord->type, - newRecord->description.c_str(), - newRecord->execType == ActionRecord::kRepeating ? "kRepeating" : "kOneShot"); - for (uint i = 0; i < newRecord->dependencies.size(); ++i) { + newRecord->_type, + newRecord->_description.c_str(), + newRecord->_execType == ActionRecord::kRepeating ? "kRepeating" : "kOneShot"); + for (uint i = 0; i < newRecord->_dependencies.size(); ++i) { debugCN(1, kDebugActionRecord, "\tDependency %i: type ", i); - switch (newRecord->dependencies[i].type) { + switch (newRecord->_dependencies[i].type) { case kNone : debugCN(1, kDebugActionRecord, "kNone"); break; case kInventory : debugCN(1, kDebugActionRecord, "kInventory, item ID %i %s", - newRecord->dependencies[i].label, - newRecord->dependencies[i].condition == kTrue ? "is in possession" : "is not in possession"); + newRecord->_dependencies[i].label, + newRecord->_dependencies[i].condition == kTrue ? "is in possession" : "is not in possession"); break; case kEventFlag : debugCN(1, kDebugActionRecord, "kEventFlag, flag ID %i == %s", - newRecord->dependencies[i].label, - newRecord->dependencies[i].condition == kTrue ? "true" : "false"); + newRecord->_dependencies[i].label, + newRecord->_dependencies[i].condition == kTrue ? "true" : "false"); break; case kLogicCondition : debugCN(1, kDebugActionRecord, "kLogicCondition, logic condition ID %i == %s", - newRecord->dependencies[i].label, - newRecord->dependencies[i].condition == kTrue ? "true" : "false"); + newRecord->_dependencies[i].label, + newRecord->_dependencies[i].condition == kTrue ? "true" : "false"); break; case kTotalTime : debugCN(1, kDebugActionRecord, "kTotalTime, %i hours, %i minutes, %i seconds, %i milliseconds", - newRecord->dependencies[i].hours, - newRecord->dependencies[i].minutes, - newRecord->dependencies[i].seconds, - newRecord->dependencies[i].milliseconds); + newRecord->_dependencies[i].hours, + newRecord->_dependencies[i].minutes, + newRecord->_dependencies[i].seconds, + newRecord->_dependencies[i].milliseconds); break; case kSceneTime : debugCN(1, kDebugActionRecord, "kSceneTime, %i hours, %i minutes, %i seconds, %i milliseconds", - newRecord->dependencies[i].hours, - newRecord->dependencies[i].minutes, - newRecord->dependencies[i].seconds, - newRecord->dependencies[i].milliseconds); + newRecord->_dependencies[i].hours, + newRecord->_dependencies[i].minutes, + newRecord->_dependencies[i].seconds, + newRecord->_dependencies[i].milliseconds); break; case kPlayerTime : debugCN(1, kDebugActionRecord, "kPlayerTime, %i days, %i hours, %i minutes, %i seconds", - newRecord->dependencies[i].hours, - newRecord->dependencies[i].minutes, - newRecord->dependencies[i].seconds, - newRecord->dependencies[i].milliseconds); + newRecord->_dependencies[i].hours, + newRecord->_dependencies[i].minutes, + newRecord->_dependencies[i].seconds, + newRecord->_dependencies[i].milliseconds); break; case kSceneCount : debugCN(1, kDebugActionRecord, "kSceneCount, scene ID %i, hit count %s %i", - newRecord->dependencies[i].hours, - newRecord->dependencies[i].milliseconds == 1 ? ">" : newRecord->dependencies[i].milliseconds == 2 ? "<" : "==", - newRecord->dependencies[i].seconds); + newRecord->_dependencies[i].hours, + newRecord->_dependencies[i].milliseconds == 1 ? ">" : newRecord->_dependencies[i].milliseconds == 2 ? "<" : "==", + newRecord->_dependencies[i].seconds); break; case kResetOnNewDay : debugCN(1, kDebugActionRecord, "kResetOnNewDay"); break; case kUseItem : debugCN(1, kDebugActionRecord, "kUseItem, item ID %i %s", - newRecord->dependencies[i].label, - newRecord->dependencies[i].condition == kTrue ? "is held" : "is not held"); + newRecord->_dependencies[i].label, + newRecord->_dependencies[i].condition == kTrue ? "is held" : "is not held"); break; case kTimeOfDay : debugCN(1, kDebugActionRecord, "kTimeOfDay, %s", - newRecord->dependencies[i].label == 0 ? "day" : newRecord->dependencies[i].label == 1 ? "night" : "dusk/dawn"); + newRecord->_dependencies[i].label == 0 ? "day" : newRecord->_dependencies[i].label == 1 ? "night" : "dusk/dawn"); break; case kTimerNotDone : debugCN(1, kDebugActionRecord, "kTimerNotDone"); @@ -224,13 +224,13 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) { debugCN(1, kDebugActionRecord, "kTimerDone"); break; case kDifficultyLevel : - debugCN(1, kDebugActionRecord, "kDifficultyLevel, level %i", newRecord->dependencies[i].condition); + debugCN(1, kDebugActionRecord, "kDifficultyLevel, level %i", newRecord->_dependencies[i].condition); break; default: debugCN(1, kDebugActionRecord, "unknown"); break; } - debugC(1, kDebugActionRecord, ", orFlag == %s", newRecord->dependencies[i].orFlag == true ? "true" : "false"); + debugC(1, kDebugActionRecord, ", orFlag == %s", newRecord->_dependencies[i].orFlag == true ? "true" : "false"); } return true; @@ -238,13 +238,13 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) { void ActionManager::processActionRecords() { for (auto record : _records) { - if (record->isDone) { + if (record->_isDone) { continue; } - if (!record->isActive) { - for (uint i = 0; i < record->dependencies.size(); ++i) { - DependencyRecord &dep = record->dependencies[i]; + if (!record->_isActive) { + for (uint i = 0; i < record->_dependencies.size(); ++i) { + DependencyRecord &dep = record->_dependencies[i]; if (!dep.satisfied) { switch (dep.type) { @@ -343,17 +343,17 @@ void ActionManager::processActionRecords() { break; case kResetOnNewDay: - if (record->days == -1) { - record->days = NancySceneState._timers.playerTime.getDays(); + if (record->_days == -1) { + record->_days = NancySceneState._timers.playerTime.getDays(); dep.satisfied = true; break; } - if (record->days < NancySceneState._timers.playerTime.getDays()) { - record->days = NancySceneState._timers.playerTime.getDays(); - for (uint j = 0; j < record->dependencies.size(); ++j) { - if (record->dependencies[j].type == kPlayerTime) { - record->dependencies[j].satisfied = false; + if (record->_days < NancySceneState._timers.playerTime.getDays()) { + record->_days = NancySceneState._timers.playerTime.getDays(); + for (uint j = 0; j < record->_dependencies.size(); ++j) { + if (record->_dependencies[j].type == kPlayerTime) { + record->_dependencies[j].satisfied = false; } } } @@ -361,8 +361,8 @@ void ActionManager::processActionRecords() { break; case kUseItem: { bool hasUnsatisfiedDeps = false; - for (uint j = 0; j < record->dependencies.size(); ++j) { - if (j != i && record->dependencies[j].satisfied == false) { + for (uint j = 0; j < record->_dependencies.size(); ++j) { + if (j != i && record->_dependencies[j].satisfied == false) { hasUnsatisfiedDeps = true; } } @@ -371,10 +371,10 @@ void ActionManager::processActionRecords() { break; } - record->itemRequired = dep.label; + record->_itemRequired = dep.label; if (dep.condition == 1) { - record->itemRequired += 100; + record->_itemRequired += 100; } dep.satisfied = true; @@ -412,28 +412,28 @@ void ActionManager::processActionRecords() { // An orFlag marks that its corresponding dependency and the one after it // mutually satisfy each other; if one is satisfied, so is the other - for (uint i = 1; i < record->dependencies.size(); ++i) { - if (record->dependencies[i-1].orFlag) { - if (record->dependencies[i-1].satisfied) - record->dependencies[i].satisfied = true; - if (record->dependencies[i].satisfied) - record->dependencies[i-1].satisfied = true; + for (uint i = 1; i < record->_dependencies.size(); ++i) { + if (record->_dependencies[i-1].orFlag) { + if (record->_dependencies[i-1].satisfied) + record->_dependencies[i].satisfied = true; + if (record->_dependencies[i].satisfied) + record->_dependencies[i-1].satisfied = true; } } // Check if all dependencies have been satisfied, and activate the record if they have uint satisfied = 0; - for (uint i = 0; i < record->dependencies.size(); ++i) { - if (record->dependencies[i].satisfied) + for (uint i = 0; i < record->_dependencies.size(); ++i) { + if (record->_dependencies[i].satisfied) ++satisfied; } - if (satisfied == record->dependencies.size()) - record->isActive = true; + if (satisfied == record->_dependencies.size()) + record->_isActive = true; } - if (record->isActive) { + if (record->_isActive) { record->execute(); } } @@ -448,7 +448,7 @@ void ActionManager::clearActionRecords() { void ActionManager::onPause(bool pause) { for (auto &r : _records) { - if (r->isActive && !r->isDone) { + if (r->_isActive && !r->_isDone) { r->onPause(pause); } } @@ -457,8 +457,8 @@ void ActionManager::onPause(bool pause) { void ActionManager::synchronize(Common::Serializer &ser) { // When loading, the records should already have been initialized by scene for (auto &rec : _records) { - ser.syncAsByte(rec->isActive); - ser.syncAsByte(rec->isDone); + ser.syncAsByte(rec->_isActive); + ser.syncAsByte(rec->_isDone); } } diff --git a/engines/nancy/action/actionrecord.h b/engines/nancy/action/actionrecord.h index ad49259c997..f7e801a19e0 100644 --- a/engines/nancy/action/actionrecord.h +++ b/engines/nancy/action/actionrecord.h @@ -83,14 +83,14 @@ public: enum ExecutionState { kBegin, kRun, kActionTrigger }; enum ExecutionType { kOneShot = 1, kRepeating = 2 }; ActionRecord() : - type(0), - execType(kOneShot), - isActive(false), - isDone(false), - hasHotspot(false), - state(ExecutionState::kBegin), - days(-1), - itemRequired(-1) {} + _type(0), + _execType(kOneShot), + _isActive(false), + _isDone(false), + _hasHotspot(false), + _state(ExecutionState::kBegin), + _days(-1), + _itemRequired(-1) {} virtual ~ActionRecord() {} virtual void readData(Common::SeekableReadStream &stream) =0; @@ -102,23 +102,23 @@ public: protected: void finishExecution() { - switch (execType) { + switch (_execType) { case kOneShot: - isDone = true; - state = kBegin; + _isDone = true; + _state = kBegin; break; case kRepeating: - isDone = false; - isActive = false; - state = kBegin; + _isDone = false; + _isActive = false; + _state = kBegin; - for (uint i = 0; i < dependencies.size(); ++i) { - dependencies[i].satisfied = false; + for (uint i = 0; i < _dependencies.size(); ++i) { + _dependencies[i].satisfied = false; } break; default: - state = kBegin; + _state = kBegin; break; } } @@ -127,22 +127,22 @@ protected: virtual Common::String getRecordTypeName() const =0; public: - Common::String description; // 0x00 - byte type; // 0x30 - ExecutionType execType; // 0x31 + Common::String _description; // 0x00 + byte _type; // 0x30 + ExecutionType _execType; // 0x31 // 0x32 data - Common::Array dependencies; // 0x36 + Common::Array _dependencies; // 0x36 // 0x3A numDependencies - bool isActive; // 0x3B + bool _isActive; // 0x3B // 0x3C satisfiedDependencies[] // 0x48 timers[] // 0x78 orFlags[] - bool isDone; // 0x84 - bool hasHotspot; // 0x85 - Common::Rect hotspot; // 0x89 - ExecutionState state; // 0x91 - int16 days; // 0x95 - int8 itemRequired; // 0x97 + bool _isDone; // 0x84 + bool _hasHotspot; // 0x85 + Common::Rect _hotspot; // 0x89 + ExecutionState _state; // 0x91 + int16 _days; // 0x95 + int8 _itemRequired; // 0x97 }; } // End of namespace Action diff --git a/engines/nancy/action/leverpuzzle.cpp b/engines/nancy/action/leverpuzzle.cpp index 7cf69f76598..d6799e772c4 100644 --- a/engines/nancy/action/leverpuzzle.cpp +++ b/engines/nancy/action/leverpuzzle.cpp @@ -38,97 +38,97 @@ void LeverPuzzle::init() { setTransparent(true); - g_nancy->resource->loadImage(imageName, image); + g_nancy->_resource->loadImage(_imageName, _image); } void LeverPuzzle::readData(Common::SeekableReadStream &stream) { char buf[10]; stream.read(buf, 10); - imageName = buf; + _imageName = buf; for (uint leverID = 0; leverID < 3; ++leverID) { - srcRects.push_back(Common::Array()); + _srcRects.push_back(Common::Array()); for (uint i = 0; i < 4; ++i) { - srcRects.back().push_back(Common::Rect()); - readRect(stream, srcRects.back().back()); + _srcRects.back().push_back(Common::Rect()); + readRect(stream, _srcRects.back().back()); } } for (uint leverID = 0; leverID < 3; ++leverID) { - destRects.push_back(Common::Rect()); - readRect(stream, destRects.back()); + _destRects.push_back(Common::Rect()); + readRect(stream, _destRects.back()); if (leverID == 0) { - _screenPosition = destRects.back(); + _screenPosition = _destRects.back(); } else { - _screenPosition.extend(destRects.back()); + _screenPosition.extend(_destRects.back()); } } for (uint leverID = 0; leverID < 3; ++leverID) { - playerSequence.push_back(stream.readByte()); - leverDirection.push_back(true); + _playerSequence.push_back(stream.readByte()); + _leverDirection.push_back(true); } for (uint leverID = 0; leverID < 3; ++leverID) { - correctSequence.push_back(stream.readByte()); + _correctSequence.push_back(stream.readByte()); } - moveSound.read(stream, SoundDescription::kNormal); - noMoveSound.read(stream, SoundDescription::kNormal); - solveExitScene.readData(stream); + _moveSound.read(stream, SoundDescription::kNormal); + _noMoveSound.read(stream, SoundDescription::kNormal); + _solveExitScene.readData(stream); stream.skip(2); - flagOnSolve.label = stream.readSint16LE(); - flagOnSolve.flag = (NancyFlag)stream.readByte(); - solveSoundDelay = stream.readUint16LE(); - solveSound.read(stream, SoundDescription::kNormal); - exitScene.readData(stream); + _flagOnSolve.label = stream.readSint16LE(); + _flagOnSolve.flag = (NancyFlag)stream.readByte(); + _solveSoundDelay = stream.readUint16LE(); + _solveSound.read(stream, SoundDescription::kNormal); + _exitScene.readData(stream); stream.skip(2); - flagOnExit.label = stream.readSint16LE(); - flagOnExit.flag = (NancyFlag)stream.readByte(); - readRect(stream, exitHotspot); + _flagOnExit.label = stream.readSint16LE(); + _flagOnExit.flag = (NancyFlag)stream.readByte(); + readRect(stream, _exitHotspot); } void LeverPuzzle::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - g_nancy->sound->loadSound(moveSound); - g_nancy->sound->loadSound(noMoveSound); + g_nancy->_sound->loadSound(_moveSound); + g_nancy->_sound->loadSound(_noMoveSound); for (uint i = 0; i < 3; ++i) { drawLever(i); } - state = kRun; + _state = kRun; // fall through case kRun: - switch (solveState) { + switch (_solveState) { case kNotSolved: for (uint i = 0; i < 3; ++i) { - if (playerSequence[i] != correctSequence[i]) { + if (_playerSequence[i] != _correctSequence[i]) { return; } } - NancySceneState.setEventFlag(flagOnSolve); - solveSoundPlayTime = g_nancy->getTotalPlayTime() + solveSoundDelay * 1000; - solveState = kPlaySound; + NancySceneState.setEventFlag(_flagOnSolve); + _solveSoundPlayTime = g_nancy->getTotalPlayTime() + _solveSoundDelay * 1000; + _solveState = kPlaySound; break; case kPlaySound: - if (g_nancy->getTotalPlayTime() <= solveSoundPlayTime) { + if (g_nancy->getTotalPlayTime() <= _solveSoundPlayTime) { break; } - g_nancy->sound->loadSound(solveSound); - g_nancy->sound->playSound(solveSound); - solveState = kWaitForSound; + g_nancy->_sound->loadSound(_solveSound); + g_nancy->_sound->playSound(_solveSound); + _solveState = kWaitForSound; break; case kWaitForSound: - if (!g_nancy->sound->isSoundPlaying(solveSound)) { - g_nancy->sound->stopSound(solveSound); - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_solveSound)) { + g_nancy->_sound->stopSound(_solveSound); + _state = kActionTrigger; } break; @@ -136,14 +136,14 @@ void LeverPuzzle::execute() { break; case kActionTrigger: - g_nancy->sound->stopSound(moveSound); - g_nancy->sound->stopSound(noMoveSound); + g_nancy->_sound->stopSound(_moveSound); + g_nancy->_sound->stopSound(_noMoveSound); - if (solveState == kNotSolved) { - NancySceneState.changeScene(exitScene); - NancySceneState.setEventFlag(flagOnExit); + if (_solveState == kNotSolved) { + NancySceneState.changeScene(_exitScene); + NancySceneState.setEventFlag(_flagOnExit); } else { - NancySceneState.changeScene(solveExitScene); + NancySceneState.changeScene(_solveExitScene); } finishExecution(); @@ -151,22 +151,22 @@ void LeverPuzzle::execute() { } void LeverPuzzle::handleInput(NancyInput &input) { - if (solveState != kNotSolved) { + if (_solveState != kNotSolved) { return; } - if (NancySceneState.getViewport().convertViewportToScreen(exitHotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kExitArrow); + if (NancySceneState.getViewport().convertViewportToScreen(_exitHotspot).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kExitArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { - state = kActionTrigger; + _state = kActionTrigger; } return; } for (uint i = 0; i < 3; ++i) { - if (NancySceneState.getViewport().convertViewportToScreen(destRects[i]).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspot); + if (NancySceneState.getViewport().convertViewportToScreen(_destRects[i]).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspot); if (input.input & NancyInput::kLeftMouseButtonUp) { bool isMoving = false; @@ -176,13 +176,13 @@ void LeverPuzzle::handleInput(NancyInput &input) { isMoving = true; break; case 1: - if (playerSequence[0] == 1) { + if (_playerSequence[0] == 1) { isMoving = true; } break; case 2: - if (playerSequence[0] == 2) { + if (_playerSequence[0] == 2) { isMoving = true; } @@ -190,29 +190,29 @@ void LeverPuzzle::handleInput(NancyInput &input) { } if (isMoving) { - g_nancy->sound->playSound(moveSound); + g_nancy->_sound->playSound(_moveSound); - if (leverDirection[i]) { + if (_leverDirection[i]) { // Moving down - if (playerSequence[i] == 3) { - --playerSequence[i]; - leverDirection[i] = false; + if (_playerSequence[i] == 3) { + --_playerSequence[i]; + _leverDirection[i] = false; } else { - ++playerSequence[i]; + ++_playerSequence[i]; } } else { // Moving up - if (playerSequence[i] == 0) { - ++playerSequence[i]; - leverDirection[i] = true; + if (_playerSequence[i] == 0) { + ++_playerSequence[i]; + _leverDirection[i] = true; } else { - --playerSequence[i]; + --_playerSequence[i]; } } drawLever(i); } else { - g_nancy->sound->playSound(noMoveSound); + g_nancy->_sound->playSound(_noMoveSound); return; } } @@ -227,8 +227,8 @@ void LeverPuzzle::onPause(bool pause) { } void LeverPuzzle::drawLever(uint id) { - Common::Point destPoint(destRects[id].left - _screenPosition.left, destRects[id].top - _screenPosition.top); - _drawSurface.blitFrom(image, srcRects[id][playerSequence[id]], destPoint); + Common::Point destPoint(_destRects[id].left - _screenPosition.left, _destRects[id].top - _screenPosition.top); + _drawSurface.blitFrom(_image, _srcRects[id][_playerSequence[id]], destPoint); _needsRedraw = true; } diff --git a/engines/nancy/action/leverpuzzle.h b/engines/nancy/action/leverpuzzle.h index 5ee94684b19..78e08c0a628 100644 --- a/engines/nancy/action/leverpuzzle.h +++ b/engines/nancy/action/leverpuzzle.h @@ -49,25 +49,25 @@ public: virtual void handleInput(NancyInput &input) override; virtual void onPause(bool pause) override; - Common::String imageName; // 0x0 - Common::Array> srcRects; // 0xA, 0xC0 bytes - Common::Array destRects; // 0xCA, 0x30 bytes - Common::Array correctSequence; // 0xFA, 3 bytes - SoundDescription moveSound; // 0x100 - SoundDescription noMoveSound; // 0x122 - SceneChangeDescription solveExitScene; // 0x144 - EventFlagDescription flagOnSolve; // 0x14E - uint16 solveSoundDelay; // 0x151 - SoundDescription solveSound; // 0x153 - SceneChangeDescription exitScene; // 0x175 - EventFlagDescription flagOnExit; // 0x17F - Common::Rect exitHotspot; // 0x182 + Common::String _imageName; // 0x0 + Common::Array> _srcRects; // 0xA, 0xC0 bytes + Common::Array _destRects; // 0xCA, 0x30 bytes + Common::Array _correctSequence; // 0xFA, 3 bytes + SoundDescription _moveSound; // 0x100 + SoundDescription _noMoveSound; // 0x122 + SceneChangeDescription _solveExitScene; // 0x144 + EventFlagDescription _flagOnSolve; // 0x14E + uint16 _solveSoundDelay; // 0x151 + SoundDescription _solveSound; // 0x153 + SceneChangeDescription _exitScene; // 0x175 + EventFlagDescription _flagOnExit; // 0x17F + Common::Rect _exitHotspot; // 0x182 - Common::Array playerSequence; - Common::Array leverDirection; - Graphics::ManagedSurface image; - Time solveSoundPlayTime; - SolveState solveState = kNotSolved; + Common::Array _playerSequence; + Common::Array _leverDirection; + Graphics::ManagedSurface _image; + Time _solveSoundPlayTime; + SolveState _solveState = kNotSolved; protected: virtual Common::String getRecordTypeName() const override { return "LeverPuzzle"; } diff --git a/engines/nancy/action/orderingpuzzle.cpp b/engines/nancy/action/orderingpuzzle.cpp index 1d6ac71c238..4957bc85eab 100644 --- a/engines/nancy/action/orderingpuzzle.cpp +++ b/engines/nancy/action/orderingpuzzle.cpp @@ -45,7 +45,7 @@ void OrderingPuzzle::init() { setTransparent(true); - g_nancy->resource->loadImage(imageName, image); + g_nancy->_resource->loadImage(_imageName, _image); setVisible(false); @@ -56,102 +56,102 @@ void OrderingPuzzle::readData(Common::SeekableReadStream &stream) { char buf[10]; stream.read(buf, 10); - imageName = buf; + _imageName = buf; uint16 numElements = stream.readUint16LE(); for (uint i = 0; i < numElements; ++i) { - srcRects.push_back(Common::Rect()); - readRect(stream, srcRects.back()); + _srcRects.push_back(Common::Rect()); + readRect(stream, _srcRects.back()); } stream.skip(16 * (15 - numElements)); for (uint i = 0; i < numElements; ++i) { - destRects.push_back(Common::Rect()); - readRect(stream, destRects.back()); + _destRects.push_back(Common::Rect()); + readRect(stream, _destRects.back()); if (i == 0) { - _screenPosition = destRects[i]; + _screenPosition = _destRects[i]; } else { - _screenPosition.extend(destRects[i]); + _screenPosition.extend(_destRects[i]); } - drawnElements.push_back(false); + _drawnElements.push_back(false); } stream.skip(16 * (15 - numElements)); - sequenceLength = stream.readUint16LE(); + _sequenceLength = stream.readUint16LE(); for (uint i = 0; i < 15; ++i) { - correctSequence.push_back(stream.readByte()); + _correctSequence.push_back(stream.readByte()); } - clickSound.read(stream, SoundDescription::kNormal); - solveExitScene.readData(stream); + _clickSound.read(stream, SoundDescription::kNormal); + _solveExitScene.readData(stream); stream.skip(2); // shouldStopRendering, useless - flagOnSolve.label = stream.readSint16LE(); - flagOnSolve.flag = (NancyFlag)stream.readByte(); - solveSoundDelay = stream.readUint16LE(); - solveSound.read(stream, SoundDescription::kNormal); - exitScene.readData(stream); + _flagOnSolve.label = stream.readSint16LE(); + _flagOnSolve.flag = (NancyFlag)stream.readByte(); + _solveSoundDelay = stream.readUint16LE(); + _solveSound.read(stream, SoundDescription::kNormal); + _exitScene.readData(stream); stream.skip(2); // shouldStopRendering, useless - flagOnExit.label = stream.readSint16LE(); - flagOnExit.flag = (NancyFlag)stream.readByte(); - readRect(stream, exitHotspot); + _flagOnExit.label = stream.readSint16LE(); + _flagOnExit.flag = (NancyFlag)stream.readByte(); + readRect(stream, _exitHotspot); } void OrderingPuzzle::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - g_nancy->sound->loadSound(clickSound); - g_nancy->sound->loadSound(solveSound); - state = kRun; + g_nancy->_sound->loadSound(_clickSound); + g_nancy->_sound->loadSound(_solveSound); + _state = kRun; // fall through case kRun: - switch (solveState) { + switch (_solveState) { case kNotSolved: - if (clickedSequence.size() != sequenceLength) { + if (_clickedSequence.size() != _sequenceLength) { return; } - for (uint i = 0; i < sequenceLength; ++i) { - if (clickedSequence[i] != (int16)correctSequence[i]) { + for (uint i = 0; i < _sequenceLength; ++i) { + if (_clickedSequence[i] != (int16)_correctSequence[i]) { return; } } - NancySceneState.setEventFlag(flagOnSolve); - solveSoundPlayTime = g_nancy->getTotalPlayTime() + solveSoundDelay * 1000; - solveState = kPlaySound; + NancySceneState.setEventFlag(_flagOnSolve); + _solveSoundPlayTime = g_nancy->getTotalPlayTime() + _solveSoundDelay * 1000; + _solveState = kPlaySound; // fall through case kPlaySound: - if (g_nancy->getTotalPlayTime() <= solveSoundPlayTime) { + if (g_nancy->getTotalPlayTime() <= _solveSoundPlayTime) { break; } - g_nancy->sound->playSound(solveSound); - solveState = kWaitForSound; + g_nancy->_sound->playSound(_solveSound); + _solveState = kWaitForSound; break; case kWaitForSound: - if (!g_nancy->sound->isSoundPlaying(solveSound)) { - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_solveSound)) { + _state = kActionTrigger; } break; } break; case kActionTrigger: - g_nancy->sound->stopSound(clickSound); - g_nancy->sound->stopSound(solveSound); + g_nancy->_sound->stopSound(_clickSound); + g_nancy->_sound->stopSound(_solveSound); - if (solveState == kNotSolved) { - NancySceneState.changeScene(exitScene); - NancySceneState.setEventFlag(flagOnExit); + if (_solveState == kNotSolved) { + NancySceneState.changeScene(_exitScene); + NancySceneState.setEventFlag(_flagOnExit); } else { - NancySceneState.changeScene(solveExitScene); + NancySceneState.changeScene(_solveExitScene); } finishExecution(); @@ -160,40 +160,40 @@ void OrderingPuzzle::execute() { } void OrderingPuzzle::handleInput(NancyInput &input) { - if (solveState != kNotSolved) { + if (_solveState != kNotSolved) { return; } - if (NancySceneState.getViewport().convertViewportToScreen(exitHotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kExitArrow); + if (NancySceneState.getViewport().convertViewportToScreen(_exitHotspot).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kExitArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { - state = kActionTrigger; + _state = kActionTrigger; } return; } - for (int i = 0; i < (int)destRects.size(); ++i) { - if (NancySceneState.getViewport().convertViewportToScreen(destRects[i]).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspot); + for (int i = 0; i < (int)_destRects.size(); ++i) { + if (NancySceneState.getViewport().convertViewportToScreen(_destRects[i]).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspot); if (input.input & NancyInput::kLeftMouseButtonUp) { - g_nancy->sound->playSound(clickSound); + g_nancy->_sound->playSound(_clickSound); - for (uint j = 0; j < clickedSequence.size(); ++j) { - if (clickedSequence[j] == i && drawnElements[i] == true) { + for (uint j = 0; j < _clickedSequence.size(); ++j) { + if (_clickedSequence[j] == i && _drawnElements[i] == true) { undrawElement(i); - if (clickedSequence.back() == i) { - clickedSequence.pop_back(); + if (_clickedSequence.back() == i) { + _clickedSequence.pop_back(); } return; } } - clickedSequence.push_back(i); + _clickedSequence.push_back(i); - if (clickedSequence.size() > (uint)sequenceLength + 1) { + if (_clickedSequence.size() > (uint)_sequenceLength + 1) { clearAllElements(); } else { drawElement(i); @@ -211,15 +211,15 @@ void OrderingPuzzle::onPause(bool pause) { } void OrderingPuzzle::drawElement(uint id) { - drawnElements[id] = true; - Common::Point destPoint(destRects[id].left - _screenPosition.left, destRects[id].top - _screenPosition.top); - _drawSurface.blitFrom(image, srcRects[id], destPoint); + _drawnElements[id] = true; + Common::Point destPoint(_destRects[id].left - _screenPosition.left, _destRects[id].top - _screenPosition.top); + _drawSurface.blitFrom(_image, _srcRects[id], destPoint); setVisible(true); } void OrderingPuzzle::undrawElement(uint id) { - drawnElements[id] = false; - Common::Rect bounds = destRects[id]; + _drawnElements[id] = false; + Common::Rect bounds = _destRects[id]; bounds.translate(-_screenPosition.left, -_screenPosition.top); _drawSurface.fillRect(bounds, GraphicsManager::getTransColor()); @@ -229,7 +229,7 @@ void OrderingPuzzle::undrawElement(uint id) { void OrderingPuzzle::clearAllElements() { _drawSurface.clear(GraphicsManager::getTransColor()); setVisible(false); - clickedSequence.clear(); + _clickedSequence.clear(); return; } diff --git a/engines/nancy/action/orderingpuzzle.h b/engines/nancy/action/orderingpuzzle.h index 98d20cbf300..c676d6b6962 100644 --- a/engines/nancy/action/orderingpuzzle.h +++ b/engines/nancy/action/orderingpuzzle.h @@ -50,25 +50,25 @@ public: virtual void handleInput(NancyInput &input) override; virtual void onPause(bool pause) override; - Common::String imageName; // 0x00 - Common::Array srcRects; // 0xC, 15 - Common::Array destRects; // 0xFC, 15 - uint16 sequenceLength; // 0x1EC; - Common::Array correctSequence; // 0x1EE, 15 bytes - Nancy::SoundDescription clickSound; // 0x1FD, kNormal - SceneChangeDescription solveExitScene; // 0x21F - EventFlagDescription flagOnSolve; // 0x229 - uint16 solveSoundDelay; // 0x22C - Nancy::SoundDescription solveSound; // 0x22E - SceneChangeDescription exitScene; // 0x250 - EventFlagDescription flagOnExit; // 0x25A - Common::Rect exitHotspot; // 0x25D + Common::String _imageName; // 0x00 + Common::Array _srcRects; // 0xC, 15 + Common::Array _destRects; // 0xFC, 15 + uint16 _sequenceLength; // 0x1EC; + Common::Array _correctSequence; // 0x1EE, 15 bytes + Nancy::SoundDescription _clickSound; // 0x1FD, kNormal + SceneChangeDescription _solveExitScene; // 0x21F + EventFlagDescription _flagOnSolve; // 0x229 + uint16 _solveSoundDelay; // 0x22C + Nancy::SoundDescription _solveSound; // 0x22E + SceneChangeDescription _exitScene; // 0x250 + EventFlagDescription _flagOnExit; // 0x25A + Common::Rect _exitHotspot; // 0x25D - SolveState solveState = kNotSolved; - Graphics::ManagedSurface image; - Common::Array clickedSequence; - Common::Array drawnElements; - Time solveSoundPlayTime; + SolveState _solveState = kNotSolved; + Graphics::ManagedSurface _image; + Common::Array _clickedSequence; + Common::Array _drawnElements; + Time _solveSoundPlayTime; protected: virtual Common::String getRecordTypeName() const override { return "OrderingPuzzle"; } diff --git a/engines/nancy/action/passwordpuzzle.cpp b/engines/nancy/action/passwordpuzzle.cpp index 5043810ef2d..984cff6012d 100644 --- a/engines/nancy/action/passwordpuzzle.cpp +++ b/engines/nancy/action/passwordpuzzle.cpp @@ -44,51 +44,51 @@ void PasswordPuzzle::init() { } void PasswordPuzzle::readData(Common::SeekableReadStream &stream) { - fontID = stream.readUint16LE(); - cursorBlinkTime = stream.readUint16LE(); - readRect(stream, nameBounds); - readRect(stream, passwordBounds); + _fontID = stream.readUint16LE(); + _cursorBlinkTime = stream.readUint16LE(); + readRect(stream, _nameBounds); + readRect(stream, _passwordBounds); readRect(stream, _screenPosition); char buf[20]; stream.read(buf, 20); - name = buf; + _name = buf; stream.read(buf, 20); - password = buf; - solveExitScene.readData(stream); + _password = buf; + _solveExitScene.readData(stream); stream.skip(2); - flagOnSolve.label = stream.readSint16LE(); - flagOnSolve.flag = (NancyFlag)stream.readByte(); - solveSound.read(stream, SoundDescription::kNormal); - failExitScene.readData(stream); + _flagOnSolve.label = stream.readSint16LE(); + _flagOnSolve.flag = (NancyFlag)stream.readByte(); + _solveSound.read(stream, SoundDescription::kNormal); + _failExitScene.readData(stream); stream.skip(2); - flagOnFail.label = stream.readSint16LE(); - flagOnFail.flag = (NancyFlag)stream.readByte(); - failSound.read(stream, SoundDescription::kNormal); - exitScene.readData(stream); + _flagOnFail.label = stream.readSint16LE(); + _flagOnFail.flag = (NancyFlag)stream.readByte(); + _failSound.read(stream, SoundDescription::kNormal); + _exitScene.readData(stream); stream.skip(2); - flagOnExit.label = stream.readSint16LE(); - flagOnExit.flag = (NancyFlag)stream.readByte(); - readRect(stream, exitHotspot); + _flagOnExit.label = stream.readSint16LE(); + _flagOnExit.flag = (NancyFlag)stream.readByte(); + readRect(stream, _exitHotspot); } void PasswordPuzzle::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - nextBlinkTime = g_nancy->getTotalPlayTime() + cursorBlinkTime; - state = kRun; + _nextBlinkTime = g_nancy->getTotalPlayTime() + _cursorBlinkTime; + _state = kRun; // fall through case kRun: - switch (solveState) { + switch (_solveState) { case kNotSolved: { - Common::String &activeField = passwordFieldIsActive ? playerPasswordInput : playerNameInput; - Common::String &correctField = passwordFieldIsActive ? password : name; + Common::String &activeField = _passwordFieldIsActive ? _playerPasswordInput : _playerNameInput; + Common::String &correctField = _passwordFieldIsActive ? _password : _name; Time currentTime = g_nancy->getTotalPlayTime(); - if (playerHasHitReturn) { - playerHasHitReturn = false; + if (_playerHasHitReturn) { + _playerHasHitReturn = false; if (activeField.lastChar() == '-') { activeField.deleteLastChar(); @@ -96,22 +96,22 @@ void PasswordPuzzle::execute() { } if (activeField.equalsIgnoreCase(correctField)) { - if (!passwordFieldIsActive) { - passwordFieldIsActive = true; + if (!_passwordFieldIsActive) { + _passwordFieldIsActive = true; } else { - g_nancy->sound->loadSound(solveSound); - g_nancy->sound->playSound(solveSound); - solveState = kSolved; + g_nancy->_sound->loadSound(_solveSound); + g_nancy->_sound->playSound(_solveSound); + _solveState = kSolved; } } else { - g_nancy->sound->loadSound(failSound); - g_nancy->sound->playSound(failSound); - solveState = kFailed; + g_nancy->_sound->loadSound(_failSound); + g_nancy->_sound->playSound(_failSound); + _solveState = kFailed; } - } else if (currentTime >= nextBlinkTime) { - nextBlinkTime = currentTime + cursorBlinkTime; + } else if (currentTime >= _nextBlinkTime) { + _nextBlinkTime = currentTime + _cursorBlinkTime; if (activeField.size() && activeField.lastChar() == '-') { activeField.deleteLastChar(); @@ -125,16 +125,16 @@ void PasswordPuzzle::execute() { break; } case kFailed: - if (!g_nancy->sound->isSoundPlaying(failSound)) { - g_nancy->sound->stopSound(failSound); - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_failSound)) { + g_nancy->_sound->stopSound(_failSound); + _state = kActionTrigger; } break; case kSolved: - if (!g_nancy->sound->isSoundPlaying(solveSound)) { - g_nancy->sound->stopSound(solveSound); - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_solveSound)) { + g_nancy->_sound->stopSound(_solveSound); + _state = kActionTrigger; } break; @@ -142,18 +142,18 @@ void PasswordPuzzle::execute() { break; case kActionTrigger: - switch (solveState) { + switch (_solveState) { case kNotSolved: - NancySceneState.changeScene(exitScene); - NancySceneState.setEventFlag(flagOnExit); + NancySceneState.changeScene(_exitScene); + NancySceneState.setEventFlag(_flagOnExit); break; case kFailed: - NancySceneState.changeScene(failExitScene); - NancySceneState.setEventFlag(flagOnFail.label); + NancySceneState.changeScene(_failExitScene); + NancySceneState.setEventFlag(_flagOnFail.label); break; case kSolved: - NancySceneState.changeScene(solveExitScene); - NancySceneState.setEventFlag(flagOnSolve.label); + NancySceneState.changeScene(_solveExitScene); + NancySceneState.setEventFlag(_flagOnSolve.label); break; } @@ -162,15 +162,15 @@ void PasswordPuzzle::execute() { } void PasswordPuzzle::handleInput(NancyInput &input) { - if (solveState != kNotSolved) { + if (_solveState != kNotSolved) { return; } - if (NancySceneState.getViewport().convertViewportToScreen(exitHotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kExitArrow); + if (NancySceneState.getViewport().convertViewportToScreen(_exitHotspot).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kExitArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { - state = kActionTrigger; + _state = kActionTrigger; } return; @@ -178,8 +178,8 @@ void PasswordPuzzle::handleInput(NancyInput &input) { for (uint i = 0; i < input.otherKbdInput.size(); ++i) { Common::KeyState &key = input.otherKbdInput[i]; - Common::String &activeField = passwordFieldIsActive ? playerPasswordInput : playerNameInput; - Common::String &correctField = passwordFieldIsActive ? password : name; + Common::String &activeField = _passwordFieldIsActive ? _playerPasswordInput : _playerNameInput; + Common::String &correctField = _passwordFieldIsActive ? _password : _name; if (key.keycode == Common::KEYCODE_BACKSPACE) { if (activeField.size() && activeField.lastChar() == '-' ? activeField.size() > 1 : true) { if (activeField.lastChar() == '-') { @@ -191,7 +191,7 @@ void PasswordPuzzle::handleInput(NancyInput &input) { drawText(); } } else if (key.keycode == Common::KEYCODE_RETURN) { - playerHasHitReturn = true; + _playerHasHitReturn = true; } else if (Common::isAlnum(key.ascii) || Common::isSpace(key.ascii)) { if (activeField.size() && activeField.lastChar() == '-') { if (activeField.size() <= correctField.size() + 2) { @@ -218,20 +218,20 @@ void PasswordPuzzle::onPause(bool pause) { void PasswordPuzzle::drawText() { _drawSurface.clear(GraphicsManager::getTransColor()); - Graphics::Font *font = g_nancy->graphicsManager->getFont(fontID); + Graphics::Font *font = g_nancy->_graphicsManager->getFont(_fontID); - Common::Rect bounds = nameBounds; + Common::Rect bounds = _nameBounds; bounds = NancySceneState.getViewport().convertViewportToScreen(bounds); bounds = convertToLocal(bounds); Common::Point destPoint(bounds.left, bounds.bottom + 1 - font->getFontHeight()); - font->drawString(&_drawSurface, playerNameInput, destPoint.x, destPoint.y, bounds.width(), 0); + font->drawString(&_drawSurface, _playerNameInput, destPoint.x, destPoint.y, bounds.width(), 0); - bounds = passwordBounds; + bounds = _passwordBounds; bounds = NancySceneState.getViewport().convertViewportToScreen(bounds); bounds = convertToLocal(bounds); destPoint.x = bounds.left; destPoint.y = bounds.bottom + 1 - font->getFontHeight(); - font->drawString(&_drawSurface, playerPasswordInput, destPoint.x, destPoint.y, bounds.width(), 0); + font->drawString(&_drawSurface, _playerPasswordInput, destPoint.x, destPoint.y, bounds.width(), 0); _needsRedraw = true; } diff --git a/engines/nancy/action/passwordpuzzle.h b/engines/nancy/action/passwordpuzzle.h index d135cb36a4c..c727c153d2d 100644 --- a/engines/nancy/action/passwordpuzzle.h +++ b/engines/nancy/action/passwordpuzzle.h @@ -40,9 +40,9 @@ public: enum SolveState { kNotSolved, kFailed, kSolved }; PasswordPuzzle(RenderObject &redrawFrom) : RenderObject(redrawFrom), - passwordFieldIsActive(false), - playerHasHitReturn(false), - solveState(kNotSolved) {} + _passwordFieldIsActive(false), + _playerHasHitReturn(false), + _solveState(kNotSolved) {} virtual ~PasswordPuzzle() {} virtual void init() override; @@ -52,29 +52,29 @@ public: virtual void handleInput(NancyInput &input) override; virtual void onPause(bool pause) override; - uint16 fontID; // 0x00 - Time cursorBlinkTime; // 0x2 - Common::Rect nameBounds; // 0x4 - Common::Rect passwordBounds; // 0x14 + uint16 _fontID; // 0x00 + Time _cursorBlinkTime; // 0x2 + Common::Rect _nameBounds; // 0x4 + Common::Rect _passwordBounds; // 0x14 // _screenPosition 0x24 - Common::String name; // 0x34, 20 bytes long - Common::String password; // 0x48, 20 bytes long - SceneChangeDescription solveExitScene; // 0x5A - EventFlagDescription flagOnSolve; // 0x66 - SoundDescription solveSound; // 0x69 - SceneChangeDescription failExitScene; // 0x8B - EventFlagDescription flagOnFail; // 0x95 - SoundDescription failSound; // 0x98 - SceneChangeDescription exitScene; // 0xBA - EventFlagDescription flagOnExit; // 0xC4 - Common::Rect exitHotspot; // 0xC7 + Common::String _name; // 0x34, 20 bytes long + Common::String _password; // 0x48, 20 bytes long + SceneChangeDescription _solveExitScene; // 0x5A + EventFlagDescription _flagOnSolve; // 0x66 + SoundDescription _solveSound; // 0x69 + SceneChangeDescription _failExitScene; // 0x8B + EventFlagDescription _flagOnFail; // 0x95 + SoundDescription _failSound; // 0x98 + SceneChangeDescription _exitScene; // 0xBA + EventFlagDescription _flagOnExit; // 0xC4 + Common::Rect _exitHotspot; // 0xC7 - Common::String playerNameInput; - Common::String playerPasswordInput; - Time nextBlinkTime; - bool passwordFieldIsActive; - bool playerHasHitReturn; - SolveState solveState; + Common::String _playerNameInput; + Common::String _playerPasswordInput; + Time _nextBlinkTime; + bool _passwordFieldIsActive; + bool _playerHasHitReturn; + SolveState _solveState; protected: virtual Common::String getRecordTypeName() const override { return "PasswordPuzzle"; } diff --git a/engines/nancy/action/primaryvideo.cpp b/engines/nancy/action/primaryvideo.cpp index 9f0f28f1295..24008a9c10c 100644 --- a/engines/nancy/action/primaryvideo.cpp +++ b/engines/nancy/action/primaryvideo.cpp @@ -37,7 +37,7 @@ namespace Nancy { namespace Action { -PlayPrimaryVideoChan0 *PlayPrimaryVideoChan0::activePrimaryVideo = nullptr; +PlayPrimaryVideoChan0 *PlayPrimaryVideoChan0::_activePrimaryVideo = nullptr; void PlayPrimaryVideoChan0::ConditionFlag::read(Common::SeekableReadStream &stream) { type = (ConditionType)stream.readByte(); @@ -109,8 +109,8 @@ bool PlayPrimaryVideoChan0::ConditionFlags::isSatisfied() const { PlayPrimaryVideoChan0::~PlayPrimaryVideoChan0() { _decoder.close(); - if (activePrimaryVideo == this) { - activePrimaryVideo = nullptr; + if (_activePrimaryVideo == this) { + _activePrimaryVideo = nullptr; } NancySceneState.setShouldClearTextbox(true); @@ -118,8 +118,8 @@ PlayPrimaryVideoChan0::~PlayPrimaryVideoChan0() { } void PlayPrimaryVideoChan0::init() { - _decoder.loadFile(videoName + ".avf"); - _drawSurface.create(src.width(), src.height(), _decoder.getPixelFormat()); + _decoder.loadFile(_videoName + ".avf"); + _drawSurface.create(_src.width(), _src.height(), _decoder.getPixelFormat()); RenderObject::init(); @@ -136,7 +136,7 @@ void PlayPrimaryVideoChan0::updateGraphics() { } if (_decoder.needsUpdate()) { - _drawSurface.blitFrom(*_decoder.decodeNextFrame(), src, Common::Point()); + _drawSurface.blitFrom(*_decoder.decodeNextFrame(), _src, Common::Point()); _needsRedraw = true; } @@ -156,34 +156,34 @@ void PlayPrimaryVideoChan0::readData(Common::SeekableReadStream &stream) { char name[10]; stream.read(name, 10); - videoName = Common::String(name); + _videoName = Common::String(name); stream.skip(0x13); - readRect(stream, src); + readRect(stream, _src); readRect(stream, _screenPosition); char *rawText = new char[1500](); stream.read(rawText, 1500); - UI::Textbox::assembleTextLine(rawText, text, 1500); + UI::Textbox::assembleTextLine(rawText, _text, 1500); delete[] rawText; - sound.read(stream, SoundDescription::kNormal); - responseGenericSound.read(stream, SoundDescription::kNormal); + _sound.read(stream, SoundDescription::kNormal); + _responseGenericSound.read(stream, SoundDescription::kNormal); stream.skip(1); - conditionalResponseCharacterID = stream.readByte(); - goodbyeResponseCharacterID = stream.readByte(); - isDialogueExitScene = (NancyFlag)stream.readByte(); - doNotPop = (NancyFlag)stream.readByte(); - sceneChange.readData(stream); + _conditionalResponseCharacterID = stream.readByte(); + _goodbyeResponseCharacterID = stream.readByte(); + _isDialogueExitScene = (NancyFlag)stream.readByte(); + _doNotPop = (NancyFlag)stream.readByte(); + _sceneChange.readData(stream); stream.seek(beginOffset + 0x69C); uint16 numResponses = stream.readUint16LE(); if (numResponses > 0) { for (uint i = 0; i < numResponses; ++i) { - responses.push_back(ResponseStruct()); - ResponseStruct &response = responses[i]; + _responses.push_back(ResponseStruct()); + ResponseStruct &response = _responses[i]; response.conditionFlags.read(stream); rawText = new char[400]; stream.read(rawText, 400); @@ -193,7 +193,7 @@ void PlayPrimaryVideoChan0::readData(Common::SeekableReadStream &stream) { stream.read(name, 10); response.soundName = name; stream.skip(1); - response.sceneChange.readData(stream); + response._sceneChange.readData(stream); response.flagDesc.label = stream.readSint16LE(); response.flagDesc.flag = (NancyFlag)stream.readByte(); @@ -209,8 +209,8 @@ void PlayPrimaryVideoChan0::readData(Common::SeekableReadStream &stream) { uint16 numFlagsStructs = stream.readUint16LE(); if (numFlagsStructs > 0) { for (uint16 i = 0; i < numFlagsStructs; ++i) { - flagsStructs.push_back(FlagsStruct()); - FlagsStruct &flagsStruct = flagsStructs.back(); + _flagsStructs.push_back(FlagsStruct()); + FlagsStruct &flagsStruct = _flagsStructs.back(); flagsStruct.conditions.read(stream); flagsStruct.flagToSet.type = (ConditionFlag::ConditionType)stream.readByte(); flagsStruct.flagToSet.flag.label = stream.readSint16LE(); @@ -220,36 +220,36 @@ void PlayPrimaryVideoChan0::readData(Common::SeekableReadStream &stream) { } void PlayPrimaryVideoChan0::execute() { - if (activePrimaryVideo != this && activePrimaryVideo != nullptr) { + if (_activePrimaryVideo != this && _activePrimaryVideo != nullptr) { return; } - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - g_nancy->sound->loadSound(sound); - g_nancy->sound->playSound(sound); - state = kRun; - activePrimaryVideo = this; + g_nancy->_sound->loadSound(_sound); + g_nancy->_sound->playSound(_sound); + _state = kRun; + _activePrimaryVideo = this; // fall through case kRun: - if (!hasDrawnTextbox) { - hasDrawnTextbox = true; + if (!_hasDrawnTextbox) { + _hasDrawnTextbox = true; NancySceneState.getTextbox().clear(); - NancySceneState.getTextbox().addTextLine(text); + NancySceneState.getTextbox().addTextLine(_text); // Add responses when conditions have been satisfied - if (conditionalResponseCharacterID != 10) { + if (_conditionalResponseCharacterID != 10) { addConditionalResponses(); } - if (goodbyeResponseCharacterID != 10) { + if (_goodbyeResponseCharacterID != 10) { addGoodbye(); } - for (uint i = 0; i < responses.size(); ++i) { - auto &res = responses[i]; + for (uint i = 0; i < _responses.size(); ++i) { + auto &res = _responses[i]; if (res.conditionFlags.isSatisfied()) { NancySceneState.getTextbox().addTextLine(res.text); @@ -257,56 +257,56 @@ void PlayPrimaryVideoChan0::execute() { } } - if (!g_nancy->sound->isSoundPlaying(sound) && _decoder.endOfVideo()) { - g_nancy->sound->stopSound(sound); + if (!g_nancy->_sound->isSoundPlaying(_sound) && _decoder.endOfVideo()) { + g_nancy->_sound->stopSound(_sound); - if (responses.size() == 0) { + if (_responses.size() == 0) { // NPC has finished talking with no responses available, auto-advance to next scene - state = kActionTrigger; + _state = kActionTrigger; } else { // NPC has finished talking, we have responses for (uint i = 0; i < 30; ++i) { if (NancySceneState.getLogicCondition(i, kTrue)) { - pickedResponse = i; + _pickedResponse = i; break; } } - if (pickedResponse != -1) { - // Player has picked response, play sound file and change state - responseGenericSound.name = responses[pickedResponse].soundName; + if (_pickedResponse != -1) { + // Player has picked response, play sound file and change _state + _responseGenericSound.name = _responses[_pickedResponse].soundName; // TODO this is probably not correct - g_nancy->sound->loadSound(responseGenericSound); - g_nancy->sound->playSound(responseGenericSound); - state = kActionTrigger; + g_nancy->_sound->loadSound(_responseGenericSound); + g_nancy->_sound->playSound(_responseGenericSound); + _state = kActionTrigger; } } } break; case kActionTrigger: // process flags structs - for (auto flags : flagsStructs) { + for (auto flags : _flagsStructs) { if (flags.conditions.isSatisfied()) { flags.flagToSet.set(); } } - if (pickedResponse != -1) { + if (_pickedResponse != -1) { // Set response's event flag, if any - NancySceneState.setEventFlag(responses[pickedResponse].flagDesc); + NancySceneState.setEventFlag(_responses[_pickedResponse].flagDesc); } - if (!g_nancy->sound->isSoundPlaying(responseGenericSound)) { - g_nancy->sound->stopSound(responseGenericSound); + if (!g_nancy->_sound->isSoundPlaying(_responseGenericSound)) { + g_nancy->_sound->stopSound(_responseGenericSound); - if (pickedResponse != -1) { - NancySceneState.changeScene(responses[pickedResponse].sceneChange); + if (_pickedResponse != -1) { + NancySceneState.changeScene(_responses[_pickedResponse]._sceneChange); } else { // Evaluate scene branch structs here - if (isDialogueExitScene == kFalse) { - NancySceneState.changeScene(sceneChange); - } else if (doNotPop == kFalse) { + if (_isDialogueExitScene == kFalse) { + NancySceneState.changeScene(_sceneChange); + } else if (_doNotPop == kFalse) { // Exit dialogue NancySceneState.popScene(); } @@ -321,7 +321,7 @@ void PlayPrimaryVideoChan0::execute() { void PlayPrimaryVideoChan0::addConditionalResponses() { for (auto &res : nancy1ConditionalResponses) { - if (res.characterID == conditionalResponseCharacterID) { + if (res.characterID == _conditionalResponseCharacterID) { bool isSatisfied = true; for (auto & cond : res.conditions) { if (cond.label == -1) { @@ -342,12 +342,12 @@ void PlayPrimaryVideoChan0::addConditionalResponses() { file.seek(nancy1ResponseBaseFileOffset + res.fileOffset); file.read(snd, 8); - responses.push_back(ResponseStruct()); - ResponseStruct &newResponse = responses.back(); + _responses.push_back(ResponseStruct()); + ResponseStruct &newResponse = _responses.back(); newResponse.soundName = snd; newResponse.text = file.readString(); - newResponse.sceneChange.sceneID = res.sceneID; - newResponse.sceneChange.doNotStartSound = true; + newResponse._sceneChange.sceneID = res.sceneID; + newResponse._sceneChange.doNotStartSound = true; file.close(); } @@ -357,7 +357,7 @@ void PlayPrimaryVideoChan0::addConditionalResponses() { void PlayPrimaryVideoChan0::addGoodbye() { for (auto &res : nancy1Goodbyes) { - if (res.characterID == goodbyeResponseCharacterID) { + if (res.characterID == _goodbyeResponseCharacterID) { Common::File file; char snd[10]; @@ -365,13 +365,13 @@ void PlayPrimaryVideoChan0::addGoodbye() { file.seek(nancy1ResponseBaseFileOffset + res.fileOffset); file.read(snd, 8); - responses.push_back(ResponseStruct()); - ResponseStruct &newResponse = responses.back(); + _responses.push_back(ResponseStruct()); + ResponseStruct &newResponse = _responses.back(); newResponse.soundName = snd; newResponse.text = file.readString(); // response is picked randomly - newResponse.sceneChange.sceneID = res.sceneIDs[g_nancy->randomSource->getRandomNumber(3)]; - newResponse.sceneChange.doNotStartSound = true; + newResponse._sceneChange.sceneID = res.sceneIDs[g_nancy->_randomSource->getRandomNumber(3)]; + newResponse._sceneChange.doNotStartSound = true; file.close(); } diff --git a/engines/nancy/action/primaryvideo.h b/engines/nancy/action/primaryvideo.h index 11c75134635..c5fcb13fc83 100644 --- a/engines/nancy/action/primaryvideo.h +++ b/engines/nancy/action/primaryvideo.h @@ -64,7 +64,7 @@ struct ResponseStruct { ConditionFlags conditionFlags; // 0x01 Common::String text; // 0x06 Common::String soundName; // 0x196 - SceneChangeDescription sceneChange; // 0x1A0 + SceneChangeDescription _sceneChange; // 0x1A0 EventFlagDescription flagDesc; // 0x1A8 }; @@ -88,30 +88,30 @@ public: void addConditionalResponses(); void addGoodbye(); - Common::String videoName; // 0x00 - Common::Rect src; // 0x1D + Common::String _videoName; // 0x00 + Common::Rect _src; // 0x1D // _screenPosition 0x2D - Common::String text; // 0x3D + Common::String _text; // 0x3D - SoundDescription sound; // 0x619 - SoundDescription responseGenericSound; // 0x63B + SoundDescription _sound; // 0x619 + SoundDescription _responseGenericSound; // 0x63B - byte conditionalResponseCharacterID; // 0x65E - byte goodbyeResponseCharacterID; // 0x65F - NancyFlag isDialogueExitScene; // 0x660 - NancyFlag doNotPop; // 0x661 - SceneChangeDescription sceneChange; // 0x662 + byte _conditionalResponseCharacterID; // 0x65E + byte _goodbyeResponseCharacterID; // 0x65F + NancyFlag _isDialogueExitScene; // 0x660 + NancyFlag _doNotPop; // 0x661 + SceneChangeDescription _sceneChange; // 0x662 - Common::Array responses; // 0x69E - Common::Array flagsStructs; // 0x6AA + Common::Array _responses; // 0x69E + Common::Array _flagsStructs; // 0x6AA AVFDecoder _decoder; - bool hasDrawnTextbox = false; - int16 pickedResponse = -1; + bool _hasDrawnTextbox = false; + int16 _pickedResponse = -1; // Used to avoid clashes between multiple instances in the same scene - static PlayPrimaryVideoChan0 *activePrimaryVideo; + static PlayPrimaryVideoChan0 *_activePrimaryVideo; protected: virtual Common::String getRecordTypeName() const override { return "PlayPrimaryVideoChan0"; } diff --git a/engines/nancy/action/recordtypes.cpp b/engines/nancy/action/recordtypes.cpp index 4f8cec0445c..97dd9bc29c9 100644 --- a/engines/nancy/action/recordtypes.cpp +++ b/engines/nancy/action/recordtypes.cpp @@ -41,12 +41,12 @@ namespace Nancy { namespace Action { void SceneChange::readData(Common::SeekableReadStream &stream) { - sceneChange.readData(stream); + _sceneChange.readData(stream); } void SceneChange::execute() { - NancySceneState.changeScene(sceneChange); - isDone = true; + NancySceneState.changeScene(_sceneChange); + _isDone = true; } void HotMultiframeSceneChange::readData(Common::SeekableReadStream &stream) { @@ -54,24 +54,24 @@ void HotMultiframeSceneChange::readData(Common::SeekableReadStream &stream) { uint16 numHotspots = stream.readUint16LE(); for (uint i = 0; i < numHotspots; ++i) { - hotspots.push_back(HotspotDescription()); - HotspotDescription &newDesc = hotspots[i]; + _hotspots.push_back(HotspotDescription()); + HotspotDescription &newDesc = _hotspots[i]; newDesc.readData(stream); } } void HotMultiframeSceneChange::execute() { - switch (state) { + switch (_state) { case kBegin: // turn main rendering on - state = kRun; + _state = kRun; // fall through case kRun: - hasHotspot = false; - for (uint i = 0; i < hotspots.size(); ++i) { - if (hotspots[i].frameID == NancySceneState.getSceneInfo().frameID) { - hasHotspot = true; - hotspot = hotspots[i].coords; + _hasHotspot = false; + for (uint i = 0; i < _hotspots.size(); ++i) { + if (_hotspots[i].frameID == NancySceneState.getSceneInfo().frameID) { + _hasHotspot = true; + _hotspot = _hotspots[i].coords; } } break; @@ -83,20 +83,20 @@ void HotMultiframeSceneChange::execute() { void Hot1FrSceneChange::readData(Common::SeekableReadStream &stream) { SceneChange::readData(stream); - hotspotDesc.readData(stream); + _hotspotDesc.readData(stream); } void Hot1FrSceneChange::execute() { - switch (state) { + switch (_state) { case kBegin: - hotspot = hotspotDesc.coords; - state = kRun; + _hotspot = _hotspotDesc.coords; + _state = kRun; // fall through case kRun: - if (hotspotDesc.frameID == NancySceneState.getSceneInfo().frameID) { - hasHotspot = true; + if (_hotspotDesc.frameID == NancySceneState.getSceneInfo().frameID) { + _hasHotspot = true; } else { - hasHotspot = false; + _hasHotspot = false; } break; case kActionTrigger: @@ -124,7 +124,7 @@ void MapCall::readData(Common::SeekableReadStream &stream) { } void MapCall::execute() { - execType = kRepeating; + _execType = kRepeating; NancySceneState.requestStateChange(NancyEngine::kMap); finishExecution(); } @@ -134,14 +134,14 @@ void MapCallHot1Fr::readData(Common::SeekableReadStream &stream) { } void MapCallHot1Fr::execute() { - switch (state) { + switch (_state) { case kBegin: - hotspot = hotspotDesc.coords; - state = kRun; + _hotspot = _hotspotDesc.coords; + _state = kRun; // fall through case kRun: - if (hotspotDesc.frameID == NancySceneState.getSceneInfo().frameID) { - hasHotspot = true; + if (_hotspotDesc.frameID == NancySceneState.getSceneInfo().frameID) { + _hasHotspot = true; } break; case kActionTrigger: @@ -153,22 +153,22 @@ void MapCallHot1Fr::execute() { void MapCallHotMultiframe::readData(Common::SeekableReadStream &stream) { uint16 numDescs = stream.readUint16LE(); for (uint i = 0; i < numDescs; ++i) { - hotspots.push_back(HotspotDescription()); - hotspots[i].readData(stream); + _hotspots.push_back(HotspotDescription()); + _hotspots[i].readData(stream); } } void MapCallHotMultiframe::execute() { - switch (state) { + switch (_state) { case kBegin: - state = kRun; + _state = kRun; // fall through case kRun: - hasHotspot = false; - for (uint i = 0; i < hotspots.size(); ++i) { - if (hotspots[i].frameID == NancySceneState.getSceneInfo().frameID) { - hasHotspot = true; - hotspot = hotspots[i].coords; + _hasHotspot = false; + for (uint i = 0; i < _hotspots.size(); ++i) { + if (_hotspots[i].frameID == NancySceneState.getSceneInfo().frameID) { + _hasHotspot = true; + _hotspot = _hotspots[i].coords; } } break; @@ -229,7 +229,7 @@ void ResetAndStartTimer::readData(Common::SeekableReadStream &stream) { void ResetAndStartTimer::execute() { NancySceneState.resetAndStartTimer(); - isDone = true; + _isDone = true; } void StopTimer::readData(Common::SeekableReadStream &stream) { @@ -238,16 +238,16 @@ void StopTimer::readData(Common::SeekableReadStream &stream) { void StopTimer::execute() { NancySceneState.stopTimer(); - isDone = true; + _isDone = true; } void EventFlags::readData(Common::SeekableReadStream &stream) { - flags.readData(stream); + _flags.readData(stream); } void EventFlags::execute() { - flags.execute(); - isDone = true; + _flags.execute(); + _isDone = true; } void EventFlagsMultiHS::readData(Common::SeekableReadStream &stream) { @@ -255,31 +255,31 @@ void EventFlagsMultiHS::readData(Common::SeekableReadStream &stream) { uint16 numHotspots = stream.readUint16LE(); for (uint16 i = 0; i < numHotspots; ++i) { - hotspots.push_back(HotspotDescription()); - HotspotDescription &newDesc = hotspots[i]; + _hotspots.push_back(HotspotDescription()); + HotspotDescription &newDesc = _hotspots[i]; newDesc.readData(stream); } } void EventFlagsMultiHS::execute() { - switch (state) { + switch (_state) { case kBegin: // turn main rendering on - state = kRun; + _state = kRun; // fall through case kRun: - hasHotspot = false; + _hasHotspot = false; - for (uint i = 0; i < hotspots.size(); ++i) { - if (hotspots[i].frameID == NancySceneState.getSceneInfo().frameID) { - hasHotspot = true; - hotspot = hotspots[i].coords; + for (uint i = 0; i < _hotspots.size(); ++i) { + if (_hotspots[i].frameID == NancySceneState.getSceneInfo().frameID) { + _hasHotspot = true; + _hotspot = _hotspots[i].coords; } } break; case kActionTrigger: - hasHotspot = false; + _hasHotspot = false; EventFlags::execute(); finishExecution(); break; @@ -291,10 +291,10 @@ void LoseGame::readData(Common::SeekableReadStream &stream) { } void LoseGame::execute() { - g_nancy->sound->stopAndUnloadSpecificSounds(); + g_nancy->_sound->stopAndUnloadSpecificSounds(); g_nancy->setState(NancyEngine::kMainMenu); NancySceneState.resetStateToInit(); - isDone = true; + _isDone = true; } void PushScene::readData(Common::SeekableReadStream &stream) { @@ -310,24 +310,24 @@ void WinGame::readData(Common::SeekableReadStream &stream) { } void WinGame::execute() { - g_nancy->sound->stopAndUnloadSpecificSounds(); + g_nancy->_sound->stopAndUnloadSpecificSounds(); g_nancy->setState(NancyEngine::kCredits, NancyEngine::kMainMenu); // TODO replace with destroy()? NancySceneState.resetStateToInit(); - isDone = true; + _isDone = true; } void AddInventoryNoHS::readData(Common::SeekableReadStream &stream) { - itemID = stream.readUint16LE(); + _itemID = stream.readUint16LE(); } void AddInventoryNoHS::execute() { - if (NancySceneState.hasItem(itemID) == kFalse) { - NancySceneState.addItemToInventory(itemID); + if (NancySceneState.hasItem(_itemID) == kFalse) { + NancySceneState.addItemToInventory(_itemID); } - isDone = true; + _isDone = true; } void RemoveInventoryNoHS::readData(Common::SeekableReadStream &stream) { @@ -335,67 +335,67 @@ void RemoveInventoryNoHS::readData(Common::SeekableReadStream &stream) { } void DifficultyLevel::readData(Common::SeekableReadStream &stream) { - difficulty = stream.readUint16LE(); - flag.label = stream.readSint16LE(); - flag.flag = (NancyFlag)stream.readUint16LE(); + _difficulty = stream.readUint16LE(); + _flag.label = stream.readSint16LE(); + _flag.flag = (NancyFlag)stream.readUint16LE(); } void DifficultyLevel::execute() { - NancySceneState.setDifficulty(difficulty); - NancySceneState.setEventFlag(flag); - isDone = true; + NancySceneState.setDifficulty(_difficulty); + NancySceneState.setEventFlag(_flag); + _isDone = true; } void ShowInventoryItem::init() { - g_nancy->resource->loadImage(imageName, _fullSurface); + g_nancy->_resource->loadImage(_imageName, _fullSurface); - _drawSurface.create(_fullSurface, bitmaps[0].src); + _drawSurface.create(_fullSurface, _bitmaps[0].src); RenderObject::init(); } void ShowInventoryItem::readData(Common::SeekableReadStream &stream) { - objectID = stream.readUint16LE(); + _objectID = stream.readUint16LE(); char name[10]; stream.read(name, 10); - imageName = Common::String(name); + _imageName = Common::String(name); uint16 numFrames = stream.readUint16LE(); for (uint i = 0; i < numFrames; ++i) { - bitmaps.push_back(BitmapDescription()); - bitmaps[i].readData(stream); + _bitmaps.push_back(BitmapDescription()); + _bitmaps[i].readData(stream); } } void ShowInventoryItem::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - state = kRun; + _state = kRun; // fall through case kRun: { int newFrame = -1; - for (uint i = 0; i < bitmaps.size(); ++i) { - if (bitmaps[i].frameID == NancySceneState.getSceneInfo().frameID) { + for (uint i = 0; i < _bitmaps.size(); ++i) { + if (_bitmaps[i].frameID == NancySceneState.getSceneInfo().frameID) { newFrame = i; break; } } - if (newFrame != drawnFrameID) { - drawnFrameID = newFrame; + if (newFrame != _drawnFrameID) { + _drawnFrameID = newFrame; if (newFrame != -1) { - hasHotspot = true; - hotspot = bitmaps[newFrame].dest; - _drawSurface.create(_fullSurface, bitmaps[newFrame].src); - _screenPosition = bitmaps[newFrame].dest; + _hasHotspot = true; + _hotspot = _bitmaps[newFrame].dest; + _drawSurface.create(_fullSurface, _bitmaps[newFrame].src); + _screenPosition = _bitmaps[newFrame].dest; setVisible(true); } else { - hasHotspot = false; + _hasHotspot = false; setVisible(false); } } @@ -403,10 +403,10 @@ void ShowInventoryItem::execute() { break; } case kActionTrigger: - g_nancy->sound->playSound(24); // Hardcoded by original engine - NancySceneState.addItemToInventory(objectID); + g_nancy->_sound->playSound(24); // Hardcoded by original engine + NancySceneState.addItemToInventory(_objectID); setVisible(false); - hasHotspot = false; + _hasHotspot = false; finishExecution(); break; } @@ -419,33 +419,33 @@ void ShowInventoryItem::onPause(bool pause) { } void PlayDigiSoundAndDie::readData(Common::SeekableReadStream &stream) { - sound.read(stream, SoundDescription::kDIGI); - sceneChange.readData(stream); - flagOnTrigger.label = stream.readSint16LE(); - flagOnTrigger.flag = (NancyFlag)stream.readByte(); + _sound.read(stream, SoundDescription::kDIGI); + _sceneChange.readData(stream); + _flagOnTrigger.label = stream.readSint16LE(); + _flagOnTrigger.flag = (NancyFlag)stream.readByte(); stream.skip(2); } void PlayDigiSoundAndDie::execute() { - switch (state) { + switch (_state) { case kBegin: - g_nancy->sound->loadSound(sound); - g_nancy->sound->playSound(sound); - state = kRun; + g_nancy->_sound->loadSound(_sound); + g_nancy->_sound->playSound(_sound); + _state = kRun; break; case kRun: - if (!g_nancy->sound->isSoundPlaying(sound)) { - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_sound)) { + _state = kActionTrigger; } break; case kActionTrigger: - if (sceneChange.sceneID != 9999) { - NancySceneState.changeScene(sceneChange); + if (_sceneChange.sceneID != 9999) { + NancySceneState.changeScene(_sceneChange); } - NancySceneState.setEventFlag(flagOnTrigger); - g_nancy->sound->stopSound(sound); + NancySceneState.setEventFlag(_flagOnTrigger); + g_nancy->_sound->stopSound(_sound); finishExecution(); break; @@ -457,33 +457,33 @@ void PlaySoundPanFrameAnchorAndDie::readData(Common::SeekableReadStream &stream) } void PlaySoundMultiHS::readData(Common::SeekableReadStream &stream) { - sound.read(stream, SoundDescription::kNormal); - sceneChange.readData(stream); - flag.label = stream.readSint16LE(); - flag.flag = (NancyFlag)stream.readByte(); + _sound.read(stream, SoundDescription::kNormal); + _sceneChange.readData(stream); + _flag.label = stream.readSint16LE(); + _flag.flag = (NancyFlag)stream.readByte(); stream.skip(2); uint16 numHotspots = stream.readUint16LE(); for (uint i = 0; i < numHotspots; ++i) { - hotspots.push_back(HotspotDescription()); - hotspots.back().frameID = stream.readUint16LE(); - readRect(stream, hotspots.back().coords); + _hotspots.push_back(HotspotDescription()); + _hotspots.back().frameID = stream.readUint16LE(); + readRect(stream, _hotspots.back().coords); } } void PlaySoundMultiHS::execute() { - switch (state) { + switch (_state) { case kBegin: - state = kRun; + _state = kRun; // fall through case kRun: { - hasHotspot = false; + _hasHotspot = false; uint currentFrame = NancySceneState.getSceneInfo().frameID; - for (uint i = 0; i < hotspots.size(); ++i) { - if (hotspots[i].frameID == currentFrame) { - hotspot = hotspots[i].coords; - hasHotspot = true; + for (uint i = 0; i < _hotspots.size(); ++i) { + if (_hotspots[i].frameID == currentFrame) { + _hotspot = _hotspots[i].coords; + _hasHotspot = true; break; } } @@ -491,22 +491,22 @@ void PlaySoundMultiHS::execute() { break; } case kActionTrigger: - g_nancy->sound->loadSound(sound); - g_nancy->sound->playSound(sound); - NancySceneState.changeScene(sceneChange); - NancySceneState.setEventFlag(flag); + g_nancy->_sound->loadSound(_sound); + g_nancy->_sound->playSound(_sound); + NancySceneState.changeScene(_sceneChange); + NancySceneState.setEventFlag(_flag); finishExecution(); break; } } void HintSystem::readData(Common::SeekableReadStream &stream) { - characterID = stream.readByte(); - genericSound.read(stream, SoundDescription::kNormal); + _characterID = stream.readByte(); + _genericSound.read(stream, SoundDescription::kNormal); } void HintSystem::execute() { - switch (state) { + switch (_state) { case kBegin: if (NancySceneState.getHintsRemaining() > 0) { selectHint(); @@ -515,35 +515,35 @@ void HintSystem::execute() { } NancySceneState.getTextbox().clear(); - NancySceneState.getTextbox().addTextLine(text); + NancySceneState.getTextbox().addTextLine(_text); - g_nancy->sound->loadSound(genericSound); - g_nancy->sound->playSound(genericSound); - state = kRun; + g_nancy->_sound->loadSound(_genericSound); + g_nancy->_sound->playSound(_genericSound); + _state = kRun; break; case kRun: - if (!g_nancy->sound->isSoundPlaying(genericSound)) { - g_nancy->sound->stopSound(genericSound); - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_genericSound)) { + g_nancy->_sound->stopSound(_genericSound); + _state = kActionTrigger; } else { break; } // fall through case kActionTrigger: - NancySceneState.useHint(hintID, hintWeight); + NancySceneState.useHint(_hintID, _hintWeight); NancySceneState.getTextbox().clear(); - NancySceneState.changeScene(sceneChange); + NancySceneState.changeScene(_sceneChange); - isDone = true; + _isDone = true; break; } } void HintSystem::selectHint() { for (auto &hint : nancy1Hints) { - if (hint.characterID != characterID) { + if (hint.characterID != _characterID) { continue; } @@ -580,8 +580,8 @@ void HintSystem::selectHint() { void HintSystem::getHint(uint hint, uint difficulty) { uint fileOffset; - if (characterID < 3) { - fileOffset = nancy1HintOffsets[characterID]; + if (_characterID < 3) { + fileOffset = nancy1HintOffsets[_characterID]; } fileOffset += 0x288 * hint; @@ -590,26 +590,26 @@ void HintSystem::getHint(uint hint, uint difficulty) { file.open("game.exe"); file.seek(fileOffset); - hintID = file.readSint16LE(); - hintWeight = file.readSint16LE(); + _hintID = file.readSint16LE(); + _hintWeight = file.readSint16LE(); file.seek(difficulty * 10, SEEK_CUR); char soundName[10]; file.read(soundName, 10); - genericSound.name = soundName; + _genericSound.name = soundName; file.seek(-(difficulty * 10) - 10, SEEK_CUR); file.seek(30 + difficulty * 200, SEEK_CUR); char textBuf[200]; file.read(textBuf, 200); - text = textBuf; + _text = textBuf; file.seek(-(difficulty * 200) - 200, SEEK_CUR); file.seek(600, SEEK_CUR); - sceneChange.readData(file); + _sceneChange.readData(file); } } diff --git a/engines/nancy/action/recordtypes.h b/engines/nancy/action/recordtypes.h index de15567d17a..0ab9a0544c9 100644 --- a/engines/nancy/action/recordtypes.h +++ b/engines/nancy/action/recordtypes.h @@ -44,7 +44,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - SceneChangeDescription sceneChange; + SceneChangeDescription _sceneChange; protected: virtual Common::String getRecordTypeName() const override { return "SceneChange"; } @@ -55,7 +55,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - Common::Array hotspots; + Common::Array _hotspots; protected: virtual Common::String getRecordTypeName() const override { return "HotMultiframeSceneChange"; } @@ -66,7 +66,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - HotspotDescription hotspotDesc; + HotspotDescription _hotspotDesc; protected: virtual Common::String getRecordTypeName() const override { return "Hot1FrSceneChange"; } @@ -100,7 +100,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; // TODO add a Start and Stop subclass - byte type = 0; + byte _type = 0; protected: virtual Common::String getRecordTypeName() const override { return "StartStopPlayerScrolling"; } @@ -122,7 +122,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - HotspotDescription hotspotDesc; + HotspotDescription _hotspotDesc; protected: virtual Common::String getRecordTypeName() const override { return "MapCallHot1Fr"; } @@ -133,7 +133,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - Common::Array hotspots; + Common::Array _hotspots; protected: virtual Common::String getRecordTypeName() const override { return "MapCallHotMultiframe"; } @@ -242,7 +242,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - MultiEventFlagDescription flags; + MultiEventFlagDescription _flags; protected: virtual Common::String getRecordTypeName() const override { return "EventFlags"; } @@ -253,7 +253,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - Common::Array hotspots; + Common::Array _hotspots; protected: virtual Common::String getRecordTypeName() const override { return "EventFlagsMultiHS"; } @@ -298,7 +298,7 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - uint itemID; + uint _itemID; protected: virtual Common::String getRecordTypeName() const override { return "AddInventoryNoHS"; } @@ -317,8 +317,8 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - uint16 difficulty = 0; - EventFlagDescription flag; + uint16 _difficulty = 0; + EventFlagDescription _flag; protected: virtual Common::String getRecordTypeName() const override { return "DifficultyLevel"; } @@ -335,11 +335,11 @@ public: virtual void init() override; virtual void onPause(bool pause) override; - uint16 objectID = 0; - Common::String imageName; - Common::Array bitmaps; + uint16 _objectID = 0; + Common::String _imageName; + Common::Array _bitmaps; - int16 drawnFrameID = -1; + int16 _drawnFrameID = -1; Graphics::ManagedSurface _fullSurface; protected: @@ -355,9 +355,9 @@ public: virtual void execute() override; // TODO subclass into Play and Stop (?) - SoundDescription sound; - SceneChangeDescription sceneChange; - EventFlagDescription flagOnTrigger; + SoundDescription _sound; + SceneChangeDescription _sceneChange; + EventFlagDescription _flagOnTrigger; protected: virtual Common::String getRecordTypeName() const override { return "PlayDigiSoundAndDie"; } @@ -376,10 +376,10 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - SoundDescription sound; // 0x0 - SceneChangeDescription sceneChange; // 0x22 - EventFlagDescription flag; // 0x2A - Common::Array hotspots; // 0x31 + SoundDescription _sound; // 0x0 + SceneChangeDescription _sceneChange; // 0x22 + EventFlagDescription _flag; // 0x2A + Common::Array _hotspots; // 0x31 protected: virtual Common::String getRecordTypeName() const override { return "PlaySoundMultiHS"; } @@ -390,13 +390,13 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - byte characterID; // 0x00 - SoundDescription genericSound; // 0x01 + byte _characterID; // 0x00 + SoundDescription _genericSound; // 0x01 - Common::String text; - SceneChangeDescription sceneChange; - uint16 hintID; - int16 hintWeight; + Common::String _text; + SceneChangeDescription _sceneChange; + uint16 _hintID; + int16 _hintWeight; void selectHint(); void getHint(uint hint, uint difficulty); diff --git a/engines/nancy/action/rotatinglockpuzzle.cpp b/engines/nancy/action/rotatinglockpuzzle.cpp index ea13af2baeb..6661122ac18 100644 --- a/engines/nancy/action/rotatinglockpuzzle.cpp +++ b/engines/nancy/action/rotatinglockpuzzle.cpp @@ -40,121 +40,121 @@ void RotatingLockPuzzle::init() { setTransparent(true); - g_nancy->resource->loadImage(imageName, image); + g_nancy->_resource->loadImage(_imageName, _image); } void RotatingLockPuzzle::readData(Common::SeekableReadStream &stream) { char buf[10]; stream.read(buf, 10); - imageName = buf; + _imageName = buf; uint numDials = stream.readUint16LE(); for (uint i = 0; i < 10; ++i) { - srcRects.push_back(Common::Rect()); - readRect(stream, srcRects.back()); + _srcRects.push_back(Common::Rect()); + readRect(stream, _srcRects.back()); } for (uint i = 0; i < numDials; ++i) { - destRects.push_back(Common::Rect()); - readRect(stream, destRects.back()); + _destRects.push_back(Common::Rect()); + readRect(stream, _destRects.back()); if (i == 0) { - _screenPosition = destRects.back(); + _screenPosition = _destRects.back(); } else { - _screenPosition.extend(destRects.back()); + _screenPosition.extend(_destRects.back()); } } stream.skip((8 - numDials) * 16); for (uint i = 0; i < numDials; ++i) { - upHotspots.push_back(Common::Rect()); - readRect(stream, upHotspots.back()); + _upHotspots.push_back(Common::Rect()); + readRect(stream, _upHotspots.back()); } stream.skip((8 - numDials) * 16); for (uint i = 0; i < numDials; ++i) { - downHotspots.push_back(Common::Rect()); - readRect(stream, downHotspots.back()); + _downHotspots.push_back(Common::Rect()); + readRect(stream, _downHotspots.back()); } stream.skip((8 - numDials) * 16); for (uint i = 0; i < numDials; ++i) { - correctSequence.push_back(stream.readByte()); + _correctSequence.push_back(stream.readByte()); } stream.skip(8 - numDials); - clickSound.read(stream, SoundDescription::kNormal); - solveExitScene.readData(stream); + _clickSound.read(stream, SoundDescription::kNormal); + _solveExitScene.readData(stream); stream.skip(2); // shouldStopRendering, useless - flagOnSolve.label = stream.readSint16LE(); - flagOnSolve.flag = (NancyFlag)stream.readByte(); - solveSoundDelay = stream.readUint16LE(); - solveSound.read(stream, SoundDescription::kNormal); - exitScene.readData(stream); + _flagOnSolve.label = stream.readSint16LE(); + _flagOnSolve.flag = (NancyFlag)stream.readByte(); + _solveSoundDelay = stream.readUint16LE(); + _solveSound.read(stream, SoundDescription::kNormal); + _exitScene.readData(stream); stream.skip(2); // shouldStopRendering, useless - flagOnExit.label = stream.readSint16LE(); - flagOnExit.flag = (NancyFlag)stream.readByte(); - readRect(stream, exitHotspot); + _flagOnExit.label = stream.readSint16LE(); + _flagOnExit.flag = (NancyFlag)stream.readByte(); + readRect(stream, _exitHotspot); } void RotatingLockPuzzle::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - for (uint i = 0; i < correctSequence.size(); ++i) { - currentSequence.push_back(g_nancy->randomSource->getRandomNumber(9)); + for (uint i = 0; i < _correctSequence.size(); ++i) { + _currentSequence.push_back(g_nancy->_randomSource->getRandomNumber(9)); drawDial(i); } - g_nancy->sound->loadSound(clickSound); - g_nancy->sound->loadSound(solveSound); - state = kRun; + g_nancy->_sound->loadSound(_clickSound); + g_nancy->_sound->loadSound(_solveSound); + _state = kRun; // fall through case kRun: - switch (solveState) { + switch (_solveState) { case kNotSolved: - for (uint i = 0; i < correctSequence.size(); ++i) { - if (currentSequence[i] != (int16)correctSequence[i]) { + for (uint i = 0; i < _correctSequence.size(); ++i) { + if (_currentSequence[i] != (int16)_correctSequence[i]) { return; } } - NancySceneState.setEventFlag(flagOnSolve); - solveSoundPlayTime = g_nancy->getTotalPlayTime() + solveSoundDelay * 1000; - solveState = kPlaySound; + NancySceneState.setEventFlag(_flagOnSolve); + _solveSoundPlayTime = g_nancy->getTotalPlayTime() + _solveSoundDelay * 1000; + _solveState = kPlaySound; // fall through case kPlaySound: - if (g_nancy->getTotalPlayTime() <= solveSoundPlayTime) { + if (g_nancy->getTotalPlayTime() <= _solveSoundPlayTime) { break; } - g_nancy->sound->playSound(solveSound); - solveState = kWaitForSound; + g_nancy->_sound->playSound(_solveSound); + _solveState = kWaitForSound; break; case kWaitForSound: - if (!g_nancy->sound->isSoundPlaying(solveSound)) { - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_solveSound)) { + _state = kActionTrigger; } break; } break; case kActionTrigger: - g_nancy->sound->stopSound(clickSound); - g_nancy->sound->stopSound(solveSound); + g_nancy->_sound->stopSound(_clickSound); + g_nancy->_sound->stopSound(_solveSound); - if (solveState == kNotSolved) { - NancySceneState.changeScene(exitScene); - NancySceneState.setEventFlag(flagOnExit); + if (_solveState == kNotSolved) { + NancySceneState.changeScene(_exitScene); + NancySceneState.setEventFlag(_flagOnExit); } else { - NancySceneState.changeScene(solveExitScene); + NancySceneState.changeScene(_solveExitScene); } finishExecution(); @@ -162,28 +162,28 @@ void RotatingLockPuzzle::execute() { } void RotatingLockPuzzle::handleInput(NancyInput &input) { - if (solveState != kNotSolved) { + if (_solveState != kNotSolved) { return; } - if (NancySceneState.getViewport().convertViewportToScreen(exitHotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kExitArrow); + if (NancySceneState.getViewport().convertViewportToScreen(_exitHotspot).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kExitArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { - state = kActionTrigger; + _state = kActionTrigger; } return; } - for (uint i = 0; i < upHotspots.size(); ++i) { - if (NancySceneState.getViewport().convertViewportToScreen(upHotspots[i]).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspot); + for (uint i = 0; i < _upHotspots.size(); ++i) { + if (NancySceneState.getViewport().convertViewportToScreen(_upHotspots[i]).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspot); if (input.input & NancyInput::kLeftMouseButtonUp) { - g_nancy->sound->playSound(clickSound); + g_nancy->_sound->playSound(_clickSound); - currentSequence[i] = ++currentSequence[i] > 9 ? 0 : currentSequence[i]; + _currentSequence[i] = ++_currentSequence[i] > 9 ? 0 : _currentSequence[i]; drawDial(i); } @@ -191,16 +191,16 @@ void RotatingLockPuzzle::handleInput(NancyInput &input) { } } - for (uint i = 0; i < downHotspots.size(); ++i) { - if (NancySceneState.getViewport().convertViewportToScreen(downHotspots[i]).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspot); + for (uint i = 0; i < _downHotspots.size(); ++i) { + if (NancySceneState.getViewport().convertViewportToScreen(_downHotspots[i]).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspot); if (input.input & NancyInput::kLeftMouseButtonUp) { - g_nancy->sound->playSound(clickSound); + g_nancy->_sound->playSound(_clickSound); - int8 n = currentSequence[i]; + int8 n = _currentSequence[i]; n = --n < 0 ? 9 : n; - currentSequence[i] = n; + _currentSequence[i] = n; drawDial(i); } @@ -216,8 +216,8 @@ void RotatingLockPuzzle::onPause(bool pause) { } void RotatingLockPuzzle::drawDial(uint id) { - Common::Point destPoint(destRects[id].left - _screenPosition.left, destRects[id].top - _screenPosition.top); - _drawSurface.blitFrom(image, srcRects[currentSequence[id]], destPoint); + Common::Point destPoint(_destRects[id].left - _screenPosition.left, _destRects[id].top - _screenPosition.top); + _drawSurface.blitFrom(_image, _srcRects[_currentSequence[id]], destPoint); _needsRedraw = true; } diff --git a/engines/nancy/action/rotatinglockpuzzle.h b/engines/nancy/action/rotatinglockpuzzle.h index 3245424b40c..a4312f8eaec 100644 --- a/engines/nancy/action/rotatinglockpuzzle.h +++ b/engines/nancy/action/rotatinglockpuzzle.h @@ -49,26 +49,26 @@ public: virtual void handleInput(NancyInput &input) override; virtual void onPause(bool pause) override; - Common::String imageName; // 0x00 + Common::String _imageName; // 0x00 // 0xA numDials - Common::Array srcRects; // 0xC, 10 - Common::Array destRects; // 0xAC, 8 - Common::Array upHotspots; // 0x12C, 8 - Common::Array downHotspots; // 0x1AC, 8 - Common::Array correctSequence; // 0x22C - Nancy::SoundDescription clickSound; // 0x234, kNormal - SceneChangeDescription solveExitScene; // 0x256 - EventFlagDescription flagOnSolve; // 0x260 - uint16 solveSoundDelay; // 0x263 - Nancy::SoundDescription solveSound; // 0x265 - SceneChangeDescription exitScene; // 0x287 - EventFlagDescription flagOnExit; // 0x291 - Common::Rect exitHotspot; // 0x294 + Common::Array _srcRects; // 0xC, 10 + Common::Array _destRects; // 0xAC, 8 + Common::Array _upHotspots; // 0x12C, 8 + Common::Array _downHotspots; // 0x1AC, 8 + Common::Array _correctSequence; // 0x22C + Nancy::SoundDescription _clickSound; // 0x234, kNormal + SceneChangeDescription _solveExitScene; // 0x256 + EventFlagDescription _flagOnSolve; // 0x260 + uint16 _solveSoundDelay; // 0x263 + Nancy::SoundDescription _solveSound; // 0x265 + SceneChangeDescription _exitScene; // 0x287 + EventFlagDescription _flagOnExit; // 0x291 + Common::Rect _exitHotspot; // 0x294 - SolveState solveState = kNotSolved; - Graphics::ManagedSurface image; - Common::Array currentSequence; - Time solveSoundPlayTime; + SolveState _solveState = kNotSolved; + Graphics::ManagedSurface _image; + Common::Array _currentSequence; + Time _solveSoundPlayTime; protected: diff --git a/engines/nancy/action/secondarymovie.cpp b/engines/nancy/action/secondarymovie.cpp index d84c23c42ca..c0216ff1d29 100644 --- a/engines/nancy/action/secondarymovie.cpp +++ b/engines/nancy/action/secondarymovie.cpp @@ -32,7 +32,7 @@ namespace Action { PlaySecondaryMovie::~PlaySecondaryMovie() { _decoder.close(); - if (hideMouse == kTrue && unknown == 5) { + if (_hideMouse == kTrue && _unknown == 5) { g_nancy->setMouseEnabled(true); } } @@ -40,29 +40,29 @@ PlaySecondaryMovie::~PlaySecondaryMovie() { void PlaySecondaryMovie::readData(Common::SeekableReadStream &stream) { char name[10]; stream.read(name, 10); - videoName = name; + _videoName = name; stream.skip(0x12); - unknown = stream.readUint16LE(); - hideMouse = (NancyFlag)stream.readUint16LE(); - isReverse = (NancyFlag)stream.readUint16LE(); - firstFrame = (NancyFlag)stream.readUint16LE(); - lastFrame = (NancyFlag)stream.readUint16LE(); + _unknown = stream.readUint16LE(); + _hideMouse = (NancyFlag)stream.readUint16LE(); + _isReverse = (NancyFlag)stream.readUint16LE(); + _firstFrame = (NancyFlag)stream.readUint16LE(); + _lastFrame = (NancyFlag)stream.readUint16LE(); for (uint i = 0; i < 15; ++i) { - frameFlags[i].frameID = stream.readSint16LE(); - frameFlags[i].flagDesc.label = stream.readSint16LE(); - frameFlags[i].flagDesc.flag = (NancyFlag)stream.readUint16LE(); + _frameFlags[i].frameID = stream.readSint16LE(); + _frameFlags[i].flagDesc.label = stream.readSint16LE(); + _frameFlags[i].flagDesc.flag = (NancyFlag)stream.readUint16LE(); } - triggerFlags.readData(stream); - sound.read(stream, SoundDescription::kNormal); - sceneChange.readData(stream); + _triggerFlags.readData(stream); + _sound.read(stream, SoundDescription::kNormal); + _sceneChange.readData(stream); uint16 numVideoDescs = stream.readUint16LE(); for (uint i = 0; i < numVideoDescs; ++i) { - videoDescs.push_back(SecondaryVideoDescription()); - videoDescs[i].readData(stream); + _videoDescs.push_back(SecondaryVideoDescription()); + _videoDescs[i].readData(stream); } } @@ -71,7 +71,7 @@ void PlaySecondaryMovie::init() { _decoder.close(); } - _decoder.loadFile(videoName + ".avf"); + _decoder.loadFile(_videoName + ".avf"); _drawSurface.create(_decoder.getWidth(), _decoder.getHeight(), GraphicsManager::getInputPixelFormat()); _screenPosition = _drawSurface.getBounds(); @@ -83,43 +83,43 @@ void PlaySecondaryMovie::updateGraphics() { return; } - if (!_decoder.isPlaying() && _isVisible && !isFinished) { + if (!_decoder.isPlaying() && _isVisible && !_isFinished) { _decoder.start(); - if (isReverse == kTrue) { + if (_isReverse == kTrue) { _decoder.setRate(-_decoder.getRate()); - _decoder.seekToFrame(lastFrame); + _decoder.seekToFrame(_lastFrame); } else { - _decoder.seekToFrame(firstFrame); + _decoder.seekToFrame(_firstFrame); } } if (_decoder.needsUpdate()) { uint descID = 0; - for (uint i = 0; i < videoDescs.size(); ++i) { - if (videoDescs[i].frameID == _curViewportFrame) { + for (uint i = 0; i < _videoDescs.size(); ++i) { + if (_videoDescs[i].frameID == _curViewportFrame) { descID = i; } } - _drawSurface.blitFrom(*_decoder.decodeNextFrame(), videoDescs[descID].srcRect, Common::Point()); + _drawSurface.blitFrom(*_decoder.decodeNextFrame(), _videoDescs[descID].srcRect, Common::Point()); _needsRedraw = true; - for (auto f : frameFlags) { + for (auto f : _frameFlags) { if (_decoder.getCurFrame() == f.frameID) { NancySceneState.setEventFlag(f.flagDesc); } } } - if ((_decoder.getCurFrame() == lastFrame && isReverse == kFalse) || - (_decoder.getCurFrame() == firstFrame && isReverse == kTrue)) { - if (!g_nancy->sound->isSoundPlaying(sound)) { - g_nancy->sound->stopSound(sound); + if ((_decoder.getCurFrame() == _lastFrame && _isReverse == kFalse) || + (_decoder.getCurFrame() == _firstFrame && _isReverse == kTrue)) { + if (!g_nancy->_sound->isSoundPlaying(_sound)) { + g_nancy->_sound->stopSound(_sound); _decoder.stop(); - isFinished = true; - state = kActionTrigger; + _isFinished = true; + _state = kActionTrigger; } } @@ -135,18 +135,18 @@ void PlaySecondaryMovie::onPause(bool pause) { } void PlaySecondaryMovie::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - g_nancy->sound->loadSound(sound); - g_nancy->sound->playSound(sound); + g_nancy->_sound->loadSound(_sound); + g_nancy->_sound->playSound(_sound); - if (hideMouse == kTrue) { + if (_hideMouse == kTrue) { g_nancy->setMouseEnabled(false); } - state = kRun; + _state = kRun; // fall through case kRun: { int newFrame = NancySceneState.getSceneInfo().frameID; @@ -154,15 +154,15 @@ void PlaySecondaryMovie::execute() { if (newFrame != _curViewportFrame) { _curViewportFrame = newFrame; int activeFrame = -1; - for (uint i = 0; i < videoDescs.size(); ++i) { - if (newFrame == videoDescs[i].frameID) { + for (uint i = 0; i < _videoDescs.size(); ++i) { + if (newFrame == _videoDescs[i].frameID) { activeFrame = i; break; } } if (activeFrame != -1) { - _screenPosition = videoDescs[activeFrame].destRect; + _screenPosition = _videoDescs[activeFrame].destRect; setVisible(true); } else { setVisible(false); @@ -172,12 +172,12 @@ void PlaySecondaryMovie::execute() { break; } case kActionTrigger: - triggerFlags.execute(); - if (unknown == 5) { - NancySceneState.changeScene(sceneChange); + _triggerFlags.execute(); + if (_unknown == 5) { + NancySceneState.changeScene(_sceneChange); } else { // Not changing the scene so enable the mouse now - if (hideMouse == kTrue) { + if (_hideMouse == kTrue) { g_nancy->setMouseEnabled(true); } } diff --git a/engines/nancy/action/secondarymovie.h b/engines/nancy/action/secondarymovie.h index 524ae2faa26..8a3583f6c71 100644 --- a/engines/nancy/action/secondarymovie.h +++ b/engines/nancy/action/secondarymovie.h @@ -45,7 +45,7 @@ public: PlaySecondaryMovie(RenderObject &redrawFrom) : RenderObject(redrawFrom), _curViewportFrame(-1), - isFinished(false) {} + _isFinished(false) {} virtual ~PlaySecondaryMovie(); virtual void init() override; @@ -55,20 +55,20 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - Common::String videoName; // 0x00 + Common::String _videoName; // 0x00 - uint16 unknown; // 0x1C - NancyFlag hideMouse; // 0x1E - NancyFlag isReverse; // 0x20 - uint16 firstFrame; // 0x22 - uint16 lastFrame; // 0x24 - FlagAtFrame frameFlags[15]; // 0x26 - MultiEventFlagDescription triggerFlags; // 0x80 + uint16 _unknown; // 0x1C + NancyFlag _hideMouse; // 0x1E + NancyFlag _isReverse; // 0x20 + uint16 _firstFrame; // 0x22 + uint16 _lastFrame; // 0x24 + FlagAtFrame _frameFlags[15]; // 0x26 + MultiEventFlagDescription _triggerFlags; // 0x80 - SoundDescription sound; // 0xA8 + SoundDescription _sound; // 0xA8 - SceneChangeDescription sceneChange; // 0xCA - Common::Array videoDescs; // 0xD4 + SceneChangeDescription _sceneChange; // 0xCA + Common::Array _videoDescs; // 0xD4 protected: virtual Common::String getRecordTypeName() const override { return "PlaySecondaryMovie"; } @@ -78,7 +78,7 @@ protected: AVFDecoder _decoder; int _curViewportFrame; - bool isFinished; + bool _isFinished; }; } // End of namespace Action diff --git a/engines/nancy/action/secondaryvideo.cpp b/engines/nancy/action/secondaryvideo.cpp index efc2893fbfa..2c702f6b46c 100644 --- a/engines/nancy/action/secondaryvideo.cpp +++ b/engines/nancy/action/secondaryvideo.cpp @@ -45,14 +45,14 @@ void PlaySecondaryVideo::init() { _decoder.close(); } - _decoder.loadFile(filename + ".avf"); + _decoder.loadFile(_filename + ".avf"); // Every secondary video frame (in nancy1) plays exactly 12ms slower than what its metadata says. // I'm still not sure how/why that happens so for now I'm using this hack to fix the timings _decoder.addFrameTime(12); _drawSurface.create(_decoder.getWidth(), _decoder.getHeight(), GraphicsManager::getInputPixelFormat()); - if (paletteFilename.size()) { - GraphicsManager::loadSurfacePalette(_drawSurface, paletteFilename); + if (_paletteFilename.size()) { + GraphicsManager::loadSurfacePalette(_drawSurface, _paletteFilename); } setVisible(false); @@ -71,16 +71,16 @@ void PlaySecondaryVideo::updateGraphics() { _decoder.start(); } - switch (hoverState) { + switch (_hoverState) { case kNoHover: if (_isHovered) { - _decoder.seekToFrame(onHoverFirstFrame); + _decoder.seekToFrame(_onHoverFirstFrame); - hoverState = kHover; + _hoverState = kHover; } else { - if (_decoder.getCurFrame() == loopLastFrame) { + if (_decoder.getCurFrame() == _loopLastFrame) { // loop back to beginning - _decoder.seekToFrame(loopFirstFrame); + _decoder.seekToFrame(_loopFirstFrame); } break; @@ -89,33 +89,33 @@ void PlaySecondaryVideo::updateGraphics() { case kHover: if (!_isHovered) { // Stopped hovering, reverse playback - _decoder.seekToFrame(onHoverEndLastFrame); + _decoder.seekToFrame(_onHoverEndLastFrame); _decoder.setRate(-_decoder.getRate()); if (!_decoder.isPlaying()) { _decoder.start(); } - hoverState = kEndHover; + _hoverState = kEndHover; } else { break; } // fall through case kEndHover: - if (_decoder.getCurFrame() == onHoverEndFirstFrame) { - // reversed playback has ended, go back to no hover state - _decoder.seekToFrame(loopFirstFrame); + if (_decoder.getCurFrame() == _onHoverEndFirstFrame) { + // reversed playback has ended, go back to no hover _state + _decoder.seekToFrame(_loopFirstFrame); _decoder.setRate(-_decoder.getRate()); - hoverState = kNoHover; + _hoverState = kNoHover; } break; } if (_decoder.needsUpdate() && !_screenPosition.isEmpty()) { - for (uint i = 0; i < videoDescs.size(); ++i) { - if ((uint16)videoDescs[i].frameID == _currentViewportFrame) { + for (uint i = 0; i < _videoDescs.size(); ++i) { + if ((uint16)_videoDescs[i].frameID == _currentViewportFrame) { // This ignores the srcRects for every frame - GraphicsManager::copyToManaged(*_decoder.decodeNextFrame(), _drawSurface, paletteFilename.size() > 0); + GraphicsManager::copyToManaged(*_decoder.decodeNextFrame(), _drawSurface, _paletteFilename.size() > 0); break; } } @@ -138,7 +138,7 @@ void PlaySecondaryVideo::onPause(bool pause) { } void PlaySecondaryVideo::handleInput(NancyInput &input) { - if (hasHotspot && NancySceneState.getViewport().convertViewportToScreen(hotspot).contains(input.mousePos)) { + if (_hasHotspot && NancySceneState.getViewport().convertViewportToScreen(_hotspot).contains(input.mousePos)) { _isHovered = true; } else { _isHovered = false; @@ -148,25 +148,25 @@ void PlaySecondaryVideo::handleInput(NancyInput &input) { void PlaySecondaryVideo::readData(Common::SeekableReadStream &stream) { char buf[10]; stream.read(buf, 10); - filename = buf; + _filename = buf; stream.read(buf, 10); - paletteFilename = buf; + _paletteFilename = buf; stream.skip(10); - if (paletteFilename.size()) { + if (_paletteFilename.size()) { stream.skip(14); // unknown data } - loopFirstFrame = stream.readUint16LE(); - loopLastFrame = stream.readUint16LE(); - onHoverFirstFrame = stream.readUint16LE(); - onHoverLastFrame = stream.readUint16LE(); - onHoverEndFirstFrame = stream.readUint16LE(); - onHoverEndLastFrame = stream.readUint16LE(); + _loopFirstFrame = stream.readUint16LE(); + _loopLastFrame = stream.readUint16LE(); + _onHoverFirstFrame = stream.readUint16LE(); + _onHoverLastFrame = stream.readUint16LE(); + _onHoverEndFirstFrame = stream.readUint16LE(); + _onHoverEndLastFrame = stream.readUint16LE(); - sceneChange.readData(stream); + _sceneChange.readData(stream); - if (paletteFilename.size()) { + if (_paletteFilename.size()) { stream.skip(3); } else { stream.skip(1); @@ -174,17 +174,17 @@ void PlaySecondaryVideo::readData(Common::SeekableReadStream &stream) { uint16 numVideoDescs = stream.readUint16LE(); for (uint i = 0; i < numVideoDescs; ++i) { - videoDescs.push_back(SecondaryVideoDescription()); - videoDescs[i].readData(stream); + _videoDescs.push_back(SecondaryVideoDescription()); + _videoDescs[i].readData(stream); } } void PlaySecondaryVideo::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - state = kRun; + _state = kRun; // fall through case kRun: { // Set correct position according to viewport frame @@ -193,24 +193,24 @@ void PlaySecondaryVideo::execute() { int activeFrame = -1; - for (uint i = 0; i < videoDescs.size(); ++i) { - if ((uint16)videoDescs[i].frameID == _currentViewportFrame) { + for (uint i = 0; i < _videoDescs.size(); ++i) { + if ((uint16)_videoDescs[i].frameID == _currentViewportFrame) { activeFrame = i; } } if (activeFrame != -1) { // Make the drawing destination rectangle valid - _screenPosition = videoDescs[activeFrame].destRect; + _screenPosition = _videoDescs[activeFrame].destRect; // Activate the hotspot - hotspot = videoDescs[activeFrame].destRect; - hasHotspot = true; + _hotspot = _videoDescs[activeFrame].destRect; + _hasHotspot = true; _isPlaying = true; setVisible(true); } else { setVisible(false); - hasHotspot = false; + _hasHotspot = false; _isPlaying = false; } } @@ -219,7 +219,7 @@ void PlaySecondaryVideo::execute() { } case kActionTrigger: NancySceneState.pushScene(); - NancySceneState.changeScene(sceneChange); + NancySceneState.changeScene(_sceneChange); finishExecution(); break; } diff --git a/engines/nancy/action/secondaryvideo.h b/engines/nancy/action/secondaryvideo.h index 389485bdf53..106bdc98eb9 100644 --- a/engines/nancy/action/secondaryvideo.h +++ b/engines/nancy/action/secondaryvideo.h @@ -52,17 +52,17 @@ public: virtual void readData(Common::SeekableReadStream &stream) override; virtual void execute() override; - Common::String filename; - Common::String paletteFilename; - uint16 loopFirstFrame = 0; // 0x1E - uint16 loopLastFrame = 0; // 0x20 - uint16 onHoverFirstFrame = 0; // 0x22 - uint16 onHoverLastFrame = 0; // 0x24 - uint16 onHoverEndFirstFrame = 0; // 0x26 - uint16 onHoverEndLastFrame = 0; // 0x28 - SceneChangeDescription sceneChange; // 0x2A + Common::String _filename; + Common::String _paletteFilename; + uint16 _loopFirstFrame = 0; // 0x1E + uint16 _loopLastFrame = 0; // 0x20 + uint16 _onHoverFirstFrame = 0; // 0x22 + uint16 _onHoverLastFrame = 0; // 0x24 + uint16 _onHoverEndFirstFrame = 0; // 0x26 + uint16 _onHoverEndLastFrame = 0; // 0x28 + SceneChangeDescription _sceneChange; // 0x2A // unknown byte - Common::Array videoDescs; // 0x35 + Common::Array _videoDescs; // 0x35 protected: virtual Common::String getRecordTypeName() const override { return Common::String::format("PlaySecondaryVideoChan%i", channel); } @@ -70,7 +70,7 @@ protected: virtual uint16 getZOrder() const override { return 8; } virtual bool isViewportRelative() const override { return true; } - HoverState hoverState = kNoHover; + HoverState _hoverState = kNoHover; AVFDecoder _decoder; int _currentViewportFrame = -1; bool _isPlaying = false; diff --git a/engines/nancy/action/sliderpuzzle.cpp b/engines/nancy/action/sliderpuzzle.cpp index 7d7f012d5e7..548cd294454 100644 --- a/engines/nancy/action/sliderpuzzle.cpp +++ b/engines/nancy/action/sliderpuzzle.cpp @@ -34,8 +34,8 @@ namespace Nancy { namespace Action { -Common::Array> SliderPuzzle::playerTileOrder = Common::Array>(); -bool SliderPuzzle::playerHasTriedPuzzle = false; +Common::Array> SliderPuzzle::_playerTileOrder = Common::Array>(); +bool SliderPuzzle::_playerHasTriedPuzzle = false; void SliderPuzzle::init() { _drawSurface.create(_screenPosition.width(), _screenPosition.height(), GraphicsManager::getInputPixelFormat()); @@ -43,118 +43,118 @@ void SliderPuzzle::init() { setTransparent(true); - g_nancy->resource->loadImage(imageName, image); + g_nancy->_resource->loadImage(_imageName, _image); } void SliderPuzzle::readData(Common::SeekableReadStream &stream) { char buf[10]; stream.read(buf, 10); - imageName = buf; + _imageName = buf; - width = stream.readUint16LE(); - height = stream.readUint16LE(); + _width = stream.readUint16LE(); + _height = stream.readUint16LE(); - for (uint y = 0; y < height; ++y) { - srcRects.push_back(Common::Array()); - for (uint x = 0; x < width; ++x) { - srcRects.back().push_back(Common::Rect()); - readRect(stream, srcRects.back().back()); + for (uint y = 0; y < _height; ++y) { + _srcRects.push_back(Common::Array()); + for (uint x = 0; x < _width; ++x) { + _srcRects.back().push_back(Common::Rect()); + readRect(stream, _srcRects.back().back()); } - stream.skip((6 - width) * 16); + stream.skip((6 - _width) * 16); } - stream.skip((6 - height) * 6 * 16); + stream.skip((6 - _height) * 6 * 16); - for (uint y = 0; y < height; ++y) { - destRects.push_back(Common::Array()); - for (uint x = 0; x < width; ++x) { - destRects.back().push_back(Common::Rect()); - readRect(stream, destRects.back().back()); + for (uint y = 0; y < _height; ++y) { + _destRects.push_back(Common::Array()); + for (uint x = 0; x < _width; ++x) { + _destRects.back().push_back(Common::Rect()); + readRect(stream, _destRects.back().back()); if (x == 0 && y == 0) { - _screenPosition = destRects.back().back(); + _screenPosition = _destRects.back().back(); } else { - _screenPosition.extend(destRects.back().back()); + _screenPosition.extend(_destRects.back().back()); } } - stream.skip((6 - width) * 16); + stream.skip((6 - _width) * 16); } - stream.skip((6 - height) * 6 * 16); + stream.skip((6 - _height) * 6 * 16); - for (uint y = 0; y < height; ++y) { - correctTileOrder.push_back(Common::Array()); - for (uint x = 0; x < width; ++x) { - correctTileOrder.back().push_back(stream.readSint16LE()); + for (uint y = 0; y < _height; ++y) { + _correctTileOrder.push_back(Common::Array()); + for (uint x = 0; x < _width; ++x) { + _correctTileOrder.back().push_back(stream.readSint16LE()); } - stream.skip((6 - width) * 2); + stream.skip((6 - _width) * 2); } - stream.skip((6 - height) * 6 * 2); + stream.skip((6 - _height) * 6 * 2); - clickSound.read(stream, SoundDescription::kNormal); - solveExitScene.readData(stream); + _clickSound.read(stream, SoundDescription::kNormal); + _solveExitScene.readData(stream); stream.skip(2); - flagOnSolve.label = stream.readSint16LE(); - flagOnSolve.flag = (NancyFlag)stream.readByte(); - solveSound.read(stream, SoundDescription::kNormal); - exitScene.readData(stream); + _flagOnSolve.label = stream.readSint16LE(); + _flagOnSolve.flag = (NancyFlag)stream.readByte(); + _solveSound.read(stream, SoundDescription::kNormal); + _exitScene.readData(stream); stream.skip(2); - flagOnExit.label = stream.readSint16LE(); - flagOnExit.flag = (NancyFlag)stream.readByte(); - readRect(stream, exitHotspot); + _flagOnExit.label = stream.readSint16LE(); + _flagOnExit.flag = (NancyFlag)stream.readByte(); + readRect(stream, _exitHotspot); } void SliderPuzzle::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - if (!playerHasTriedPuzzle) { + if (!_playerHasTriedPuzzle) { Common::SeekableReadStream *spuz = g_nancy->getBootChunkStream("SPUZ"); - playerTileOrder.clear(); + _playerTileOrder.clear(); spuz->seek(NancySceneState.getDifficulty() * 0x48); - for (uint y = 0; y < height; ++y) { - playerTileOrder.push_back(Common::Array()); + for (uint y = 0; y < _height; ++y) { + _playerTileOrder.push_back(Common::Array()); - for (uint x = 0; x < width; ++x) { - playerTileOrder.back().push_back(spuz->readSint16LE()); + for (uint x = 0; x < _width; ++x) { + _playerTileOrder.back().push_back(spuz->readSint16LE()); } - spuz->skip((6 - width) * 2); + spuz->skip((6 - _width) * 2); } - playerHasTriedPuzzle = true; + _playerHasTriedPuzzle = true; } - for (uint y = 0; y < height; ++y) { - for (uint x = 0; x < width; ++x) { - drawTile(playerTileOrder[y][x], x, y); + for (uint y = 0; y < _height; ++y) { + for (uint x = 0; x < _width; ++x) { + drawTile(_playerTileOrder[y][x], x, y); } } - g_nancy->sound->loadSound(clickSound); - state = kRun; + g_nancy->_sound->loadSound(_clickSound); + _state = kRun; // fall through case kRun: - switch (solveState) { + switch (_solveState) { case kNotSolved: - for (uint y = 0; y < height; ++y) { - for (uint x = 0; x < width; ++x) { - if (playerTileOrder[y][x] != correctTileOrder[y][x]) { + for (uint y = 0; y < _height; ++y) { + for (uint x = 0; x < _width; ++x) { + if (_playerTileOrder[y][x] != _correctTileOrder[y][x]) { return; } } } - g_nancy->sound->loadSound(solveSound); - g_nancy->sound->playSound(solveSound); - solveState = kWaitForSound; + g_nancy->_sound->loadSound(_solveSound); + g_nancy->_sound->playSound(_solveSound); + _solveState = kWaitForSound; break; case kWaitForSound: - if (!g_nancy->sound->isSoundPlaying(solveSound)) { - g_nancy->sound->stopSound(solveSound); - state = kActionTrigger; + if (!g_nancy->_sound->isSoundPlaying(_solveSound)) { + g_nancy->_sound->stopSound(_solveSound); + _state = kActionTrigger; } break; @@ -162,33 +162,33 @@ void SliderPuzzle::execute() { break; case kActionTrigger: - switch (solveState) { + switch (_solveState) { case kNotSolved: - NancySceneState.changeScene(exitScene); - NancySceneState.setEventFlag(flagOnExit); + NancySceneState.changeScene(_exitScene); + NancySceneState.setEventFlag(_flagOnExit); break; case kWaitForSound: - NancySceneState.changeScene(solveExitScene); - NancySceneState.setEventFlag(flagOnSolve); - playerHasTriedPuzzle = false; + NancySceneState.changeScene(_solveExitScene); + NancySceneState.setEventFlag(_flagOnSolve); + _playerHasTriedPuzzle = false; break; } - g_nancy->sound->stopSound(clickSound); + g_nancy->_sound->stopSound(_clickSound); finishExecution(); } } void SliderPuzzle::handleInput(NancyInput &input) { - if (solveState != kNotSolved) { + if (_solveState != kNotSolved) { return; } - if (NancySceneState.getViewport().convertViewportToScreen(exitHotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kExitArrow); + if (NancySceneState.getViewport().convertViewportToScreen(_exitHotspot).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kExitArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { - state = kActionTrigger; + _state = kActionTrigger; } return; @@ -197,35 +197,35 @@ void SliderPuzzle::handleInput(NancyInput &input) { int currentTileX = -1; int currentTileY = -1; uint direction = 0; - for (uint y = 0; y < height; ++y) { + for (uint y = 0; y < _height; ++y) { bool shouldBreak = false; - for (uint x = 0; x < width; ++x) { - if (x > 0 && playerTileOrder[y][x - 1] < 0) { - if (NancySceneState.getViewport().convertViewportToScreen(destRects[y][x]).contains(input.mousePos)) { + for (uint x = 0; x < _width; ++x) { + if (x > 0 && _playerTileOrder[y][x - 1] < 0) { + if (NancySceneState.getViewport().convertViewportToScreen(_destRects[y][x]).contains(input.mousePos)) { currentTileX = x; currentTileY = y; direction = kLeft; shouldBreak = true; break; } - } else if ((int)x < width - 1 && playerTileOrder[y][x + 1] < 0) { - if (NancySceneState.getViewport().convertViewportToScreen(destRects[y][x]).contains(input.mousePos)) { + } else if ((int)x < _width - 1 && _playerTileOrder[y][x + 1] < 0) { + if (NancySceneState.getViewport().convertViewportToScreen(_destRects[y][x]).contains(input.mousePos)) { currentTileX = x; currentTileY = y; direction = kRight; shouldBreak = true; break; } - } else if (y > 0 && playerTileOrder[y - 1][x] < 0) { - if (NancySceneState.getViewport().convertViewportToScreen(destRects[y][x]).contains(input.mousePos)) { + } else if (y > 0 && _playerTileOrder[y - 1][x] < 0) { + if (NancySceneState.getViewport().convertViewportToScreen(_destRects[y][x]).contains(input.mousePos)) { currentTileX = x; currentTileY = y; direction = kUp; shouldBreak = true; break; } - } else if ((int)y < height - 1 && playerTileOrder[y + 1][x] < 0) { - if (NancySceneState.getViewport().convertViewportToScreen(destRects[y][x]).contains(input.mousePos)) { + } else if ((int)y < _height - 1 && _playerTileOrder[y + 1][x] < 0) { + if (NancySceneState.getViewport().convertViewportToScreen(_destRects[y][x]).contains(input.mousePos)) { currentTileX = x; currentTileY = y; direction = kDown; @@ -241,41 +241,41 @@ void SliderPuzzle::handleInput(NancyInput &input) { } if (currentTileX != -1) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspot); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspot); if (input.input & NancyInput::kLeftMouseButtonUp) { - g_nancy->sound->playSound(clickSound); + g_nancy->_sound->playSound(_clickSound); switch (direction) { case kUp: { - uint curTileID = playerTileOrder[currentTileY][currentTileX]; + uint curTileID = _playerTileOrder[currentTileY][currentTileX]; drawTile(curTileID, currentTileX, currentTileY - 1); undrawTile(currentTileX, currentTileY); - playerTileOrder[currentTileY - 1][currentTileX] = curTileID; - playerTileOrder[currentTileY][currentTileX] = -10; + _playerTileOrder[currentTileY - 1][currentTileX] = curTileID; + _playerTileOrder[currentTileY][currentTileX] = -10; break; } case kDown: { - uint curTileID = playerTileOrder[currentTileY][currentTileX]; + uint curTileID = _playerTileOrder[currentTileY][currentTileX]; drawTile(curTileID, currentTileX, currentTileY + 1); undrawTile(currentTileX, currentTileY); - playerTileOrder[currentTileY + 1][currentTileX] = curTileID; - playerTileOrder[currentTileY][currentTileX] = -10; + _playerTileOrder[currentTileY + 1][currentTileX] = curTileID; + _playerTileOrder[currentTileY][currentTileX] = -10; break; } case kLeft: { - uint curTileID = playerTileOrder[currentTileY][currentTileX]; + uint curTileID = _playerTileOrder[currentTileY][currentTileX]; drawTile(curTileID, currentTileX - 1, currentTileY); undrawTile(currentTileX, currentTileY); - playerTileOrder[currentTileY][currentTileX - 1] = curTileID; - playerTileOrder[currentTileY][currentTileX] = -10; + _playerTileOrder[currentTileY][currentTileX - 1] = curTileID; + _playerTileOrder[currentTileY][currentTileX] = -10; break; } case kRight: { - uint curTileID = playerTileOrder[currentTileY][currentTileX]; + uint curTileID = _playerTileOrder[currentTileY][currentTileX]; drawTile(curTileID, currentTileX + 1, currentTileY); undrawTile(currentTileX, currentTileY); - playerTileOrder[currentTileY][currentTileX + 1] = curTileID; - playerTileOrder[currentTileY][currentTileX] = -10; + _playerTileOrder[currentTileY][currentTileX + 1] = curTileID; + _playerTileOrder[currentTileY][currentTileX] = -10; break; } } @@ -290,25 +290,25 @@ void SliderPuzzle::onPause(bool pause) { } void SliderPuzzle::synchronize(Common::Serializer &ser) { - ser.syncAsByte(playerHasTriedPuzzle); + ser.syncAsByte(_playerHasTriedPuzzle); byte x, y; if (ser.isSaving()) { - y = playerTileOrder.size(); + y = _playerTileOrder.size(); if (y) { - x = playerTileOrder.back().size(); + x = _playerTileOrder.back().size(); } } ser.syncAsByte(x); ser.syncAsByte(y); - playerTileOrder.resize(y); + _playerTileOrder.resize(y); for (int i = 0; i < y; ++i) { - playerTileOrder[i].resize(x); - ser.syncArray(playerTileOrder[i].data(), x, Common::Serializer::Sint16LE); + _playerTileOrder[i].resize(x); + ser.syncArray(_playerTileOrder[i].data(), x, Common::Serializer::Sint16LE); } } @@ -318,14 +318,14 @@ void SliderPuzzle::drawTile(int tileID, uint posX, uint posY) { return; } - Common::Point destPoint(destRects[posY][posX].left - _screenPosition.left, destRects[posY][posX].top - _screenPosition.top); - _drawSurface.blitFrom(image, srcRects[tileID / height][tileID % width], destPoint); + Common::Point destPoint(_destRects[posY][posX].left - _screenPosition.left, _destRects[posY][posX].top - _screenPosition.top); + _drawSurface.blitFrom(_image, _srcRects[tileID / _height][tileID % _width], destPoint); _needsRedraw = true; } void SliderPuzzle::undrawTile(uint posX, uint posY) { - Common::Rect bounds = destRects[posY][posX]; + Common::Rect bounds = _destRects[posY][posX]; bounds.translate(-_screenPosition.left, -_screenPosition.top); _drawSurface.fillRect(bounds, GraphicsManager::getTransColor()); diff --git a/engines/nancy/action/sliderpuzzle.h b/engines/nancy/action/sliderpuzzle.h index b33287eed62..1ffe0b01632 100644 --- a/engines/nancy/action/sliderpuzzle.h +++ b/engines/nancy/action/sliderpuzzle.h @@ -56,25 +56,25 @@ public: static void synchronize(Common::Serializer &ser); - Common::String imageName; // 0x00 - uint16 width; // 0xA - uint16 height; // 0xC - Common::Array> srcRects; // 0x0E, size 0x240 - Common::Array> destRects; // 0x24E, size 0x240 - Common::Array> correctTileOrder; // 0x48E, size 0x48 - SoundDescription clickSound; // 0x4D6 - SceneChangeDescription solveExitScene; // 0x4F8 - EventFlagDescription flagOnSolve; // 0x502 - SoundDescription solveSound; // 0x505 - SceneChangeDescription exitScene; // 0x527 - EventFlagDescription flagOnExit; // 0x531 - Common::Rect exitHotspot; // 0x534 + Common::String _imageName; // 0x00 + uint16 _width; // 0xA + uint16 _height; // 0xC + Common::Array> _srcRects; // 0x0E, size 0x240 + Common::Array> _destRects; // 0x24E, size 0x240 + Common::Array> _correctTileOrder; // 0x48E, size 0x48 + SoundDescription _clickSound; // 0x4D6 + SceneChangeDescription _solveExitScene; // 0x4F8 + EventFlagDescription _flagOnSolve; // 0x502 + SoundDescription _solveSound; // 0x505 + SceneChangeDescription _exitScene; // 0x527 + EventFlagDescription _flagOnExit; // 0x531 + Common::Rect _exitHotspot; // 0x534 - SolveState solveState = kNotSolved; - Graphics::ManagedSurface image; + SolveState _solveState = kNotSolved; + Graphics::ManagedSurface _image; - static Common::Array> playerTileOrder; - static bool playerHasTriedPuzzle; + static Common::Array> _playerTileOrder; + static bool _playerHasTriedPuzzle; protected: virtual Common::String getRecordTypeName() const override { return "SliderPuzzle"; } diff --git a/engines/nancy/action/staticbitmapanim.cpp b/engines/nancy/action/staticbitmapanim.cpp index 6ff2cd3ea8d..1c4ba934467 100644 --- a/engines/nancy/action/staticbitmapanim.cpp +++ b/engines/nancy/action/staticbitmapanim.cpp @@ -35,7 +35,7 @@ namespace Nancy { namespace Action { void PlayStaticBitmapAnimation::init() { - g_nancy->resource->loadImage(imageName, _fullSurface); + g_nancy->_resource->loadImage(_imageName, _fullSurface); setFrame(0); @@ -45,40 +45,40 @@ void PlayStaticBitmapAnimation::init() { void PlayStaticBitmapAnimation::readData(Common::SeekableReadStream &stream) { char name[10]; stream.read(name, 10); - imageName = Common::String(name); + _imageName = Common::String(name); stream.skip(0x2); - isTransparent = (NancyFlag)(stream.readUint16LE()); - doNotChangeScene = (NancyFlag)(stream.readUint16LE()); - isReverse = (NancyFlag)(stream.readUint16LE()); - isLooping = (NancyFlag)(stream.readUint16LE()); - firstFrame = stream.readUint16LE(); - loopFirstFrame = stream.readUint16LE(); - loopLastFrame = stream.readUint16LE(); - frameTime = Common::Rational(1000, stream.readUint16LE()).toInt(); - zOrder = stream.readUint16LE(); + _isTransparent = (NancyFlag)(stream.readUint16LE()); + _doNotChangeScene = (NancyFlag)(stream.readUint16LE()); + _isReverse = (NancyFlag)(stream.readUint16LE()); + _isLooping = (NancyFlag)(stream.readUint16LE()); + _firstFrame = stream.readUint16LE(); + _loopFirstFrame = stream.readUint16LE(); + _loopLastFrame = stream.readUint16LE(); + _frameTime = Common::Rational(1000, stream.readUint16LE()).toInt(); + _zOrder = stream.readUint16LE(); - if (isInterruptible) { - interruptCondition.label = stream.readSint16LE(); - interruptCondition.flag = (NancyFlag)stream.readUint16LE(); + if (_isInterruptible) { + _interruptCondition.label = stream.readSint16LE(); + _interruptCondition.flag = (NancyFlag)stream.readUint16LE(); } else { - interruptCondition.label = -1; - interruptCondition.flag = kFalse; + _interruptCondition.label = -1; + _interruptCondition.flag = kFalse; } - sceneChange.readData(stream); - triggerFlags.readData(stream); - sound.read(stream, SoundDescription::kNormal); + _sceneChange.readData(stream); + _triggerFlags.readData(stream); + _sound.read(stream, SoundDescription::kNormal); uint numViewportFrames = stream.readUint16LE(); - for (uint i = firstFrame; i <= loopLastFrame; ++i) { - srcRects.push_back(Common::Rect()); - readRect(stream, srcRects[i]); + for (uint i = _firstFrame; i <= _loopLastFrame; ++i) { + _srcRects.push_back(Common::Rect()); + readRect(stream, _srcRects[i]); } for (uint i = 0; i < numViewportFrames; ++i) { - bitmaps.push_back(BitmapDescription()); - BitmapDescription &rects = bitmaps.back(); + _bitmaps.push_back(BitmapDescription()); + BitmapDescription &rects = _bitmaps.back(); rects.frameID = stream.readUint16LE(); readRect(stream, rects.src); readRect(stream, rects.dest); @@ -86,58 +86,58 @@ void PlayStaticBitmapAnimation::readData(Common::SeekableReadStream &stream) { } void PlayStaticBitmapAnimation::execute() { - uint32 currentFrameTime = g_nancy->getTotalPlayTime(); - switch (state) { + uint32 _currentFrameTime = g_nancy->getTotalPlayTime(); + switch (_state) { case kBegin: init(); registerGraphics(); - g_nancy->sound->loadSound(sound); - g_nancy->sound->playSound(sound); - state = kRun; + g_nancy->_sound->loadSound(_sound); + g_nancy->_sound->playSound(_sound); + _state = kRun; // fall through case kRun: { // Check the timer to see if we need to draw the next animation frame - if (nextFrameTime <= currentFrameTime) { + if (_nextFrameTime <= _currentFrameTime) { // World's worst if statement - if (NancySceneState.getEventFlag(interruptCondition) || - ( (((currentFrame == loopLastFrame) && (isReverse == kFalse) && (isLooping == kFalse)) || - ((currentFrame == loopFirstFrame) && (isReverse == kTrue) && (isLooping == kFalse))) && - !g_nancy->sound->isSoundPlaying(sound)) ) { + if (NancySceneState.getEventFlag(_interruptCondition) || + ( (((_currentFrame == _loopLastFrame) && (_isReverse == kFalse) && (_isLooping == kFalse)) || + ((_currentFrame == _loopFirstFrame) && (_isReverse == kTrue) && (_isLooping == kFalse))) && + !g_nancy->_sound->isSoundPlaying(_sound)) ) { - state = kActionTrigger; + _state = kActionTrigger; // Not sure if hiding when triggered is a hack or the intended behavior, but it's here to fix // nancy1's safe lock light not turning off. setVisible(false); - if (!g_nancy->sound->isSoundPlaying(sound)) { - g_nancy->sound->stopSound(sound); + if (!g_nancy->_sound->isSoundPlaying(_sound)) { + g_nancy->_sound->stopSound(_sound); } } else { // Check if we've moved the viewport uint16 newFrame = NancySceneState.getSceneInfo().frameID; - if (currentViewportFrame != newFrame) { - currentViewportFrame = newFrame; + if (_currentViewportFrame != newFrame) { + _currentViewportFrame = newFrame; - for (uint i = 0; i < bitmaps.size(); ++i) { - if (currentViewportFrame == bitmaps[i].frameID) { - _screenPosition = bitmaps[i].dest; + for (uint i = 0; i < _bitmaps.size(); ++i) { + if (_currentViewportFrame == _bitmaps[i].frameID) { + _screenPosition = _bitmaps[i].dest; break; } } } - nextFrameTime = currentFrameTime + frameTime; - setFrame(currentFrame); + _nextFrameTime = _currentFrameTime + _frameTime; + setFrame(_currentFrame); - if (isReverse == kTrue) { - --currentFrame; - currentFrame = currentFrame < loopFirstFrame ? loopLastFrame : currentFrame; + if (_isReverse == kTrue) { + --_currentFrame; + _currentFrame = _currentFrame < _loopFirstFrame ? _loopLastFrame : _currentFrame; return; } else { - ++currentFrame; - currentFrame = currentFrame > loopLastFrame ? loopFirstFrame : currentFrame; + ++_currentFrame; + _currentFrame = _currentFrame > _loopLastFrame ? _loopFirstFrame : _currentFrame; return; } } @@ -145,12 +145,12 @@ void PlayStaticBitmapAnimation::execute() { // Check if we've moved the viewport uint16 newFrame = NancySceneState.getSceneInfo().frameID; - if (currentViewportFrame != newFrame) { - currentViewportFrame = newFrame; + if (_currentViewportFrame != newFrame) { + _currentViewportFrame = newFrame; - for (uint i = 0; i < bitmaps.size(); ++i) { - if (currentViewportFrame == bitmaps[i].frameID) { - _screenPosition = bitmaps[i].dest; + for (uint i = 0; i < _bitmaps.size(); ++i) { + if (_currentViewportFrame == _bitmaps[i].frameID) { + _screenPosition = _bitmaps[i].dest; break; } } @@ -160,9 +160,9 @@ void PlayStaticBitmapAnimation::execute() { break; } case kActionTrigger: - triggerFlags.execute(); - if (doNotChangeScene == kFalse) { - NancySceneState.changeScene(sceneChange); + _triggerFlags.execute(); + if (_doNotChangeScene == kFalse) { + NancySceneState.changeScene(_sceneChange); finishExecution(); } break; @@ -176,10 +176,10 @@ void PlayStaticBitmapAnimation::onPause(bool pause) { } void PlayStaticBitmapAnimation::setFrame(uint frame) { - currentFrame = frame; - _drawSurface.create(_fullSurface, srcRects[frame]); + _currentFrame = frame; + _drawSurface.create(_fullSurface, _srcRects[frame]); - setTransparent(isTransparent == kTrue); + setTransparent(_isTransparent == kTrue); _needsRedraw = true; } diff --git a/engines/nancy/action/staticbitmapanim.h b/engines/nancy/action/staticbitmapanim.h index cc702edf26e..66b4eac7765 100644 --- a/engines/nancy/action/staticbitmapanim.h +++ b/engines/nancy/action/staticbitmapanim.h @@ -40,7 +40,7 @@ namespace Action { // action record types, whose functionality is nearly identical class PlayStaticBitmapAnimation : public ActionRecord, public RenderObject { public: - PlayStaticBitmapAnimation(bool interruptible, RenderObject &redrawFrom) : RenderObject(redrawFrom), isInterruptible(interruptible) {} + PlayStaticBitmapAnimation(bool interruptible, RenderObject &redrawFrom) : RenderObject(redrawFrom), _isInterruptible(interruptible) {} virtual ~PlayStaticBitmapAnimation() { _fullSurface.free(); } virtual void init() override; @@ -49,38 +49,38 @@ public: virtual void execute() override; virtual void onPause(bool pause) override; - Common::String imageName; + Common::String _imageName; - NancyFlag isTransparent; // 0xC - NancyFlag doNotChangeScene; // 0xE - NancyFlag isReverse; // 0x10 - NancyFlag isLooping; // 0x12 - uint16 firstFrame; // 0x14 - uint16 loopFirstFrame; // 0x16 - uint16 loopLastFrame; // 0x18 - Time frameTime; - uint16 zOrder; // 0x1C - EventFlagDescription interruptCondition; // 0x1E - SceneChangeDescription sceneChange; - MultiEventFlagDescription triggerFlags; // 0x2A + NancyFlag _isTransparent; // 0xC + NancyFlag _doNotChangeScene; // 0xE + NancyFlag _isReverse; // 0x10 + NancyFlag _isLooping; // 0x12 + uint16 _firstFrame; // 0x14 + uint16 _loopFirstFrame; // 0x16 + uint16 _loopLastFrame; // 0x18 + Time _frameTime; + uint16 _zOrder; // 0x1C + EventFlagDescription _interruptCondition; // 0x1E + SceneChangeDescription _sceneChange; + MultiEventFlagDescription _triggerFlags; // 0x2A - Nancy::SoundDescription sound; // 0x52 + Nancy::SoundDescription _sound; // 0x52 // Describes a single frame in this animation - Common::Array srcRects; + Common::Array _srcRects; // Describes how the animation will be displayed on a single // frame of the viewport - Common::Array bitmaps; + Common::Array _bitmaps; - int16 currentFrame = -1; - int16 currentViewportFrame = -1; - Time nextFrameTime; - bool isInterruptible; + int16 _currentFrame = -1; + int16 _currentViewportFrame = -1; + Time _nextFrameTime; + bool _isInterruptible; protected: - virtual Common::String getRecordTypeName() const override { return isInterruptible ? "PlayIntStaticBitmapAnimation" : "PlayStaticBitmapAnimation"; } + virtual Common::String getRecordTypeName() const override { return _isInterruptible ? "PlayIntStaticBitmapAnimation" : "PlayStaticBitmapAnimation"; } - virtual uint16 getZOrder() const override { return zOrder; } + virtual uint16 getZOrder() const override { return _zOrder; } virtual bool isViewportRelative() const override { return true; } void setFrame(uint frame); diff --git a/engines/nancy/action/telephone.cpp b/engines/nancy/action/telephone.cpp index cb17be5f271..dafb17e299c 100644 --- a/engines/nancy/action/telephone.cpp +++ b/engines/nancy/action/telephone.cpp @@ -42,7 +42,7 @@ void Telephone::init() { setTransparent(true); - g_nancy->resource->loadImage(imageName, image); + g_nancy->_resource->loadImage(_imageName, _image); NancySceneState.setShouldClearTextbox(false); } @@ -50,56 +50,56 @@ void Telephone::init() { void Telephone::readData(Common::SeekableReadStream &stream) { char buf[10]; stream.read(buf, 10); - imageName = buf; + _imageName = buf; for (uint i = 0; i < 12; ++i) { - srcRects.push_back(Common::Rect()); - readRect(stream, srcRects.back()); + _srcRects.push_back(Common::Rect()); + readRect(stream, _srcRects.back()); } for (uint i = 0; i < 12; ++i) { - destRects.push_back(Common::Rect()); - readRect(stream, destRects.back()); + _destRects.push_back(Common::Rect()); + readRect(stream, _destRects.back()); if (i == 0) { - _screenPosition = destRects.back(); + _screenPosition = _destRects.back(); } else { - _screenPosition.extend(destRects.back()); + _screenPosition.extend(_destRects.back()); } } - genericDialogueSound.read(stream, SoundDescription::kNormal); - genericButtonSound.read(stream, SoundDescription::kNormal); - ringSound.read(stream, SoundDescription::kNormal); - dialToneSound.read(stream, SoundDescription::kNormal); - dialAgainSound.read(stream, SoundDescription::kNormal); - hangUpSound.read(stream, SoundDescription::kNormal); + _genericDialogueSound.read(stream, SoundDescription::kNormal); + _genericButtonSound.read(stream, SoundDescription::kNormal); + _ringSound.read(stream, SoundDescription::kNormal); + _dialToneSound.read(stream, SoundDescription::kNormal); + _dialAgainSound.read(stream, SoundDescription::kNormal); + _hangUpSound.read(stream, SoundDescription::kNormal); for (uint i = 0; i < 12; ++i) { stream.read(buf, 10); - buttonSoundNames.push_back(buf); + _buttonSoundNames.push_back(buf); } char buf2[200]; stream.read(buf2, 200); - addressBookString = buf2; + _addressBookString = buf2; stream.read(buf2, 200); - dialAgainString = buf2; - reloadScene.readData(stream); + _dialAgainString = buf2; + _reloadScene.readData(stream); stream.skip(2); - flagOnReload.label = stream.readSint16LE(); - flagOnReload.flag = (NancyFlag)stream.readUint16LE(); - exitScene.readData(stream); + _flagOnReload.label = stream.readSint16LE(); + _flagOnReload.flag = (NancyFlag)stream.readUint16LE(); + _exitScene.readData(stream); stream.skip(2); - flagOnExit.label = stream.readSint16LE(); - flagOnExit.flag = (NancyFlag)stream.readUint16LE(); - readRect(stream, exitHotspot); + _flagOnExit.label = stream.readSint16LE(); + _flagOnExit.flag = (NancyFlag)stream.readUint16LE(); + readRect(stream, _exitHotspot); uint numCalls = stream.readUint16LE(); for (uint i = 0; i < numCalls; ++i) { - calls.push_back(PhoneCall()); - PhoneCall &call = calls.back(); + _calls.push_back(PhoneCall()); + PhoneCall &call = _calls.back(); for (uint j = 0; j < 11; ++j) { call.phoneNumber.push_back(stream.readByte()); @@ -109,7 +109,7 @@ void Telephone::readData(Common::SeekableReadStream &stream) { call.soundName = buf; stream.read(buf2, 200); call.text = buf2; - call.sceneChange.readData(stream); + call._sceneChange.readData(stream); stream.skip(2); call.flag.label = stream.readSint16LE(); call.flag.flag = (NancyFlag)stream.readUint16LE(); @@ -117,47 +117,47 @@ void Telephone::readData(Common::SeekableReadStream &stream) { } void Telephone::execute() { - switch (state) { + switch (_state) { case kBegin: init(); registerGraphics(); - g_nancy->sound->loadSound(dialToneSound); - g_nancy->sound->playSound(dialToneSound); + g_nancy->_sound->loadSound(_dialToneSound); + g_nancy->_sound->playSound(_dialToneSound); NancySceneState.getTextbox().clear(); - NancySceneState.getTextbox().addTextLine(addressBookString); - state = kRun; + NancySceneState.getTextbox().addTextLine(_addressBookString); + _state = kRun; // fall through case kRun: - switch (callState) { + switch (_callState) { case kWaiting: // Long phone numbers start with 1 - if (calledNumber.size() >= 11 || (calledNumber.size() >= 7 && (calledNumber[0] != 1))) { + if (_calledNumber.size() >= 11 || (_calledNumber.size() >= 7 && (_calledNumber[0] != 1))) { NancySceneState.getTextbox().clear(); NancySceneState.getTextbox().addTextLine("ringing..."); // Hardcoded in the original engine - g_nancy->sound->loadSound(ringSound); - g_nancy->sound->playSound(ringSound); - callState = kRinging; + g_nancy->_sound->loadSound(_ringSound); + g_nancy->_sound->playSound(_ringSound); + _callState = kRinging; } break; case kButtonPress: - if (!g_nancy->sound->isSoundPlaying(genericButtonSound)) { - g_nancy->sound->stopSound(genericButtonSound); - undrawButton(selected); - callState = kWaiting; + if (!g_nancy->_sound->isSoundPlaying(_genericButtonSound)) { + g_nancy->_sound->stopSound(_genericButtonSound); + undrawButton(_selected); + _callState = kWaiting; } break; case kRinging: - if (!g_nancy->sound->isSoundPlaying(ringSound)) { - g_nancy->sound->stopSound(ringSound); - uint numberLength = calledNumber[0] == 1 ? 11 : 7; + if (!g_nancy->_sound->isSoundPlaying(_ringSound)) { + g_nancy->_sound->stopSound(_ringSound); + uint numberLength = _calledNumber[0] == 1 ? 11 : 7; - for (uint i = 0; i < calls.size(); ++i) { + for (uint i = 0; i < _calls.size(); ++i) { bool invalid = false; for (uint j = 0; j < numberLength; ++j) { - if (calledNumber[j] != calls[i].phoneNumber[j]) { + if (_calledNumber[j] != _calls[i].phoneNumber[j]) { // Invalid number, move onto next invalid = true; break; @@ -169,48 +169,48 @@ void Telephone::execute() { } NancySceneState.getTextbox().clear(); - NancySceneState.getTextbox().addTextLine(calls[i].text); + NancySceneState.getTextbox().addTextLine(_calls[i].text); - genericDialogueSound.name = calls[i].soundName; - g_nancy->sound->loadSound(genericDialogueSound); - g_nancy->sound->playSound(genericDialogueSound); - selected = i; - callState = kCall; + _genericDialogueSound.name = _calls[i].soundName; + g_nancy->_sound->loadSound(_genericDialogueSound); + g_nancy->_sound->playSound(_genericDialogueSound); + _selected = i; + _callState = kCall; return; } NancySceneState.getTextbox().clear(); - NancySceneState.getTextbox().addTextLine(dialAgainString); + NancySceneState.getTextbox().addTextLine(_dialAgainString); - g_nancy->sound->loadSound(dialAgainSound); - g_nancy->sound->playSound(dialAgainSound); - callState = kBadNumber; + g_nancy->_sound->loadSound(_dialAgainSound); + g_nancy->_sound->playSound(_dialAgainSound); + _callState = kBadNumber; return; } break; case kBadNumber: - if (!g_nancy->sound->isSoundPlaying(dialAgainSound)) { - g_nancy->sound->stopSound(dialAgainSound); + if (!g_nancy->_sound->isSoundPlaying(_dialAgainSound)) { + g_nancy->_sound->stopSound(_dialAgainSound); - state = kActionTrigger; + _state = kActionTrigger; } break; case kCall: - if (!g_nancy->sound->isSoundPlaying(genericDialogueSound)) { - g_nancy->sound->stopSound(genericDialogueSound); + if (!g_nancy->_sound->isSoundPlaying(_genericDialogueSound)) { + g_nancy->_sound->stopSound(_genericDialogueSound); - state = kActionTrigger; + _state = kActionTrigger; } break; case kHangUp: - if (!g_nancy->sound->isSoundPlaying(hangUpSound)) { - g_nancy->sound->stopSound(hangUpSound); + if (!g_nancy->_sound->isSoundPlaying(_hangUpSound)) { + g_nancy->_sound->stopSound(_hangUpSound); - state = kActionTrigger; + _state = kActionTrigger; } break; @@ -218,25 +218,25 @@ void Telephone::execute() { break; case kActionTrigger: - switch (callState) { + switch (_callState) { case kBadNumber: - NancySceneState.changeScene(reloadScene); - calledNumber.clear(); - NancySceneState.setEventFlag(flagOnReload); - state = kRun; - callState = kWaiting; + NancySceneState.changeScene(_reloadScene); + _calledNumber.clear(); + NancySceneState.setEventFlag(_flagOnReload); + _state = kRun; + _callState = kWaiting; break; case kCall: { - PhoneCall &call = calls[selected]; - NancySceneState.changeScene(call.sceneChange); + PhoneCall &call = _calls[_selected]; + NancySceneState.changeScene(call._sceneChange); NancySceneState.setEventFlag(call.flag); break; } case kHangUp: - NancySceneState.changeScene(exitScene); - NancySceneState.setEventFlag(flagOnExit); + NancySceneState.changeScene(_exitScene); + NancySceneState.setEventFlag(_flagOnExit); break; default: @@ -253,25 +253,25 @@ void Telephone::handleInput(NancyInput &input) { int buttonNr = -1; // Cursor gets changed regardless of state for (uint i = 0; i < 12; ++i) { - if (NancySceneState.getViewport().convertViewportToScreen(destRects[i]).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspot); + if (NancySceneState.getViewport().convertViewportToScreen(_destRects[i]).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspot); buttonNr = i; break; } } - if (callState != kWaiting) { + if (_callState != kWaiting) { return; } - if (NancySceneState.getViewport().convertViewportToScreen(exitHotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kExitArrow); + if (NancySceneState.getViewport().convertViewportToScreen(_exitHotspot).contains(input.mousePos)) { + g_nancy->_cursorManager->setCursorType(CursorManager::kExitArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { - g_nancy->sound->loadSound(hangUpSound); - g_nancy->sound->playSound(hangUpSound); + g_nancy->_sound->loadSound(_hangUpSound); + g_nancy->_sound->playSound(_hangUpSound); - callState = kHangUp; + _callState = kHangUp; } return; @@ -279,33 +279,33 @@ void Telephone::handleInput(NancyInput &input) { if (buttonNr != -1) { if (input.input & NancyInput::kLeftMouseButtonUp) { - if (g_nancy->sound->isSoundPlaying(dialToneSound)) { - g_nancy->sound->stopSound(dialToneSound); + if (g_nancy->_sound->isSoundPlaying(_dialToneSound)) { + g_nancy->_sound->stopSound(_dialToneSound); } - calledNumber.push_back(buttonNr); - genericButtonSound.name = buttonSoundNames[buttonNr]; - g_nancy->sound->loadSound(genericButtonSound); - g_nancy->sound->playSound(genericButtonSound); + _calledNumber.push_back(buttonNr); + _genericButtonSound.name = _buttonSoundNames[buttonNr]; + g_nancy->_sound->loadSound(_genericButtonSound); + g_nancy->_sound->playSound(_genericButtonSound); drawButton(buttonNr); - selected = buttonNr; + _selected = buttonNr; - callState = kButtonPress; + _callState = kButtonPress; } } } void Telephone::drawButton(uint id) { - Common::Point destPoint(destRects[id].left - _screenPosition.left, destRects[id].top - _screenPosition.top); - _drawSurface.blitFrom(image, srcRects[id], destPoint); + Common::Point destPoint(_destRects[id].left - _screenPosition.left, _destRects[id].top - _screenPosition.top); + _drawSurface.blitFrom(_image, _srcRects[id], destPoint); _needsRedraw = true; } void Telephone::undrawButton(uint id) { - Common::Rect bounds = destRects[id]; + Common::Rect bounds = _destRects[id]; bounds.translate(-_screenPosition.left, -_screenPosition.top); _drawSurface.fillRect(bounds, GraphicsManager::getTransColor()); diff --git a/engines/nancy/action/telephone.h b/engines/nancy/action/telephone.h index 4f138962ab9..612a5073019 100644 --- a/engines/nancy/action/telephone.h +++ b/engines/nancy/action/telephone.h @@ -43,7 +43,7 @@ public: Common::Array phoneNumber; // 0x0, 11 bytes Common::String soundName; // 0xB Common::String text; // 0x15, 0xC8 bytes - SceneChangeDescription sceneChange; // 0xDD + SceneChangeDescription _sceneChange; // 0xDD // shouldStopRendering EventFlagDescription flag; // 0xE7 }; @@ -52,8 +52,8 @@ public: Telephone(RenderObject &redrawFrom) : RenderObject(redrawFrom), - callState(kWaiting), - selected(0) {} + _callState(kWaiting), + _selected(0) {} virtual ~Telephone() {} virtual void init() override; @@ -62,30 +62,30 @@ public: virtual void execute() override; virtual void handleInput(NancyInput &input) override; - Common::String imageName; // 0x00 - Common::Array srcRects; // 0xA, 12 - Common::Array destRects; // 0xCA, 12 - SoundDescription genericDialogueSound; // 0x18A - SoundDescription genericButtonSound; // 0x1AC - SoundDescription ringSound; // 0x1CE - SoundDescription dialToneSound; // 0x1F0 - SoundDescription dialAgainSound; // 0x212 - SoundDescription hangUpSound; // 0x234 - Common::Array buttonSoundNames; // 0x256, 12 * 0xA - Common::String addressBookString; // 0x2CE, 0xC8 long - Common::String dialAgainString; // 0x396 - SceneChangeDescription reloadScene; // 0x45E - EventFlagDescription flagOnReload; // 0x468 ?? - SceneChangeDescription exitScene; // 0x46C - EventFlagDescription flagOnExit; // 0x476 - Common::Rect exitHotspot; // 0x47A + Common::String _imageName; // 0x00 + Common::Array _srcRects; // 0xA, 12 + Common::Array _destRects; // 0xCA, 12 + SoundDescription _genericDialogueSound; // 0x18A + SoundDescription _genericButtonSound; // 0x1AC + SoundDescription _ringSound; // 0x1CE + SoundDescription _dialToneSound; // 0x1F0 + SoundDescription _dialAgainSound; // 0x212 + SoundDescription _hangUpSound; // 0x234 + Common::Array _buttonSoundNames; // 0x256, 12 * 0xA + Common::String _addressBookString; // 0x2CE, 0xC8 long + Common::String _dialAgainString; // 0x396 + SceneChangeDescription _reloadScene; // 0x45E + EventFlagDescription _flagOnReload; // 0x468 ?? + SceneChangeDescription _exitScene; // 0x46C + EventFlagDescription _flagOnExit; // 0x476 + Common::Rect _exitHotspot; // 0x47A // 0x48A numConvos - Common::Array calls; // 0x48C + Common::Array _calls; // 0x48C - Common::Array calledNumber; - Graphics::ManagedSurface image; - CallState callState; - uint selected; + Common::Array _calledNumber; + Graphics::ManagedSurface _image; + CallState _callState; + uint _selected; protected: virtual Common::String getRecordTypeName() const override { return "Telephone"; } diff --git a/engines/nancy/console.cpp b/engines/nancy/console.cpp index f0e28cac494..b5e460f8e4a 100644 --- a/engines/nancy/console.cpp +++ b/engines/nancy/console.cpp @@ -85,7 +85,7 @@ void NancyConsole::postEnter() { g_system->delayMillis(10); } - g_nancy->graphicsManager->redrawAll(); + g_nancy->_graphicsManager->redrawAll(); } else { debugPrintf("Failed to load '%s'\n", _videoFile.c_str()); } @@ -96,7 +96,7 @@ void NancyConsole::postEnter() { if (!_imageFile.empty()) { Graphics::Surface surf; - if (g_nancy->resource->loadImage(_imageFile, surf)) { + if (g_nancy->_resource->loadImage(_imageFile, surf)) { g_system->fillScreen(0); g_system->copyRectToScreen(surf.getPixels(), surf.pitch, 0, 0, surf.w > 640 ? 640 : surf.w, surf.h > 480 ? 480 : surf.h); g_system->updateScreen(); @@ -116,7 +116,7 @@ void NancyConsole::postEnter() { g_system->delayMillis(10); } - g_nancy->graphicsManager->redrawAll(); + g_nancy->_graphicsManager->redrawAll(); } else { debugPrintf("Failed to load image '%s'\n", _imageFile.c_str()); } @@ -126,7 +126,7 @@ void NancyConsole::postEnter() { // After calling the console, action end events get sent to it and the input manager // can still think a keyboard button is being held when it is not; clearing all inputs fixes that - g_nancy->input->forceCleanInput(); + g_nancy->_input->forceCleanInput(); } bool NancyConsole::Cmd_cifHexDump(int argc, const char **argv) { @@ -137,7 +137,7 @@ bool NancyConsole::Cmd_cifHexDump(int argc, const char **argv) { } uint size; - byte *buf = g_nancy->resource->loadCif((argc == 2 ? "ciftree" : argv[2]), argv[1], size); + byte *buf = g_nancy->_resource->loadCif((argc == 2 ? "ciftree" : argv[2]), argv[1], size); if (!buf) { debugPrintf("Failed to load resource '%s'\n", argv[1]); return true; @@ -155,7 +155,7 @@ bool NancyConsole::Cmd_cifExport(int argc, const char **argv) { return true; } - if (!g_nancy->resource->exportCif((argc == 2 ? "ciftree" : argv[2]), argv[1])) + if (!g_nancy->_resource->exportCif((argc == 2 ? "ciftree" : argv[2]), argv[1])) debugPrintf("Failed to export '%s'\n", argv[1]); return true; @@ -170,7 +170,7 @@ bool NancyConsole::Cmd_cifList(int argc, const char **argv) { } Common::Array list; - g_nancy->resource->list((argc == 2 ? "ciftree" : argv[2]), list, atoi(argv[1])); + g_nancy->_resource->list((argc == 2 ? "ciftree" : argv[2]), list, atoi(argv[1])); for (uint i = 0; i < list.size(); i++) { debugPrintf("%-38s", list[i].c_str()); if ((i % 2) == 1 && i + 1 != list.size()) @@ -189,7 +189,7 @@ bool NancyConsole::Cmd_cifInfo(int argc, const char **argv) { return true; } - debugPrintf("%s", g_nancy->resource->getCifDescription((argc == 2 ? "ciftree" : argv[2]), argv[1]).c_str()); + debugPrintf("%s", g_nancy->_resource->getCifDescription((argc == 2 ? "ciftree" : argv[2]), argv[1]).c_str()); return true; } @@ -272,7 +272,7 @@ bool NancyConsole::Cmd_loadCal(int argc, const char **argv) { return true; } - if (!g_nancy->resource->loadCifTree(argv[1], "cal")) + if (!g_nancy->_resource->loadCifTree(argv[1], "cal")) debugPrintf("Failed to load '%s.cal'\n", argv[1]); return true; } diff --git a/engines/nancy/cursor.cpp b/engines/nancy/cursor.cpp index 12a42dc1879..2915f886b25 100644 --- a/engines/nancy/cursor.cpp +++ b/engines/nancy/cursor.cpp @@ -51,7 +51,7 @@ void CursorManager::init() { _primaryVideoInitialPos.x = chunk->readUint16LE(); _primaryVideoInitialPos.y = chunk->readUint16LE(); - g_nancy->resource->loadImage(inventoryCursorsImageName, _invCursorsSurface); + g_nancy->_resource->loadImage(inventoryCursorsImageName, _invCursorsSurface); setCursor(kNormalArrow, -1); showCursor(false); @@ -106,7 +106,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) { surf = &_invCursorsSurface; } else { - surf = &g_nancy->graphicsManager->object0; + surf = &g_nancy->_graphicsManager->_object0; } // TODO this is ridiculous, figure out why just calling diff --git a/engines/nancy/font.cpp b/engines/nancy/font.cpp index 91674b775e8..8fed0c995cb 100644 --- a/engines/nancy/font.cpp +++ b/engines/nancy/font.cpp @@ -38,7 +38,7 @@ void Font::read(Common::SeekableReadStream &stream) { stream.read(name, 10); Common::String imageName = name; - g_nancy->resource->loadImage(name, _image); + g_nancy->_resource->loadImage(name, _image); char desc[0x20]; stream.read(desc, 0x20); diff --git a/engines/nancy/graphics.cpp b/engines/nancy/graphics.cpp index 9de7a7b946a..647417df58e 100644 --- a/engines/nancy/graphics.cpp +++ b/engines/nancy/graphics.cpp @@ -39,20 +39,20 @@ namespace Nancy { -const Graphics::PixelFormat GraphicsManager::inputPixelFormat = Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0); -const Graphics::PixelFormat GraphicsManager::screenPixelFormat = Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0); -const Graphics::PixelFormat GraphicsManager::clut8Format = Graphics::PixelFormat::createFormatCLUT8(); +const Graphics::PixelFormat GraphicsManager::_inputPixelFormat = Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0); +const Graphics::PixelFormat GraphicsManager::_screenPixelFormat = Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0); +const Graphics::PixelFormat GraphicsManager::_clut8Format = Graphics::PixelFormat::createFormatCLUT8(); void GraphicsManager::init() { - initGraphics(640, 480, &screenPixelFormat); - _screen.create(640, 480, screenPixelFormat); + initGraphics(640, 480, &_screenPixelFormat); + _screen.create(640, 480, _screenPixelFormat); _screen.setTransparentColor(getTransColor()); _screen.clear(); Common::SeekableReadStream *ob = g_nancy->getBootChunkStream("OB0"); ob->seek(0); - g_nancy->resource->loadImage(ob->readString(), object0); + g_nancy->_resource->loadImage(ob->readString(), _object0); loadFonts(); } @@ -220,9 +220,9 @@ void GraphicsManager::copyToManaged(void *src, Graphics::ManagedSurface &dst, ui const Graphics::PixelFormat &GraphicsManager::getInputPixelFormat() { if (g_nancy->getGameFlags() & NGF_8BITCOLOR) { - return clut8Format; + return _clut8Format; } else { - return inputPixelFormat; + return _inputPixelFormat; } } @@ -230,7 +230,7 @@ uint GraphicsManager::getTransColor() { if (g_nancy->getGameFlags() & NGF_8BITCOLOR) { return 1; // If this isn't correct, try picking the pixel at [0, 0] inside the palette bitmap } else { - return inputPixelFormat.ARGBToColor(0, 0, 255, 0); + return _inputPixelFormat.ARGBToColor(0, 0, 255, 0); } } diff --git a/engines/nancy/graphics.h b/engines/nancy/graphics.h index 0e0d9d49a51..15918db5558 100644 --- a/engines/nancy/graphics.h +++ b/engines/nancy/graphics.h @@ -57,9 +57,9 @@ public: static const Graphics::PixelFormat &getInputPixelFormat(); static uint getTransColor(); - Graphics::ManagedSurface object0; + Graphics::ManagedSurface _object0; - static const Graphics::PixelFormat screenPixelFormat; + static const Graphics::PixelFormat _screenPixelFormat; private: void loadFonts(); @@ -69,8 +69,8 @@ private: Common::SortedArray _objects; - static const Graphics::PixelFormat inputPixelFormat; - static const Graphics::PixelFormat clut8Format; + static const Graphics::PixelFormat _inputPixelFormat; + static const Graphics::PixelFormat _clut8Format; Graphics::Screen _screen; Common::Array _fonts; diff --git a/engines/nancy/iff.cpp b/engines/nancy/iff.cpp index 9c7392e2330..099ca07d058 100644 --- a/engines/nancy/iff.cpp +++ b/engines/nancy/iff.cpp @@ -69,7 +69,7 @@ bool IFF::callback(Common::IFFChunk &c) { bool IFF::load() { byte *data; uint size; - data = g_nancy->resource->loadData(_name, size); + data = g_nancy->_resource->loadData(_name, size); if (!data) { return false; diff --git a/engines/nancy/input.cpp b/engines/nancy/input.cpp index e5be3ae9a30..8cc79ddb11c 100644 --- a/engines/nancy/input.cpp +++ b/engines/nancy/input.cpp @@ -42,7 +42,7 @@ void InputManager::processEvents() { case EVENT_KEYDOWN: if (event.kbd.keycode == KEYCODE_d && event.kbd.flags & Common::KBD_CTRL) { // Launch debug console - g_nancy->launchConsole = true; + g_nancy->_launchConsole = true; } else if (event.kbd.keycode == KEYCODE_q && event.kbd.flags & Common::KBD_CTRL) { // Quit g_nancy->quitGame(); diff --git a/engines/nancy/nancy.cpp b/engines/nancy/nancy.cpp index 45ac0fcd01d..d5f97608638 100644 --- a/engines/nancy/nancy.cpp +++ b/engines/nancy/nancy.cpp @@ -72,26 +72,26 @@ NancyEngine::NancyEngine(OSystem *syst, const NancyGameDescription *gd) : Engine DebugMan.addDebugChannel(kDebugScene, "Scene", "Scene debug level"); _console = new NancyConsole(); - randomSource = new Common::RandomSource("Nancy"); - randomSource->setSeed(randomSource->getSeed()); + _randomSource = new Common::RandomSource("Nancy"); + _randomSource->setSeed(_randomSource->getSeed()); - input = new InputManager(); - sound = new SoundManager(); - graphicsManager = new GraphicsManager(); - cursorManager = new CursorManager(); + _input = new InputManager(); + _sound = new SoundManager(); + _graphicsManager = new GraphicsManager(); + _cursorManager = new CursorManager(); - launchConsole = false; + _launchConsole = false; } NancyEngine::~NancyEngine() { clearBootChunks(); DebugMan.clearAllDebugChannels(); delete _console; - delete randomSource; + delete _randomSource; - delete graphicsManager; - delete input; - delete sound; + delete _graphicsManager; + delete _input; + delete _sound; } NancyEngine *NancyEngine::create(GameType type, OSystem *syst, const NancyGameDescription *gd) { @@ -130,7 +130,7 @@ bool NancyEngine::canLoadGameStateCurrently() { bool NancyEngine::canSaveGameStateCurrently() { // TODO also disable during secondary movie - return Action::PlayPrimaryVideoChan0::activePrimaryVideo == nullptr; + return Action::PlayPrimaryVideoChan0::_activePrimaryVideo == nullptr; } bool NancyEngine::hasFeature(EngineFeature f) const { @@ -193,13 +193,13 @@ void NancyEngine::setState(GameState state, GameState overridePrevious) { runDialog(*dialog); delete dialog; } - input->forceCleanInput(); + _input->forceCleanInput(); return; default: break; } - graphicsManager->clearObjects(); + _graphicsManager->clearObjects(); _gameFlow.previousState = _gameFlow.currentState; _gameFlow.currentState = getStateObject(state); @@ -230,7 +230,7 @@ void NancyEngine::setPreviousState() { } void NancyEngine::setMouseEnabled(bool enabled) { - cursorManager->showCursor(enabled); input->setMouseInputEnabled(enabled); + _cursorManager->showCursor(enabled); _input->setMouseInputEnabled(enabled); } void NancyEngine::callCheatMenu(bool eventFlags) @@ -253,18 +253,18 @@ Common::Error NancyEngine::run() { // Main loop while (!shouldQuit()) { - cursorManager->setCursorType(CursorManager::kNormalArrow); - input->processEvents(); + _cursorManager->setCursorType(CursorManager::kNormalArrow); + _input->processEvents(); if (_gameFlow.currentState) { _gameFlow.currentState->process(); } - graphicsManager->draw(); + _graphicsManager->draw(); - if (launchConsole) { + if (_launchConsole) { _console->attach(); - launchConsole = false; + _launchConsole = false; } _console->onFrame(); @@ -300,8 +300,8 @@ void NancyEngine::bootGameEngine() { } } - resource = new ResourceManager(); - resource->initialize(); + _resource = new ResourceManager(); + _resource->initialize(); // Setup mixer syncSoundSettings(); @@ -332,22 +332,22 @@ void NancyEngine::bootGameEngine() { // Persistent sounds that are used across the engine. These originally get loaded inside Logo SoundDescription desc; desc.read(*g_nancy->getBootChunkStream("BUOK"), SoundDescription::kNormal); - g_nancy->sound->loadSound(desc); + g_nancy->_sound->loadSound(desc); desc.read(*g_nancy->getBootChunkStream("BUDE"), SoundDescription::kNormal); - g_nancy->sound->loadSound(desc); + g_nancy->_sound->loadSound(desc); desc.read(*g_nancy->getBootChunkStream("BULS"), SoundDescription::kNormal); - g_nancy->sound->loadSound(desc); + g_nancy->_sound->loadSound(desc); desc.read(*g_nancy->getBootChunkStream("GLOB"), SoundDescription::kNormal); - g_nancy->sound->loadSound(desc); + g_nancy->_sound->loadSound(desc); desc.read(*g_nancy->getBootChunkStream("CURT"), SoundDescription::kNormal); - g_nancy->sound->loadSound(desc); + g_nancy->_sound->loadSound(desc); desc.read(*g_nancy->getBootChunkStream("CANT"), SoundDescription::kNormal); - g_nancy->sound->loadSound(desc); + g_nancy->_sound->loadSound(desc); delete boot; - graphicsManager->init(); - cursorManager->init(); + _graphicsManager->init(); + _cursorManager->init(); } State::State *NancyEngine::getStateObject(GameState state) { @@ -405,7 +405,7 @@ void NancyEngine::preloadCals(const IFF &boot) { stream.read(name, nameLen); name[nameLen - 1] = 0; debugC(1, kDebugEngine, "Preloading CAL '%s'", name); - if (!resource->loadCifTree(name, "cal")) + if (!_resource->loadCifTree(name, "cal")) error("Failed to preload CAL '%s'", name); } @@ -436,9 +436,9 @@ void NancyEngine::readBootSummary(const IFF &boot) { ser.skip(0x71, kGameTypeVampire, kGameTypeVampire); ser.skip(0xA3, kGameTypeNancy1, kGameTypeNancy2); - ser.syncAsUint16LE(firstSceneID); + ser.syncAsUint16LE(_firstSceneID); ser.skip(4, kGameTypeNancy1, kGameTypeNancy2); - ser.syncAsUint16LE(startTimeHours, kGameTypeNancy1, kGameTypeNancy2); + ser.syncAsUint16LE(_startTimeHours, kGameTypeNancy1, kGameTypeNancy2); ser.skip(0xB8, kGameTypeVampire, kGameTypeVampire); ser.skip(0xA6, kGameTypeNancy1, kGameTypeNancy1); @@ -457,15 +457,15 @@ void NancyEngine::readBootSummary(const IFF &boot) { ser.skip(0x99, kGameTypeNancy1, kGameTypeNancy1); int16 time = 0; ser.syncAsSint16LE(time, kGameTypeNancy1, kGameTypeNancy1); - playerTimeMinuteLength = time; + _playerTimeMinuteLength = time; ser.skip(2, kGameTypeNancy1, kGameTypeNancy1); - ser.syncAsByte(overrideMovementTimeDeltas, kGameTypeNancy1, kGameTypeNancy1); + ser.syncAsByte(_overrideMovementTimeDeltas, kGameTypeNancy1, kGameTypeNancy1); - if (overrideMovementTimeDeltas) { + if (_overrideMovementTimeDeltas) { ser.syncAsSint16LE(time, kGameTypeNancy1, kGameTypeNancy1); - slowMovementTimeDelta = time; + _slowMovementTimeDelta = time; ser.syncAsSint16LE(time, kGameTypeNancy1, kGameTypeNancy1); - fastMovementTimeDelta = time; + _fastMovementTimeDelta = time; } } diff --git a/engines/nancy/nancy.h b/engines/nancy/nancy.h index f00bee29f50..585b64606ea 100644 --- a/engines/nancy/nancy.h +++ b/engines/nancy/nancy.h @@ -136,23 +136,23 @@ public: void callCheatMenu(bool eventFlags); // Managers - ResourceManager *resource; - GraphicsManager *graphicsManager; - CursorManager *cursorManager; - InputManager *input; - SoundManager *sound; + ResourceManager *_resource; + GraphicsManager *_graphicsManager; + CursorManager *_cursorManager; + InputManager *_input; + SoundManager *_sound; - Common::RandomSource *randomSource; + Common::RandomSource *_randomSource; - bool launchConsole; + bool _launchConsole; - uint16 firstSceneID; - uint16 startTimeHours; + uint16 _firstSceneID; + uint16 _startTimeHours; - bool overrideMovementTimeDeltas; - Time slowMovementTimeDelta; - Time fastMovementTimeDelta; - Time playerTimeMinuteLength; + bool _overrideMovementTimeDeltas; + Time _slowMovementTimeDelta; + Time _fastMovementTimeDelta; + Time _playerTimeMinuteLength; private: struct GameFlow { diff --git a/engines/nancy/renderobject.cpp b/engines/nancy/renderobject.cpp index 08e04ac6ef3..084edddc7c8 100644 --- a/engines/nancy/renderobject.cpp +++ b/engines/nancy/renderobject.cpp @@ -37,11 +37,11 @@ void RenderObject::init() { } void RenderObject::registerGraphics() { - g_nancy->graphicsManager->addObject(this); + g_nancy->_graphicsManager->addObject(this); } RenderObject::~RenderObject() { - g_nancy->graphicsManager->removeObject(this); + g_nancy->_graphicsManager->removeObject(this); if (_drawSurface.getPixels()) { _drawSurface.free(); } diff --git a/engines/nancy/state/credits.cpp b/engines/nancy/state/credits.cpp index 8b3ea463336..d8f4077e7e5 100644 --- a/engines/nancy/state/credits.cpp +++ b/engines/nancy/state/credits.cpp @@ -66,7 +66,7 @@ void Credits::init() { _pixelsToScroll = cred->readUint16LE(); _sound.read(*cred, SoundDescription::kMenu); - g_nancy->resource->loadImage(buf, _fullTextSurface); + g_nancy->_resource->loadImage(buf, _fullTextSurface); Common::Rect src = _text._screenPosition; src.moveTo(Common::Point()); @@ -74,25 +74,25 @@ void Credits::init() { _text.setTransparent(true); _text.init(); - g_nancy->sound->loadSound(_sound); - g_nancy->sound->playSound(_sound); + g_nancy->_sound->loadSound(_sound); + g_nancy->_sound->playSound(_sound); _background.registerGraphics(); _text.registerGraphics(); - g_nancy->cursorManager->showCursor(false); + g_nancy->_cursorManager->showCursor(false); _state = kRun; } void Credits::run() { - NancyInput input = g_nancy->input->getInput(); + NancyInput input = g_nancy->_input->getInput(); if (input.input & NancyInput::kLeftMouseButtonDown) { _state = kInit; - g_nancy->sound->stopSound(_sound); + g_nancy->_sound->stopSound(_sound); g_nancy->setState(NancyEngine::kMainMenu); - g_nancy->cursorManager->showCursor(true); + g_nancy->_cursorManager->showCursor(true); _fullTextSurface.free(); } diff --git a/engines/nancy/state/help.cpp b/engines/nancy/state/help.cpp index 2ab7b33649e..5795814fbdf 100644 --- a/engines/nancy/state/help.cpp +++ b/engines/nancy/state/help.cpp @@ -76,29 +76,29 @@ void Help::init() { } void Help::begin() { - g_nancy->sound->loadSound(_sound); - g_nancy->sound->playSound(_sound); + g_nancy->_sound->loadSound(_sound); + g_nancy->_sound->playSound(_sound); _image.registerGraphics(); _image.setVisible(true); - g_nancy->cursorManager->setCursorType(CursorManager::kNormalArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kNormalArrow); _state = kRun; } void Help::run() { - NancyInput input = g_nancy->input->getInput(); + NancyInput input = g_nancy->_input->getInput(); if (_hotspot.contains(input.mousePos) && input.input & NancyInput::kLeftMouseButtonUp) { - g_nancy->sound->playSound(0x18); // Hardcoded by original engine + g_nancy->_sound->playSound(0x18); // Hardcoded by original engine _state = kWaitForSound; } } void Help::waitForSound() { - if (!g_nancy->sound->isSoundPlaying(18)) { - g_nancy->sound->stopSound(_sound); + if (!g_nancy->_sound->isSoundPlaying(18)) { + g_nancy->_sound->stopSound(_sound); g_nancy->setPreviousState(); } } diff --git a/engines/nancy/state/logo.cpp b/engines/nancy/state/logo.cpp index 45c945d7881..024db5df1dd 100644 --- a/engines/nancy/state/logo.cpp +++ b/engines/nancy/state/logo.cpp @@ -61,7 +61,7 @@ void Logo::process() { } bool Logo::onStateExit() { - g_nancy->sound->stopSound(_msnd); + g_nancy->_sound->stopSound(_msnd); destroy(); return true; } @@ -78,15 +78,15 @@ void Logo::init() { void Logo::startSound() { _msnd.read(*g_nancy->getBootChunkStream("MSND"), SoundDescription::kMenu); - g_nancy->sound->loadSound(_msnd); - g_nancy->sound->playSound(_msnd); + g_nancy->_sound->loadSound(_msnd); + g_nancy->_sound->playSound(_msnd); _startTicks = g_system->getMillis(); _state = kRun; } void Logo::run() { - if (g_system->getMillis() - _startTicks >= 7000 || (g_nancy->input->getInput().input & NancyInput::kLeftMouseButtonDown)) { + if (g_system->getMillis() - _startTicks >= 7000 || (g_nancy->_input->getInput().input & NancyInput::kLeftMouseButtonDown)) { _state = kStop; } } @@ -96,7 +96,7 @@ void Logo::stop() { // For the N+C key combo it looks for some kind of cheat file // to initialize the game state with. - g_nancy->sound->stopSound(_msnd); + g_nancy->_sound->stopSound(_msnd); g_nancy->setState(NancyEngine::kScene); } diff --git a/engines/nancy/state/map.cpp b/engines/nancy/state/map.cpp index 667fa4519ea..55632b54160 100644 --- a/engines/nancy/state/map.cpp +++ b/engines/nancy/state/map.cpp @@ -80,8 +80,8 @@ void Map::init() { chunk->seek(0x18 + _mapID * 0x20, SEEK_SET); SoundDescription sound; sound.read(*chunk, SoundDescription::kMenu); - g_nancy->sound->loadSound(sound); - g_nancy->sound->playSound(0x14); + g_nancy->_sound->loadSound(sound); + g_nancy->_sound->playSound(0x14); _locations.clear(); @@ -116,17 +116,17 @@ void Map::init() { } registerGraphics(); - g_nancy->cursorManager->setCursorItemID(-1); + g_nancy->_cursorManager->setCursorItemID(-1); _state = kRun; } void Map::run() { - if (!g_nancy->sound->isSoundPlaying(0x14) && !g_nancy->sound->isSoundPlaying(0x13)) { - g_nancy->sound->playSound(0x13); + if (!g_nancy->_sound->isSoundPlaying(0x14) && !g_nancy->_sound->isSoundPlaying(0x13)) { + g_nancy->_sound->playSound(0x13); } - NancyInput input = g_nancy->input->getInput(); + NancyInput input = g_nancy->_input->getInput(); _label.setLabel(-1); @@ -140,7 +140,7 @@ void Map::run() { for (uint i = 0; i < 4; ++i) { auto &loc = _locations[i]; if (loc.isActive && _viewport.convertToScreen(loc.hotspot).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspotArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspotArrow); _label.setLabel(i); @@ -159,7 +159,7 @@ bool Map::onStateExit() { SoundDescription sound; chunk->seek(0x18 + _mapID * 0x20, SEEK_SET); sound.read(*chunk, SoundDescription::kMenu); - g_nancy->sound->stopSound(sound); + g_nancy->_sound->stopSound(sound); g_nancy->setState(NancyEngine::kScene); @@ -168,11 +168,11 @@ bool Map::onStateExit() { NancySceneState.changeScene(loc.scenes[_mapID].sceneID, loc.scenes[_mapID].frameID, loc.scenes[_mapID].verticalOffset, false); _pickedLocationID = -1; - g_nancy->sound->playSound(0x18); + g_nancy->_sound->playSound(0x18); } // The two sounds play at the same time if a location was picked - g_nancy->sound->playSound(0x14); + g_nancy->_sound->playSound(0x14); _mapButtonClicked = false; @@ -197,7 +197,7 @@ void Map::MapLabel::setLabel(int labelID) { setVisible(false); } else { _screenPosition = _parent->_locations[labelID].labelDest; - _drawSurface.create(g_nancy->graphicsManager->object0, _parent->_locations[labelID].labelSrc); + _drawSurface.create(g_nancy->_graphicsManager->_object0, _parent->_locations[labelID].labelSrc); setVisible(true); } } @@ -208,7 +208,7 @@ void Map::MapButton::init() { map->seek(0x7A, SEEK_SET); Common::Rect src; readRect(*map, src); - _drawSurface.create(g_nancy->graphicsManager->object0, src); + _drawSurface.create(g_nancy->_graphicsManager->_object0, src); readRect(*map, _screenPosition); setVisible(true); diff --git a/engines/nancy/state/scene.cpp b/engines/nancy/state/scene.cpp index 5b4b7a98333..dce13130dbb 100644 --- a/engines/nancy/state/scene.cpp +++ b/engines/nancy/state/scene.cpp @@ -83,9 +83,9 @@ void Scene::SceneSummary::read(Common::SeekableReadStream &stream) { ser.syncAsUint16LE((uint32 &)slowMoveTimeDelta); ser.syncAsUint16LE((uint32 &)fastMoveTimeDelta); - if (g_nancy->overrideMovementTimeDeltas) { - slowMoveTimeDelta = g_nancy->slowMovementTimeDelta; - fastMoveTimeDelta = g_nancy->fastMovementTimeDelta; + if (g_nancy->_overrideMovementTimeDeltas) { + slowMoveTimeDelta = g_nancy->_slowMovementTimeDelta; + fastMoveTimeDelta = g_nancy->_fastMovementTimeDelta; } delete[] buf; @@ -106,10 +106,10 @@ void Scene::process() { // fall through case kStartSound: _state = kRun; - if (!_sceneState._doNotStartSound) { - g_nancy->sound->stopAndUnloadSpecificSounds(); - g_nancy->sound->loadSound(_sceneState.summary.sound); - g_nancy->sound->playSound(_sceneState.summary.sound); + if (!_sceneState.doNotStartSound) { + g_nancy->_sound->stopAndUnloadSpecificSounds(); + g_nancy->_sound->loadSound(_sceneState.summary.sound); + g_nancy->_sound->playSound(_sceneState.summary.sound); } // fall through case kRun: @@ -123,7 +123,7 @@ void Scene::onStateEnter() { registerGraphics(); _actionManager.onPause(false); - g_nancy->graphicsManager->redrawAll(); + g_nancy->_graphicsManager->redrawAll(); // Run once to clear out the previous scene when coming from Map process(); @@ -151,7 +151,7 @@ void Scene::changeScene(uint16 id, uint16 frame, uint16 verticalOffset, bool noS _sceneState.nextScene.sceneID = id; _sceneState.nextScene.frameID = frame; _sceneState.nextScene.verticalOffset = verticalOffset; - _sceneState._doNotStartSound = noSound; + _sceneState.doNotStartSound = noSound; _state = kLoad; } @@ -173,13 +173,13 @@ void Scene::pauseSceneSpecificSounds() { // TODO missing if, same condition as the one in SoundManager::stopAndUnloadSpecificSounds for (uint i = 0; i < 10; ++i) { - g_nancy->sound->pauseSound(i, true); + g_nancy->_sound->pauseSound(i, true); } } void Scene::unpauseSceneSpecificSounds() { for (uint i = 0; i < 10; ++i) { - g_nancy->sound->pauseSound(i, false); + g_nancy->_sound->pauseSound(i, false); } } @@ -275,7 +275,7 @@ void Scene::synchronize(Common::Serializer &ser) { ser.syncAsUint16LE(_sceneState.nextScene.sceneID); ser.syncAsUint16LE(_sceneState.nextScene.frameID); ser.syncAsUint16LE(_sceneState.nextScene.verticalOffset); - _sceneState._doNotStartSound = false; + _sceneState.doNotStartSound = false; load(); } @@ -319,7 +319,7 @@ void Scene::synchronize(Common::Serializer &ser) { // TODO hardcoded inventory size ser.syncArray(_flags.items, 11, Common::Serializer::Byte); ser.syncAsSint16LE(_flags.heldItem); - g_nancy->cursorManager->setCursorItemID(_flags.heldItem); + g_nancy->_cursorManager->setCursorItemID(_flags.heldItem); ser.syncAsUint32LE((uint32 &)_timers.lastTotalTime); ser.syncAsUint32LE((uint32 &)_timers.sceneTime); @@ -356,7 +356,7 @@ void Scene::init() { } _timers.lastTotalTime = 0; - _timers.playerTime = g_nancy->startTimeHours * 3600000; + _timers.playerTime = g_nancy->_startTimeHours * 3600000; _timers.sceneTime = 0; _timers.timerTime = 0; _timers.timerIsActive = false; @@ -364,7 +364,7 @@ void Scene::init() { _timers.pushedPlayTime = 0; _timers.timeOfDay = Timers::kDay; - _sceneState.nextScene.sceneID = g_nancy->firstSceneID; + _sceneState.nextScene.sceneID = g_nancy->_firstSceneID; Common::SeekableReadStream *chunk = g_nancy->getBootChunkStream("HINT"); @@ -380,7 +380,7 @@ void Scene::init() { _lastHint = -1; } - Action::SliderPuzzle::playerHasTriedPuzzle = false; + Action::SliderPuzzle::_playerHasTriedPuzzle = false; initStaticData(); @@ -397,7 +397,7 @@ void Scene::init() { } registerGraphics(); - g_nancy->graphicsManager->redrawAll(); + g_nancy->_graphicsManager->redrawAll(); } void Scene::load() { @@ -424,7 +424,7 @@ void Scene::load() { _sceneState.summary.description.c_str(), _sceneState.nextScene.frameID, _sceneState.nextScene.verticalOffset, - _sceneState._doNotStartSound == true ? "true" : "false"); + _sceneState.doNotStartSound == true ? "true" : "false"); // Search for Action Records, maximum for a scene is 30 Common::SeekableReadStream *actionRecordChunk = nullptr; @@ -504,7 +504,7 @@ void Scene::run() { // Calculate the in-game time (playerTime) if (currentPlayTime > _timers.playerTimeNextMinute) { _timers.playerTime += 60000; // Add a minute - _timers.playerTimeNextMinute = currentPlayTime + g_nancy->playerTimeMinuteLength; + _timers.playerTimeNextMinute = currentPlayTime + g_nancy->_playerTimeMinuteLength; } // Set the time of day according to playerTime @@ -517,7 +517,7 @@ void Scene::run() { } // Update the UI elements and handle input - NancyInput input = g_nancy->input->getInput(); + NancyInput input = g_nancy->_input->getInput(); _viewport.handleInput(input); _menuButton.handleInput(input); _helpButton.handleInput(input); @@ -532,7 +532,7 @@ void Scene::run() { for (uint i = 0; i < _mapAccessSceneIDs.size(); ++i) { if (_sceneState.currentScene.sceneID == _mapAccessSceneIDs[i]) { if (_mapHotspot.contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspotArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspotArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { requestStateChange(NancyEngine::kMap); @@ -569,7 +569,7 @@ void Scene::initStaticData() { _inventoryBox.init(); _menuButton.init(); _helpButton.init(); - g_nancy->cursorManager->showCursor(true); + g_nancy->_cursorManager->showCursor(true); _state = kLoad; } diff --git a/engines/nancy/state/scene.h b/engines/nancy/state/scene.h index 74924b221b6..82653db60a2 100644 --- a/engines/nancy/state/scene.h +++ b/engines/nancy/state/scene.h @@ -130,7 +130,7 @@ public: void addItemToInventory(uint16 id); void removeItemFromInventory(uint16 id, bool pickUp = true); int16 getHeldItem() const { return _flags.heldItem; } - void setHeldItem(int16 id) { _flags.heldItem = id; g_nancy->cursorManager->setCursorItemID(id); } + void setHeldItem(int16 id) { _flags.heldItem = id; g_nancy->_cursorManager->setCursorItemID(id); } NancyFlag hasItem(int16 id) const { return _flags.items[id]; } void setEventFlag(int16 label, NancyFlag flag = kTrue); @@ -195,7 +195,7 @@ private: SceneInfo pushedScene; bool isScenePushed; - bool _doNotStartSound = false; + bool doNotStartSound = false; }; struct Timers { diff --git a/engines/nancy/ui/button.cpp b/engines/nancy/ui/button.cpp index da26812ba9e..332af39ef56 100644 --- a/engines/nancy/ui/button.cpp +++ b/engines/nancy/ui/button.cpp @@ -36,7 +36,7 @@ namespace UI { void Button::handleInput(NancyInput &input) { if (_screenPosition.contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspotArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspotArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { onClick(); @@ -50,7 +50,7 @@ void MenuButton::init() { bsum->seek(0x184, SEEK_SET); Common::Rect src; readRect(*bsum, src); - _drawSurface.create(g_nancy->graphicsManager->object0, src); + _drawSurface.create(g_nancy->_graphicsManager->_object0, src); bsum->skip(16); readRect(*bsum, _screenPosition); setVisible(false); @@ -60,7 +60,7 @@ void MenuButton::init() { void MenuButton::onClick() { NancySceneState.requestStateChange(NancyEngine::kMainMenu); - g_nancy->sound->playSound(0x18); + g_nancy->_sound->playSound(0x18); setVisible(true); } @@ -70,7 +70,7 @@ void HelpButton::init() { bsum->seek(0x194, SEEK_SET); Common::Rect src; readRect(*bsum, src); - _drawSurface.create(g_nancy->graphicsManager->object0, src); + _drawSurface.create(g_nancy->_graphicsManager->_object0, src); bsum->skip(16); readRect(*bsum, _screenPosition); setVisible(false); @@ -80,7 +80,7 @@ void HelpButton::init() { void HelpButton::onClick() { NancySceneState.requestStateChange(NancyEngine::kHelp); - g_nancy->sound->playSound(0x18); + g_nancy->_sound->playSound(0x18); setVisible(true); } diff --git a/engines/nancy/ui/fullscreenimage.cpp b/engines/nancy/ui/fullscreenimage.cpp index 10b2ed056a9..979e704a354 100644 --- a/engines/nancy/ui/fullscreenimage.cpp +++ b/engines/nancy/ui/fullscreenimage.cpp @@ -30,7 +30,7 @@ namespace Nancy { namespace UI { void FullScreenImage::init(const Common::String &imageName) { - g_nancy->resource->loadImage(imageName, _drawSurface); + g_nancy->_resource->loadImage(imageName, _drawSurface); Common::Rect srcBounds = Common::Rect(0,0, _drawSurface.w, _drawSurface.h); _screenPosition = srcBounds; diff --git a/engines/nancy/ui/inventorybox.cpp b/engines/nancy/ui/inventorybox.cpp index cfbc8336f5d..5636047b82b 100644 --- a/engines/nancy/ui/inventorybox.cpp +++ b/engines/nancy/ui/inventorybox.cpp @@ -72,10 +72,10 @@ void InventoryBox::init() { readRect(stream, _itemDescriptions[i].sourceRect); } - g_nancy->resource->loadImage(inventoryBoxIconsImageName, _iconsSurface); + g_nancy->_resource->loadImage(inventoryBoxIconsImageName, _iconsSurface); uint numItems = 11; // TODO - _fullInventorySurface.create(_screenPosition.width(), _screenPosition.height() * ((numItems / 4) + 1), GraphicsManager::screenPixelFormat); + _fullInventorySurface.create(_screenPosition.width(), _screenPosition.height() * ((numItems / 4) + 1), GraphicsManager::_screenPixelFormat); Common::Rect sourceRect = _screenPosition; sourceRect.moveTo(0, 0); _drawSurface.create(_fullInventorySurface, sourceRect); @@ -116,16 +116,16 @@ void InventoryBox::handleInput(NancyInput &input) { for (uint i = 0; i < 4; ++i) { if (_itemHotspots[i].hotspot.contains(input.mousePos)) { if (NancySceneState.getHeldItem() != -1) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspotArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspotArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { NancySceneState.addItemToInventory(NancySceneState.getHeldItem()); - g_nancy->sound->playSound(0x16); + g_nancy->_sound->playSound(0x16); } } else if (_itemHotspots[i].itemID != -1) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspotArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspotArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { NancySceneState.removeItemFromInventory(_itemHotspots[i].itemID); - g_nancy->sound->playSound(0x18); + g_nancy->_sound->playSound(0x18); } } break; @@ -209,7 +209,7 @@ void InventoryBox::InventoryScrollbar::init() { Common::Rect &srcBounds = _parent->_sliderSource; Common::Point &topPosition = _parent->_sliderDefaultDest; - _drawSurface.create(g_nancy->graphicsManager->object0, srcBounds); + _drawSurface.create(g_nancy->_graphicsManager->_object0, srcBounds); _startPosition = topPosition; _startPosition.x -= srcBounds.width() / 2; @@ -224,7 +224,7 @@ void InventoryBox::InventoryScrollbar::init() { void InventoryBox::Shades::init() { Common::Rect bounds = _parent->getBounds(); - _drawSurface.create(bounds.width(), bounds.height(), GraphicsManager::screenPixelFormat); + _drawSurface.create(bounds.width(), bounds.height(), GraphicsManager::_screenPixelFormat); _screenPosition = _parent->getScreenPosition(); _nextFrameTime = 0; setAnimationFrame(_curFrame); @@ -243,7 +243,7 @@ void InventoryBox::Shades::updateGraphics() { if (!_soundTriggered) { _soundTriggered = true; - g_nancy->sound->playSound(0x12); + g_nancy->_sound->playSound(0x12); } } } else { @@ -253,7 +253,7 @@ void InventoryBox::Shades::updateGraphics() { if (!_soundTriggered) { _soundTriggered = true; - g_nancy->sound->playSound(0x12); + g_nancy->_sound->playSound(0x12); } } } @@ -264,7 +264,7 @@ void InventoryBox::Shades::updateGraphics() { } void InventoryBox::Shades::setAnimationFrame(uint frame) { - Graphics::ManagedSurface &object0 = g_nancy->graphicsManager->object0; + Graphics::ManagedSurface &_object0 = g_nancy->_graphicsManager->_object0; Common::Rect srcRect; Common::Point destPoint; @@ -279,12 +279,12 @@ void InventoryBox::Shades::setAnimationFrame(uint frame) { // Draw left shade srcRect = _parent->_shadesSrc[frame * 2]; - _drawSurface.blitFrom(object0, srcRect, destPoint); + _drawSurface.blitFrom(_object0, srcRect, destPoint); // Draw right shade srcRect = _parent->_shadesSrc[frame * 2 + 1]; destPoint.x = getBounds().width() - srcRect.width(); - _drawSurface.blitFrom(object0, srcRect, destPoint); + _drawSurface.blitFrom(_object0, srcRect, destPoint); _needsRedraw = true; } diff --git a/engines/nancy/ui/scrollbar.cpp b/engines/nancy/ui/scrollbar.cpp index 1346f213533..98114af35b7 100644 --- a/engines/nancy/ui/scrollbar.cpp +++ b/engines/nancy/ui/scrollbar.cpp @@ -41,7 +41,7 @@ void Scrollbar::init() { void Scrollbar::handleInput(NancyInput &input) { if (_screenPosition.contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspotArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspotArrow); if (input.input & NancyInput::kLeftMouseButtonDown && !_isClicked) { // Begin click and hold diff --git a/engines/nancy/ui/textbox.cpp b/engines/nancy/ui/textbox.cpp index b0742d5d2e2..fc1282b3a32 100644 --- a/engines/nancy/ui/textbox.cpp +++ b/engines/nancy/ui/textbox.cpp @@ -38,14 +38,14 @@ namespace Nancy { namespace UI { -const char Textbox::CCBeginToken[] = ""; -const char Textbox::CCEndToken[] = ""; -const char Textbox::colorBeginToken[] = ""; -const char Textbox::colorEndToken[] = ""; -const char Textbox::hotspotToken[] = ""; -const char Textbox::newLineToken[] = ""; -const char Textbox::tabToken[] = ""; -const char Textbox::telephoneEndToken[] = ""; +const char Textbox::_CCBeginToken[] = ""; +const char Textbox::_CCEndToken[] = ""; +const char Textbox::_colorBeginToken[] = ""; +const char Textbox::_colorEndToken[] = ""; +const char Textbox::_hotspotToken[] = ""; +const char Textbox::_newLineToken[] = ""; +const char Textbox::_tabToken[] = ""; +const char Textbox::_telephoneEndToken[] = ""; void Textbox::init() { Common::SeekableReadStream *chunk = g_nancy->getBootChunkStream("TBOX"); @@ -55,7 +55,7 @@ void Textbox::init() { chunk->seek(0x20); Common::Rect innerBoundingBox; readRect(*chunk, innerBoundingBox); - _fullSurface.create(innerBoundingBox.width(), innerBoundingBox.height(), GraphicsManager::screenPixelFormat); + _fullSurface.create(innerBoundingBox.width(), innerBoundingBox.height(), GraphicsManager::_screenPixelFormat); _scrollbarDefaultDest.x = chunk->readUint16LE(); _scrollbarDefaultDest.y = chunk->readUint16LE(); @@ -108,7 +108,7 @@ void Textbox::handleInput(NancyInput &input) { Common::Rect hotspot = _hotspots[i]; hotspot.translate(0, -_drawSurface.getOffsetFromOwner().y); if (convertToScreen(hotspot).findIntersectingRect(_screenPosition).contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kHotspotArrow); + g_nancy->_cursorManager->setCursorType(CursorManager::kHotspotArrow); if (input.input & NancyInput::kLeftMouseButtonUp) { input.input &= ~NancyInput::kLeftMouseButtonUp; @@ -126,7 +126,7 @@ void Textbox::drawTextbox() { _numLines = 0; - Font *font = g_nancy->graphicsManager->getFont(_fontID); + Font *font = g_nancy->_graphicsManager->getFont(_fontID); uint maxWidth = _fullSurface.w - _borderWidth * 2; uint lineDist = _lineHeight + _lineHeight / 4; @@ -140,40 +140,40 @@ void Textbox::drawTextbox() { Rect hotspot; // Trim the begin and end tokens from the line - if (currentLine.hasPrefix(CCBeginToken) && currentLine.hasSuffix(CCEndToken)) { - currentLine = currentLine.substr(ARRAYSIZE(CCBeginToken) - 1, currentLine.size() - ARRAYSIZE(CCBeginToken) - ARRAYSIZE(CCEndToken) + 2); + if (currentLine.hasPrefix(_CCBeginToken) && currentLine.hasSuffix(_CCEndToken)) { + currentLine = currentLine.substr(ARRAYSIZE(_CCBeginToken) - 1, currentLine.size() - ARRAYSIZE(_CCBeginToken) - ARRAYSIZE(_CCEndToken) + 2); } // Replace every newline token with \n uint32 newLinePos; - while (newLinePos = currentLine.find(newLineToken), newLinePos != String::npos) { - currentLine.replace(newLinePos, ARRAYSIZE(newLineToken) - 1, "\n"); + while (newLinePos = currentLine.find(_newLineToken), newLinePos != String::npos) { + currentLine.replace(newLinePos, ARRAYSIZE(_newLineToken) - 1, "\n"); } // Simply remove telephone end token - if (currentLine.hasSuffix(telephoneEndToken)) { - currentLine = currentLine.substr(0, currentLine.size() - ARRAYSIZE(telephoneEndToken) + 1); + if (currentLine.hasSuffix(_telephoneEndToken)) { + currentLine = currentLine.substr(0, currentLine.size() - ARRAYSIZE(_telephoneEndToken) + 1); } // Remove hotspot token and mark that we need to calculate the bounds // Assumes a single text line has a single hotspot - uint32 hotspotPos = currentLine.find(hotspotToken); + uint32 hotspotPos = currentLine.find(_hotspotToken); if (hotspotPos != String::npos) { - currentLine.erase(hotspotPos, ARRAYSIZE(hotspotToken) - 1); + currentLine.erase(hotspotPos, ARRAYSIZE(_hotspotToken) - 1); hasHotspot = true; } // Subdivide current line into sublines for proper handling of the tab and color tokens // Assumes the tab token is on a new line while (!currentLine.empty()) { - if (currentLine.hasPrefix(tabToken)) { + if (currentLine.hasPrefix(_tabToken)) { horizontalOffset += font->getStringWidth(" "); // Replace tab with 4 spaces - currentLine = currentLine.substr(ARRAYSIZE(tabToken) - 1); + currentLine = currentLine.substr(ARRAYSIZE(_tabToken) - 1); } String currentSubLine; - uint32 nextTabPos = currentLine.find(tabToken); + uint32 nextTabPos = currentLine.find(_tabToken); if (nextTabPos != String::npos) { currentSubLine = currentLine.substr(0, nextTabPos); currentLine = currentLine.substr(nextTabPos); @@ -183,12 +183,12 @@ void Textbox::drawTextbox() { } // Assumes color token will be at the beginning of the line, and color string will not need wrapping - if (currentSubLine.hasPrefix(colorBeginToken)) { + if (currentSubLine.hasPrefix(_colorBeginToken)) { // Found color string, look for end token - uint32 colorEndPos = currentSubLine.find(colorEndToken); + uint32 colorEndPos = currentSubLine.find(_colorEndToken); - Common::String colorSubLine = currentSubLine.substr(ARRAYSIZE(colorBeginToken) - 1, colorEndPos - ARRAYSIZE(colorBeginToken) + 1); - currentSubLine = currentSubLine.substr(ARRAYSIZE(colorBeginToken) + ARRAYSIZE(colorEndToken) + colorSubLine.size() - 2); + Common::String colorSubLine = currentSubLine.substr(ARRAYSIZE(_colorBeginToken) - 1, colorEndPos - ARRAYSIZE(_colorBeginToken) + 1); + currentSubLine = currentSubLine.substr(ARRAYSIZE(_colorBeginToken) + ARRAYSIZE(_colorEndToken) + colorSubLine.size() - 2); // Draw the color line font->drawString(&_fullSurface, colorSubLine, _borderWidth + horizontalOffset, _firstLineOffset - font->getFontHeight() + _numLines * lineDist, maxWidth, 1); @@ -289,7 +289,7 @@ void Textbox::TextboxScrollbar::init() { Common::Rect &srcBounds = _parent->_scrollbarSourceBounds; Common::Point &topPosition = _parent->_scrollbarDefaultDest; - _drawSurface.create(g_nancy->graphicsManager->object0, srcBounds); + _drawSurface.create(g_nancy->_graphicsManager->_object0, srcBounds); _startPosition = topPosition; _startPosition.x -= srcBounds.width() / 2; diff --git a/engines/nancy/ui/textbox.h b/engines/nancy/ui/textbox.h index 59cbcf87055..e79355c3f6b 100644 --- a/engines/nancy/ui/textbox.h +++ b/engines/nancy/ui/textbox.h @@ -107,16 +107,14 @@ private: bool _needsTextRedraw; float _scrollbarPos; - static const char CCBeginToken[]; - static const char CCEndToken[]; - static const char colorBeginToken[]; - static const char colorEndToken[]; - static const char hotspotToken[]; - static const char newLineToken[]; - static const char tabToken[]; - static const char telephoneEndToken[]; - -protected: + static const char _CCBeginToken[]; + static const char _CCEndToken[]; + static const char _colorBeginToken[]; + static const char _colorEndToken[]; + static const char _hotspotToken[]; + static const char _newLineToken[]; + static const char _tabToken[]; + static const char _telephoneEndToken[]; }; } // End of namespace UI diff --git a/engines/nancy/ui/viewport.cpp b/engines/nancy/ui/viewport.cpp index cea93be76d7..c972c7c1f1e 100644 --- a/engines/nancy/ui/viewport.cpp +++ b/engines/nancy/ui/viewport.cpp @@ -63,7 +63,7 @@ void Viewport::handleInput(NancyInput &input) { byte direction = 0; if (_screenPosition.contains(input.mousePos)) { - g_nancy->cursorManager->setCursorType(CursorManager::kNormal); + g_nancy->_cursorManager->setCursorType(CursorManager::kNormal); } // Do not handle hotspots marked as incative and ignore diagonals if intersecting hotspots are not active @@ -120,7 +120,7 @@ void Viewport::handleInput(NancyInput &input) { } if (direction) { - g_nancy->cursorManager->setCursorType(CursorManager::kMove); + g_nancy->_cursorManager->setCursorType(CursorManager::kMove); if (input.input & NancyInput::kRightMouseButton) { direction |= kMoveFast;