diff options
Diffstat (limited to 'engines/mohawk/myst_stacks/myst.cpp')
-rw-r--r-- | engines/mohawk/myst_stacks/myst.cpp | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp index 82e29eb42f..83d787f2f3 100644 --- a/engines/mohawk/myst_stacks/myst.cpp +++ b/engines/mohawk/myst_stacks/myst.cpp @@ -633,25 +633,43 @@ uint16 Myst::getVar(uint16 var) { return 10; case 79: // Stellar Observatory Date - Year #4 (Right) return (_state.observatoryYearSetting / 1) % 10; - case 80: // Stellar Observatory Hour #1 - Left ( Number 1 (0) or Blank (10)) + case 80: // Stellar Observatory Hour #1 - Left ( Hour digits can be 10 (Blank), or 0-2) + uint32 observatoryLeftMinutes; if (!observatoryIsDDMMYYYY2400()) { - if (_state.observatoryTimeSetting % (12 * 60) < (10 * 60)) + // 12 Hour Format + observatoryLeftMinutes = _state.observatoryTimeSetting % (12 * 60); + if (observatoryLeftMinutes > 59 && observatoryLeftMinutes < (10 * 60)) return 10; else return 1; - } else { - if (_state.observatoryTimeSetting < (10 * 60)) - return 10; - else if (_state.observatoryTimeSetting < (20 * 60)) + } + else { + // 24 Hour Format + observatoryLeftMinutes = _state.observatoryTimeSetting; + if (observatoryLeftMinutes < (10 * 60)) + return 0; + else if (observatoryLeftMinutes < (20 * 60)) return 1; else return 2; } case 81: // Stellar Observatory Hour #2 - Right - if (!observatoryIsDDMMYYYY2400()) - return ((_state.observatoryTimeSetting % (12 * 60)) / 60) % 10; - else - return (_state.observatoryTimeSetting / 60) % 10; + uint32 observatoryRightMinutes,observatoryRightHour; + if (!observatoryIsDDMMYYYY2400()) { + // 12 Hour Format + observatoryRightMinutes = _state.observatoryTimeSetting % (12 * 60); + observatoryRightHour = observatoryRightMinutes / 60; + if ( observatoryRightHour % 12 == 0) + return 2; + else + return observatoryRightHour % 10; + } + else { + // 24 Hour Format + observatoryRightMinutes = _state.observatoryTimeSetting; + observatoryRightHour = observatoryRightMinutes / 60; + return observatoryRightHour % 10; + } case 82: // Stellar Observatory Minutes #1 - Left return (_state.observatoryTimeSetting % 60) / 10; case 83: // Stellar Observatory Minutes #2 - Right @@ -1626,6 +1644,7 @@ void Myst::observatoryIncrementMonth(int16 increment) { } _vm->_sound->playEffect(8500); + _vm->wait(20); } void Myst::observatoryMonthChange_run() { @@ -1692,6 +1711,7 @@ void Myst::observatoryIncrementDay(int16 increment) { } _vm->_sound->playEffect(8500); + _vm->wait(20); } void Myst::observatoryDayChange_run() { @@ -1752,6 +1772,7 @@ void Myst::observatoryIncrementYear(int16 increment) { } _vm->_sound->playEffect(8500); + _vm->wait(20); } void Myst::observatoryYearChange_run() { @@ -1817,6 +1838,7 @@ void Myst::observatoryIncrementTime(int16 increment) { } _vm->_sound->playEffect(8500); + _vm->wait(20); } void Myst::observatoryTimeChange_run() { @@ -2512,6 +2534,7 @@ void Myst::observatoryUpdateMonth() { _state.observatoryMonthSetting = month; _state.observatoryMonthSlider = _observatoryMonthSlider->_pos.y; _vm->_sound->playEffect(8500); + _vm->wait(20); // Redraw digits _vm->redrawArea(73); @@ -2539,6 +2562,7 @@ void Myst::observatoryUpdateDay() { _state.observatoryDaySetting = day; _state.observatoryDaySlider = _observatoryDaySlider->_pos.y; _vm->_sound->playEffect(8500); + _vm->wait(20); // Redraw digits _vm->redrawArea(75); @@ -2567,6 +2591,7 @@ void Myst::observatoryUpdateYear() { _state.observatoryYearSetting = year; _state.observatoryYearSlider = _observatoryYearSlider->_pos.y; _vm->_sound->playEffect(8500); + _vm->wait(20); // Redraw digits _vm->redrawArea(79); @@ -2597,6 +2622,7 @@ void Myst::observatoryUpdateTime() { _state.observatoryTimeSetting = time; _state.observatoryTimeSlider = _observatoryTimeSlider->_pos.y; _vm->_sound->playEffect(8500); + _vm->wait(20); // Redraw digits _vm->redrawArea(80); |