[Scummvm-git-logs] scummvm master -> d04aaf45c008c8a05bf14c0b97a38088f5820c9b

mduggan noreply at scummvm.org
Wed Nov 6 05:54:23 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:
94ab8509bd DGDS: Only apply x/y gosub offset if stack depth not zero
d04aaf45c0 DGDS: Better document unimplemented ADS codes


Commit: 94ab8509bde4d1f7793800646038260306a123da
    https://github.com/scummvm/scummvm/commit/94ab8509bde4d1f7793800646038260306a123da
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2024-11-06T16:53:34+11:00

Commit Message:
DGDS: Only apply x/y gosub offset if stack depth not zero

This fixes the scroll a little in the Willy Beamish intro.

Changed paths:
    engines/dgds/ttm.cpp


diff --git a/engines/dgds/ttm.cpp b/engines/dgds/ttm.cpp
index 3bcdebc9752..821ed91879d 100644
--- a/engines/dgds/ttm.cpp
+++ b/engines/dgds/ttm.cpp
@@ -930,8 +930,13 @@ void TTMInterpreter::handleOperation(TTMEnviro &env, TTMSeq &seq, uint16 op, byt
 
 		Common::SharedPtr<Image> img = env._scriptShapes[bmpNo];
 		if (img) {
-			img->drawBitmap(frameno, env._xOff + ivals[0], env._yOff + ivals[1],
-					seq._drawWin, _vm->_compositionBuffer, flipMode, dstWidth, dstHeight);
+			int x = ivals[0];
+			int y = ivals[1];
+			if (_stackDepth > 0) {
+				x += env._xOff;
+				y += env._yOff;
+			}
+			img->drawBitmap(frameno, x, y, seq._drawWin, _vm->_compositionBuffer, flipMode, dstWidth, dstHeight);
 		} else {
 			warning("Trying to draw image %d in env %d which is not loaded", bmpNo, env._enviro);
 		}


Commit: d04aaf45c008c8a05bf14c0b97a38088f5820c9b
    https://github.com/scummvm/scummvm/commit/d04aaf45c008c8a05bf14c0b97a38088f5820c9b
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2024-11-06T16:53:34+11:00

Commit Message:
DGDS: Better document unimplemented ADS codes

Changed paths:
    engines/dgds/ads.cpp


diff --git a/engines/dgds/ads.cpp b/engines/dgds/ads.cpp
index c8450d89e90..8d5c3bdbb95 100644
--- a/engines/dgds/ads.cpp
+++ b/engines/dgds/ads.cpp
@@ -532,7 +532,7 @@ bool ADSInterpreter::handleOperation(uint16 code, Common::SeekableReadStream *sc
 	case 0x1050: // WHILE finished, 2 params
 	case 0x1060: // WHILE not running, 2 params
 	case 0x1070: // WHILE running, 2 params
-	case 0x1080: // WHILE count?, 1 param (HOC+ only)
+	case 0x1080: // WHILE countdown <= , 1 param (HOC+ only)
 	case 0x1090: // WHILE ??, 1 param (HOC+ only)
 	case 0x1310: // IF paused, 2 params
 	case 0x1320: // IF not paused, 2 params
@@ -687,6 +687,11 @@ bool ADSInterpreter::handleOperation(uint16 code, Common::SeekableReadStream *sc
 		break;
 	}
 
+	case 0x1420: // AND, 0 params - should not hit this here.
+	case 0x1430: // OR, 0 params - should not hit this here.
+		warning("ADS: Unexpected logic opcode 0x%04x - should be after IF/WHILE", code);
+		break;
+
 	case 0xF000:
 		debug(10, "ADS 0x%04x: set state 2, current idx (%d)", code, _adsData->_runningSegmentIdx);
 		if (_adsData->_runningSegmentIdx != -1)
@@ -734,8 +739,14 @@ bool ADSInterpreter::handleOperation(uint16 code, Common::SeekableReadStream *sc
 		return false;
 
 	//// unknown / to-be-implemented
-	case 0x1420: // AND, 0 params
-	case 0x1430: // OR, 0 params
+	// The next 6 are in HoC code but maybe never used?
+	case 0x13A0: // IF some_ads_variable[0] <=
+	case 0x13A1: // IF some_ads_variable[1] <=
+	case 0x13B0: // IF some_ads_variable[0] >
+	case 0x13B1: // IF some_ads_variable[1] >
+	case 0x13C0: // IF some_ads_variable[0] ==
+	case 0x13C1: // IF some_ads_variable[1] ==
+
 	case 0xFF10:
 	case 0xFFF0: // END_IF, 0 params
 	default: {




More information about the Scummvm-git-logs mailing list