diff options
Diffstat (limited to 'engines/sludge/freeze.cpp')
-rw-r--r-- | engines/sludge/freeze.cpp | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/engines/sludge/freeze.cpp b/engines/sludge/freeze.cpp index 776a6f80a8..1bc2ad96f7 100644 --- a/engines/sludge/freeze.cpp +++ b/engines/sludge/freeze.cpp @@ -20,20 +20,21 @@ * */ #include "sludge/allfiles.h" +#include "sludge/backdrop.h" +#include "sludge/event.h" +#include "sludge/fonttext.h" +#include "sludge/freeze.h" +#include "sludge/graphics.h" #include "sludge/newfatal.h" +#include "sludge/objtypes.h" +#include "sludge/people.h" +#include "sludge/region.h" #include "sludge/sprites.h" #include "sludge/sprbanks.h" -#include "sludge/people.h" #include "sludge/sludge.h" #include "sludge/sludger.h" -#include "sludge/objtypes.h" -#include "sludge/region.h" -#include "sludge/backdrop.h" -#include "sludge/talk.h" -#include "sludge/fonttext.h" #include "sludge/statusba.h" -#include "sludge/freeze.h" -#include "sludge/graphics.h" +#include "sludge/talk.h" #include "sludge/zbuffer.h" namespace Sludge { @@ -42,8 +43,6 @@ extern OnScreenPerson *allPeople; extern ScreenRegion *allScreenRegions; extern ScreenRegion *overRegion; extern SpeechStruct *speech; -extern InputType input; -extern EventHandlers *currentEvents; extern PersonaAnimation *mouseCursorAnim; extern int mouseCursorFrameNum; @@ -109,11 +108,7 @@ bool GraphicsManager::freeze() { newFreezer->speech = speech; initSpeech(); - newFreezer->currentEvents = currentEvents; - currentEvents = new EventHandlers; - if (!checkNew(currentEvents)) - return false; - memset(currentEvents, 0, sizeof(EventHandlers)); + _vm->_evtMan->freeze(newFreezer); newFreezer->next = _frozenStuff; _frozenStuff = newFreezer; @@ -142,11 +137,11 @@ void GraphicsManager::unfreeze(bool killImage) { _cameraX = _frozenStuff->cameraX; _cameraY = _frozenStuff->cameraY; - input.mouseX = (int)(input.mouseX * _cameraZoom); - input.mouseY = (int)(input.mouseY * _cameraZoom); + _vm->_evtMan->mouseX() = (int)(_vm->_evtMan->mouseX() * _cameraZoom); + _vm->_evtMan->mouseY() = (int)(_vm->_evtMan->mouseY() * _cameraZoom); _cameraZoom = _frozenStuff->cameraZoom; - input.mouseX = (int)(input.mouseX / _cameraZoom); - input.mouseY = (int)(input.mouseY / _cameraZoom); + _vm->_evtMan->mouseX() = (int)(_vm->_evtMan->mouseX() / _cameraZoom); + _vm->_evtMan->mouseY() = (int)(_vm->_evtMan->mouseY() / _cameraZoom); killAllPeople(); allPeople = _frozenStuff->allPeople; @@ -184,8 +179,8 @@ void GraphicsManager::unfreeze(bool killImage) { restoreBarStuff(_frozenStuff->frozenStatus); - delete currentEvents; - currentEvents = _frozenStuff->currentEvents; + _vm->_evtMan->restore(_frozenStuff); + killAllSpeech(); delete speech; |