aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_stacks/myst.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mohawk/myst_stacks/myst.cpp')
-rw-r--r--engines/mohawk/myst_stacks/myst.cpp46
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);