[Scummvm-git-logs] scummvm master -> 29c5f6e7494d46fa0b927507251d150b8b7879d6

a-yyg 76591232+a-yyg at users.noreply.github.com
Sat Aug 14 23:37:33 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:
ec88076e91 SAGA2: Write correct workaround comment
29c5f6e749 SAGA2: Fix nullptr access in Sector iterators


Commit: ec88076e91b8b73a46ee73b00c7f8a158b9894bb
    https://github.com/scummvm/scummvm/commit/ec88076e91b8b73a46ee73b00c7f8a158b9894bb
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-08-15T08:37:18+09:00

Commit Message:
SAGA2: Write correct workaround comment

Changed paths:
    engines/saga2/interp.cpp


diff --git a/engines/saga2/interp.cpp b/engines/saga2/interp.cpp
index 25c1302106..8554288cd9 100644
--- a/engines/saga2/interp.cpp
+++ b/engines/saga2/interp.cpp
@@ -246,7 +246,7 @@ uint8 *byteAddress(Thread *th, uint8 **pcPtr) {
 		debugC(3, kDebugScripts, "byteAddress: far[%s:%d] = %d", seg2str(seg).c_str(), offset, *segmentAddress(seg, offset));
 		*pcPtr = pc;
 
-		// FIXME: WORKAROUND: Fixes Captain Navis (5299, 17715, 80) in Maldavith not allowing passage to the Tamnath Ruins through sail even if Muybridge is alive.
+		// FIXME: WORKAROUND: Fixes Captain Navis (5299, 17715, 80) in Maldavith not allowing passage to the Tamnath Ruins through sail even if Muybridge is dead.
 		if (seg == 130 && offset == 2862) {
 			warning("WORKAROUND: byteAddress: far");
 			Actor *boss = (Actor *)GameObject::objectAddress(32880);


Commit: 29c5f6e7494d46fa0b927507251d150b8b7879d6
    https://github.com/scummvm/scummvm/commit/29c5f6e7494d46fa0b927507251d150b8b7879d6
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-08-15T08:37:18+09:00

Commit Message:
SAGA2: Fix nullptr access in Sector iterators

Changed paths:
    engines/saga2/objects.cpp
    engines/saga2/path.cpp


diff --git a/engines/saga2/objects.cpp b/engines/saga2/objects.cpp
index b141ea20d0..bb949c917f 100644
--- a/engines/saga2/objects.cpp
+++ b/engines/saga2/objects.cpp
@@ -3379,6 +3379,10 @@ ObjectID SectorRegionObjectIterator::first(GameObject **obj) {
 
 	sectorCoords = minSector;
 	currentSector = searchWorld->getSector(sectorCoords.u, sectorCoords.v);
+
+	if (currentSector == nullptr)
+		return Nothing;
+
 	while (currentSector->childID == Nothing) {
 		if (++sectorCoords.v >= maxSector.v) {
 			sectorCoords.v = minSector.v;
@@ -3625,12 +3629,18 @@ ObjectID RegionalObjectIterator::first(GameObject **obj) {
 	ObjectID        currentObjectID;
 
 	currentObjectID = SectorRegionObjectIterator::first(&currentObject);
+
+	if (currentObjectID == Nothing)
+		return Nothing;
+
 	while (currentObjectID != Nothing
 	        &&  !inRegion(currentObject->getLocation())) {
 		currentObjectID = SectorRegionObjectIterator::next(&currentObject);
 	}
 
-	if (obj != nullptr) *obj = currentObject;
+	if (obj != nullptr)
+		*obj = currentObject;
+
 	return currentObjectID;
 }
 
diff --git a/engines/saga2/path.cpp b/engines/saga2/path.cpp
index fbe6650fd6..726dfe0a69 100644
--- a/engines/saga2/path.cpp
+++ b/engines/saga2/path.cpp
@@ -1463,7 +1463,7 @@ void PathRequest::initialize(void) {
 	        baseCoords.v
 	        + (searchCenter << kTileUVShift) * 2,
 	        0));
-	GameObject              *obj;
+	GameObject *obj = nullptr;
 
 	for (iter.first(&obj);
 	        obj != nullptr;
@@ -2497,7 +2497,7 @@ TilePoint selectNearbySite(
 	        baseCoords.v
 	        + (searchCenter << kTileUVShift) * 2,
 	        0));
-	GameObject              *obj;
+	GameObject *obj = nullptr;
 
 	for (iter.first(&obj);
 	        obj != nullptr;




More information about the Scummvm-git-logs mailing list