diff options
Diffstat (limited to 'engines/sludge/main_loop.cpp')
| -rw-r--r-- | engines/sludge/main_loop.cpp | 100 | 
1 files changed, 6 insertions, 94 deletions
diff --git a/engines/sludge/main_loop.cpp b/engines/sludge/main_loop.cpp index 1c5beb8ab5..a4851d76b9 100644 --- a/engines/sludge/main_loop.cpp +++ b/engines/sludge/main_loop.cpp @@ -22,13 +22,12 @@  #include "common/config-manager.h"  #include "common/debug.h" -#include "common/events.h" -#include "common/keyboard.h"  #include "graphics/surface.h"  #include "sludge/allfiles.h"  #include "sludge/backdrop.h" +#include "sludge/event.h"  #include "sludge/floor.h"  #include "sludge/graphics.h"  #include "sludge/helpers.h" @@ -52,98 +51,10 @@ namespace Sludge {  HWND hMainWindow = NULL; -int realWinWidth = 640, realWinHeight = 480; - -extern InputType input;  extern VariableStack *noStack;  int dialogValue = 0; -int weAreDoneSoQuit; - -void checkInput() { -	int winWidth = g_system->getWidth(); -	int winHeight = g_system->getHeight(); -	float cameraZoom = g_sludge->_gfxMan->getCamZoom(); -#if 0 -	static bool fakeRightclick = false; -#endif -	Common::Event event; - -	/* Check for events */ -	while (g_system->getEventManager()->pollEvent(event)) { -		switch (event.type) { -#if 0 -			case SDL_VIDEORESIZE: -				realWinWidth = event.resize.w; -				realWinHeight = event.resize.h; -				setGraphicsWindow(false, true, true); -				break; -#endif -			case Common::EVENT_MOUSEMOVE: -				input.justMoved = true; -				input.mouseX = event.mouse.x * ((float)winWidth / cameraZoom) / realWinWidth; -				input.mouseY = event.mouse.y * ((float)winHeight / cameraZoom) / realWinHeight; -				break; - -			case Common::EVENT_LBUTTONDOWN: -				input.leftClick = true; -				input.mouseX = event.mouse.x * ((float)winWidth / cameraZoom) / realWinWidth; -				input.mouseY = event.mouse.y * ((float)winHeight / cameraZoom) / realWinHeight; -#if 0 -				if (SDL_GetModState() & KMOD_CTRL) { -					input.rightClick = true; -					fakeRightclick = true; -				} else { -					input.leftClick = true; -					fakeRightclick = false; -				} -#endif -				break; - -			case Common::EVENT_RBUTTONDOWN: -				input.rightClick = true; -				input.mouseX = event.mouse.x * ((float)winWidth / cameraZoom) / realWinWidth; -				input.mouseY = event.mouse.y * ((float)winHeight / cameraZoom) / realWinHeight; -				break; - -			case Common::EVENT_LBUTTONUP: -				input.leftRelease = true; -				input.mouseX = event.mouse.x * ((float)winWidth / cameraZoom) / realWinWidth; -				input.mouseY = event.mouse.y * ((float)winHeight / cameraZoom) / realWinHeight; -				break; - -			case Common::EVENT_RBUTTONUP: -				input.rightRelease = true; -				input.mouseX = event.mouse.x * ((float)winWidth / cameraZoom) / realWinWidth; -				input.mouseY = event.mouse.y * ((float)winHeight / cameraZoom) / realWinHeight; -				break; - -			case Common::EVENT_KEYDOWN: -				switch (event.kbd.keycode) { - -					case Common::KEYCODE_BACKSPACE: -						// fall through -					case Common::KEYCODE_DELETE: -						input.keyPressed = Common::KEYCODE_DELETE; -						break; -					default: -						input.keyPressed = event.kbd.keycode; -						break; -				} -				break; - -			case Common::EVENT_QUIT: -				weAreDoneSoQuit = 1; -				// TODO: if reallyWantToQuit, popup a message box to confirm -				break; - -			default: -				break; -		} -	} -} -  int main_loop(const char *filename) {  	if (!initSludge(filename)) { @@ -173,11 +84,12 @@ int main_loop(const char *filename) {  	g_sludge->_timer.init(); -	weAreDoneSoQuit = 0; -	while (!weAreDoneSoQuit) { -		checkInput(); +	while (!g_sludge->_evtMan->quit()) { +		g_sludge->_evtMan->checkInput();  		walkAllPeople(); -		handleInput(); +		if (g_sludge->_evtMan->handleInput()) { +			runSludge(); +		}  		sludgeDisplay();  		handleSoundLists();  		g_sludge->_timer.waitFrame();  | 
