[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