[Scummvm-cvs-logs] scummvm master -> ed92ccde23e847123d8a6bd8cb330378b9f5d939

m-kiewitz m_kiewitz at users.sourceforge.net
Thu Feb 18 16:55:54 CET 2016


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:
ed92ccde23 AGI: Apple IIgs time delay override MH1 completed


Commit: ed92ccde23e847123d8a6bd8cb330378b9f5d939
    https://github.com/scummvm/scummvm/commit/ed92ccde23e847123d8a6bd8cb330378b9f5d939
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2016-02-18T16:55:49+01:00

Commit Message:
AGI: Apple IIgs time delay override MH1 completed

+ Disable hide.mouse for MH1 Apple IIgs

Changed paths:
    engines/agi/agi.cpp
    engines/agi/appleIIgs_timedelay_overwrite.h
    engines/agi/op_cmd.cpp



diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp
index fdfb5dd..4b344c0 100644
--- a/engines/agi/agi.cpp
+++ b/engines/agi/agi.cpp
@@ -633,6 +633,7 @@ void AgiEngine::artificialDelay_CycleDone() {
 //         script, description,                                       signature                   patch
 static const AgiArtificialDelayEntry artificialDelayTable[] = {
 	{ GID_PQ1,        Common::kPlatformApple2GS, ARTIFICIALDELAYTYPE_NEWPICTURE,   1,   2, 2200 }, // Intro: music track is supposed to finish before credits screen. Developers must have assumed that room loading would take that long.
+	{ GID_MH1,        Common::kPlatformApple2GS, ARTIFICIALDELAYTYPE_NEWPICTURE, 155, 183, 2200 }, // Happens, when hitting fingers at bar
 	{ GID_AGIDEMO,    Common::kPlatformUnknown,  ARTIFICIALDELAYTYPE_END,         -1,  -1,    0 }
 };
 
diff --git a/engines/agi/appleIIgs_timedelay_overwrite.h b/engines/agi/appleIIgs_timedelay_overwrite.h
index aca3b48..9fcf318 100644
--- a/engines/agi/appleIIgs_timedelay_overwrite.h
+++ b/engines/agi/appleIIgs_timedelay_overwrite.h
@@ -49,10 +49,19 @@ static const AgiAppleIIgsDelayOverwriteRoomEntry appleIIgsDelayOverwriteKQ4[] =
 };
 
 static const AgiAppleIIgsDelayOverwriteRoomEntry appleIIgsDelayOverwriteMH1[] = {
-	{ 153, 153,  2, true }, // Intro w/ credits
-	{ 104, 104,  2, true }, // Intro cutscene
-	{ 117, 117,  2, true }, // Intro cutscene (ego waking up)
-	// Room 124+125 are MAD rooms, those seem to work at a proper speed
+	//{ 153, 153,  2, false }, // Intro w/ credits
+	//{ 104, 104,  2, false }, // Intro cutscene
+	//{ 117, 117,  2, false }, // Intro cutscene (ego waking up)
+	{ 114, 114  -1, false }, // interactive MAD map
+	{ 124, 125, -1, false }, // MAD during intro (tracking), seem to work properly at given speed
+	{ 132, 133, -1, false }, // MAD day 2 intro (tracking)
+	{ 137, 137, -1, false }, // Night Club 4th arcade game - game sets speed to 7
+	{ 115, 116, -1, false }, // MAD day 3 intro (tracking)
+	{ 148, 148, -1, false }, // day 3: arcade sequence under pawn shop (game sets speed to 6)
+	{ 103, 103, -1, false }, // MAD day 4 intro (tracking)
+	{ 105, 105, -1, false }, // day 4 tracking mini game right at the start (game sets speed to 3)
+	{ 107, 107, -1, false }, // MAD day 4 intro (tracking)
+	{ 112, 112, -1, false }, // MAD day 4 intro (tracking)
 	{  -1,  -1, -1, false }
 };
 
@@ -69,7 +78,7 @@ static const AgiAppleIIgsDelayOverwriteGameEntry appleIIgsDelayOverwriteGameTabl
 	{ GID_KQ3,        2, nullptr },
 	{ GID_KQ4,        2, appleIIgsDelayOverwriteKQ4 },
 	{ GID_LSL1,       2, nullptr }, // Switch Larry 1 to 10 cycles per second (that's around PC Larry 1's "normal" speed
-	{ GID_MH1,       -1, appleIIgsDelayOverwriteMH1 }, // NEEDS TESTING
+	{ GID_MH1,        2, appleIIgsDelayOverwriteMH1 }, // NEEDS TESTING
 	{ GID_MIXEDUP,    2, nullptr },
 	{ GID_PQ1,        2, nullptr },
 	{ GID_SQ1,        2, nullptr }, // completed, no issues using these settings
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index 1a549f5..8ee9958 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -37,7 +37,6 @@
 
 namespace Agi {
 
-#define getGameID() state->_vm->getGameID()
 #define getFeatures() state->_vm->getFeatures()
 #define getVersion() state->_vm->getVersion()
 #define getLanguage() state->_vm->getLanguage()
@@ -82,7 +81,7 @@ void cmdAssignN(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
 	// variable to the correct value here
 	// Fixes bug #1942476 - "AGI: Fan(Get Outta SQ) - Score
 	// is lost on restart"
-	if (getGameID() == GID_GETOUTTASQ && varNr == 7)
+	if (vm->getGameID() == GID_GETOUTTASQ && varNr == 7)
 		vm->setVar(varNr, 8);
 }
 
@@ -980,6 +979,13 @@ void cmdHideMouse(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
 		return;
 	}
 
+	if ((vm->getGameID() == GID_MH1) && (vm->getPlatform() == Common::kPlatformApple2GS)) {
+		// Called right after beating arcade sequence on day 4 in the hospital Parameter is "1".
+		// Right before cutscene. show.mouse isn't called. Probably different function.
+		warning("hide.mouse called, disabled for MH1 Apple IIgs");
+		return;
+	}
+
 	// WORKAROUND: Turns off current movement that's being caused with the mouse.
 	// This fixes problems with too many popup boxes appearing in the Amiga
 	// Gold Rush's copy protection failure scene (i.e. the hanging scene, logic.192).
@@ -1158,7 +1164,7 @@ void cmdDrawPic(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
 	// above the ground), flag 103 is reset, thereby fixing this issue. Note
 	// that this is a script bug and occurs in the original interpreter as well.
 	// Fixes bug #3056: AGI: SQ1 (2.2 DOS ENG) bizzare exploding roger
-	if (getGameID() == GID_SQ1 && resourceNr == 20)
+	if (vm->getGameID() == GID_SQ1 && resourceNr == 20)
 		vm->setFlag(103, false);
 
 	// Loading trigger
@@ -1892,7 +1898,7 @@ void cmdDistance(AgiGame *state, AgiEngine *vm, uint8 *parameter) {
 	// wouldn't chase Rosella around anymore. If it had worked correctly the zombie
 	// wouldn't have come up at all or it would have come up and gone back down
 	// immediately. The latter approach is the one implemented here.
-	if (getGameID() == GID_KQ4 && (vm->getVar(VM_VAR_CURRENT_ROOM) == 16 || vm->getVar(VM_VAR_CURRENT_ROOM) == 18) && destVarNr >= 221 && destVarNr <= 223) {
+	if (vm->getGameID() == GID_KQ4 && (vm->getVar(VM_VAR_CURRENT_ROOM) == 16 || vm->getVar(VM_VAR_CURRENT_ROOM) == 18) && destVarNr >= 221 && destVarNr <= 223) {
 		// Rooms 16 and 18 are graveyards where three zombies come up at night. They use logics 16 and 18.
 		// Variables 221-223 are used to save the distance between each zombie and Rosella.
 		// Variables 155, 156 and 162 are used to save the state of each zombie in room 16.






More information about the Scummvm-git-logs mailing list