- added screenshot file format to options menu

- more cleanup from things discovered with valgrind.
- added an environment variable to use with openal so it is possible to specify which sound device to use if needed down the road
This commit is contained in:
Mark Vejvoda
2011-04-02 21:17:17 +00:00
parent e4725de471
commit cf706491e1
11 changed files with 84 additions and 21 deletions

View File

@@ -776,6 +776,8 @@ void Game::init(bool initForPreviewOnly)
logger.add("Launching game");
}
logger.setCancelLoadingEnabled(false);
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"================ STARTING GAME ================\n");
if(SystemFlags::getSystemSettingType(SystemFlags::debugPathFinder).enabled) SystemFlags::OutputDebug(SystemFlags::debugPathFinder,"================ STARTING GAME ================\n");
if(SystemFlags::getSystemSettingType(SystemFlags::debugPathFinder).enabled) SystemFlags::OutputDebug(SystemFlags::debugPathFinder,"PathFinderType: %s\n", (getGameSettings()->getPathFinderType() ? "RoutePlanner" : "PathFinder"));

View File

@@ -41,6 +41,9 @@
// For gcc backtrace on crash!
#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__FreeBSD__) && !defined(BSD)
//#include <mcheck.h>
#include <execinfo.h>
#include <cxxabi.h>
#include <signal.h>
@@ -2253,6 +2256,14 @@ int glestMain(int argc, char** argv) {
}
int glestMainWrapper(int argc, char** argv) {
#if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__FreeBSD__) && !defined(BSD)
//#ifdef DEBUG
//printf("MTRACE will be called...\n");
//mtrace ();
//#endif
#endif
#ifdef WIN32_STACK_TRACE
__try {
#endif

View File

@@ -243,6 +243,22 @@ MenuStateOptions::MenuStateOptions(Program *program, MainMenu *mainMenu):
currentLine-=30;
// end
// Screenshot type flag
labelScreenShotType.registerGraphicComponent(containerName,"labelScreenShotType");
labelScreenShotType.init(currentLabelStart ,currentLine);
labelScreenShotType.setText(lang.get("ScreenShotFileType"));
listBoxScreenShotType.registerGraphicComponent(containerName,"listBoxScreenShotType");
listBoxScreenShotType.init(currentColumnStart ,currentLine, 80 );
listBoxScreenShotType.pushBackItem("bmp");
listBoxScreenShotType.pushBackItem("jpg");
listBoxScreenShotType.pushBackItem("png");
listBoxScreenShotType.pushBackItem("tga");
listBoxScreenShotType.setSelectedItem(config.getString("ScreenShotFileType","png"));
currentLine-=30;
// end
//////////////////////////////////////////////////////////////////
///////// RIGHT SIDE
//////////////////////////////////////////////////////////////////
@@ -586,6 +602,8 @@ void MenuStateOptions::mouseClick(int x, int y, MouseButton mouseButton){
checkBoxEnablePrivacy.mouseClick(x, y);
checkBoxEnableTextureCompression.mouseClick(x, y);
listBoxScreenShotType.mouseClick(x, y);
}
}
@@ -625,6 +643,8 @@ void MenuStateOptions::mouseMove(int x, int y, const MouseState *ms){
checkBoxEnablePrivacy.mouseMove(x, y);
checkBoxEnableTextureCompression.mouseMove(x, y);
listBoxScreenShotType.mouseMove(x, y);
}
void MenuStateOptions::keyDown(char key){
@@ -746,6 +766,9 @@ void MenuStateOptions::render(){
renderer.renderLabel(&labelEnableTextureCompression);
renderer.renderCheckBox(&checkBoxEnableTextureCompression);
renderer.renderLabel(&labelScreenShotType);
renderer.renderListBox(&listBoxScreenShotType);
}
if(program != NULL) program->renderProgramMsgBox();
@@ -792,6 +815,8 @@ void MenuStateOptions::saveConfig(){
config.setBool("EnableTextureCompression", checkBoxEnableTextureCompression.getValue());
config.setString("ScreenShotFileType", listBoxScreenShotType.getSelectedItem());
string currentResolution=config.getString("ScreenWidth")+"x"+config.getString("ScreenHeight");
string selectedResolution=listBoxScreenModes.getSelectedItem();
if(currentResolution!=selectedResolution){

View File

@@ -108,6 +108,10 @@ private:
GraphicLabel labelEnableTextureCompression;
GraphicCheckBox checkBoxEnableTextureCompression;
GraphicLabel labelScreenShotType;
GraphicListBox listBoxScreenShotType;
public:
MenuStateOptions(Program *program, MainMenu *mainMenu);

View File

@@ -30,7 +30,7 @@ protected:
public:
ContextGl();
virtual ~ContextGl(){}
virtual ~ContextGl();
virtual void init();
virtual void end();

View File

@@ -35,6 +35,10 @@ void ContextGl::init(){
pcgl.init(colorBits, depthBits, stencilBits, (hardware_acceleration != 0), (fullscreen_anti_aliasing != 0));
}
ContextGl::~ContextGl() {
end();
}
void ContextGl::end() {
pcgl.end();
}

View File

@@ -78,6 +78,8 @@
LIBSPEC void parserootdesc(const char * buffer, int bufsize, struct IGDdatas * data)
{
struct xmlparser parser;
memset(&parser,0,sizeof(parser));
/* xmlparser object */
parser.xmlstart = buffer;
parser.xmlsize = bufsize;

View File

@@ -42,6 +42,7 @@ ParseNameValue(const char * buffer, int bufsize,
struct NameValueParserData * data)
{
struct xmlparser parser;
memset(&parser,0,sizeof(parser));
LIST_INIT(&(data->head));
/* init xmlparser object */
parser.xmlstart = buffer;

View File

@@ -38,21 +38,7 @@ PlatformContextGl::PlatformContextGl() {
PlatformContextGl::~PlatformContextGl() {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
if(icon != NULL) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
SDL_FreeSurface(icon);
icon = NULL;
}
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
if(screen != NULL) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
SDL_FreeSurface(screen);
screen = NULL;
}
end();
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
}
@@ -131,6 +117,25 @@ void PlatformContextGl::init(int colorBits, int depthBits, int stencilBits,bool
}
void PlatformContextGl::end() {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
if(icon != NULL) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
SDL_FreeSurface(icon);
icon = NULL;
}
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
if(screen != NULL) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
SDL_FreeSurface(screen);
screen = NULL;
}
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
}
void PlatformContextGl::makeCurrent() {

View File

@@ -322,7 +322,10 @@ bool SoundPlayerOpenAL::init(const SoundPlayerParams* params) {
this->params = *params;
try {
device = alcOpenDevice(0);
// Allows platforms to specify which sound device to use
// using the environment variable: MEGAGLEST_SOUND_DEVICE
char *deviceName = getenv("MEGAGLEST_SOUND_DEVICE");
device = alcOpenDevice(deviceName);
if(device == 0) {
printOpenALInfo();
throw std::runtime_error("Couldn't open audio device.");

View File

@@ -291,6 +291,12 @@ SystemFlags::~SystemFlags() {
SystemFlags::cleanupHTTP(&curl_handle, true);
curl_handle = NULL;
}
if(SystemFlags::curl_global_init_called == true) {
SystemFlags::curl_global_init_called = false;
curl_global_cleanup();
//printf("In [%s::%s Line %d] curl_global_cleanup called\n",__FILE__,__FUNCTION__,__LINE__);
}
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
}