aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2016-01-31 14:49:52 +0100
committerMartin Kiewitz2016-01-31 14:49:52 +0100
commit1548f2cebf49b52505b17c4057ad8048ce6c9baf (patch)
treea3aa71a324b046ae44258f271801669b3bba2c97
parent121415ef1f391dea223370226e8ee8abd9c5329f (diff)
downloadscummvm-rg350-1548f2cebf49b52505b17c4057ad8048ce6c9baf.tar.gz
scummvm-rg350-1548f2cebf49b52505b17c4057ad8048ce6c9baf.tar.bz2
scummvm-rg350-1548f2cebf49b52505b17c4057ad8048ce6c9baf.zip
AGI: revert "motion type check in objectstop AGI3"
Caused issues with mouse support (that AGI on DOS never had). e.g. KQ1/KQ2 on end of mouse click move Graham automatically falls into water. The check was added in AGI3 only, but maybe non-DOS interpreters had it before. Or maybe mouse support was actually implemented differently. Needs more investigating.
-rw-r--r--engines/agi/motion.cpp10
-rw-r--r--engines/agi/view.h2
2 files changed, 4 insertions, 8 deletions
diff --git a/engines/agi/motion.cpp b/engines/agi/motion.cpp
index a7a1b91788..76f0f91f51 100644
--- a/engines/agi/motion.cpp
+++ b/engines/agi/motion.cpp
@@ -210,13 +210,9 @@ void AgiEngine::inDestination(ScreenObjEntry *screenObj) {
void AgiEngine::motionMoveObjStop(ScreenObjEntry *screenObj) {
screenObj->stepSize = screenObj->move_stepSize;
- uint16 agiVersion = getVersion();
- if (agiVersion >= 0x3000) {
- // this check was only done for AGI3
- if (screenObj->motionType != kMotionEgo) {
- setflag(screenObj->move_flag, true);
- }
- } else {
+ // This check for motionType was only done in AGI3.
+ // But we use this motion type for mouse movement, so we need to check in any case, otherwise it will cause glitches.
+ if (screenObj->motionType != kMotionEgo) {
setflag(screenObj->move_flag, true);
}
diff --git a/engines/agi/view.h b/engines/agi/view.h
index 3afe3dc84b..428db1d6ad 100644
--- a/engines/agi/view.h
+++ b/engines/agi/view.h
@@ -58,7 +58,7 @@ enum MotionType {
kMotionWander = 1,
kMotionFollowEgo = 2,
kMotionMoveObj = 3,
- kMotionEgo = 4
+ kMotionEgo = 4 // used by us for mouse movement only?
};
enum CycleType {