[Scummvm-git-logs] scummvm master -> 1b5f759ff280f39d8fa6bd2af819e201535ab7fa

sluicebox noreply at scummvm.org
Wed Nov 13 21:51:09 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
1b5f759ff2 AGI: Add workaround for LSL1 repeating message


Commit: 1b5f759ff280f39d8fa6bd2af819e201535ab7fa
    https://github.com/scummvm/scummvm/commit/1b5f759ff280f39d8fa6bd2af819e201535ab7fa
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-11-13T13:42:02-08:00

Commit Message:
AGI: Add workaround for LSL1 repeating message

Fixes bug #15293

Changed paths:
    engines/agi/op_cmd.cpp


diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index d3cd6726493..3cd90845a93 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -2162,6 +2162,17 @@ void cmdPrint(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
 	int16 textNr = parameter[0];
 
 	vm->_text->print(textNr);
+
+	// WORKAROUND: LSL1 prints the same message three times when giving whiskey to
+	// the man in room 14, but in our implementation it's not clear that these are
+	// three separate message boxes. The original interpreter immediately updated
+	// the screen when drawing and removing message boxes. In ours, the message
+	// appears stuck until pressing enter three times. If this happens in other
+	// games we can look into expanding this, but it may be the only one. Bug #15293
+	if (vm->getGameID() == GID_LSL1 && textNr == 22 && vm->getVar(VM_VAR_CURRENT_ROOM) == 14) {
+		vm->_gfx->updateScreen();
+		vm->_system->delayMillis(50);
+	}
 }
 
 void cmdPrintF(AgiGame *state, AgiEngine *vm, uint8 *parameter) {




More information about the Scummvm-git-logs mailing list