[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