diff options
author | pixel <pixel> | 2003-10-20 16:21:24 +0000 |
---|---|---|
committer | pixel <pixel> | 2003-10-20 16:21:24 +0000 |
commit | d7575bef1e530eac004c973b0384a12561f0bb8b (patch) | |
tree | 9708064eeaa48be1dc4e871cc9aa0241ca32c15f /lib/engine.cc | |
parent | 5b14b34d6e11611fb395e3cffaf888bcca0f3661 (diff) |
Commit of the month
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; } |