From 3b48d90f13159afc3b877929b63bea6a8467694c Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Mon, 4 Jan 2016 12:06:47 +0100 Subject: [PATCH] WAGE: Mark scene as dirty of some object was moved to/from it --- engines/wage/gui.h | 1 + engines/wage/wage.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/engines/wage/gui.h b/engines/wage/gui.h index cd918f7bd311..3c5660b4f2d5 100644 --- a/engines/wage/gui.h +++ b/engines/wage/gui.h @@ -72,6 +72,7 @@ class Gui { void mouseMove(int x, int y); Designed *getClickTarget(int x, int y); void drawInput(); + void setSceneDirty() { _sceneDirty = true; } private: void paintBorder(Graphics::Surface *g, Common::Rect &r, WindowType windowType); diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp index fa0061801427..6cf9e399412e 100644 --- a/engines/wage/wage.cpp +++ b/engines/wage/wage.cpp @@ -308,6 +308,18 @@ void WageEngine::onMove(Designed *what, Designed *from, Designed *to) { return; } + if (!_temporarilyHidden) { + assert(what); + assert(from); + assert(to); + debug(6, "move: %s, %s -> %s", what->_name.c_str(), from->_name.c_str(), to->_name.c_str()); + } + + if (from == currentScene || to == currentScene || + (what->_classType == CHR && ((Chr *)what)->_currentScene == currentScene) || + (what->_classType == OBJ && ((Obj *)what)->_currentScene == currentScene)) + _gui->setSceneDirty(); + if (what != player && what->_classType == CHR) { Chr *chr = (Chr *)what; if (to == _world->_storageScene) {