[Scummvm-git-logs] scummvm master -> 3febff96391bb62997a72bac03bb25f6ea798b66

mduggan mgithub at guarana.org
Sun May 9 08:43:24 UTC 2021


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:
47d8b281c7 ULTIMA8: Only move Crusader camera if position is valid.
3febff9639 ULTIMA8: Fix off-by-one glob egg calculation for Crusader


Commit: 47d8b281c7d5171a7c0b26997c169200a351ba15
    https://github.com/scummvm/scummvm/commit/47d8b281c7d5171a7c0b26997c169200a351ba15
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-09T17:41:05+09:00

Commit Message:
ULTIMA8: Only move Crusader camera if position is valid.

This avoids strange results if you try to move the camera while the avatar has
temporarily been moved to 0,0,0.

Changed paths:
    engines/ultima/ultima8/misc/debugger.cpp


diff --git a/engines/ultima/ultima8/misc/debugger.cpp b/engines/ultima/ultima8/misc/debugger.cpp
index 856865a0c2..ae4f68aacb 100644
--- a/engines/ultima/ultima8/misc/debugger.cpp
+++ b/engines/ultima/ultima8/misc/debugger.cpp
@@ -1187,7 +1187,8 @@ bool Debugger::cmdCameraOnAvatar(int argc, const char **argv) {
 	if (actor) {
 		int32 x, y, z;
 		actor->getCentre(x, y, z);
-		CameraProcess::SetCameraProcess(new CameraProcess(x, y, z));
+		if (x || y || z)
+			CameraProcess::SetCameraProcess(new CameraProcess(x, y, z));
 	}
 	return false;
 }


Commit: 3febff96391bb62997a72bac03bb25f6ea798b66
    https://github.com/scummvm/scummvm/commit/3febff96391bb62997a72bac03bb25f6ea798b66
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2021-05-09T17:41:31+09:00

Commit Message:
ULTIMA8: Fix off-by-one glob egg calculation for Crusader

This caused elevator doors to not close properly as the poles either side were
off by 1 pixel and blocked the creation of the door objects.

Changed paths:
    engines/ultima/ultima8/world/glob_egg.cpp


diff --git a/engines/ultima/ultima8/world/glob_egg.cpp b/engines/ultima/ultima8/world/glob_egg.cpp
index bb2a9bd5f2..007a0bb1d6 100644
--- a/engines/ultima/ultima8/world/glob_egg.cpp
+++ b/engines/ultima/ultima8/world/glob_egg.cpp
@@ -43,9 +43,11 @@ GlobEgg::~GlobEgg() {
 void GlobEgg::enterFastArea() {
 	uint32 coordmask = ~0x1FFU;
 	unsigned int coordshift = 1;
+	unsigned int offset = 1;
 	if (GAME_IS_CRUSADER) {
 		coordmask = ~0x3FFU;
 		coordshift = 2;
+		offset = 2;
 	}
 
 	// Expand it
@@ -63,8 +65,8 @@ void GlobEgg::enterFastArea() {
 
 
 			// calculate object's world position
-			int32 itemx = (_x & coordmask) + (globitem.x << coordshift) + 1;
-			int32 itemy = (_y & coordmask) + (globitem.y << coordshift) + 1;
+			int32 itemx = (_x & coordmask) + (globitem.x << coordshift) + offset;
+			int32 itemy = (_y & coordmask) + (globitem.y << coordshift) + offset;
 			int32 itemz = _z + globitem.z;
 
 			item->move(itemx, itemy, itemz);




More information about the Scummvm-git-logs mailing list