SUPERNOVA: Corrects GameState variable names
According to the naming convention class member variables need to be prefixed with an underscore. Unfortunately, I already started converting time constants when making this change so ticksToMsec() and constant changes are sprinkled over this commit.
This commit is contained in:
parent
a2f43c4eb6
commit
a24af98b5e
3 changed files with 295 additions and 222 deletions
|
@ -103,11 +103,11 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->_guiEnabled = false;
|
_gm->_guiEnabled = false;
|
||||||
setSectionVisible(4, false);
|
setSectionVisible(4, false);
|
||||||
g_system->fillScreen(kColorDarkBlue);
|
g_system->fillScreen(kColorDarkBlue);
|
||||||
if (_gm->_state.time == 0) {
|
if (_gm->_state._time == 0) {
|
||||||
// Destination reached
|
// Destination reached
|
||||||
_vm->renderText("Flugziel erreicht", 60, 95, kColorWhite99);
|
_vm->renderText("Flugziel erreicht", 60, 95, kColorWhite99);
|
||||||
_gm->getInput();
|
_gm->getInput();
|
||||||
} else if (_gm->_state.powerOff) {
|
} else if (_gm->_state._powerOff) {
|
||||||
// Energy depleted
|
// Energy depleted
|
||||||
_vm->renderText("Energie erschöpft", 60, 95, kColorWhite99);
|
_vm->renderText("Energie erschöpft", 60, 95, kColorWhite99);
|
||||||
// Artificial coma interrupted
|
// Artificial coma interrupted
|
||||||
|
@ -116,7 +116,7 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
} else if (isSectionVisible(5)) {
|
} else if (isSectionVisible(5)) {
|
||||||
// Sleep duration in days
|
// Sleep duration in days
|
||||||
_vm->renderText("Schlafdauer in Tagen:", 30, 85, kColorWhite99);
|
_vm->renderText("Schlafdauer in Tagen:", 30, 85, kColorWhite99);
|
||||||
_vm->renderText(Common::String::format("%d",_gm->_state.timeSleep).c_str(),
|
_vm->renderText(Common::String::format("%d",_gm->_state._timeSleep).c_str(),
|
||||||
150, 85, kColorWhite99);
|
150, 85, kColorWhite99);
|
||||||
_vm->renderText("Bitte legen Sie sich in die angezeigte Schlafkammer.",
|
_vm->renderText("Bitte legen Sie sich in die angezeigte Schlafkammer.",
|
||||||
30, 105, kColorWhite99);
|
30, 105, kColorWhite99);
|
||||||
|
@ -149,7 +149,7 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (daysSleep != 0) {
|
if (daysSleep != 0) {
|
||||||
_gm->_state.timeSleep = daysSleep;
|
_gm->_state._timeSleep = daysSleep;
|
||||||
_vm->renderText("Bitte legen Sie sich in die angezeigte Schlafkammer.", 30, 105, kColorWhite99);
|
_vm->renderText("Bitte legen Sie sich in die angezeigte Schlafkammer.", 30, 105, kColorWhite99);
|
||||||
_gm->wait2(18);
|
_gm->wait2(18);
|
||||||
setSectionVisible(5, true);
|
setSectionVisible(5, true);
|
||||||
|
@ -177,15 +177,15 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->drawImage(_gm->invertSection(4));
|
_gm->drawImage(_gm->invertSection(4));
|
||||||
room = _gm->_rooms[GENERATOR];
|
room = _gm->_rooms[GENERATOR];
|
||||||
if (room->isSectionVisible(9)) {
|
if (room->isSectionVisible(9)) {
|
||||||
energy = &_gm->_state.landingModuleEnergy;
|
energy = &_gm->_state._landingModuleEnergy;
|
||||||
} else {
|
} else {
|
||||||
energy = &_gm->_state.shipEnergy;
|
energy = &_gm->_state._shipEnergy;
|
||||||
}
|
}
|
||||||
if (_gm->_state.timeSleep > _gm->_state.time) {
|
if (_gm->_state._timeSleep > _gm->_state._time) {
|
||||||
_gm->_state.timeSleep = _gm->_state.time;
|
_gm->_state._timeSleep = _gm->_state._time;
|
||||||
}
|
}
|
||||||
if (_gm->_state.timeSleep >= *energy) {
|
if (_gm->_state._timeSleep >= *energy) {
|
||||||
_gm->_state.timeSleep = *energy;
|
_gm->_state._timeSleep = *energy;
|
||||||
if (room->isSectionVisible(9)) {
|
if (room->isSectionVisible(9)) {
|
||||||
room = _gm->_rooms[LANDINGMODULE]; // Monitors off
|
room = _gm->_rooms[LANDINGMODULE]; // Monitors off
|
||||||
room->setSectionVisible(2, false);
|
room->setSectionVisible(2, false);
|
||||||
|
@ -195,7 +195,7 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
room->setSectionVisible(10, false);
|
room->setSectionVisible(10, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_gm->_state.timeSleep == _gm->_state.time) {
|
if (_gm->_state._timeSleep == _gm->_state._time) {
|
||||||
_gm->drawImage(3);
|
_gm->drawImage(3);
|
||||||
room = _gm->_rooms[COCKPIT];
|
room = _gm->_rooms[COCKPIT];
|
||||||
room->setSectionVisible(23, true);
|
room->setSectionVisible(23, true);
|
||||||
|
@ -220,26 +220,26 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
room->setSectionVisible(11, true);
|
room->setSectionVisible(11, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_gm->_state.time -= _gm->_state.timeSleep;
|
_gm->_state._time -= _gm->_state._timeSleep;
|
||||||
*energy -= _gm->_state.timeSleep;
|
*energy -= _gm->_state._timeSleep;
|
||||||
_gm->_state.timeStarting = _vm->getDOSTicks() - 786520; // 12pm
|
_gm->_state._timeStarting = _vm->_system->getMillis() - ticksToMsec(786520); // 12pm
|
||||||
_gm->_state.timeAlarmSystem = _gm->_state.timeAlarm + _gm->_state.timeStarting;
|
_gm->_state._timeAlarmSystem = _gm->_state._timeAlarm + _gm->_state._timeStarting;
|
||||||
_gm->_state.alarmOn = (_gm->_state.timeAlarmSystem > _vm->getDOSTicks());
|
_gm->_state._alarmOn = (_gm->_state._timeAlarmSystem > _vm->_system->getMillis());
|
||||||
if (!*energy) {
|
if (!*energy) {
|
||||||
_gm->turnOff();
|
_gm->turnOff();
|
||||||
room = _gm->_rooms[GENERATOR];
|
room = _gm->_rooms[GENERATOR];
|
||||||
room->setSectionVisible(4, room->isSectionVisible(2));
|
room->setSectionVisible(4, room->isSectionVisible(2));
|
||||||
}
|
}
|
||||||
if (_gm->_state.time == 0) {
|
if (_gm->_state._time == 0) {
|
||||||
_gm->saveTime();
|
_gm->saveTime();
|
||||||
if (!_gm->saveGame(-2))
|
if (!_gm->saveGame(-2))
|
||||||
_gm->errorTemp();
|
_gm->errorTemp();
|
||||||
_gm->_state.dream = true;
|
_gm->_state._dream = true;
|
||||||
_gm->loadTime();
|
_gm->loadTime();
|
||||||
}
|
}
|
||||||
_gm->wait2(18);
|
_gm->wait2(18);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
if (_gm->_state.time == 0) {
|
if (_gm->_state._time == 0) {
|
||||||
_vm->playSound(kAudioCrash);
|
_vm->playSound(kAudioCrash);
|
||||||
_gm->screenShake();
|
_gm->screenShake();
|
||||||
_gm->wait2(18);
|
_gm->wait2(18);
|
||||||
|
@ -255,7 +255,7 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
|
|
||||||
void ShipSleepCabin::animation() {
|
void ShipSleepCabin::animation() {
|
||||||
static char color;
|
static char color;
|
||||||
if (_gm->_state.powerOff && _gm->_state.time) {
|
if (_gm->_state._powerOff && _gm->_state._time) {
|
||||||
if (_gm->_guiEnabled) {
|
if (_gm->_guiEnabled) {
|
||||||
if (isSectionVisible(1)) {
|
if (isSectionVisible(1)) {
|
||||||
_gm->drawImage(2);
|
_gm->drawImage(2);
|
||||||
|
@ -283,7 +283,7 @@ void ShipSleepCabin::animation() {
|
||||||
_gm->setAnimationTimer(6);
|
_gm->setAnimationTimer(6);
|
||||||
}
|
}
|
||||||
void ShipSleepCabin::onEntrance() {
|
void ShipSleepCabin::onEntrance() {
|
||||||
if (_gm->_state.dream && (_gm->_rooms[CAVE]->getObject(1)->_exitRoom == MEETUP3)) {
|
if (_gm->_state._dream && (_gm->_rooms[CAVE]->getObject(1)->_exitRoom == MEETUP3)) {
|
||||||
_vm->renderMessage("Du wachst mit brummendem Schädel auf|und merkst, daß du nur geträumt hast.");
|
_vm->renderMessage("Du wachst mit brummendem Schädel auf|und merkst, daß du nur geträumt hast.");
|
||||||
_gm->mouseWait(_gm->_timer1);
|
_gm->mouseWait(_gm->_timer1);
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
|
@ -291,7 +291,7 @@ void ShipSleepCabin::onEntrance() {
|
||||||
_gm->mouseWait(_gm->_timer1);
|
_gm->mouseWait(_gm->_timer1);
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
_vm->renderMessage("Was steht dir jetzt wohl wirklich bevor?");
|
_vm->renderMessage("Was steht dir jetzt wohl wirklich bevor?");
|
||||||
_gm->_state.dream = false;
|
_gm->_state._dream = false;
|
||||||
}
|
}
|
||||||
setRoomSeen(true);
|
setRoomSeen(true);
|
||||||
}
|
}
|
||||||
|
@ -304,21 +304,22 @@ bool ShipCockpit::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->_guiEnabled = false;
|
_gm->_guiEnabled = false;
|
||||||
_vm->renderBox(0, 0, 320, 200, kColorBlack);
|
_vm->renderBox(0, 0, 320, 200, kColorBlack);
|
||||||
_vm->renderText("Geschwindigkeit: ", 50, 50, kColorLightYellow);
|
_vm->renderText("Geschwindigkeit: ", 50, 50, kColorLightYellow);
|
||||||
if (_gm->_state.time)
|
if (_gm->_state._time)
|
||||||
_vm->renderText("8000 hpm");
|
_vm->renderText("8000 hpm");
|
||||||
else
|
else
|
||||||
_vm->renderText("0 hpm");
|
_vm->renderText("0 hpm");
|
||||||
_vm->renderText("Ziel: Arsano 3", 50, 70, kColorLightYellow);
|
_vm->renderText("Ziel: Arsano 3", 50, 70, kColorLightYellow);
|
||||||
_vm->renderText("Entfernung: ", 50, 90, kColorLightYellow);
|
_vm->renderText("Entfernung: ", 50, 90, kColorLightYellow);
|
||||||
_vm->renderText(Common::String::format("%d", _gm->_state.timeStarting / 7200000).c_str());
|
_vm->renderText(Common::String::format("%d", _gm->_state._time / ticksToMsec(400)).c_str());
|
||||||
_vm->renderText(",");
|
_vm->renderText(",");
|
||||||
c[0] = (_gm->_state.timeStarting / 720000) % 10 + '0';
|
c[0] = (_gm->_state._time / ticksToMsec(40)) % 10 + '0';
|
||||||
_vm->renderText(c);
|
_vm->renderText(c);
|
||||||
c[0] = (_gm->_state.timeStarting / 72000) % 10 + '0';
|
c[0] = (_gm->_state._time / ticksToMsec(4)) % 10 + '0';
|
||||||
_vm->renderText(c);
|
_vm->renderText(c);
|
||||||
_vm->renderText(" Lichtjahre");
|
_vm->renderText(" Lichtjahre");
|
||||||
_vm->renderText("Dauer der Reise bei momentaner Geschwindigkeit:", 50, 110, kColorLightYellow);
|
_vm->renderText("Dauer der Reise bei momentaner Geschwindigkeit:", 50, 110, kColorLightYellow);
|
||||||
_vm->renderText(Common::String::format("%d", _gm->_state.timeStarting / 18000).c_str(), 50, 120, kColorLightYellow);
|
_vm->renderText(Common::String::format("%d", _gm->_state._time).c_str(),
|
||||||
|
50, 120, kColorLightYellow);
|
||||||
_vm->renderText(" Tage");
|
_vm->renderText(" Tage");
|
||||||
|
|
||||||
_gm->getInput();
|
_gm->getInput();
|
||||||
|
@ -351,7 +352,7 @@ void ShipCockpit::animation() {
|
||||||
_gm->setAnimationTimer(10);
|
_gm->setAnimationTimer(10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_gm->_state.powerOff) {
|
if (_gm->_state._powerOff) {
|
||||||
if (!_gm->_guiEnabled) {
|
if (!_gm->_guiEnabled) {
|
||||||
_vm->renderText("Energievorrat erschpft", 97, 165, color);
|
_vm->renderText("Energievorrat erschpft", 97, 165, color);
|
||||||
_vm->renderText("Notstromversorgung aktiv", 97, 175, color);
|
_vm->renderText("Notstromversorgung aktiv", 97, 175, color);
|
||||||
|
@ -701,11 +702,11 @@ bool ShipHold::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, HOLD_WIRE)) {
|
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, HOLD_WIRE)) {
|
||||||
getObject(0)->_name = "Leitung mit Lsterklemme";
|
getObject(0)->_name = "Leitung mit Lsterklemme";
|
||||||
_gm->_inventory.remove(*getObject(2));
|
_gm->_inventory.remove(*getObject(2));
|
||||||
_gm->_state.terminalStripConnected = true;
|
_gm->_state._terminalStripConnected = true;
|
||||||
_gm->_state.terminalStripWire = true;
|
_gm->_state._terminalStripWire = true;
|
||||||
_vm->renderMessage("Ok.");
|
_vm->renderMessage("Ok.");
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, HOLD_WIRE, SPOOL)) {
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, HOLD_WIRE, SPOOL)) {
|
||||||
if (!_gm->_state.terminalStripConnected)
|
if (!_gm->_state._terminalStripConnected)
|
||||||
_vm->renderMessage("Womit denn?");
|
_vm->renderMessage("Womit denn?");
|
||||||
else {
|
else {
|
||||||
_gm->drawImage(5);
|
_gm->drawImage(5);
|
||||||
|
@ -747,7 +748,7 @@ bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
if ((verb == ACTION_PRESS) && (obj1._id == LANDINGMOD_BUTTON))
|
if ((verb == ACTION_PRESS) && (obj1._id == LANDINGMOD_BUTTON))
|
||||||
_vm->renderMessage(obj1._description);
|
_vm->renderMessage(obj1._description);
|
||||||
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, PEN, LANDINGMOD_BUTTON)) {
|
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, PEN, LANDINGMOD_BUTTON)) {
|
||||||
if (_gm->_state.landingModuleEnergy) {
|
if (_gm->_state._landingModuleEnergy) {
|
||||||
r = _gm->_rooms[GENERATOR];
|
r = _gm->_rooms[GENERATOR];
|
||||||
if (isSectionVisible(7)) {
|
if (isSectionVisible(7)) {
|
||||||
_gm->drawImage(_gm->invertSection(9));
|
_gm->drawImage(_gm->invertSection(9));
|
||||||
|
@ -756,13 +757,13 @@ bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->drawImage(_gm->invertSection(7));
|
_gm->drawImage(_gm->invertSection(7));
|
||||||
_gm->drawImage(_gm->invertSection(10));
|
_gm->drawImage(_gm->invertSection(10));
|
||||||
if (r->isSectionVisible(9))
|
if (r->isSectionVisible(9))
|
||||||
_gm->_state.powerOff = true;
|
_gm->_state._powerOff = true;
|
||||||
_gm->roomBrightness();
|
_gm->roomBrightness();
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
} else {
|
} else {
|
||||||
_gm->drawImage(7);
|
_gm->drawImage(7);
|
||||||
if (r->isSectionVisible(9))
|
if (r->isSectionVisible(9))
|
||||||
_gm->_state.powerOff = false;
|
_gm->_state._powerOff = false;
|
||||||
// load("MSN_DATA.025");
|
// load("MSN_DATA.025");
|
||||||
_gm->roomBrightness();
|
_gm->roomBrightness();
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
|
@ -791,12 +792,12 @@ bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->_inventory.remove(*r->getObject(8));
|
_gm->_inventory.remove(*r->getObject(8));
|
||||||
getObject(4)->_name = r->getObject(8)->_name;
|
getObject(4)->_name = r->getObject(8)->_name;
|
||||||
_gm->drawImage(4);
|
_gm->drawImage(4);
|
||||||
if (_gm->_state.cableConnected) {
|
if (_gm->_state._cableConnected) {
|
||||||
_gm->drawImage(5);
|
_gm->drawImage(5);
|
||||||
getObject(4)->_click = 6;
|
getObject(4)->_click = 6;
|
||||||
} else {
|
} else {
|
||||||
getObject(4)->_click = 5;
|
getObject(4)->_click = 5;
|
||||||
if (_gm->_state.terminalStripWire)
|
if (_gm->_state._terminalStripWire)
|
||||||
_gm->drawImage(11);
|
_gm->drawImage(11);
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, SPOOL, LANDINGMOD_SOCKET))
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, SPOOL, LANDINGMOD_SOCKET))
|
||||||
|
@ -806,10 +807,10 @@ bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
getObject(4)->_name = "Leitung mit L\201sterklemme";
|
getObject(4)->_name = "Leitung mit L\201sterklemme";
|
||||||
r = _gm->_rooms[HOLD];
|
r = _gm->_rooms[HOLD];
|
||||||
_gm->_inventory.remove(*r->getObject(2));
|
_gm->_inventory.remove(*r->getObject(2));
|
||||||
_gm->_state.terminalStripConnected = true;
|
_gm->_state._terminalStripConnected = true;
|
||||||
_gm->_state.terminalStripWire = true;
|
_gm->_state._terminalStripWire = true;
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, LANDINGMOD_WIRE, SPOOL)) {
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, LANDINGMOD_WIRE, SPOOL)) {
|
||||||
if (!_gm->_state.terminalStripConnected)
|
if (!_gm->_state._terminalStripConnected)
|
||||||
_vm->renderMessage("Womit denn?");
|
_vm->renderMessage("Womit denn?");
|
||||||
else {
|
else {
|
||||||
_gm->drawImage(5);
|
_gm->drawImage(5);
|
||||||
|
@ -909,7 +910,7 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
setSectionVisible(3, false);
|
setSectionVisible(3, false);
|
||||||
setSectionVisible(4, false);
|
setSectionVisible(4, false);
|
||||||
getObject(11)->_click = 10;
|
getObject(11)->_click = 10;
|
||||||
if (_gm->_state.shipEnergy)
|
if (_gm->_state._shipEnergy)
|
||||||
_gm->turnOn();
|
_gm->turnOn();
|
||||||
else
|
else
|
||||||
_gm->drawImage(4);
|
_gm->drawImage(4);
|
||||||
|
@ -918,7 +919,7 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->drawImage(2);
|
_gm->drawImage(2);
|
||||||
if (getObject(11)->_click == 11)
|
if (getObject(11)->_click == 11)
|
||||||
_gm->drawImage(3);
|
_gm->drawImage(3);
|
||||||
if (_gm->_state.powerOff)
|
if (_gm->_state._powerOff)
|
||||||
_gm->drawImage(4);
|
_gm->drawImage(4);
|
||||||
obj1.setProperty(OPENED);
|
obj1.setProperty(OPENED);
|
||||||
obj1._click = 6;
|
obj1._click = 6;
|
||||||
|
@ -941,7 +942,7 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->drawImage(9);
|
_gm->drawImage(9);
|
||||||
getObject(0)->_click = 16;
|
getObject(0)->_click = 16;
|
||||||
r = _gm->_rooms[LANDINGMODULE];
|
r = _gm->_rooms[LANDINGMODULE];
|
||||||
if (_gm->_state.landingModuleEnergy && r->isSectionVisible(7))
|
if (_gm->_state._landingModuleEnergy && r->isSectionVisible(7))
|
||||||
_gm->turnOn();
|
_gm->turnOn();
|
||||||
else
|
else
|
||||||
_gm->drawImage(4);
|
_gm->drawImage(4);
|
||||||
|
@ -963,7 +964,7 @@ bool ShipGenerator::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
isSectionVisible(3)) {
|
isSectionVisible(3)) {
|
||||||
_vm->renderMessage("Was n\201tzt dir der Anschlu\341|ohne eine Stromquelle?!");
|
_vm->renderMessage("Was n\201tzt dir der Anschlu\341|ohne eine Stromquelle?!");
|
||||||
} else if ((verb == ACTION_LOOK) && (obj1._id == VOLTMETER)) {
|
} else if ((verb == ACTION_LOOK) && (obj1._id == VOLTMETER)) {
|
||||||
if (_gm->_state.powerOff)
|
if (_gm->_state._powerOff)
|
||||||
_vm->renderMessage("Die Spannung ist auf Null abgesunken.");
|
_vm->renderMessage("Die Spannung ist auf Null abgesunken.");
|
||||||
else
|
else
|
||||||
_vm->renderMessage("Es zeigt volle Spannung an.");
|
_vm->renderMessage("Es zeigt volle Spannung an.");
|
||||||
|
@ -1031,9 +1032,9 @@ void ArsanoMeetup::onEntrance() {
|
||||||
_gm->wait2(3);
|
_gm->wait2(3);
|
||||||
_gm->drawImage(_gm->invertSection(6));
|
_gm->drawImage(_gm->invertSection(6));
|
||||||
}
|
}
|
||||||
if (!(_gm->_state.greatFlag & 0x8000)) {
|
if (!(_gm->_state._greatFlag & 0x8000)) {
|
||||||
_vm->playSound(kAudioGreat);
|
_vm->playSound(kAudioGreat);
|
||||||
_gm->_state.greatFlag |= 0x8000;
|
_gm->_state._greatFlag |= 0x8000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1079,15 +1080,15 @@ bool ArsanoMeetup::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->wait2(3);
|
_gm->wait2(3);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
} else if ((verb == ACTION_LOOK) && (obj1._id == MEETUP_SIGN) && _gm->_state.language) {
|
} else if ((verb == ACTION_LOOK) && (obj1._id == MEETUP_SIGN) && _gm->_state._language) {
|
||||||
if (_gm->_state.language == 2)
|
if (_gm->_state._language == 2)
|
||||||
_vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Treffpunkt Galactica\".");
|
_vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Treffpunkt Galactica\".");
|
||||||
|
|
||||||
obj1._description = "Darauf steht:|\"Treffpunkt Galactica\".";
|
obj1._description = "Darauf steht:|\"Treffpunkt Galactica\".";
|
||||||
if (_gm->_state.language == 1)
|
if (_gm->_state._language == 1)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
_gm->_state.language = 1;
|
_gm->_state._language = 1;
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, KEYCARD_R, SPACESHIP)) {
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, KEYCARD_R, SPACESHIP)) {
|
||||||
getObject(5)->setProperty(OPENED);
|
getObject(5)->setProperty(OPENED);
|
||||||
_gm->changeRoom(GLIDER);
|
_gm->changeRoom(GLIDER);
|
||||||
|
@ -1144,12 +1145,12 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
if (_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) {
|
if (_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) {
|
||||||
_vm->renderMessage("Durch deinen Helm kannst|du nicht sprechen.");
|
_vm->renderMessage("Durch deinen Helm kannst|du nicht sprechen.");
|
||||||
} else {
|
} else {
|
||||||
if (_gm->_state.language) {
|
if (_gm->_state._language) {
|
||||||
do {
|
do {
|
||||||
if (_gm->_state.shoes == 1) {
|
if (_gm->_state._shoes == 1) {
|
||||||
_dialog2[2] = "Wo soll ich die Schuhe ablegen?";
|
_dialog2[2] = "Wo soll ich die Schuhe ablegen?";
|
||||||
_gm->addSentence(2, 2);
|
_gm->addSentence(2, 2);
|
||||||
} else if (_gm->_state.shoes > 1) {
|
} else if (_gm->_state._shoes > 1) {
|
||||||
_gm->removeSentence(2, 2);
|
_gm->removeSentence(2, 2);
|
||||||
}
|
}
|
||||||
switch (e = _gm->dialog(5, nullptr, nullptr, 2)) { // row2, dialog2
|
switch (e = _gm->dialog(5, nullptr, nullptr, 2)) { // row2, dialog2
|
||||||
|
@ -1164,12 +1165,12 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->addSentence(1, 2);
|
_gm->addSentence(1, 2);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (_gm->_state.shoes == 1) {
|
if (_gm->_state._shoes == 1) {
|
||||||
_gm->reply("In der Toilette gibt es|Schlieáfcher fr Schuhe.", 1, _gm->invertSection(1));
|
_gm->reply("In der Toilette gibt es|Schlieáfcher fr Schuhe.", 1, _gm->invertSection(1));
|
||||||
_gm->_state.shoes = 2;
|
_gm->_state._shoes = 2;
|
||||||
} else {
|
} else {
|
||||||
_gm->reply("Wenn Sie das Lokal betreten|wollen, mssen Sie erst|ihre Schuhe ausziehen.", 1, _gm->invertSection(1));
|
_gm->reply("Wenn Sie das Lokal betreten|wollen, mssen Sie erst|ihre Schuhe ausziehen.", 1, _gm->invertSection(1));
|
||||||
_gm->_state.shoes = 1;
|
_gm->_state._shoes = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
@ -1181,14 +1182,14 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->reply("Hhius otgfh Dgfdrkjlh Fokj gf.", 1, _gm->invertSection(1));
|
_gm->reply("Hhius otgfh Dgfdrkjlh Fokj gf.", 1, _gm->invertSection(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_WALK) && (obj1._id == STAIRCASE) && (_gm->_state.shoes != 3)) {
|
} else if ((verb == ACTION_WALK) && (obj1._id == STAIRCASE) && (_gm->_state._shoes != 3)) {
|
||||||
_gm->drawImage(3);
|
_gm->drawImage(3);
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
_gm->drawImage(4);
|
_gm->drawImage(4);
|
||||||
setSectionVisible(3, false);
|
setSectionVisible(3, false);
|
||||||
if (_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN))
|
if (_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN))
|
||||||
_gm->reply("|", 1, _gm->invertSection(1));
|
_gm->reply("|", 1, _gm->invertSection(1));
|
||||||
else if (_gm->_state.language)
|
else if (_gm->_state._language)
|
||||||
_gm->reply("Halt!", 1, _gm->invertSection(1));
|
_gm->reply("Halt!", 1, _gm->invertSection(1));
|
||||||
else
|
else
|
||||||
_gm->reply("Uhwdejkt!", 1, _gm->invertSection(1));
|
_gm->reply("Uhwdejkt!", 1, _gm->invertSection(1));
|
||||||
|
@ -1197,8 +1198,8 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->wait2(2);
|
_gm->wait2(2);
|
||||||
_gm->drawImage(_gm->invertSection(3));
|
_gm->drawImage(_gm->invertSection(3));
|
||||||
if (!_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) {
|
if (!_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) {
|
||||||
if (_gm->_state.language) {
|
if (_gm->_state._language) {
|
||||||
if (_gm->_state.shoes)
|
if (_gm->_state._shoes)
|
||||||
_gm->reply("Sie mssen erst ihre Schuhe ausziehen, Sie Trottel!", 1, _gm->invertSection(1));
|
_gm->reply("Sie mssen erst ihre Schuhe ausziehen, Sie Trottel!", 1, _gm->invertSection(1));
|
||||||
else
|
else
|
||||||
_gm->reply("Was fllt ihnen ein!|Sie knnen doch ein Lokal|nicht mit Schuhen betreten!", 1, _gm->invertSection(1));
|
_gm->reply("Was fllt ihnen ein!|Sie knnen doch ein Lokal|nicht mit Schuhen betreten!", 1, _gm->invertSection(1));
|
||||||
|
@ -1216,7 +1217,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
_gm->reply("In der Toilette gibt es|Schlieáfcher fr Schuhe.", 1, 1 + 128);
|
_gm->reply("In der Toilette gibt es|Schlieáfcher fr Schuhe.", 1, 1 + 128);
|
||||||
_gm->_state.shoes = 2;
|
_gm->_state._shoes = 2;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
_gm->drawImage(3);
|
_gm->drawImage(3);
|
||||||
|
@ -1254,15 +1255,15 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
setSectionVisible(8, false);
|
setSectionVisible(8, false);
|
||||||
getObject(11)->_click = 9;
|
getObject(11)->_click = 9;
|
||||||
} else if ((verb == ACTION_WALK) && (obj1._id == ARSANO_BATHROOM)) {
|
} else if ((verb == ACTION_WALK) && (obj1._id == ARSANO_BATHROOM)) {
|
||||||
if (_gm->_state.coins) {
|
if (_gm->_state._coins) {
|
||||||
if (_gm->_state.shoes == 2) {
|
if (_gm->_state._shoes == 2) {
|
||||||
_vm->renderMessage("Du ziehst deine Schuhe|aus und legst sie in|eins der Schlieáfcher.");
|
_vm->renderMessage("Du ziehst deine Schuhe|aus und legst sie in|eins der Schlieáfcher.");
|
||||||
_gm->_state.shoes = 3;
|
_gm->_state._shoes = 3;
|
||||||
_gm->removeSentence(2, 2);
|
_gm->removeSentence(2, 2);
|
||||||
_gm->removeSentence(3, 2);
|
_gm->removeSentence(3, 2);
|
||||||
} else if (_gm->_state.shoes == 3) {
|
} else if (_gm->_state._shoes == 3) {
|
||||||
_vm->renderMessage("Du ziehst deine Schuhe wieder an.");
|
_vm->renderMessage("Du ziehst deine Schuhe wieder an.");
|
||||||
_gm->_state.shoes = 2;
|
_gm->_state._shoes = 2;
|
||||||
} else
|
} else
|
||||||
_vm->renderMessage("Du durchsuchst die Klos nach|anderen brauchbaren Sachen,|findest aber nichts.");
|
_vm->renderMessage("Du durchsuchst die Klos nach|anderen brauchbaren Sachen,|findest aber nichts.");
|
||||||
} else {
|
} else {
|
||||||
|
@ -1274,39 +1275,39 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
_vm->renderMessage("In einem der Schlieáfcher,|die sich auch im Raum befinden,|findest du einige Mnzen.");
|
_vm->renderMessage("In einem der Schlieáfcher,|die sich auch im Raum befinden,|findest du einige Mnzen.");
|
||||||
_gm->takeObject(*getObject(16));
|
_gm->takeObject(*getObject(16));
|
||||||
_gm->_state.coins = 5;
|
_gm->_state._coins = 5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_shown[kMaxSection - 5] = true;
|
_shown[kMaxSection - 5] = true;
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, COINS, CAR_SLOT)) {
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, COINS, CAR_SLOT)) {
|
||||||
if ((_gm->_state.coins < 5) && (getObject(7 - _gm->_state.coins)->_click == 7))
|
if ((_gm->_state._coins < 5) && (getObject(7 - _gm->_state._coins)->_click == 7))
|
||||||
_vm->renderMessage("Mach doch zuerst das Fach leer!");
|
_vm->renderMessage("Mach doch zuerst das Fach leer!");
|
||||||
else {
|
else {
|
||||||
_gm->drawImage(15 - _gm->_state.coins);
|
_gm->drawImage(15 - _gm->_state._coins);
|
||||||
getObject(8 - _gm->_state.coins)->_click = 7;
|
getObject(8 - _gm->_state._coins)->_click = 7;
|
||||||
--_gm->_state.coins;
|
--_gm->_state._coins;
|
||||||
if (_gm->_state.coins == 1) {
|
if (_gm->_state._coins == 1) {
|
||||||
getObject(16)->_name = "M\201nze";
|
getObject(16)->_name = "M\201nze";
|
||||||
}
|
}
|
||||||
if (_gm->_state.coins == 0) {
|
if (_gm->_state._coins == 0) {
|
||||||
_gm->_inventory.remove(*getObject(16));
|
_gm->_inventory.remove(*getObject(16));
|
||||||
_gm->_state.coins = 255;
|
_gm->_state._coins = 255;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_LOOK) && (obj1._id == KITCHEN_SIGN) && _gm->_state.language) {
|
} else if ((verb == ACTION_LOOK) && (obj1._id == KITCHEN_SIGN) && _gm->_state._language) {
|
||||||
if (_gm->_state.language == 2)
|
if (_gm->_state._language == 2)
|
||||||
_vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Zutritt nur fr Personal\".");
|
_vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Zutritt nur fr Personal\".");
|
||||||
obj1._description = "Darauf steht:|\"Zutritt nur fr Personal\".";
|
obj1._description = "Darauf steht:|\"Zutritt nur fr Personal\".";
|
||||||
if (_gm->_state.language == 1)
|
if (_gm->_state._language == 1)
|
||||||
return false;
|
return false;
|
||||||
_gm->_state.language = 1;
|
_gm->_state._language = 1;
|
||||||
} else if ((verb == ACTION_LOOK) && (obj1._id == BATHROOM_SIGN) && _gm->_state.language) {
|
} else if ((verb == ACTION_LOOK) && (obj1._id == BATHROOM_SIGN) && _gm->_state._language) {
|
||||||
if (_gm->_state.language == 2)
|
if (_gm->_state._language == 2)
|
||||||
_vm->renderMessage("Komisch! Auf einmal kannst|du das Schild lesen!|Darauf steht:\"Toilette\".");
|
_vm->renderMessage("Komisch! Auf einmal kannst|du das Schild lesen!|Darauf steht:\"Toilette\".");
|
||||||
obj1._description = "Darauf steht:|\"Toilette\".";
|
obj1._description = "Darauf steht:|\"Toilette\".";
|
||||||
if (_gm->_state.language == 1)
|
if (_gm->_state._language == 1)
|
||||||
return false;
|
return false;
|
||||||
_gm->_state.language = 1;
|
_gm->_state._language = 1;
|
||||||
} else if ((verb == ACTION_WALK) && (obj1._id == MEETUP_EXIT)) {
|
} else if ((verb == ACTION_WALK) && (obj1._id == MEETUP_EXIT)) {
|
||||||
if (!((_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) &&
|
if (!((_gm->_rooms[AIRLOCK]->getObject(4)->hasProperty(WORN)) &&
|
||||||
(_gm->_rooms[AIRLOCK]->getObject(5)->hasProperty(WORN)) &&
|
(_gm->_rooms[AIRLOCK]->getObject(5)->hasProperty(WORN)) &&
|
||||||
|
@ -1590,12 +1591,12 @@ bool ArsanoRoger::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
_vm->_menuBrightness = 0;
|
_vm->_menuBrightness = 0;
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
_gm->_state.timeStarting -= 125000; /* 2 Stunden */
|
_gm->_state._timeStarting -= 7200000; // 2 hours
|
||||||
_gm->_state.timeAlarmSystem -= 125000;
|
_gm->_state._timeAlarmSystem -= 7200000;
|
||||||
_gm->_state.eventTime = _vm->getDOSTicks() + 4000;
|
_gm->_state._eventTime = _vm->_system->getMillis() + 220000;
|
||||||
// TODO: implement event calling
|
// TODO: implement event calling
|
||||||
// _gm->_state.event = &supernova;
|
// _gm->_state.event = &supernova;
|
||||||
_gm->_state.alarmOn = (_gm->_state.timeAlarmSystem > _vm->getDOSTicks());
|
_gm->_state._alarmOn = (_gm->_state._timeAlarmSystem > _vm->_system->getMillis());
|
||||||
setSectionVisible(11, false);
|
setSectionVisible(11, false);
|
||||||
setSectionVisible(1, false);
|
setSectionVisible(1, false);
|
||||||
_vm->renderRoom(*this);
|
_vm->renderRoom(*this);
|
||||||
|
@ -1790,13 +1791,13 @@ bool ArsanoMeetup2::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_vm->removeMessage();
|
_vm->removeMessage();
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
g_system->fillScreen(kColorBlack);
|
g_system->fillScreen(kColorBlack);
|
||||||
_gm->_state.dream = false;
|
_gm->_state._dream = false;
|
||||||
// TODO:
|
// TODO:
|
||||||
// if (!load_game(-2)) error_temp();
|
// if (!load_game(-2)) error_temp();
|
||||||
_gm->loadTime();
|
_gm->loadTime();
|
||||||
_gm->_newRoom = true;
|
_gm->_newRoom = true;
|
||||||
_gm->_rooms[CAVE]->getObject(1)->_exitRoom = MEETUP3;
|
_gm->_rooms[CAVE]->getObject(1)->_exitRoom = MEETUP3;
|
||||||
_gm->_state.dream = true;
|
_gm->_state._dream = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_gm->changeRoom(MEETUP2);
|
_gm->changeRoom(MEETUP2);
|
||||||
|
@ -1901,9 +1902,9 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(3)); // Discman
|
_gm->_inventory.add(*_gm->_rooms[INTRO]->getObject(3)); // Discman
|
||||||
_gm->changeRoom(CELL);
|
_gm->changeRoom(CELL);
|
||||||
_gm->_newRoom = true;
|
_gm->_newRoom = true;
|
||||||
_gm->_state.benOverlay = 2;
|
_gm->_state._benOverlay = 2;
|
||||||
_gm->_newOverlay = true;
|
_gm->_newOverlay = true;
|
||||||
_gm->_state.dream = true;
|
_gm->_state._dream = true;
|
||||||
} else
|
} else
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -1911,76 +1912,76 @@ bool ArsanoMeetup3::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AxacussCell::onEntrance() {
|
void AxacussCell::onEntrance() {
|
||||||
if (_gm->_state.dream) {
|
if (_gm->_state._dream) {
|
||||||
_vm->renderMessage("Du wachst auf und findest dich in|einem geschlossenen Raum wieder.");
|
_vm->renderMessage("Du wachst auf und findest dich in|einem geschlossenen Raum wieder.");
|
||||||
_gm->_state.timeStarting = _gm->_state.time - 500000;
|
_gm->_state._timeStarting = _gm->_state._time - 500000;
|
||||||
_gm->_state.timeAlarmSystem = _gm->_state.timeAlarm + _gm->_state.timeStarting;
|
_gm->_state._timeAlarmSystem = _gm->_state._timeAlarm + _gm->_state._timeStarting;
|
||||||
_gm->_state.alarmOn = (_gm->_state.timeAlarmSystem > _gm->_state.time);
|
_gm->_state._alarmOn = (_gm->_state._timeAlarmSystem > _gm->_state._time);
|
||||||
_gm->_state.powerOff = false;
|
_gm->_state._powerOff = false;
|
||||||
_gm->_state.dream = false;
|
_gm->_state._dream = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AxacussCell::animation() {
|
void AxacussCell::animation() {
|
||||||
++_gm->_state.timeRobot;
|
++_gm->_state._timeRobot;
|
||||||
|
|
||||||
if (_gm->_state.timeRobot == 299) {
|
if (_gm->_state._timeRobot == 299) {
|
||||||
_gm->drawImage(_gm->invertSection(31));
|
_gm->drawImage(_gm->invertSection(31));
|
||||||
_gm->drawImage(28);
|
_gm->drawImage(28);
|
||||||
getObject(0)->_click = 255;
|
getObject(0)->_click = 255;
|
||||||
getObject(1)->setProperty(EXIT | OPENABLE | OPENED | CLOSED);
|
getObject(1)->setProperty(EXIT | OPENABLE | OPENED | CLOSED);
|
||||||
} else if ((_gm->_state.timeRobot >= 301) && (_gm->_state.timeRobot <= 320)) {
|
} else if ((_gm->_state._timeRobot >= 301) && (_gm->_state._timeRobot <= 320)) {
|
||||||
_gm->drawImage(_gm->invertSection(329 - _gm->_state.timeRobot));
|
_gm->drawImage(_gm->invertSection(329 - _gm->_state._timeRobot));
|
||||||
_gm->drawImage(328 - _gm->_state.timeRobot);
|
_gm->drawImage(328 - _gm->_state._timeRobot);
|
||||||
} else if (_gm->_state.timeRobot == 321) {
|
} else if (_gm->_state._timeRobot == 321) {
|
||||||
_gm->drawImage(31);
|
_gm->drawImage(31);
|
||||||
setSectionVisible(8, false);
|
setSectionVisible(8, false);
|
||||||
getObject(0)->_click = 1;
|
getObject(0)->_click = 1;
|
||||||
getObject(1)->setProperty(EXIT | OPENABLE | CLOSED);
|
getObject(1)->setProperty(EXIT | OPENABLE | CLOSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_gm->_state.timeRobot == 599) {
|
if (_gm->_state._timeRobot == 599) {
|
||||||
_gm->drawImage(_gm->invertSection(31));
|
_gm->drawImage(_gm->invertSection(31));
|
||||||
_gm->drawImage(8);
|
_gm->drawImage(8);
|
||||||
getObject(0)->_click = 255;
|
getObject(0)->_click = 255;
|
||||||
getObject(1)->setProperty(EXIT | OPENABLE | OPENED | CLOSED);
|
getObject(1)->setProperty(EXIT | OPENABLE | OPENED | CLOSED);
|
||||||
} else if ((_gm->_state.timeRobot >= 601) && (_gm->_state.timeRobot <= 620)) {
|
} else if ((_gm->_state._timeRobot >= 601) && (_gm->_state._timeRobot <= 620)) {
|
||||||
_gm->drawImage(_gm->_state.timeRobot - 593 + 128);
|
_gm->drawImage(_gm->_state._timeRobot - 593 + 128);
|
||||||
_gm->drawImage(_gm->_state.timeRobot - 592);
|
_gm->drawImage(_gm->_state._timeRobot - 592);
|
||||||
} else if (_gm->_state.timeRobot == 621) {
|
} else if (_gm->_state._timeRobot == 621) {
|
||||||
_gm->drawImage(31);
|
_gm->drawImage(31);
|
||||||
setSectionVisible(28, false);
|
setSectionVisible(28, false);
|
||||||
getObject(0)->_click = 1;
|
getObject(0)->_click = 1;
|
||||||
getObject(1)->setProperty(EXIT | OPENABLE | CLOSED);
|
getObject(1)->setProperty(EXIT | OPENABLE | CLOSED);
|
||||||
} else if (_gm->_state.timeRobot == 700) {
|
} else if (_gm->_state._timeRobot == 700) {
|
||||||
_gm->_state.timeRobot = 0;
|
_gm->_state._timeRobot = 0;
|
||||||
} else if (_gm->_state.timeRobot == 10002) {
|
} else if (_gm->_state._timeRobot == 10002) {
|
||||||
_gm->drawImage(18 + 128);
|
_gm->drawImage(18 + 128);
|
||||||
_gm->drawImage(29);
|
_gm->drawImage(29);
|
||||||
_gm->drawImage(7);
|
_gm->drawImage(7);
|
||||||
getObject(2)->_click = 13;
|
getObject(2)->_click = 13;
|
||||||
} else if (_gm->_state.timeRobot == 10003) {
|
} else if (_gm->_state._timeRobot == 10003) {
|
||||||
setSectionVisible(29, false);
|
setSectionVisible(29, false);
|
||||||
_gm->drawImage(30);
|
_gm->drawImage(30);
|
||||||
getObject(8)->_click = 12;
|
getObject(8)->_click = 12;
|
||||||
getObject(7)->_click = 14;
|
getObject(7)->_click = 14;
|
||||||
_vm->playSound(kAudioUndef4);
|
_vm->playSound(kAudioUndef4);
|
||||||
} else if (_gm->_state.timeRobot == 10010) {
|
} else if (_gm->_state._timeRobot == 10010) {
|
||||||
--_gm->_state.timeRobot;
|
--_gm->_state._timeRobot;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_gm->_state.timeRobot == 312) {
|
if (_gm->_state._timeRobot == 312) {
|
||||||
_gm->drawImage(7);
|
_gm->drawImage(7);
|
||||||
getObject(2)->_click = 13;
|
getObject(2)->_click = 13;
|
||||||
} else if (_gm->_state.timeRobot == 610) {
|
} else if (_gm->_state._timeRobot == 610) {
|
||||||
setSectionVisible(7, false);
|
setSectionVisible(7, false);
|
||||||
getObject(2)->_click = 255;
|
getObject(2)->_click = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((isSectionVisible(6)) &&
|
if ((isSectionVisible(6)) &&
|
||||||
((_gm->_state.timeRobot == 310) || (_gm->_state.timeRobot == 610))) {
|
((_gm->_state._timeRobot == 310) || (_gm->_state._timeRobot == 610))) {
|
||||||
_vm->playSound(kAudioUndef3);
|
_vm->playSound(kAudioUndef3);
|
||||||
_gm->_state.timeRobot = 10000;
|
_gm->_state._timeRobot = 10000;
|
||||||
}
|
}
|
||||||
|
|
||||||
_gm->setAnimationTimer(3);
|
_gm->setAnimationTimer(3);
|
||||||
|
@ -2169,12 +2170,12 @@ bestechen:
|
||||||
if (_gm->dialog(2, nullptr, nullptr, 0) == 0) { // rows, dialog2
|
if (_gm->dialog(2, nullptr, nullptr, 0) == 0) { // rows, dialog2
|
||||||
_gm->reply("Nein!", 1, 1 + 128);
|
_gm->reply("Nein!", 1, 1 + 128);
|
||||||
setSectionVisible(kMaxSection - 2, false);
|
setSectionVisible(kMaxSection - 2, false);
|
||||||
if (_gm->_state.money == 0) {
|
if (_gm->_state._money == 0) {
|
||||||
_gm->removeSentence(2, 2);
|
_gm->removeSentence(2, 2);
|
||||||
_gm->removeSentence(3, 2);
|
_gm->removeSentence(3, 2);
|
||||||
} else {
|
} else {
|
||||||
_dialog3[2] += Common::String::format("%d Xa.", _gm->_state.money - 200);
|
_dialog3[2] += Common::String::format("%d Xa.", _gm->_state._money - 200);
|
||||||
_dialog3[3] += Common::String::format("%d Xa.", _gm->_state.money);
|
_dialog3[3] += Common::String::format("%d Xa.", _gm->_state._money);
|
||||||
}
|
}
|
||||||
switch (_gm->dialog(4, nullptr, nullptr, 2)) { // rows, dialog3
|
switch (_gm->dialog(4, nullptr, nullptr, 2)) { // rows, dialog3
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -2188,13 +2189,13 @@ bestechen:
|
||||||
_gm->shot(3, _gm->invertSection(3));
|
_gm->shot(3, _gm->invertSection(3));
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (_gm->_state.money >= 900) {
|
if (_gm->_state._money >= 900) {
|
||||||
sum = _gm->_state.money;
|
sum = _gm->_state._money;
|
||||||
goto genug;
|
goto genug;
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
if (_gm->_state.money > 1100) {
|
if (_gm->_state._money > 1100) {
|
||||||
sum = _gm->_state.money - 200;
|
sum = _gm->_state._money - 200;
|
||||||
goto genug;
|
goto genug;
|
||||||
}
|
}
|
||||||
_gm->reply("Das máte schon ein biáchen mehr sein.", 1, 1 + 128);
|
_gm->reply("Das máte schon ein biáchen mehr sein.", 1, 1 + 128);
|
||||||
|
@ -2316,12 +2317,12 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->drawImage(_gm->invertSection(obj1._id - DOOR1 + 1));
|
_gm->drawImage(_gm->invertSection(obj1._id - DOOR1 + 1));
|
||||||
_vm->playSound(kAudioDoorClose);
|
_vm->playSound(kAudioDoorClose);
|
||||||
if (obj1.hasProperty(OCCUPIED)) {
|
if (obj1.hasProperty(OCCUPIED)) {
|
||||||
_gm->_state.destination = 255;
|
_gm->_state._destination = 255;
|
||||||
obj1.setProperty(EXIT | OPENABLE | CLOSED | CAUGHT);
|
obj1.setProperty(EXIT | OPENABLE | CLOSED | CAUGHT);
|
||||||
if (!_gm->_rooms[OFFICE_L1 + obj1._id - DOOR1]->isSectionVisible(4))
|
if (!_gm->_rooms[OFFICE_L1 + obj1._id - DOOR1]->isSectionVisible(4))
|
||||||
_gm->search(180);
|
_gm->search(180);
|
||||||
else
|
else
|
||||||
_gm->_state.eventTime = 0xffffffff;
|
_gm->_state._eventTime = 0xffffffff;
|
||||||
} else
|
} else
|
||||||
obj1.setProperty(EXIT | OPENABLE | CLOSED);
|
obj1.setProperty(EXIT | OPENABLE | CLOSED);
|
||||||
} else if (((verb == ACTION_WALK) || ((verb == ACTION_OPEN) && !obj1.hasProperty(OPENED))) &&
|
} else if (((verb == ACTION_WALK) || ((verb == ACTION_OPEN) && !obj1.hasProperty(OPENED))) &&
|
||||||
|
@ -2374,7 +2375,7 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_LOOK) &&
|
} else if ((verb == ACTION_LOOK) &&
|
||||||
(obj1._id >= DOOR1) && (obj1._id <= DOOR4)) {
|
(obj1._id >= DOOR1) && (obj1._id <= DOOR4)) {
|
||||||
_gm->_state.nameSeen |= 1 << (obj1._id - DOOR1);
|
_gm->_state._nameSeen |= 1 << (obj1._id - DOOR1);
|
||||||
return false;
|
return false;
|
||||||
} else if ((verb == ACTION_WALK) &&
|
} else if ((verb == ACTION_WALK) &&
|
||||||
((obj1._id == PILLAR1) || (obj1._id == PILLAR2))) {
|
((obj1._id == PILLAR1) || (obj1._id == PILLAR2))) {
|
||||||
|
@ -2601,9 +2602,9 @@ bool AxacussElevator::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
getObject(3)->resetProperty(EXIT);
|
getObject(3)->resetProperty(EXIT);
|
||||||
getObject(3)->_click = 2;
|
getObject(3)->_click = 2;
|
||||||
_gm->drawImage(_gm->invertSection(1));
|
_gm->drawImage(_gm->invertSection(1));
|
||||||
if (!(_gm->_state.greatFlag & 0x4000)) {
|
if (!(_gm->_state._greatFlag & 0x4000)) {
|
||||||
_vm->playSound(kAudioGreat);
|
_vm->playSound(kAudioGreat);
|
||||||
_gm->_state.greatFlag |= 0x4000;
|
_gm->_state._greatFlag |= 0x4000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_PRESS) && (obj1._id == BUTTON2)) {
|
} else if ((verb == ACTION_PRESS) && (obj1._id == BUTTON2)) {
|
||||||
|
@ -2680,7 +2681,7 @@ bool AxacussSign::interact(Action verb, Object &obj1, Object &obj2) {
|
||||||
_gm->takeMoney(-180);
|
_gm->takeMoney(-180);
|
||||||
_gm->drawImage(2);
|
_gm->drawImage(2);
|
||||||
setSectionVisible(1, false);
|
setSectionVisible(1, false);
|
||||||
_gm->_state.eventTime = _vm->getDOSTicks() + 600;
|
_gm->_state._eventTime = _vm->_system->getMillis() + ticksToMsec(600);
|
||||||
// *event = &taxi;
|
// *event = &taxi;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,33 +221,35 @@ void GameManager::initState() {
|
||||||
_timer1 = 0;
|
_timer1 = 0;
|
||||||
_animationTimer = 0;
|
_animationTimer = 0;
|
||||||
|
|
||||||
_state.time = 2840 * kMsecPerTick;
|
_state._time = ticksToMsec(2840);
|
||||||
_state.timeSleep = 0;
|
_state._timeSleep = 0;
|
||||||
_state.timeStarting = 50400000; // 2 pm -- Originally: systime() - 917650
|
// NOTE: systime() calls int 1A, means it gets number of ticks since midnight.
|
||||||
_state.timeAlarm = 25200000; // 7 am
|
// So, it doesn't matter if we overflow by substraction?
|
||||||
_state.timeAlarmSystem = _state.timeAlarm + _state.timeStarting;
|
_state._timeStarting = _vm->_system->getMillis() - ticksToMsec(917650); // 2 pm
|
||||||
_state.eventTime = 0xffffffff;
|
_state._timeAlarm = ticksToMsec(458808); // 7 am
|
||||||
_state.shipEnergy = 2135;
|
_state._timeAlarmSystem = _state._timeAlarm + _state._timeStarting;
|
||||||
_state.landingModuleEnergy = 923;
|
_state._eventTime = 0xffffffff;
|
||||||
_state.greatFlag = 0;
|
_state._shipEnergy = 2135;
|
||||||
_state.timeRobot = 0;
|
_state._landingModuleEnergy = 923;
|
||||||
_state.money = 0;
|
_state._greatFlag = 0;
|
||||||
_state.coins = 0;
|
_state._timeRobot = 0;
|
||||||
_state.shoes = 0;
|
_state._money = 0;
|
||||||
_state.nameSeen = 0;
|
_state._coins = 0;
|
||||||
_state.destination = 255;
|
_state._shoes = 0;
|
||||||
_state.benOverlay = 0;
|
_state._nameSeen = 0;
|
||||||
_state.language = 0;
|
_state._destination = 255;
|
||||||
_state.corridorSearch = false;
|
_state._benOverlay = 0;
|
||||||
_state.alarmOn = false;
|
_state._language = 0;
|
||||||
_state.terminalStripConnected = false;
|
_state._corridorSearch = false;
|
||||||
_state.terminalStripWire = false;
|
_state._alarmOn = false;
|
||||||
_state.cableConnected = false;
|
_state._terminalStripConnected = false;
|
||||||
_state.powerOff = false;
|
_state._terminalStripWire = false;
|
||||||
_state.cockpitSeen = false;
|
_state._cableConnected = false;
|
||||||
_state.airlockSeen = false;
|
_state._powerOff = false;
|
||||||
_state.holdSeen = false;
|
_state._cockpitSeen = false;
|
||||||
_state.dream = false;
|
_state._airlockSeen = false;
|
||||||
|
_state._holdSeen = false;
|
||||||
|
_state._dream = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::initRooms() {
|
void GameManager::initRooms() {
|
||||||
|
@ -518,7 +520,7 @@ void GameManager::drawImage(int section) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::corridorOnEntrance() {
|
void GameManager::corridorOnEntrance() {
|
||||||
if (_state.corridorSearch)
|
if (_state._corridorSearch)
|
||||||
busted(0);
|
busted(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -534,11 +536,11 @@ void GameManager::startSearch() {
|
||||||
if ((_currentRoom >= _rooms[CORRIDOR1]) && (_currentRoom <= _rooms[BCORRIDOR]))
|
if ((_currentRoom >= _rooms[CORRIDOR1]) && (_currentRoom <= _rooms[BCORRIDOR]))
|
||||||
busted(0);
|
busted(0);
|
||||||
|
|
||||||
_state.corridorSearch = true;
|
_state._corridorSearch = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::search(int time) {
|
void GameManager::search(int time) {
|
||||||
_state.eventTime = _vm->getDOSTicks() + time;
|
_state._eventTime = _vm->_system->getMillis() + time;
|
||||||
// *event = &search_start;
|
// *event = &search_start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -631,12 +633,12 @@ void GameManager::taxi() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::outro() {
|
void GameManager::outro() {
|
||||||
_state.benOverlay = 3;
|
_state._benOverlay = 3;
|
||||||
// load_overlay();
|
// load_overlay();
|
||||||
// title = 2;
|
// title = 2;
|
||||||
_vm->playSoundMod(49);
|
_vm->playSoundMod(49);
|
||||||
// title = 0;
|
// title = 0;
|
||||||
_state.benOverlay = 0;
|
_state._benOverlay = 0;
|
||||||
_vm->paletteFadeOut();
|
_vm->paletteFadeOut();
|
||||||
_vm->renderImage(55, 0);
|
_vm->renderImage(55, 0);
|
||||||
_vm->paletteFadeIn();
|
_vm->paletteFadeIn();
|
||||||
|
@ -647,11 +649,11 @@ void GameManager::outro() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::great(uint number) {
|
void GameManager::great(uint number) {
|
||||||
if (number && (_state.greatFlag & (1 << number)))
|
if (number && (_state._greatFlag & (1 << number)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_vm->playSound(kAudioUndef7);
|
_vm->playSound(kAudioUndef7);
|
||||||
_state.greatFlag |= 1 << number;
|
_state._greatFlag |= 1 << number;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GameManager::airless() {
|
bool GameManager::airless() {
|
||||||
|
@ -689,18 +691,18 @@ int GameManager::dialog(int num, byte *rowLength[], const char **text[6], int nu
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::turnOff() {
|
void GameManager::turnOff() {
|
||||||
if (_state.powerOff)
|
if (_state._powerOff)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_state.powerOff = true;
|
_state._powerOff = true;
|
||||||
roomBrightness();
|
roomBrightness();
|
||||||
|
|
||||||
}
|
}
|
||||||
void GameManager::turnOn() {
|
void GameManager::turnOn() {
|
||||||
if (!_state.powerOff)
|
if (!_state._powerOff)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_state.powerOff = false;
|
_state._powerOff = false;
|
||||||
_vm->paletteBrightness();
|
_vm->paletteBrightness();
|
||||||
Room *room = _rooms[SLEEP];
|
Room *room = _rooms[SLEEP];
|
||||||
room->setSectionVisible(1, false);
|
room->setSectionVisible(1, false);
|
||||||
|
@ -814,15 +816,82 @@ void GameManager::mouseWait(int delay) {
|
||||||
// STUB
|
// STUB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void dimColor(SupernovaEngine *vm, int color) {
|
||||||
|
color -= 16;
|
||||||
|
color *= 3;
|
||||||
|
// TODO: alters palette image data permanently (get system palette instead?)
|
||||||
|
vm->_currentImage->_palette[color + 0] = vm->_currentImage->_palette[color + 0] * 3 / 5;
|
||||||
|
vm->_currentImage->_palette[color + 1] = vm->_currentImage->_palette[color + 1] * 3 / 5;
|
||||||
|
vm->_currentImage->_palette[color + 2] = vm->_currentImage->_palette[color + 2] * 3 / 5;
|
||||||
|
}
|
||||||
|
|
||||||
void GameManager::roomBrightness() {
|
void GameManager::roomBrightness() {
|
||||||
// STUB
|
const byte specialColors[2][18] = {
|
||||||
|
{0x42, 0x49, 0x55, 0x68, 0x50, 0x5d, 0x3c, 1},
|
||||||
|
{0x85, 0x91, 0x99, 0x92, 0x9b, 0x96, 0x9a, 0xa6,
|
||||||
|
0xb0, 0xb4, 0xb5, 0xc2, 0xd1, 0xbe, 0xb6, 0xa8,
|
||||||
|
0x6b, 1}
|
||||||
|
};
|
||||||
|
char sf;
|
||||||
|
int i;
|
||||||
|
if ((_currentRoom == _rooms[HOLD]) && (_state._benOverlay == 1)) {
|
||||||
|
if (_state._powerOff) {
|
||||||
|
for (int f = 16; f < 255; f++) {
|
||||||
|
i = 0;
|
||||||
|
do {
|
||||||
|
sf = specialColors[0][i] - 1;
|
||||||
|
i++;
|
||||||
|
} while (sf && (sf != f));
|
||||||
|
if (!sf)
|
||||||
|
dimColor(_vm, f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!(_state._landingModuleEnergy && _rooms[LANDINGMODULE]->isSectionVisible(7))) {
|
||||||
|
i = 0;
|
||||||
|
while (sf = specialColors[0][i] - 1) {
|
||||||
|
dimColor(_vm, sf);
|
||||||
|
i++;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else if ((_currentRoom == _rooms[LANDINGMODULE]) && (_state._benOverlay == 1)) {
|
||||||
|
if (!(_state._landingModuleEnergy && _rooms[LANDINGMODULE]->isSectionVisible(7))) {
|
||||||
|
for (int f = 16; f < 255; f++) {
|
||||||
|
i=0;
|
||||||
|
do {
|
||||||
|
sf = specialColors[1][i] - 1;
|
||||||
|
i++;
|
||||||
|
} while (sf && (sf != f));
|
||||||
|
if (!sf)
|
||||||
|
dimColor(_vm, f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (_state._powerOff) {
|
||||||
|
i=0;
|
||||||
|
while (sf = specialColors[1][i] - 1) {
|
||||||
|
dimColor(_vm, sf);
|
||||||
|
i++;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else if ((_currentRoom == _rooms[CAVE]) && (_state._benOverlay == 1)) {
|
||||||
|
_vm->_brightness = 0;
|
||||||
|
} else if ((_currentRoom != _rooms[OUTSIDE]) &&
|
||||||
|
(_currentRoom < _rooms[ROCKS]) && (_state._benOverlay == 1)) {
|
||||||
|
if (_state._powerOff)
|
||||||
|
for (int f = 16; f < 255; f++)
|
||||||
|
dimColor(_vm, f);
|
||||||
|
} else if ((_currentRoom == _rooms[GUARD3]) && (_state._benOverlay == 2)) {
|
||||||
|
if (_state._powerOff)
|
||||||
|
_vm->_brightness = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
_vm->paletteBrightness();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::loadTime() {
|
void GameManager::loadTime() {
|
||||||
_state.timeStarting += _state.time;
|
_state._timeStarting += _state._time;
|
||||||
if (_state.eventTime != 1)
|
if (_state._eventTime != 1)
|
||||||
_state.eventTime += _state.time;
|
_state._eventTime += _state._time;
|
||||||
_state.timeAlarmSystem = _state.timeAlarm + _state.timeStarting;
|
_state._timeAlarmSystem = _state._timeAlarm + _state._timeStarting;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::saveTime() {
|
void GameManager::saveTime() {
|
||||||
|
@ -843,8 +912,7 @@ void GameManager::errorTemp() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::wait2(int ticks) {
|
void GameManager::wait2(int ticks) {
|
||||||
// 1 tick = 1/18.2s
|
uint end = g_system->getMillis() + ticksToMsec(ticks);
|
||||||
uint end = g_system->getMillis() + (55 * ticks);
|
|
||||||
while (g_system->getMillis() < end) {
|
while (g_system->getMillis() < end) {
|
||||||
_vm->updateEvents();
|
_vm->updateEvents();
|
||||||
g_system->updateScreen();
|
g_system->updateScreen();
|
||||||
|
@ -853,12 +921,12 @@ void GameManager::wait2(int ticks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::setAnimationTimer(int ticks) {
|
void GameManager::setAnimationTimer(int ticks) {
|
||||||
_animationTimer = g_system->getMillis() + (55 * ticks);
|
_animationTimer = g_system->getMillis() + ticksToMsec(ticks);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::handleTime() {
|
void GameManager::handleTime() {
|
||||||
_state.time = g_system->getMillis();
|
_state._time = g_system->getMillis();
|
||||||
if (_animationTimer <= _state.time)
|
if (_animationTimer <= _state._time)
|
||||||
_animationTimer = 0;
|
_animationTimer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -998,7 +1066,7 @@ void GameManager::shot(int a, int b) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameManager::takeMoney(int amount) {
|
void GameManager::takeMoney(int amount) {
|
||||||
_state.money += amount;
|
_state._money += amount;
|
||||||
if (amount > 0)
|
if (amount > 0)
|
||||||
great(0);
|
great(0);
|
||||||
// TODO: kmaxobject - 1?
|
// TODO: kmaxobject - 1?
|
||||||
|
@ -1007,7 +1075,7 @@ void GameManager::takeMoney(int amount) {
|
||||||
// strcpy(raumz[OFFICE_R1]->object[5].name,ltoa((long)_state.money));
|
// strcpy(raumz[OFFICE_R1]->object[5].name,ltoa((long)_state.money));
|
||||||
// strcat(raumz[OFFICE_R1]->object[5].name," Xa");
|
// strcat(raumz[OFFICE_R1]->object[5].name," Xa");
|
||||||
|
|
||||||
if (_state.money) {
|
if (_state._money) {
|
||||||
if (!_rooms[OFFICE_R1]->getObject(5)->hasProperty(CARRIED))
|
if (!_rooms[OFFICE_R1]->getObject(5)->hasProperty(CARRIED))
|
||||||
takeObject(*_rooms[OFFICE_R1]->getObject(5));
|
takeObject(*_rooms[OFFICE_R1]->getObject(5));
|
||||||
} else {
|
} else {
|
||||||
|
@ -1134,13 +1202,13 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
_vm->renderMessage("Du iát die Tablette und merkst,|daá sich irgendetwas verndert hat.");
|
_vm->renderMessage("Du iát die Tablette und merkst,|daá sich irgendetwas verndert hat.");
|
||||||
great(0);
|
great(0);
|
||||||
_inventory.remove(obj1);
|
_inventory.remove(obj1);
|
||||||
_state.language = 2;
|
_state._language = 2;
|
||||||
takeObject(*_rooms[ENTRANCE]->getObject(17));
|
takeObject(*_rooms[ENTRANCE]->getObject(17));
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_LOOK) && (obj1._id == PILL_HULL) &&
|
} else if ((verb == ACTION_LOOK) && (obj1._id == PILL_HULL) &&
|
||||||
(_state.language == 2)) {
|
(_state._language == 2)) {
|
||||||
_vm->renderMessage("Komisch! Auf einmal kannst du die Schrift lesen!|Darauf steht:\"Wenn Sie diese Schrift jetzt|lesen knnen, hat die Tablette gewirkt.\"");
|
_vm->renderMessage("Komisch! Auf einmal kannst du die Schrift lesen!|Darauf steht:\"Wenn Sie diese Schrift jetzt|lesen knnen, hat die Tablette gewirkt.\"");
|
||||||
_state.language = 1;
|
_state._language = 1;
|
||||||
} else if ((verb == ACTION_OPEN) && (obj1._id == WALLET)) {
|
} else if ((verb == ACTION_OPEN) && (obj1._id == WALLET)) {
|
||||||
if (!_rooms[ROGER]->getObject(3)->hasProperty(CARRIED)) {
|
if (!_rooms[ROGER]->getObject(3)->hasProperty(CARRIED)) {
|
||||||
_vm->renderMessage("Das muát du erst nehmen.");
|
_vm->renderMessage("Das muát du erst nehmen.");
|
||||||
|
@ -1175,8 +1243,8 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
"Es ist eine Uhr mit extra|lautem Wecker. "
|
"Es ist eine Uhr mit extra|lautem Wecker. "
|
||||||
"Sie hat einen|Knopf zum Verstellen der Alarmzeit.|"
|
"Sie hat einen|Knopf zum Verstellen der Alarmzeit.|"
|
||||||
"Uhrzeit: %s Alarmzeit: %s",
|
"Uhrzeit: %s Alarmzeit: %s",
|
||||||
timeToString(_state.time + _state.timeStarting).c_str(),
|
timeToString(_state._time + _state._timeStarting).c_str(),
|
||||||
timeToString(_state.timeAlarm).c_str()).c_str());
|
timeToString(_state._timeAlarm).c_str()).c_str());
|
||||||
} else if ((verb == ACTION_PRESS) && (obj1._id == WATCH)) {
|
} else if ((verb == ACTION_PRESS) && (obj1._id == WATCH)) {
|
||||||
char *min;
|
char *min;
|
||||||
int hours, minutes;
|
int hours, minutes;
|
||||||
|
@ -1185,6 +1253,7 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
_vm->saveScreen(88, 87, 144, 24);
|
_vm->saveScreen(88, 87, 144, 24);
|
||||||
_vm->renderBox(88, 87, 144, 24, kColorWhite35);
|
_vm->renderBox(88, 87, 144, 24, kColorWhite35);
|
||||||
_vm->renderText("Neue Alarmzeit (hh:mm) :", 91, 90, kColorWhite99);
|
_vm->renderText("Neue Alarmzeit (hh:mm) :", 91, 90, kColorWhite99);
|
||||||
|
// TODO: Adjust for msec time instead of ticks
|
||||||
do {
|
do {
|
||||||
_vm->renderBox(91, 99, 138, 9, kColorDarkBlue);
|
_vm->renderBox(91, 99, 138, 9, kColorDarkBlue);
|
||||||
do {
|
do {
|
||||||
|
@ -1206,19 +1275,22 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint i = 0; i < strlen(t); i++)
|
for (uint i = 0; i < strlen(t); i++)
|
||||||
if ((t[i] < '0') || (t[i] > '9')) f = true;
|
if ((t[i] < '0') || (t[i] > '9'))
|
||||||
|
f = true;
|
||||||
for (uint i = 0; i < strlen(min); i++)
|
for (uint i = 0; i < strlen(min); i++)
|
||||||
if ((min[i] < '0') || (min[i] > '9')) f = true;
|
if ((min[i] < '0') || (min[i] > '9'))
|
||||||
|
f = true;
|
||||||
hours = atoi(t);
|
hours = atoi(t);
|
||||||
minutes = atoi(min);
|
minutes = atoi(min);
|
||||||
if ((hours > 23) || (minutes > 59)) f = true;
|
if ((hours > 23) || (minutes > 59))
|
||||||
|
f = true;
|
||||||
animationOn();
|
animationOn();
|
||||||
} while (f && (_key.keycode != Common::KEYCODE_ESCAPE));
|
} while (f && (_key.keycode != Common::KEYCODE_ESCAPE));
|
||||||
_vm->restoreScreen();
|
_vm->restoreScreen();
|
||||||
if (_key.keycode != Common::KEYCODE_ESCAPE) {
|
if (_key.keycode != Common::KEYCODE_ESCAPE) {
|
||||||
_state.timeAlarm = (hours * 60 + minutes) * 1092.3888 + 8;
|
_state._timeAlarm = (hours * 60 + minutes) * 60 + 8;
|
||||||
_state.timeAlarmSystem = _state.timeAlarm + _state.timeStarting;
|
_state._timeAlarmSystem = _state._timeAlarm + _state._timeStarting;
|
||||||
_state.alarmOn = (_state.timeAlarmSystem > _vm->getDOSTicks());
|
_state._alarmOn = (_state._timeAlarmSystem > _vm->_system->getMillis());
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, WIRE)) {
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, WIRE)) {
|
||||||
r = _rooms[CABIN_L3];
|
r = _rooms[CABIN_L3];
|
||||||
|
@ -1231,8 +1303,8 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
r->getObject(8)->_name = "Leitung mit Lsterklemme";
|
r->getObject(8)->_name = "Leitung mit Lsterklemme";
|
||||||
r = _rooms[HOLD];
|
r = _rooms[HOLD];
|
||||||
_inventory.remove(*r->getObject(2));
|
_inventory.remove(*r->getObject(2));
|
||||||
_state.terminalStripConnected = true;
|
_state._terminalStripConnected = true;
|
||||||
_state.terminalStripWire = true;
|
_state._terminalStripWire = true;
|
||||||
_vm->renderMessage("Ok.");
|
_vm->renderMessage("Ok.");
|
||||||
}
|
}
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, SPOOL)) {
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, SPOOL)) {
|
||||||
|
@ -1241,11 +1313,11 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
r->getObject(9)->_name = "Kabelrolle mit Lsterklemme";
|
r->getObject(9)->_name = "Kabelrolle mit Lsterklemme";
|
||||||
r = _rooms[HOLD];
|
r = _rooms[HOLD];
|
||||||
_inventory.remove(*r->getObject(2));
|
_inventory.remove(*r->getObject(2));
|
||||||
_state.terminalStripConnected = true;
|
_state._terminalStripConnected = true;
|
||||||
_vm->renderMessage("Ok.");
|
_vm->renderMessage("Ok.");
|
||||||
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, WIRE, SPOOL)) {
|
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, WIRE, SPOOL)) {
|
||||||
r = _rooms[CABIN_L3];
|
r = _rooms[CABIN_L3];
|
||||||
if (!_state.terminalStripConnected) {
|
if (!_state._terminalStripConnected) {
|
||||||
if (r->isSectionVisible(26))
|
if (r->isSectionVisible(26))
|
||||||
_vm->renderMessage("Womit denn?");
|
_vm->renderMessage("Womit denn?");
|
||||||
else
|
else
|
||||||
|
@ -1260,7 +1332,7 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
|
||||||
r->getObject(8)->_name = "langes Kabel mit Stecker";
|
r->getObject(8)->_name = "langes Kabel mit Stecker";
|
||||||
r = _rooms[CABIN_L2];
|
r = _rooms[CABIN_L2];
|
||||||
_inventory.remove(*r->getObject(9));
|
_inventory.remove(*r->getObject(9));
|
||||||
_state.cableConnected = true;
|
_state._cableConnected = true;
|
||||||
_vm->renderMessage("Ok.");
|
_vm->renderMessage("Ok.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,33 +29,33 @@
|
||||||
namespace Supernova {
|
namespace Supernova {
|
||||||
|
|
||||||
struct GameState {
|
struct GameState {
|
||||||
int32 time;
|
int32 _time;
|
||||||
int32 timeSleep;
|
int32 _timeSleep;
|
||||||
int32 timeStarting;
|
int32 _timeStarting;
|
||||||
int32 timeAlarm;
|
int32 _timeAlarm;
|
||||||
int32 timeAlarmSystem;
|
int32 _timeAlarmSystem;
|
||||||
int32 eventTime;
|
int32 _eventTime;
|
||||||
int32 shipEnergy;
|
int32 _shipEnergy;
|
||||||
int32 landingModuleEnergy;
|
int32 _landingModuleEnergy;
|
||||||
uint16 greatFlag;
|
uint16 _greatFlag;
|
||||||
int16 timeRobot;
|
int16 _timeRobot;
|
||||||
int16 money;
|
int16 _money;
|
||||||
byte coins;
|
byte _coins;
|
||||||
byte shoes;
|
byte _shoes;
|
||||||
byte nameSeen;
|
byte _nameSeen;
|
||||||
byte destination;
|
byte _destination;
|
||||||
byte benOverlay;
|
byte _benOverlay;
|
||||||
byte language;
|
byte _language;
|
||||||
bool corridorSearch;
|
bool _corridorSearch;
|
||||||
bool alarmOn;
|
bool _alarmOn;
|
||||||
bool terminalStripConnected;
|
bool _terminalStripConnected;
|
||||||
bool terminalStripWire;
|
bool _terminalStripWire;
|
||||||
bool cableConnected;
|
bool _cableConnected;
|
||||||
bool powerOff;
|
bool _powerOff;
|
||||||
bool cockpitSeen;
|
bool _cockpitSeen;
|
||||||
bool airlockSeen;
|
bool _airlockSeen;
|
||||||
bool holdSeen;
|
bool _holdSeen;
|
||||||
bool dream;
|
bool _dream;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Inventory {
|
class Inventory {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue