[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