- added some logging when quitting a game
- another feeble attempt to fix windows game end crashes
This commit is contained in:
parent
5686e8657c
commit
6d3f6dcaf4
|
@ -715,6 +715,7 @@ void Game::mouseDownLeft(int x, int y){
|
|||
networkManager.getGameNetworkInterface()->quitGame(true);
|
||||
}
|
||||
quitGame();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
|
|
@ -129,6 +129,8 @@ void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
|||
throw runtime_error("In [MainWindow::eventMouseDown] ERROR, program == NULL!");
|
||||
}
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
switch(mouseButton) {
|
||||
case mbLeft:
|
||||
program->mouseDownLeft(vx, vy);
|
||||
|
@ -143,6 +145,8 @@ void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
|||
break;
|
||||
}
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
ProgramState *programState = program->getState();
|
||||
if(programState != NULL) {
|
||||
switch(mouseButton) {
|
||||
|
@ -158,10 +162,13 @@ void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
|||
default:
|
||||
break;
|
||||
}
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
|
||||
void MainWindow::eventMouseUp(int x, int y, MouseButton mouseButton){
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
const Metrics &metrics = Metrics::getInstance();
|
||||
int vx = metrics.toVirtualX(x);
|
||||
|
@ -171,9 +178,15 @@ void MainWindow::eventMouseUp(int x, int y, MouseButton mouseButton){
|
|||
throw runtime_error("In [MainWindow::eventMouseUp] ERROR, program == NULL!");
|
||||
}
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
ProgramState *programState = program->getState();
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
if(programState != NULL) {
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
switch(mouseButton) {
|
||||
case mbLeft:
|
||||
programState->mouseUpLeft(vx, vy);
|
||||
|
@ -187,10 +200,14 @@ void MainWindow::eventMouseUp(int x, int y, MouseButton mouseButton){
|
|||
default:
|
||||
break;
|
||||
}
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
|
||||
void MainWindow::eventMouseDoubleClick(int x, int y, MouseButton mouseButton){
|
||||
void MainWindow::eventMouseDoubleClick(int x, int y, MouseButton mouseButton) {
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
const Metrics &metrics= Metrics::getInstance();
|
||||
int vx = metrics.toVirtualX(x);
|
||||
int vy = metrics.toVirtualY(getH() - y);
|
||||
|
@ -199,9 +216,15 @@ void MainWindow::eventMouseDoubleClick(int x, int y, MouseButton mouseButton){
|
|||
throw runtime_error("In [MainWindow::eventMouseDoubleClick] ERROR, program == NULL!");
|
||||
}
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
ProgramState *programState = program->getState();
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
if(programState != NULL) {
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
switch(mouseButton){
|
||||
case mbLeft:
|
||||
programState->mouseDoubleClickLeft(vx, vy);
|
||||
|
@ -215,7 +238,10 @@ void MainWindow::eventMouseDoubleClick(int x, int y, MouseButton mouseButton){
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
|
||||
void MainWindow::eventMouseMove(int x, int y, const MouseState *ms){
|
||||
|
|
|
@ -128,7 +128,9 @@ bool Window::handleEvent() {
|
|||
codeLocation = "f";
|
||||
|
||||
if(global_window) {
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
global_window->handleMouseDown(event);
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
break;
|
||||
case SDL_MOUSEBUTTONUP: {
|
||||
|
@ -484,8 +486,12 @@ void Window::handleMouseDown(SDL_Event event) {
|
|||
static const Uint32 DOUBLECLICKTIME = 500;
|
||||
static const int DOUBLECLICKDELTA = 5;
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
MouseButton button = getMouseButton(event.button.button);
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
// windows implementation uses 120 for the resolution of a standard mouse
|
||||
// wheel notch. However, newer mice have finer resolutions. I dunno if SDL
|
||||
// handles those, but for now we're going to say that each mouse wheel
|
||||
|
@ -500,23 +506,35 @@ void Window::handleMouseDown(SDL_Event event) {
|
|||
return;
|
||||
}
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
Uint32 ticks = SDL_GetTicks();
|
||||
int n = (int) button;
|
||||
|
||||
assert(n >= 0 && n < mbCount);
|
||||
if(n >= 0 && n < mbCount) {
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
if(ticks - lastMouseDown[n] < DOUBLECLICKTIME
|
||||
&& abs(lastMouseX[n] - event.button.x) < DOUBLECLICKDELTA
|
||||
&& abs(lastMouseY[n] - event.button.y) < DOUBLECLICKDELTA) {
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
eventMouseDown(event.button.x, event.button.y, button);
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
eventMouseDoubleClick(event.button.x, event.button.y, button);
|
||||
}
|
||||
else {
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
eventMouseDown(event.button.x, event.button.y, button);
|
||||
}
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
|
||||
lastMouseDown[n] = ticks;
|
||||
lastMouseX[n] = event.button.x;
|
||||
lastMouseY[n] = event.button.y;
|
||||
|
||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user