[Scummvm-git-logs] scummvm master -> 003605e3ea65391158fccf0fac13b6022921b997

mduggan noreply at scummvm.org
Thu May 23 10:31:47 UTC 2024


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
db08e33af8 ULTIMA8: Avoid crash if no mouse cursors loaded yet
3d6e5973e2 ULTIMA8: Fix assertion on global set/check
003605e3ea ULTIMA8: Don't require land support in Crusader.


Commit: db08e33af8140a8e7d20ac505e37622deca73ed3
    https://github.com/scummvm/scummvm/commit/db08e33af8140a8e7d20ac505e37622deca73ed3
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2024-05-23T20:27:05+10:00

Commit Message:
ULTIMA8: Avoid crash if no mouse cursors loaded yet

This can happen if skipping crusader intro movies really fast.

Changed paths:
    engines/ultima/ultima8/kernel/mouse.cpp


diff --git a/engines/ultima/ultima8/kernel/mouse.cpp b/engines/ultima/ultima8/kernel/mouse.cpp
index 242e0d86ef6..08fbccc0ae9 100644
--- a/engines/ultima/ultima8/kernel/mouse.cpp
+++ b/engines/ultima/ultima8/kernel/mouse.cpp
@@ -212,6 +212,8 @@ int Mouse::getMouseFrame() {
 	// 38 = quill
 	// 39 = magnifying glass
 	// 40 = red cross
+	if (_cursors.empty())
+		return -1;
 
 	MouseCursor cursor = _cursors.top();
 


Commit: 3d6e5973e25b43b1785b0ae33f3243086d44199d
    https://github.com/scummvm/scummvm/commit/3d6e5973e25b43b1785b0ae33f3243086d44199d
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2024-05-23T20:28:13+10:00

Commit Message:
ULTIMA8: Fix assertion on global set/check

Changed paths:
    engines/ultima/ultima8/usecode/uc_machine.cpp


diff --git a/engines/ultima/ultima8/usecode/uc_machine.cpp b/engines/ultima/ultima8/usecode/uc_machine.cpp
index b4d6f5c7a04..2457cc07560 100644
--- a/engines/ultima/ultima8/usecode/uc_machine.cpp
+++ b/engines/ultima/ultima8/usecode/uc_machine.cpp
@@ -1235,7 +1235,7 @@ void UCMachine::execProcess(UCProcess *p) {
 			if (GAME_IS_U8) {
 				assert(_globals->getEntries(ui16a, ui16b) == (ui32a & ((1 << ui16b) - 1)));
 			} else {
-				assert(_globals->getEntries(ui16a, ui16b) == ui32a);
+				assert(_globals->getEntries(ui16a, ui16b) == (ui32a & ((1 << (ui16b * 8)) - 1)));
 		    }
 
 			TRACE_OP("%s\tpop\t\tglobal [%04X %02X] = %02X", op_info, ui16a, ui16b, ui32a);


Commit: 003605e3ea65391158fccf0fac13b6022921b997
    https://github.com/scummvm/scummvm/commit/003605e3ea65391158fccf0fac13b6022921b997
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2024-05-23T20:30:01+10:00

Commit Message:
ULTIMA8: Don't require land support in Crusader.

Not everything that supports us in Crusader is a land, so don't require it when
calculating support.  This makes movement in No Regret a lot smoother and is
probably better than the hack I tried in d4e2ebe9.

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


diff --git a/engines/ultima/ultima8/world/current_map.cpp b/engines/ultima/ultima8/world/current_map.cpp
index 3d1e443890e..570de821981 100644
--- a/engines/ultima/ultima8/world/current_map.cpp
+++ b/engines/ultima/ultima8/world/current_map.cpp
@@ -798,10 +798,10 @@ PositionInfo CurrentMap::getPositionInfo(const Box &target, const Box &start, ui
 	}
 
 	info.valid = info.blocker == nullptr;
-	// Partial support allowed if land is close. Allow up to 9 to match
-	// the position adjustments in scanForValidPosition for stepping on
-	// to Crusader elevators.
-	if (supportz == target._z && landz + 9 >= target._z)
+	// Partial support allowed if land is close. Allow up to 8 to match the
+	// position adjustments in scanForValidPosition.  In Crusader, we don't
+	// require land - just support.
+	if (supportz == target._z && (landz + 8 >= target._z || GAME_IS_CRUSADER))
 		info.supported = true;
 
 	// Mark supported at minimum z




More information about the Scummvm-git-logs mailing list