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

sluicebox noreply at scummvm.org
Mon Nov 18 07:31:53 UTC 2024


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

Summary:
34fbf57aa4 AGI: PREAGI: Make WINNIE wind sounds platform dependent
1d0daf2fac AGI: PREAGI: Implement WINNIE Amiga help opcode


Commit: 34fbf57aa45ecea53bebd9400dc4de9998ba2184
    https://github.com/scummvm/scummvm/commit/34fbf57aa45ecea53bebd9400dc4de9998ba2184
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-11-17T23:31:15-08:00

Commit Message:
AGI: PREAGI: Make WINNIE wind sounds platform dependent

Confirmed in disassembly

Changed paths:
    engines/agi/preagi/winnie.cpp


diff --git a/engines/agi/preagi/winnie.cpp b/engines/agi/preagi/winnie.cpp
index 2a211e24766..88c3b73c875 100644
--- a/engines/agi/preagi/winnie.cpp
+++ b/engines/agi/preagi/winnie.cpp
@@ -670,11 +670,11 @@ void WinnieEngine::wind() {
 		return;
 
 	printStr(IDS_WTP_WIND_0);
-	playSound(IDI_WTP_SND_WIND_1); // not a bug, IDI_WTP_SND_WIND_0 isn't used here
+	playSound(IDI_WTP_SND_WIND_0);
 	getSelection(kSelAnyKey);
 
 	printStr(IDS_WTP_WIND_1);
-	playSound(IDI_WTP_SND_WIND_1);
+	playSound(IDI_WTP_SND_WIND_0);
 	getSelection(kSelAnyKey);
 
 	dropObjRnd();
@@ -1190,6 +1190,12 @@ bool WinnieEngine::playSound(ENUM_WTP_SOUND iSound) {
 		return false;
 	}
 
+	// DOS version tests a platform global to choose the wind sound.
+	// Sound 10 is designed for PCJr, sound 11 for PC Speaker.
+	if (iSound == IDI_WTP_SND_WIND_0 && _soundemu == SOUND_EMU_PC) {
+		iSound = IDI_WTP_SND_WIND_1;
+	}
+
 	Common::Path fileName(Common::String::format(IDS_WTP_SND_DOS, iSound));
 
 	Common::File file;


Commit: 1d0daf2facce49b3a47c03e5b6dd34eeb1e7fe52
    https://github.com/scummvm/scummvm/commit/1d0daf2facce49b3a47c03e5b6dd34eeb1e7fe52
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-11-17T23:31:15-08:00

Commit Message:
AGI: PREAGI: Implement WINNIE Amiga help opcode

Fixes teleporting to a random room instead of displaying help messages

Changed paths:
    engines/agi/preagi/winnie.cpp
    engines/agi/preagi/winnie.h


diff --git a/engines/agi/preagi/winnie.cpp b/engines/agi/preagi/winnie.cpp
index 88c3b73c875..9db9f1f45f3 100644
--- a/engines/agi/preagi/winnie.cpp
+++ b/engines/agi/preagi/winnie.cpp
@@ -445,6 +445,12 @@ int WinnieEngine::parser(int pc, int index, uint8 *buffer) {
 				showOwlHelp();
 				break;
 			case IDO_WTP_GOTO_RND:
+				// Amiga changed opcode 1E to display its very long
+				// platform-specific help messages in the first room
+				if (getPlatform() == Common::kPlatformAmiga) {
+					showAmigaHelp();
+					break;
+				}
 				_room = rnd(IDI_WTP_MAX_ROOM_TELEPORT) + 1;
 				return IDI_WTP_PAR_GOTO;
 			default:
@@ -732,6 +738,13 @@ void WinnieEngine::showOwlHelp() {
 	}
 }
 
+void WinnieEngine::showAmigaHelp() {
+	// print edited versions of Amiga help text that fit in four lines
+	printStr(IDS_WTP_AMIGA_HELP_EDITED_0);
+	getSelection(kSelAnyKey);
+	printStr(IDS_WTP_AMIGA_HELP_EDITED_1);
+	getSelection(kSelAnyKey);
+}
 
 void WinnieEngine::drawMenu(char *szMenu, int iSel, int fCanSel[]) {
 	int iRow = 0, iCol = 0;
diff --git a/engines/agi/preagi/winnie.h b/engines/agi/preagi/winnie.h
index 44e3b2e0c11..fd45107a37f 100644
--- a/engines/agi/preagi/winnie.h
+++ b/engines/agi/preagi/winnie.h
@@ -89,6 +89,14 @@ namespace Agi {
 #define IDS_WTP_HELP_1_C64          "<F3> takes you back to the playroom (if you get lost, or want to save the game).<F5> turns the sound off and on.        <F7> shows what you're carrying."
 #define IDS_WTP_WRONG_PLACE_C64 "\nOk, but this is not the right place."
 
+// Amiga strings
+
+// original strings from the executable and edited versions for our four-line interface
+#define IDS_WTP_AMIGA_HELP_0          "Use the mouse to select your choice from\nthe bottom of the screen or the menu.\n\nTo use the keyboard instead of the\nmouse, press the NUMBER or first LETTER\nof what you want."
+#define IDS_WTP_AMIGA_HELP_1          "From the keyboard you can also press:\n  'l' to look at the scene you're in.\n  'o' to look at an object in the room.\n  'c' to see what you're carrying and\n        how you're doing.\n  CTRL-S to turn the sound on or off."
+#define IDS_WTP_AMIGA_HELP_EDITED_0   "Use the mouse to select your choice fromthe bottom of the screen or the menu.\nTo use the keyboard instead of the\nmouse, press the NUMBER or first LETTER."
+#define IDS_WTP_AMIGA_HELP_EDITED_1   "From the keyboard you can also press:\n  <C> to see what you're carrying and\n      how you're doing.\n  <CTRL-S> to turn the sound on or off."
+
 // maximum values
 
 #define IDI_WTP_MAX_OBJ_MISSING 10
@@ -346,6 +354,7 @@ private:
 	void tigger();
 
 	void showOwlHelp();
+	void showAmigaHelp();
 	bool playSound(ENUM_WTP_SOUND);
 
 	void printStrWinnie(char *szMsg);




More information about the Scummvm-git-logs mailing list