aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-07-12 12:16:17 +0000
committerMax Horn2003-07-12 12:16:17 +0000
commitf383dc24c4aa17fd6a1b8c922f360db5baaf6c64 (patch)
treeced5fc0b0b179c14c4177f5b15a3284e31fbafbc
parent1e0b7aaa16d6caeca1d67f383297f7ed619348f9 (diff)
downloadscummvm-rg350-f383dc24c4aa17fd6a1b8c922f360db5baaf6c64.tar.gz
scummvm-rg350-f383dc24c4aa17fd6a1b8c922f360db5baaf6c64.tar.bz2
scummvm-rg350-f383dc24c4aa17fd6a1b8c922f360db5baaf6c64.zip
fix existing ego actor change detection code
svn-id: r8941
-rw-r--r--scumm/scummvm.cpp14
-rw-r--r--scumm/verbs.cpp12
2 files changed, 8 insertions, 18 deletions
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index d82c813266..9e89293c0d 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -1034,6 +1034,12 @@ int Scumm::scummLoop(int delta) {
_talkDelay = 0;
}
+ // Record the current ego actor before any scripts (including input scripts)
+ // get a chance to run.
+ int oldEgo = 0;
+ if (VAR_EGO != 0xFF)
+ oldEgo = VAR(VAR_EGO);
+
processKbd();
if (_features & GF_NEW_CAMERA) {
@@ -1135,11 +1141,6 @@ load_game:
_lastSaveTime = _system->get_msecs();
}
- int oldEgo = 0;
-
- if (VAR_EGO != 0xFF)
- oldEgo = VAR(VAR_EGO);
-
if (_completeScreenRedraw) {
_completeScreenRedraw = false;
gdi.clearCharsetMask();
@@ -1221,8 +1222,9 @@ load_game:
if (_version <= 2) {
if (oldEgo != VAR(VAR_EGO)) {
- // FIXME: Reset and redraw the sentence line
+ // FIXME/TODO: Reset and redraw the sentence line
oldEgo = VAR(VAR_EGO);
+ _inventoryOffset = 0; // TODO: Record the _inventoryOffset for each ego actor?
redrawV2Inventory();
}
checkV2MouseOver(_mouse);
diff --git a/scumm/verbs.cpp b/scumm/verbs.cpp
index a0aa86cf40..ea9d361e81 100644
--- a/scumm/verbs.cpp
+++ b/scumm/verbs.cpp
@@ -27,8 +27,6 @@
#include "scumm.h"
#include "verbs.h"
-int egoVar; // TODO: Put this in V2 class?
-
enum {
kInventoryUpArrow = 4,
kInventoryDownArrow = 5,
@@ -158,11 +156,6 @@ void Scumm::checkV2Inventory(int x, int y) {
if ((y < 34) || !(_mouseButStat & MBS_LEFT_CLICK))
return;
- if (_scummVars[VAR_EGO] != egoVar) {
- egoVar = _scummVars[VAR_EGO];
- _inventoryOffset = 0;
- }
-
if (v2_mouseover_boxes[kInventoryUpArrow].rect.contains(x, y)) {
_inventoryOffset -= 2;
if (_inventoryOffset < 0)
@@ -209,11 +202,6 @@ void Scumm::redrawV2Inventory() {
_string[1].charset = 1;
- if (_scummVars[VAR_EGO] != egoVar) {
- egoVar = _scummVars[VAR_EGO];
- _inventoryOffset = 0;
- }
-
max_inv = getInventoryCount(_scummVars[VAR_EGO]) - _inventoryOffset;
if (max_inv > 4)
max_inv = 4;