bugfixes to correct segfault

This commit is contained in:
Mark Vejvoda 2010-06-17 22:09:25 +00:00
parent 2015843d69
commit a287422930
6 changed files with 9 additions and 61 deletions

View File

@ -26,7 +26,7 @@ using namespace Shared::Platform;
namespace Glest{ namespace Game{
const string mailString= "contact_game@glest.org";
const string glestVersionString= "v3.3.5-beta7.2";
const string glestVersionString= "v3.3.5-beta7.3";
string getCrashDumpFileName(){
return "glest" + glestVersionString + ".dmp";

View File

@ -48,7 +48,6 @@ Game::Game(Program *program, const GameSettings *gameSettings):
{
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
sdlEventsThread = NULL;
originalDisplayMsgCallback = NULL;
thisGamePtr = this;
@ -80,10 +79,6 @@ Game::Game(Program *program, const GameSettings *gameSettings):
Game::~Game(){
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
BaseThread::shutdownAndWait(sdlEventsThread);
delete sdlEventsThread;
sdlEventsThread = NULL;
Logger &logger= Logger::getInstance();
Renderer &renderer= Renderer::getInstance();
@ -130,9 +125,6 @@ void Game::load(){
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] gameSettings = [%s]\n",__FILE__,__FUNCTION__,__LINE__,this->gameSettings.toString().c_str());
sdlEventsThread = new PumpSDLEventsTaskThread();
sdlEventsThread->start();
Logger &logger= Logger::getInstance();
string mapName= gameSettings.getMap();
string tilesetName= gameSettings.getTileset();
@ -440,12 +432,6 @@ void Game::init()
logger.add("Launching game");
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n\n\n=-=-=-=-=-=-=-=-=-=-= STARTING GAME =-=-=-=-=-=-=-=-=-=-=\n\n",__FILE__,__FUNCTION__,__LINE__);
BaseThread::shutdownAndWait(sdlEventsThread);
delete sdlEventsThread;
sdlEventsThread = NULL;
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
}
@ -1210,7 +1196,8 @@ void Game::render2d(){
SurfaceCell *sc= map->getSurfaceCell(mapPos.x, mapPos.y);
Object *o= sc->getObject();
bool isExplored = (sc->isExplored(thisTeamIndex) && o!=NULL);
bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL);
//bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL);
bool isVisible = true;
if(isExplored == true && isVisible == true) {
visibleObjectCount++;
}

View File

@ -22,7 +22,7 @@
#include "chat_manager.h"
#include "script_manager.h"
#include "game_settings.h"
#include "simple_threads.h"
//#include "simple_threads.h"
#include "network_interface.h"
using std::vector;
@ -84,8 +84,6 @@ private:
time_t lastRenderLog2d;
DisplayMessageFunction originalDisplayMsgCallback;
PumpSDLEventsTaskThread *sdlEventsThread;
public:
Game(Program *program, const GameSettings *gameSettings);
~Game();

View File

@ -1304,7 +1304,9 @@ void Renderer::renderObjects(const int renderFps, const int worldFrameCount) {
SurfaceCell *sc= map->getSurfaceCell(mapPos.x, mapPos.y);
Object *o= sc->getObject();
bool isExplored = (sc->isExplored(thisTeamIndex) && o!=NULL);
bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL);
//bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL);
bool isVisible = true;
if(isExplored == true && isVisible == true) {
/*
if(renderFps >= 0 && renderFps < MIN_RENDER_FPS_ALLOWED) {
@ -2826,7 +2828,8 @@ void Renderer::renderObjectsFast() {
SurfaceCell *sc= map->getSurfaceCell(mapPos);
Object *o= sc->getObject();
bool isExplored = (sc->isExplored(thisTeamIndex) && o!=NULL);
bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL);
//bool isVisible = (sc->isVisible(thisTeamIndex) && o!=NULL);
bool isVisible = true;
if(isExplored == true && isVisible == true) {
const Model *objModel= sc->getObject()->getModel();

View File

@ -71,13 +71,6 @@ public:
bool getTaskSignalled();
};
class PumpSDLEventsTaskThread : public BaseThread
{
public:
PumpSDLEventsTaskThread();
virtual void execute();
};
}}//end namespace
#endif

View File

@ -155,37 +155,4 @@ bool SimpleTaskThread::getTaskSignalled() {
return retval;
}
PumpSDLEventsTaskThread::PumpSDLEventsTaskThread() : BaseThread() {
}
void PumpSDLEventsTaskThread::execute() {
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
setRunningStatus(true);
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"SDL_PumpEvents thread is running\n");
try {
for(;getQuitStatus() == false;) {
SDL_PumpEvents();
sleep(25);
}
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
}
catch(const exception &ex) {
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] error [%s]\n",__FILE__,__FUNCTION__,__LINE__,ex.what());
setRunningStatus(false);
}
catch(...) {
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] unknown error\n",__FILE__,__FUNCTION__,__LINE__);
setRunningStatus(false);
}
setRunningStatus(false);
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"SDL_PumpEvents thread is exiting\n");
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
}
}}//end namespace