diff options
Diffstat (limited to 'lib/engine.cc')
| -rw-r--r-- | lib/engine.cc | 22 | 
1 files changed, 18 insertions, 4 deletions
| diff --git a/lib/engine.cc b/lib/engine.cc index 6792706..40426c1 100644 --- a/lib/engine.cc +++ b/lib/engine.cc @@ -10,7 +10,7 @@  bool mogltk::engine::inited = false, mogltk::engine::postsetuped = false;  bool mogltk::engine::appactive = false, mogltk::engine::cursorvisible = false, mogltk::engine::quitrequest = false; -int mogltk::engine::mx, mogltk::engine::my, mogltk::engine::mbuttons; +int mogltk::engine::mx, mogltk::engine::my, mogltk::engine::mz = 0, mogltk::engine::mbuttons;  int mogltk::engine::frames, mogltk::engine::locked = 0;  double mogltk::engine::curfps = -1;  Uint32 mogltk::engine::curticks; @@ -133,7 +133,7 @@ SDL_RWops * mogltk::engine::RWFromHandle(Handle * h) throw (GeneralException) {      return r;  } -void mogltk::engine::pollevents() { +void mogltk::engine::pollevents() throw (GeneralException) {      SDL_Event event;      bool hastoreturn = appactive; @@ -158,7 +158,9 @@ void mogltk::engine::pollevents() {  		updatemouse();  		return;  	    } -	SDL_WaitEvent(&event); +	if (!SDL_WaitEvent(&event)) { +	    throw GeneralException("Error polling for SDL Event"); +	}  	switch(event.type) {  	case SDL_ACTIVEEVENT:  	    switch (event.active.state) { @@ -205,7 +207,15 @@ void mogltk::engine::pollevents() {  	    break;  	case SDL_MOUSEBUTTONDOWN:  	case SDL_MOUSEBUTTONUP: -	    printm(M_INFO, String("Mouse button %02x ") + (event.button.state == SDL_PRESSED ? "pressed" : "released") + " at (%i, %i)\n", event.button.button, event.button.x, event.button.y); +	    printm(M_INFO, String().set("Mouse button %02x ", event.button.button) + String((event.button.state == SDL_PRESSED ? "pressed" : "released")) + " at (" + event.button.x + ", " + event.button.y + ")\n"); +	    if (event.button.state == SDL_PRESSED) { +		if (event.button.button == 4) { +		    mz--; +		} +		if (event.button.button == 5) { +		    mz++; +		} +	    }  	    break;  	case SDL_QUIT:  	    printm(M_INFO, "Quit requested\n"); @@ -254,6 +264,10 @@ int mogltk::engine::mouseY() {      return my;  } +int mogltk::engine::mouseZ() { +    return mz; +} +  int mogltk::engine::mousebuttons() {      return mbuttons;  } | 
