mirror of
https://github.com/glest/glest-source.git
synced 2025-08-21 07:31:21 +02:00
- added some logging when quitting a game
- another feeble attempt to fix windows game end crashes
This commit is contained in:
@@ -715,6 +715,7 @@ void Game::mouseDownLeft(int x, int y){
|
|||||||
networkManager.getGameNetworkInterface()->quitGame(true);
|
networkManager.getGameNetworkInterface()->quitGame(true);
|
||||||
}
|
}
|
||||||
quitGame();
|
quitGame();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
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__);
|
||||||
|
@@ -129,6 +129,8 @@ void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
|||||||
throw runtime_error("In [MainWindow::eventMouseDown] ERROR, program == NULL!");
|
throw runtime_error("In [MainWindow::eventMouseDown] ERROR, program == NULL!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
switch(mouseButton) {
|
switch(mouseButton) {
|
||||||
case mbLeft:
|
case mbLeft:
|
||||||
program->mouseDownLeft(vx, vy);
|
program->mouseDownLeft(vx, vy);
|
||||||
@@ -143,6 +145,8 @@ void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
ProgramState *programState = program->getState();
|
ProgramState *programState = program->getState();
|
||||||
if(programState != NULL) {
|
if(programState != NULL) {
|
||||||
switch(mouseButton) {
|
switch(mouseButton) {
|
||||||
@@ -158,10 +162,13 @@ void MainWindow::eventMouseDown(int x, int y, MouseButton mouseButton){
|
|||||||
default:
|
default:
|
||||||
break;
|
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){
|
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();
|
const Metrics &metrics = Metrics::getInstance();
|
||||||
int vx = metrics.toVirtualX(x);
|
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!");
|
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();
|
ProgramState *programState = program->getState();
|
||||||
|
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
if(programState != NULL) {
|
if(programState != NULL) {
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
switch(mouseButton) {
|
switch(mouseButton) {
|
||||||
case mbLeft:
|
case mbLeft:
|
||||||
programState->mouseUpLeft(vx, vy);
|
programState->mouseUpLeft(vx, vy);
|
||||||
@@ -187,10 +200,14 @@ void MainWindow::eventMouseUp(int x, int y, MouseButton mouseButton){
|
|||||||
default:
|
default:
|
||||||
break;
|
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();
|
const Metrics &metrics= Metrics::getInstance();
|
||||||
int vx = metrics.toVirtualX(x);
|
int vx = metrics.toVirtualX(x);
|
||||||
int vy = metrics.toVirtualY(getH() - y);
|
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!");
|
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();
|
ProgramState *programState = program->getState();
|
||||||
|
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
if(programState != NULL) {
|
if(programState != NULL) {
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
switch(mouseButton){
|
switch(mouseButton){
|
||||||
case mbLeft:
|
case mbLeft:
|
||||||
programState->mouseDoubleClickLeft(vx, vy);
|
programState->mouseDoubleClickLeft(vx, vy);
|
||||||
@@ -215,7 +238,10 @@ void MainWindow::eventMouseDoubleClick(int x, int y, MouseButton mouseButton){
|
|||||||
default:
|
default:
|
||||||
break;
|
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){
|
void MainWindow::eventMouseMove(int x, int y, const MouseState *ms){
|
||||||
|
@@ -128,7 +128,9 @@ bool Window::handleEvent() {
|
|||||||
codeLocation = "f";
|
codeLocation = "f";
|
||||||
|
|
||||||
if(global_window) {
|
if(global_window) {
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
global_window->handleMouseDown(event);
|
global_window->handleMouseDown(event);
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SDL_MOUSEBUTTONUP: {
|
case SDL_MOUSEBUTTONUP: {
|
||||||
@@ -484,8 +486,12 @@ void Window::handleMouseDown(SDL_Event event) {
|
|||||||
static const Uint32 DOUBLECLICKTIME = 500;
|
static const Uint32 DOUBLECLICKTIME = 500;
|
||||||
static const int DOUBLECLICKDELTA = 5;
|
static const int DOUBLECLICKDELTA = 5;
|
||||||
|
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
MouseButton button = getMouseButton(event.button.button);
|
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
|
// windows implementation uses 120 for the resolution of a standard mouse
|
||||||
// wheel notch. However, newer mice have finer resolutions. I dunno if SDL
|
// 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
|
// 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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
Uint32 ticks = SDL_GetTicks();
|
Uint32 ticks = SDL_GetTicks();
|
||||||
int n = (int) button;
|
int n = (int) button;
|
||||||
|
|
||||||
assert(n >= 0 && n < mbCount);
|
assert(n >= 0 && n < mbCount);
|
||||||
if(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
|
if(ticks - lastMouseDown[n] < DOUBLECLICKTIME
|
||||||
&& abs(lastMouseX[n] - event.button.x) < DOUBLECLICKDELTA
|
&& abs(lastMouseX[n] - event.button.x) < DOUBLECLICKDELTA
|
||||||
&& abs(lastMouseY[n] - event.button.y) < 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);
|
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);
|
eventMouseDoubleClick(event.button.x, event.button.y, button);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
eventMouseDown(event.button.x, event.button.y, button);
|
eventMouseDown(event.button.x, event.button.y, button);
|
||||||
}
|
}
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
lastMouseDown[n] = ticks;
|
lastMouseDown[n] = ticks;
|
||||||
lastMouseX[n] = event.button.x;
|
lastMouseX[n] = event.button.x;
|
||||||
lastMouseY[n] = event.button.y;
|
lastMouseY[n] = event.button.y;
|
||||||
|
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user