[Scummvm-git-logs] scummvm master -> 66400e7422ffe154b30e640fd26ababa4269a6f7

bluegr bluegr at gmail.com
Sun Feb 3 22:34:03 CET 2019


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

Summary:
66400e7422 SAGA: Fix potential crash when talking to Sist (bug #10365)


Commit: 66400e7422ffe154b30e640fd26ababa4269a6f7
    https://github.com/scummvm/scummvm/commit/66400e7422ffe154b30e640fd26ababa4269a6f7
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2019-02-03T23:33:59+02:00

Commit Message:
SAGA: Fix potential crash when talking to Sist (bug #10365)

When Rif puts on the rat disguise, he is swapped out for a
different actor. When he takes off the disguise, after reaching
Sist's office, the old actor is swapped back in again.

At that point, original Rif's actor will have a _lastZone pointer
which not only is for the wrong room, it was deleted when Rif in
disguise left the room.

To fix this, we also swap the actors's _lastZone pointers.

Changed paths:
    engines/saga/sfuncs.cpp


diff --git a/engines/saga/sfuncs.cpp b/engines/saga/sfuncs.cpp
index 6456dae..3200560 100644
--- a/engines/saga/sfuncs.cpp
+++ b/engines/saga/sfuncs.cpp
@@ -735,6 +735,7 @@ void Script::sfSwapActors(SCRIPTFUNC_PARAMS) {
 	ActorData *actor2 = _vm->_actor->getActor(actorId2);
 
 	SWAP(actor1->_location, actor2->_location);
+	SWAP(actor1->_lastZone, actor2->_lastZone);
 
 	if (actor1->_flags & kProtagonist) {
 		actor1->_flags &= ~kProtagonist;





More information about the Scummvm-git-logs mailing list