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
"|", // kStringDialogSeparator
"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
"V2.02", // kStringTitleVersion
"Teil 1:", // kStringTitle1
@ -786,7 +797,6 @@ const char *gameText[] = {
"Und jetzt raus mit Ihnen!", // kStringSupernova7
"Zehn Minuten sp\204ter ...", // kStringSupernova8
// 625
"Textgeschwindigkeit:", // kStringTextSpeed
"Was war das f\201r ein Ger\204usch?", // kStringGuardNoticed1
"Ich werde mal nachsehen.", // kStringGuardNoticed2
"Guten Tag, hier ist Horst Hummel.", // kStringTelomat1
@ -816,17 +826,6 @@ const char *gameText[] = {
"Passwort:", // kStringTelomat21
"Deine Armbanduhr piepst,|die Alarmzeit ist erreicht.", // kStringAlarm
// 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
NULL
};

View File

@ -65,17 +65,24 @@ const char *gameText[] = {
"Es ist nichts Besonderes daran.", //There's nothing special about it.
"|", //Dialog separator
"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
"Speichern", //Save
// 25
"Zur\201ck", //Back
"Neustart", //Restart
"Schreibfehler", //write error
"Textgeschwindigkeit:", //Text speed:
"Spiel abbrechen?", //Leave game?
// 30
"Ja", //Yes
"Nein", //No
"Das tr\204gst du doch bei dir.", //You already carry this.
"Du bist doch schon da.", //You are already there.
"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) {
case Common::KEYCODE_F1:
// help
_vm->showHelpScreen();
if (_vm->_MSPart == 1)
_vm->showHelpScreen1();
else if (_vm->_MSPart == 2)
_vm->showHelpScreen2();
break;
case Common::KEYCODE_F2:
// 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;
case Common::KEYCODE_F3:
// 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;
case Common::KEYCODE_F4:
_vm->setTextSpeed();

View File

@ -186,7 +186,8 @@ enum StringId {
kStringCommandGo = 0, kStringCommandLook, kStringCommandTake, kStringCommandOpen, kStringCommandClose,
kStringCommandPress, kStringCommandPull, kStringCommandUse, kStringCommandTalk, kStringCommandGive,
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);

View File

@ -455,7 +455,7 @@ void SupernovaEngine::setTextSpeed() {
_gm->animationOn();
}
void SupernovaEngine::showHelpScreen() {
void SupernovaEngine::showHelpScreen1() {
if (_screen->isMessageShown())
_screen->removeMessage();
_gm->animationOff();
@ -479,6 +479,31 @@ void SupernovaEngine::showHelpScreen() {
_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::File file;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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