SUPERNOVA: Add info, doc, help screens for MS2

This commit is contained in:
Jaromir Wysoglad 2019-06-24 10:40:56 +02:00 committed by Thierry Crozat
parent b1f37566ea
commit ab4af5c614
13 changed files with 76 additions and 37 deletions

View File

@ -64,6 +64,17 @@ const char *gameText[] = {
"Es ist nichts Besonderes daran.", // kStringDefaultDescription "Es ist nichts Besonderes daran.", // kStringDefaultDescription
"|", // kStringDialogSeparator "|", // kStringDialogSeparator
"Gespr\204ch beenden", // kStringConversationEnd "Gespr\204ch beenden", // kStringConversationEnd
"F1 Hilfe", // kStringHelpOverview1
"F2 Anleitung", // kStringHelpOverview2
"F3 Programminformationen", //kStringHelpOverview3
"F4 Textgeschwindigkeit", //kStringHelpOverview4
"F5 Laden / Speichern", // kStringHelpOverview5
"ESC Vorspann \201berspringen", // kStringHelpOverview6
"Alt-X Programm abbrechen", // kStringHelpOverview7
"Textgeschwindigkeit:", // kStringTextSpeed
"Spiel abbrechen?", // kStringLeaveGame
"Ja", // kStringYes
"Nein", // kStringNo
// 20 // 20
"V2.02", // kStringTitleVersion "V2.02", // kStringTitleVersion
"Teil 1:", // kStringTitle1 "Teil 1:", // kStringTitle1
@ -786,7 +797,6 @@ const char *gameText[] = {
"Und jetzt raus mit Ihnen!", // kStringSupernova7 "Und jetzt raus mit Ihnen!", // kStringSupernova7
"Zehn Minuten sp\204ter ...", // kStringSupernova8 "Zehn Minuten sp\204ter ...", // kStringSupernova8
// 625 // 625
"Textgeschwindigkeit:", // kStringTextSpeed
"Was war das f\201r ein Ger\204usch?", // kStringGuardNoticed1 "Was war das f\201r ein Ger\204usch?", // kStringGuardNoticed1
"Ich werde mal nachsehen.", // kStringGuardNoticed2 "Ich werde mal nachsehen.", // kStringGuardNoticed2
"Guten Tag, hier ist Horst Hummel.", // kStringTelomat1 "Guten Tag, hier ist Horst Hummel.", // kStringTelomat1
@ -816,17 +826,6 @@ const char *gameText[] = {
"Passwort:", // kStringTelomat21 "Passwort:", // kStringTelomat21
"Deine Armbanduhr piepst,|die Alarmzeit ist erreicht.", // kStringAlarm "Deine Armbanduhr piepst,|die Alarmzeit ist erreicht.", // kStringAlarm
// 650 // 650
"Spiel abbrechen?", // kStringLeaveGame
"Ja", // kStringYes
"Nein", // kStringNo
"F1 Hilfe", // kStringHelpOverview1
"F2 Anleitung", // kStringHelpOverview2
// 655
"F3 Programminformationen", //kStringHelpOverview3
"F4 Textgeschwindigkeit", //kStringHelpOverview4
"F5 Laden / Speichern", // kStringHelpOverview5
"ESC Vorspann \201berspringen", // kStringHelpOverview6
"Alt-X Programm abbrechen", // kStringHelpOverview7
// 660 // 660
NULL NULL
}; };

View File

@ -65,17 +65,24 @@ const char *gameText[] = {
"Es ist nichts Besonderes daran.", //There's nothing special about it. "Es ist nichts Besonderes daran.", //There's nothing special about it.
"|", //Dialog separator "|", //Dialog separator
"Gespr\204ch beenden", //End of conversation "Gespr\204ch beenden", //End of conversation
" F1 Hilfe", // kStringHelpOverview1
" F2 Anleitung", // kStringHelpOverview2
" F3 Programminformationen", //kStringHelpOverview3
" F4 Textgeschwindigkeit", //kStringHelpOverview4
" F5 Laden/Speichern", // kStringHelpOverview5
" ESC Vorspann \201berspringen", // kStringHelpOverview6
"Alt X Spiel beenden", // kStringHelpOverview7
"Textgeschwindigkeit:", //Text speed:
"Spiel abbrechen?", //Leave game?
"Ja", //Yes
"Nein", //No
"Laden", //Load "Laden", //Load
"Speichern", //Save "Speichern", //Save
// 25 // 25
"Zur\201ck", //Back "Zur\201ck", //Back
"Neustart", //Restart "Neustart", //Restart
"Schreibfehler", //write error "Schreibfehler", //write error
"Textgeschwindigkeit:", //Text speed:
"Spiel abbrechen?", //Leave game?
// 30 // 30
"Ja", //Yes
"Nein", //No
"Das tr\204gst du doch bei dir.", //You already carry this. "Das tr\204gst du doch bei dir.", //You already carry this.
"Du bist doch schon da.", //You are already there. "Du bist doch schon da.", //You are already there.
"Das ist geschlossen.", //This is closed. "Das ist geschlossen.", //This is closed.

Binary file not shown.

Binary file not shown.

View File

@ -225,15 +225,24 @@ void GameManager::processInput(Common::KeyState &state) {
switch (state.keycode) { switch (state.keycode) {
case Common::KEYCODE_F1: case Common::KEYCODE_F1:
// help // help
_vm->showHelpScreen(); if (_vm->_MSPart == 1)
_vm->showHelpScreen1();
else if (_vm->_MSPart == 2)
_vm->showHelpScreen2();
break; break;
case Common::KEYCODE_F2: case Common::KEYCODE_F2:
// show game manual // show game manual
_vm->showTextReader("msn.doc"); if (_vm->_MSPart == 1)
_vm->showTextReader("msn.doc");
else if (_vm->_MSPart == 2)
_vm->showTextReader("ms2.doc");
break; break;
case Common::KEYCODE_F3: case Common::KEYCODE_F3:
// show game info // show game info
_vm->showTextReader("msn.inf"); if (_vm->_MSPart == 1)
_vm->showTextReader("msn.inf");
else if (_vm->_MSPart == 2)
_vm->showTextReader("ms2.inf");
break; break;
case Common::KEYCODE_F4: case Common::KEYCODE_F4:
_vm->setTextSpeed(); _vm->setTextSpeed();

View File

@ -186,7 +186,8 @@ enum StringId {
kStringCommandGo = 0, kStringCommandLook, kStringCommandTake, kStringCommandOpen, kStringCommandClose, kStringCommandGo = 0, kStringCommandLook, kStringCommandTake, kStringCommandOpen, kStringCommandClose,
kStringCommandPress, kStringCommandPull, kStringCommandUse, kStringCommandTalk, kStringCommandGive, kStringCommandPress, kStringCommandPull, kStringCommandUse, kStringCommandTalk, kStringCommandGive,
kStringStatusCommandGo, kStringStatusCommandLook, kStringStatusCommandTake, kStringStatusCommandOpen, kStringStatusCommandClose, kStringStatusCommandGo, kStringStatusCommandLook, kStringStatusCommandTake, kStringStatusCommandOpen, kStringStatusCommandClose,
kStringStatusCommandPress, kStringStatusCommandPull, kStringStatusCommandUse, kStringStatusCommandTalk, kStringStatusCommandGive, kPhrasalVerbParticleGiveTo, kPhrasalVerbParticleUseWith, kStringDefaultDescription, kStringDialogSeparator, kStringConversationEnd kStringStatusCommandPress, kStringStatusCommandPull, kStringStatusCommandUse, kStringStatusCommandTalk, kStringStatusCommandGive, kPhrasalVerbParticleGiveTo, kPhrasalVerbParticleUseWith, kStringDefaultDescription, kStringDialogSeparator, kStringConversationEnd, kStringHelpOverview1, kStringHelpOverview2,
kStringHelpOverview3, kStringHelpOverview4, kStringHelpOverview5, kStringHelpOverview6, kStringHelpOverview7, kStringTextSpeed, kStringLeaveGame, kStringYes, kStringNo
}; };
ObjectType operator|(ObjectType a, ObjectType b); ObjectType operator|(ObjectType a, ObjectType b);

View File

@ -455,7 +455,7 @@ void SupernovaEngine::setTextSpeed() {
_gm->animationOn(); _gm->animationOn();
} }
void SupernovaEngine::showHelpScreen() { void SupernovaEngine::showHelpScreen1() {
if (_screen->isMessageShown()) if (_screen->isMessageShown())
_screen->removeMessage(); _screen->removeMessage();
_gm->animationOff(); _gm->animationOff();
@ -479,6 +479,31 @@ void SupernovaEngine::showHelpScreen() {
_gm->animationOn(); _gm->animationOn();
} }
void SupernovaEngine::showHelpScreen2() {
if (_screen->isMessageShown())
_screen->removeMessage();
_gm->animationOff();
_gm->saveTime();
paletteFadeOut();
setCurrentImage(27);
renderImage(0);
renderBox(10, 70, 192, 100, kColorWhite35);
renderText(kStringHelpOverview1, 15, 80, kColorWhite99);
renderText(kStringHelpOverview2, 15, 92, kColorWhite99);
renderText(kStringHelpOverview3, 15, 104, kColorWhite99);
renderText(kStringHelpOverview4, 15, 116, kColorWhite99);
renderText(kStringHelpOverview5, 15, 128, kColorWhite99);
renderText(kStringHelpOverview6, 15, 140, kColorWhite99);
renderText(kStringHelpOverview7, 15, 152, kColorWhite99);
paletteFadeIn();
_gm->getKeyInput();
paletteFadeOut();
_gm->loadTime();
_gm->animationOn();
}
Common::Error SupernovaEngine::showTextReader(const char *filename) { Common::Error SupernovaEngine::showTextReader(const char *filename) {
Common::File file; Common::File file;

View File

@ -102,7 +102,8 @@ public:
void setTextSpeed(); void setTextSpeed();
const Common::String &getGameString(int idx) const; const Common::String &getGameString(int idx) const;
void setGameString(int idx, const Common::String &string); void setGameString(int idx, const Common::String &string);
void showHelpScreen(); void showHelpScreen1();
void showHelpScreen2();
Common::Error showTextReader(const char *filename); Common::Error showTextReader(const char *filename);
// forwarding calls // forwarding calls

View File

@ -27,6 +27,7 @@
#include "supernova/screen.h" #include "supernova/screen.h"
#include "supernova/supernova.h" #include "supernova/supernova.h"
#include "supernova/supernova1/state.h" #include "supernova/supernova1/state.h"
#include "supernova/supernova1/stringid.h"
namespace Supernova { namespace Supernova {

View File

@ -26,7 +26,6 @@
#include "common/str.h" #include "common/str.h"
#include "supernova/msn_def.h" #include "supernova/msn_def.h"
#include "supernova/supernova1/stringid.h"
#include "supernova/room.h" #include "supernova/room.h"
namespace Common { namespace Common {

View File

@ -28,7 +28,7 @@
namespace Supernova { namespace Supernova {
enum StringId1 { enum StringId1 {
kStringTitleVersion = 25, kStringTitle1, kStringTitle2, kStringTitle3, kStringIntro1, kStringTitleVersion = 36, kStringTitle1, kStringTitle2, kStringTitle3, kStringIntro1,
kStringIntro2, kStringIntro3, kStringIntro4, kStringIntro5, kStringIntro6, kStringIntro2, kStringIntro3, kStringIntro4, kStringIntro5, kStringIntro6,
kStringIntro7, kStringIntro8, kStringIntro9, kStringIntro10, kStringIntro11, kStringIntro7, kStringIntro8, kStringIntro9, kStringIntro10, kStringIntro11,
kStringIntro12, kStringIntro13, kStringBroken, kStringTakeMessage, kStringIntro12, kStringIntro13, kStringBroken, kStringTakeMessage,
@ -169,15 +169,12 @@ enum StringId1 {
kStringGenericInteract_43, kStringSupernova1, kStringSupernova2, kStringSupernova3, kStringGenericInteract_43, kStringSupernova1, kStringSupernova2, kStringSupernova3,
kStringSupernova4, kStringSupernova5, kStringSupernova6, kStringSupernova7, kStringSupernova8, kStringSupernova4, kStringSupernova5, kStringSupernova6, kStringSupernova7, kStringSupernova8,
// 625 // 625
kStringTextSpeed, kStringGuardNoticed1, kStringGuardNoticed2, kStringTelomat1, kStringTelomat2, kStringGuardNoticed1, kStringGuardNoticed2, kStringTelomat1, kStringTelomat2,
kStringTelomat3, kStringTelomat4, kStringTelomat5, kStringTelomat6, kStringTelomat7, kStringTelomat3, kStringTelomat4, kStringTelomat5, kStringTelomat6, kStringTelomat7,
kStringTelomat8, kStringTelomat9, kStringTelomat10, kStringTelomat11, kStringTelomat12, kStringTelomat8, kStringTelomat9, kStringTelomat10, kStringTelomat11, kStringTelomat12,
kStringTelomat13, kStringTelomat14, kStringTelomat15, kStringTelomat16, kStringTelomat17, kStringTelomat13, kStringTelomat14, kStringTelomat15, kStringTelomat16, kStringTelomat17,
kStringTelomat18, kStringTelomat19, kStringTelomat20, kStringTelomat21, kStringAlarm, kStringTelomat18, kStringTelomat19, kStringTelomat20, kStringTelomat21, kStringAlarm,
// 650 // 650
kStringLeaveGame, kStringYes, kStringNo, kStringHelpOverview1, kStringHelpOverview2,
kStringHelpOverview3, kStringHelpOverview4, kStringHelpOverview5, kStringHelpOverview6, kStringHelpOverview7,
// Add two placeholder strings at the end for variable text // Add two placeholder strings at the end for variable text
kStringPlaceholder1, kStringPlaceholder2, kStringPlaceholder1, kStringPlaceholder2,

View File

@ -973,8 +973,8 @@ bool Checkout::interact(Action verb, Object &obj1, Object &obj2) {
kStringCheckout3 kStringCheckout3
}; };
static int dialCheckout2[2] = { static int dialCheckout2[2] = {
kStringYes, kStringYes2,
kStringNo kStringNo2
}; };
static int dialStage1[3] = { static int dialStage1[3] = {
kStringCheckout4, kStringCheckout4,
@ -1116,7 +1116,7 @@ bool Checkout::interact(Action verb, Object &obj1, Object &obj2) {
switch (_gm->dialog(3, _gm->_dials, dialCheckout1, 1)) { switch (_gm->dialog(3, _gm->_dials, dialCheckout1, 1)) {
case 0: case 0:
_gm->reply(kStringCheckout40, 1, 1 + 128); _gm->reply(kStringCheckout40, 1, 1 + 128);
_gm->say(kStringNo); _gm->say(kStringNo2);
_gm->reply(kStringCheckout41, 1, 1 + 128); _gm->reply(kStringCheckout41, 1, 1 + 128);
_gm->say(kStringCheckout42); _gm->say(kStringCheckout42);
break; break;
@ -1128,7 +1128,7 @@ bool Checkout::interact(Action verb, Object &obj1, Object &obj2) {
*_gm->_rooms[CULTURE_PALACE]->getObject(4), *_gm->_rooms[CULTURE_PALACE]->getObject(4),
*_gm->_rooms[CHECKOUT]->getObject(2)); *_gm->_rooms[CHECKOUT]->getObject(2));
} else { } else {
_gm->say(kStringNo); _gm->say(kStringNo2);
_gm->reply(kStringCheckout45, 1, 1 + 128); _gm->reply(kStringCheckout45, 1, 1 + 128);
_gm->say(kStringCheckout46); _gm->say(kStringCheckout46);
} }
@ -1624,7 +1624,7 @@ bool Elevator2::interact(Action verb, Object &obj1, Object &obj2) {
_vm->renderImage(0); _vm->renderImage(0);
_vm->paletteFadeIn(); _vm->paletteFadeIn();
_gm->reply(kStringElevator15, 1, 1 + 128); _gm->reply(kStringElevator15, 1, 1 + 128);
_gm->say(kStringYes); _gm->say(kStringYes2);
_gm->reply(kStringElevator16, 1, 1 + 128); _gm->reply(kStringElevator16, 1, 1 + 128);
_gm->reply(kStringElevator17, 1, 1 + 128); _gm->reply(kStringElevator17, 1, 1 + 128);
if (_gm->dialog(2, _gm->_dials, dialBoss1, 0)) { if (_gm->dialog(2, _gm->_dials, dialBoss1, 0)) {

View File

@ -28,9 +28,9 @@
namespace Supernova { namespace Supernova {
enum StringId2 { enum StringId2 {
kString23 = 25, kString24, kString23 = 36, kString24,
kString25, kString26, kString27, kStringTextSpeed, kStringLeaveGame, kString25, kString26, kString27,
kString30, kString31, kStringGenericInteract1, kStringGenericInteract2, kStringGenericInteract3, kStringGenericInteract1, kStringGenericInteract2, kStringGenericInteract3,
kStringGenericInteract4, kStringGenericInteract5, kStringGenericInteract6, kStringGenericInteract7, kStringGenericInteract8, kStringGenericInteract4, kStringGenericInteract5, kStringGenericInteract6, kStringGenericInteract7, kStringGenericInteract8,
kStringGenericInteract9, kStringGenericInteract10, kStringGenericInteract11, kStringGenericInteract12, kStringGenericInteract13, kStringGenericInteract9, kStringGenericInteract10, kStringGenericInteract11, kStringGenericInteract12, kStringGenericInteract13,
kStringIntro1, kStringIntro2, kStringIntro3, kStringIntro4, kStringIntro5, kStringIntro1, kStringIntro2, kStringIntro3, kStringIntro4, kStringIntro5,
@ -97,7 +97,7 @@ kStringWhatYouWant, kStringWhoAreYou, kStringHorstHummel2, kStringNeverHeard, kS
kStringImOnTV, kStringIDontKnow, kStringFunny, kStringAha, kStringICan, kStringImOnTV, kStringIDontKnow, kStringFunny, kStringAha, kStringICan,
kStringFromWhom, kStringCost, kStringAsYouSay, kStringGetCard, kStringOnlyParticipation, kStringFromWhom, kStringCost, kStringAsYouSay, kStringGetCard, kStringOnlyParticipation,
kStringWhatForIt, kStringMakeOffer, kStringGoodOffer, kStringGiveCard, kStringIdiot, kStringWhatForIt, kStringMakeOffer, kStringGoodOffer, kStringGiveCard, kStringIdiot,
kStringCheckout1, kStringCheckout2, kStringCheckout3, kStringYes, kStringNo, kStringCheckout1, kStringCheckout2, kStringCheckout3, kStringYes2, kStringNo2,
kStringCheckout4, kStringCheckout5, kStringCheckout6, kStringCheckout7, kStringCheckout8, kStringCheckout4, kStringCheckout5, kStringCheckout6, kStringCheckout7, kStringCheckout8,
kStringCheckout9, kStringCheckout10, kStringCheckout11, kStringCheckout12, kStringCheckout13, kStringCheckout9, kStringCheckout10, kStringCheckout11, kStringCheckout12, kStringCheckout13,
kStringCheckout14, kStringCheckout15, kStringCheckout16, kStringCheckout17, kStringCheckout18, kStringCheckout14, kStringCheckout15, kStringCheckout16, kStringCheckout17, kStringCheckout18,