aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/glk/advsys/advsys.cpp2
-rw-r--r--engines/glk/advsys/glk_interface.cpp11
-rw-r--r--engines/glk/advsys/glk_interface.h1
3 files changed, 14 insertions, 0 deletions
diff --git a/engines/glk/advsys/advsys.cpp b/engines/glk/advsys/advsys.cpp
index 4e2451e79b..a61033a506 100644
--- a/engines/glk/advsys/advsys.cpp
+++ b/engines/glk/advsys/advsys.cpp
@@ -46,6 +46,8 @@ void AdvSys::runGame() {
_saveSlot = -1;
if (err != Common::kNoError)
print(_("Sorry, the savegame couldn't be restored"));
+ else
+ _pendingLine = "look"; // Do a look action after loading the savegame
}
// Gameplay loop
diff --git a/engines/glk/advsys/glk_interface.cpp b/engines/glk/advsys/glk_interface.cpp
index 20f9f4d3a1..c49dc983e4 100644
--- a/engines/glk/advsys/glk_interface.cpp
+++ b/engines/glk/advsys/glk_interface.cpp
@@ -47,6 +47,17 @@ Common::String GlkInterface::readLine() {
char line[200];
print(": ");
+
+ if (!_pendingLine.empty()) {
+ // The next input line has been manually provided, so return it
+ print(_pendingLine);
+ print("\n");
+
+ Common::String l = _pendingLine;
+ _pendingLine = "";
+ return l;
+ }
+
glk_request_line_event(_window, line, 199, 0);
do {
diff --git a/engines/glk/advsys/glk_interface.h b/engines/glk/advsys/glk_interface.h
index 9048818020..9e37207684 100644
--- a/engines/glk/advsys/glk_interface.h
+++ b/engines/glk/advsys/glk_interface.h
@@ -37,6 +37,7 @@ private:
winid_t _window;
protected:
int _saveSlot;
+ Common::String _pendingLine;
protected:
/**
* GLK initialization