mirror of
https://github.com/glest/glest-source.git
synced 2025-08-13 20:03:58 +02:00
- 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:
@@ -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"));
|
||||
|
@@ -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
|
||||
|
@@ -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){
|
||||
|
@@ -108,6 +108,10 @@ private:
|
||||
GraphicLabel labelEnableTextureCompression;
|
||||
GraphicCheckBox checkBoxEnableTextureCompression;
|
||||
|
||||
GraphicLabel labelScreenShotType;
|
||||
GraphicListBox listBoxScreenShotType;
|
||||
|
||||
|
||||
public:
|
||||
MenuStateOptions(Program *program, MainMenu *mainMenu);
|
||||
|
||||
|
@@ -30,7 +30,7 @@ protected:
|
||||
|
||||
public:
|
||||
ContextGl();
|
||||
virtual ~ContextGl(){}
|
||||
virtual ~ContextGl();
|
||||
|
||||
virtual void init();
|
||||
virtual void end();
|
||||
|
@@ -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();
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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() {
|
||||
|
@@ -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.");
|
||||
|
@@ -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__);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user