[Scummvm-git-logs] scummvm master -> dfd9c393c281e31058c99bc33e209cdd2b8ee84e

a-yyg 76591232+a-yyg at users.noreply.github.com
Thu Aug 12 14:03:53 UTC 2021


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

Summary:
ecf307886b SAGA2: Extend teleportOnClick
50ba1c613d SAGA2: Implement Invisibility command
722d6e960f SAGA2: Use correct arguments for implementAction
dfd9c393c2 SAGA2: Fix buffer overflow in buildRipTables


Commit: ecf307886b1b0ad94039cc73b81d74b805f499d9
    https://github.com/scummvm/scummvm/commit/ecf307886b1b0ad94039cc73b81d74b805f499d9
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-08-12T22:57:33+09:00

Commit Message:
SAGA2: Extend teleportOnClick

Changed paths:
    engines/saga2/tilemode.cpp


diff --git a/engines/saga2/tilemode.cpp b/engines/saga2/tilemode.cpp
index bab07f3d29..2cf01e95c1 100644
--- a/engines/saga2/tilemode.cpp
+++ b/engines/saga2/tilemode.cpp
@@ -24,6 +24,8 @@
  *   (c) 1993-1996 The Wyrmkeep Entertainment Co.
  */
 
+#include "common/events.h"
+
 #include "saga2/saga2.h"
 #include "saga2/tilemode.h"
 #include "saga2/tile.h"
@@ -1041,7 +1043,16 @@ static APPFUNC(cmdClickTileMap) {
 		selectedObject = pickedObject;
 #endif
 		if (g_vm->_teleportOnClick) {
-			getCenterActor()->setLocation(walkToPos);
+			if (g_vm->getEventManager()->getModifierState() & Common::KBD_SHIFT) {
+				TilePoint pt = walkToPos;
+
+				for (ObjectID pid = ActorBaseID; pid < ActorBaseID + kPlayerActors; ++pid) {
+					Actor *p = (Actor *)GameObject::objectAddress(pid);
+					p->setLocation(walkToPos);
+				}
+			} else {
+				getCenterActor()->setLocation(walkToPos);
+			}
 		} else if (isActor(pickedObject)) {
 			PlayerActorID       playerID;
 


Commit: 50ba1c613d8d5541f99542f612ea3b163cd811c6
    https://github.com/scummvm/scummvm/commit/50ba1c613d8d5541f99542f612ea3b163cd811c6
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-08-12T22:57:33+09:00

Commit Message:
SAGA2: Implement Invisibility command

Changed paths:
    engines/saga2/console.cpp
    engines/saga2/console.h


diff --git a/engines/saga2/console.cpp b/engines/saga2/console.cpp
index 202ef4d2e2..ca7f8bb984 100644
--- a/engines/saga2/console.cpp
+++ b/engines/saga2/console.cpp
@@ -90,6 +90,8 @@ Console::Console(Saga2Engine *vm) : GUI::Debugger() {
 	registerCmd("play_music", WRAP_METHOD(Console, cmdPlayMusic));
 
 	registerCmd("play_voice", WRAP_METHOD(Console, cmdPlayVoice));
+
+	registerCmd("invis", WRAP_METHOD(Console, cmdInvisibility));
 }
 
 Console::~Console() {
@@ -437,4 +439,21 @@ bool Console::cmdPlayVoice(int argc, const char **argv) {
 	return true;
 }
 
+bool Console::cmdInvisibility(int argc, const char **argv) {
+	if (argc != 2)
+		debugPrintf("Usage: %s <1/0>\n", argv[0]);
+	else {
+		bool inv = atoi(argv[1]);
+		for (ObjectID id = ActorBaseID; id < ActorBaseID + kPlayerActors; ++id) {
+			Actor *p = (Actor *)GameObject::objectAddress(id);
+			if (inv)
+				p->setEffect(actorInvisible, true);
+			else
+				p->setEffect(actorInvisible, false);
+		}
+	}
+
+	return true;
+}
+
 }
diff --git a/engines/saga2/console.h b/engines/saga2/console.h
index 560f7152a1..29ac930538 100644
--- a/engines/saga2/console.h
+++ b/engines/saga2/console.h
@@ -109,6 +109,9 @@ private:
 
     // Input: <Voice ID>. Plays a voice track.
 	bool cmdPlayVoice(int argc, const char **argv);
+
+	// Input: <1/0>. Sets the invisibility effect on the party.
+	bool cmdInvisibility(int argc, const char **argv);
 };
 
 }


Commit: 722d6e960f85b520abcc2b53df19bf6bbe011772
    https://github.com/scummvm/scummvm/commit/722d6e960f85b520abcc2b53df19bf6bbe011772
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-08-12T22:57:33+09:00

Commit Message:
SAGA2: Use correct arguments for implementAction

Changed paths:
    engines/saga2/motion.cpp


diff --git a/engines/saga2/motion.cpp b/engines/saga2/motion.cpp
index 948086f2c6..7254415a18 100644
--- a/engines/saga2/motion.cpp
+++ b/engines/saga2/motion.cpp
@@ -3541,7 +3541,7 @@ void MotionTask::castSpellAction(void) {
 			if (spellObj) {
 				if (flags & TAGTarg) {
 					assert(targetTAG->_data.itemType == activeTypeInstance);
-					spellObj->implementAction(spellObj->getSpellID(), a->thisID(), targetTAG->thisID());
+					spellObj->implementAction(spellObj->getSpellID(), a->thisID(), targetTAG);
 				} else if (flags & LocTarg) {
 					spellObj->implementAction(spellObj->getSpellID(), a->thisID(), targetLoc);
 				} else if (targetObj) {


Commit: dfd9c393c281e31058c99bc33e209cdd2b8ee84e
    https://github.com/scummvm/scummvm/commit/dfd9c393c281e31058c99bc33e209cdd2b8ee84e
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-08-12T22:57:33+09:00

Commit Message:
SAGA2: Fix buffer overflow in buildRipTables

Changed paths:
    engines/saga2/tile.cpp


diff --git a/engines/saga2/tile.cpp b/engines/saga2/tile.cpp
index 1dd15291ce..43698d804d 100644
--- a/engines/saga2/tile.cpp
+++ b/engines/saga2/tile.cpp
@@ -2742,10 +2742,10 @@ void buildRipTables(void) {
 		//  If rip table has a valid metatile, remove that meta tile's
 		//  reference to its rip table
 		if (ripTableList[j].metaID != NoMetaTile) {
-			MetaTile    *rip_mt =   MetaTile::metaTileAddress(
-			                        ripTableList[j].metaID);
+			MetaTileID ripID = ripTableList[j].metaID;
+			MetaTile *ripMt =   MetaTile::metaTileAddress(ripID);
 
-			RipTableID  &rt = rip_mt->ripTableID(currentMapNum);
+			RipTableID &rt = ripMt->ripTableID(ripID.map);
 
 			//  Assign -1 to the meta tile's rip table ID
 			if (RipTable::ripTableAddress(rt) == &ripTableList[j])




More information about the Scummvm-git-logs mailing list