[Scummvm-git-logs] scummvm master -> 8c4af9f175460a8cb0a2c70e417e1f6e1ff182a9
Joefish
joewinzer at googlemail.com
Tue May 28 02:37:51 CEST 2019
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
6da729171c SUPERNOVA: Adds strings for help screen
7c3b128661 SUPERNOVA: Removes optional parameter for getKeyInput()
e7b91fe40f SUPERNOVA: Adds getters for screen width and height
38e04455fc SUPERNOVA: Adds Help screen
8c4af9f175 SUPERNOVA: Adds text reader to view text files
Commit: 6da729171cfd509c168c37bfd0216101691dc3fd
https://github.com/scummvm/scummvm/commit/6da729171cfd509c168c37bfd0216101691dc3fd
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-05-28T02:24:42+02:00
Commit Message:
SUPERNOVA: Adds strings for help screen
Changed paths:
devtools/create_supernova/gametext.h
engines/supernova/msn_def.h
diff --git a/devtools/create_supernova/gametext.h b/devtools/create_supernova/gametext.h
index e8d45a5..1745395 100644
--- a/devtools/create_supernova/gametext.h
+++ b/devtools/create_supernova/gametext.h
@@ -819,9 +819,16 @@ const char *gameText[] = {
"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
};
-
-
#endif // GAMETEXT_H
diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h
index cb473e7..5c3ee1f 100644
--- a/engines/supernova/msn_def.h
+++ b/engines/supernova/msn_def.h
@@ -289,7 +289,8 @@ enum StringId {
kStringTelomat13, kStringTelomat14, kStringTelomat15, kStringTelomat16, kStringTelomat17,
kStringTelomat18, kStringTelomat19, kStringTelomat20, kStringTelomat21, kStringAlarm,
// 650
- kStringLeaveGame, kStringYes, kStringNo,
+ kStringLeaveGame, kStringYes, kStringNo, kStringHelpOverview1, kStringHelpOverview2,
+ kStringHelpOverview3, kStringHelpOverview4, kStringHelpOverview5, kStringHelpOverview6, kStringHelpOverview7,
// Add two placeholder strings at the end for variable text
kStringPlaceholder1, kStringPlaceholder2,
Commit: 7c3b128661d4131001c2a5940796c527ab710817
https://github.com/scummvm/scummvm/commit/7c3b128661d4131001c2a5940796c527ab710817
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-05-28T02:24:42+02:00
Commit Message:
SUPERNOVA: Removes optional parameter for getKeyInput()
It doesn't serve a purpose anymore. The parameter was used to keep
waiting for key input if it was a 'non text editing' event, like
pressing the shift modifier key. The only place it was used was for text
input when interacting with the computer in ShipSleepCabin.
Changed paths:
engines/supernova/state.cpp
engines/supernova/state.h
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 8d54bd7..6600613 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -1579,29 +1579,11 @@ void GameManager::drawInventory() {
}
}
-uint16 GameManager::getKeyInput(bool blockForPrintChar) {
+int GameManager::getKeyInput() {
while (!_vm->shouldQuit()) {
updateEvents();
if (_keyPressed) {
- if (blockForPrintChar) {
- if (Common::isPrint(_key.keycode) ||
- _key.keycode == Common::KEYCODE_BACKSPACE ||
- _key.keycode == Common::KEYCODE_DELETE ||
- _key.keycode == Common::KEYCODE_RETURN ||
- _key.keycode == Common::KEYCODE_SPACE ||
- _key.keycode == Common::KEYCODE_ESCAPE ||
- _key.keycode == Common::KEYCODE_UP ||
- _key.keycode == Common::KEYCODE_DOWN ||
- _key.keycode == Common::KEYCODE_LEFT ||
- _key.keycode == Common::KEYCODE_RIGHT) {
- if (_key.flags & Common::KBD_SHIFT)
- return toupper(_key.ascii);
- else
- return tolower(_key.ascii);
- }
- } else {
- return _key.ascii;
- }
+ return _key.ascii;
}
g_system->updateScreen();
g_system->delayMillis(_vm->_delay);
@@ -1805,7 +1787,7 @@ void GameManager::edit(Common::String &input, int x, int y, uint length) {
_vm->renderBox(_vm->_screen->getTextCursorPos().x, y - 1, 1, 9, kColorWhite99);
}
- getKeyInput(true);
+ getKeyInput();
if (_vm->shouldQuit())
break;
switch (_key.keycode) {
diff --git a/engines/supernova/state.h b/engines/supernova/state.h
index c044670..c1712b4 100644
--- a/engines/supernova/state.h
+++ b/engines/supernova/state.h
@@ -192,7 +192,7 @@ public:
bool airless();
void shock();
Common::EventType getMouseInput();
- uint16 getKeyInput(bool blockForPrintChar = false);
+ int getKeyInput();
void getInput();
void wait(int ticks);
void waitOnInput(int ticks);
Commit: e7b91fe40fefc727d8108b1616fab9bd2a4c551f
https://github.com/scummvm/scummvm/commit/e7b91fe40fefc727d8108b1616fab9bd2a4c551f
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-05-28T02:24:42+02:00
Commit Message:
SUPERNOVA: Adds getters for screen width and height
Changed paths:
engines/supernova/screen.cpp
engines/supernova/screen.h
diff --git a/engines/supernova/screen.cpp b/engines/supernova/screen.cpp
index 1fa112b..f28af28 100644
--- a/engines/supernova/screen.cpp
+++ b/engines/supernova/screen.cpp
@@ -187,6 +187,14 @@ Screen::Screen(SupernovaEngine *vm, ResourceManager *resMan)
CursorMan.showMouse(true);
}
+int Screen::getScreenWidth() const {
+ return _screenWidth;
+}
+
+int Screen::getScreenHeight() const {
+ return _screenHeight;
+}
+
int Screen::getGuiBrightness() const {
return _guiBrightness;
}
diff --git a/engines/supernova/screen.h b/engines/supernova/screen.h
index bcffe61..bd135d8 100644
--- a/engines/supernova/screen.h
+++ b/engines/supernova/screen.h
@@ -134,6 +134,8 @@ public:
public:
Screen(SupernovaEngine *vm, ResourceManager *resMan);
+ int getScreenWidth() const;
+ int getScreenHeight() const;
int getViewportBrightness() const;
void setViewportBrightness(int brightness);
int getGuiBrightness() const;
Commit: 38e04455fc75f65b78b998cd609a55710ceb7f3b
https://github.com/scummvm/scummvm/commit/38e04455fc75f65b78b998cd609a55710ceb7f3b
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-05-28T02:24:42+02:00
Commit Message:
SUPERNOVA: Adds Help screen
Changed paths:
engines/supernova/state.cpp
engines/supernova/supernova.cpp
engines/supernova/supernova.h
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 6600613..6981004 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -582,6 +582,7 @@ void GameManager::processInput(Common::KeyState &state) {
switch (state.keycode) {
case Common::KEYCODE_F1:
// help
+ _vm->showHelpScreen();
break;
case Common::KEYCODE_F2:
// show game doc
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 34d4064..3386c65 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -410,6 +410,30 @@ void SupernovaEngine::setTextSpeed() {
_gm->animationOn();
}
+void SupernovaEngine::showHelpScreen() {
+ if (_screen->isMessageShown())
+ _screen->removeMessage();
+ _gm->animationOff();
+ _gm->saveTime();
+
+ paletteFadeOut();
+ renderImage(kImageHelpScreen);
+ renderBox(100, 100, 192, 78, kColorWhite35);
+ renderText(kStringHelpOverview1, 105, 105, kColorWhite99);
+ renderText(kStringHelpOverview2, 105, 115, kColorWhite99);
+ renderText(kStringHelpOverview3, 105, 125, kColorWhite99);
+ renderText(kStringHelpOverview4, 105, 135, kColorWhite99);
+ renderText(kStringHelpOverview5, 105, 145, kColorWhite99);
+ renderText(kStringHelpOverview6, 105, 155, kColorWhite99);
+ renderText(kStringHelpOverview7, 105, 165, kColorWhite99);
+ paletteFadeIn();
+ _gm->getKeyInput();
+
+ paletteFadeOut();
+ _gm->loadTime();
+ _gm->animationOn();
+}
+
bool SupernovaEngine::quitGameDialog() {
bool quit = false;
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index c66fd50..cb516c9 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -95,6 +95,7 @@ public:
void setTextSpeed();
const Common::String &getGameString(int idx) const;
void setGameString(int idx, const Common::String &string);
+ void showHelpScreen();
// forwarding calls
void playSound(AudioId sample);
Commit: 8c4af9f175460a8cb0a2c70e417e1f6e1ff182a9
https://github.com/scummvm/scummvm/commit/8c4af9f175460a8cb0a2c70e417e1f6e1ff182a9
Author: Joseph-Eugene Winzer (joewinzer at googlemail.com)
Date: 2019-05-28T02:24:43+02:00
Commit Message:
SUPERNOVA: Adds text reader to view text files
Changed paths:
engines/supernova/state.cpp
engines/supernova/state.h
engines/supernova/supernova.cpp
engines/supernova/supernova.h
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 6981004..2a1c9fb 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -585,10 +585,12 @@ void GameManager::processInput(Common::KeyState &state) {
_vm->showHelpScreen();
break;
case Common::KEYCODE_F2:
- // show game doc
+ // show game manual
+ _vm->showTextReader("msn.doc");
break;
case Common::KEYCODE_F3:
// show game info
+ _vm->showTextReader("msn.inf");
break;
case Common::KEYCODE_F4:
_vm->setTextSpeed();
diff --git a/engines/supernova/state.h b/engines/supernova/state.h
index c1712b4..6b9d463 100644
--- a/engines/supernova/state.h
+++ b/engines/supernova/state.h
@@ -23,6 +23,7 @@
#ifndef SUPERNOVA_STATE_H
#define SUPERNOVA_STATE_H
+#include "common/error.h"
#include "common/events.h"
#include "common/rect.h"
#include "common/keyboard.h"
diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp
index 3386c65..c64755e 100644
--- a/engines/supernova/supernova.cpp
+++ b/engines/supernova/supernova.cpp
@@ -434,6 +434,83 @@ void SupernovaEngine::showHelpScreen() {
_gm->animationOn();
}
+Common::Error SupernovaEngine::showTextReader(const char *filename) {
+ Common::File file;
+
+ if (!file.open(filename)) {
+ GUIErrorMessageFormat(_("Unable to find '%s' in game folder."), filename);
+ return Common::kReadingFailed;
+ }
+ Common::SeekableReadStream *stream = file.readStream(file.size());
+ int linesInFile = 0;
+ while (!stream->eos()) {
+ stream->readLine();
+ ++linesInFile;
+ }
+ --linesInFile;
+ stream->seek(0);
+ stream->clearErr();
+
+ if (_screen->isMessageShown())
+ _screen->removeMessage();
+ _gm->animationOff();
+ _gm->saveTime();
+ paletteFadeOut();
+ g_system->fillScreen(kColorWhite35);
+ for (int y = 6; y < (200 - kFontHeight); y += (kFontHeight + 2)) {
+ Common::String line = stream->readLine();
+ if (stream->eos())
+ break;
+ _screen->renderText(line, 6, y, kColorWhite99);
+ }
+ paletteFadeIn();
+
+ const int linesPerPage = 19;
+ int lineNumber = 0;
+ bool exitReader = false;
+ do {
+ stream->seek(0);
+ stream->clearErr();
+ for (int i = 0; i < lineNumber; ++i)
+ stream->readLine();
+ g_system->fillScreen(kColorWhite35);
+ for (int y = 6; y < (_screen->getScreenHeight() - kFontHeight); y += (kFontHeight + 2)) {
+ Common::String line = stream->readLine();
+ if (stream->eos())
+ break;
+ _screen->renderText(line, 6, y, kColorWhite99);
+ }
+ _gm->getKeyInput();
+ switch (_gm->_key.keycode) {
+ case Common::KEYCODE_ESCAPE:
+ exitReader = true;
+ break;
+ case Common::KEYCODE_UP:
+ lineNumber = lineNumber > 0 ? lineNumber - 1 : 0;
+ break;
+ case Common::KEYCODE_DOWN:
+ lineNumber = lineNumber < linesInFile - (linesPerPage + 1) ? lineNumber + 1
+ : linesInFile - linesPerPage;
+ break;
+ case Common::KEYCODE_PAGEUP:
+ lineNumber = lineNumber > linesPerPage ? lineNumber - linesPerPage : 0;
+ break;
+ case Common::KEYCODE_PAGEDOWN:
+ lineNumber = lineNumber < linesInFile - (linesPerPage * 2) ? lineNumber + linesPerPage
+ : linesInFile - linesPerPage;
+ break;
+ default:
+ break;
+ }
+ } while (!exitReader && !shouldQuit());
+
+ paletteFadeOut();
+ _gm->loadTime();
+ _gm->animationOn();
+
+ return Common::kNoError;
+}
+
bool SupernovaEngine::quitGameDialog() {
bool quit = false;
diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h
index cb516c9..94f07ee 100644
--- a/engines/supernova/supernova.h
+++ b/engines/supernova/supernova.h
@@ -96,6 +96,7 @@ public:
const Common::String &getGameString(int idx) const;
void setGameString(int idx, const Common::String &string);
void showHelpScreen();
+ Common::Error showTextReader(const char *filename);
// forwarding calls
void playSound(AudioId sample);
More information about the Scummvm-git-logs
mailing list