[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