#endif
extern float multiplier;
-extern float sps;
extern float realmultiplier;
extern int slomo;
extern bool cellophane;
// statics/globals (internal only) ------------------------------------------
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable: 4273)
-#endif
-
-#ifndef __MINGW32__ // FIXME: Temporary workaround for GL-8
-#define GL_FUNC(ret,fn,params,call,rt) \
- extern "C" { \
- static ret (GLAPIENTRY *p##fn) params = NULL; \
- ret GLAPIENTRY fn params { rt p##fn call; } \
- }
-#include "glstubs.h"
-#undef GL_FUNC
-#endif // __MINGW32__
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-static bool lookup_glsym(const char *funcname, void **func)
-{
- *func = SDL_GL_GetProcAddress(funcname);
- if (*func == NULL) {
- fprintf(stderr, "Failed to find OpenGL symbol \"%s\"\n", funcname);
- return false;
- }
- return true;
-}
-
-static bool lookup_all_glsyms(void)
-{
- bool retval = true;
-#ifndef __MINGW32__ // FIXME: Temporary workaround for GL-8
-#define GL_FUNC(ret,fn,params,call,rt) \
- if (!lookup_glsym(#fn, (void **) &p##fn)) retval = false;
-#include "glstubs.h"
-#undef GL_FUNC
-#endif // __MINGW32__
- return retval;
-}
-
-#ifndef __MINGW32__ // FIXME: Temporary workaround for GL-8
-static void GLAPIENTRY glDeleteTextures_doNothing(GLsizei n, const GLuint *textures)
-{
- // no-op.
-}
-#endif // __MINGW32__
-
-#ifdef MessageBox
-#undef MessageBox
-#endif
-#define MessageBox(hwnd,text,title,flags) STUBBED("msgbox")
-
// Menu defs
int kContextWidth;
fprintf(stderr, "Failed to load config, creating default\n");
SaveSettings();
}
- if (kBitsPerPixel != 32 && kBitsPerPixel != 16) {
- kBitsPerPixel = 16;
- }
if (SDL_GL_LoadLibrary(NULL) == -1) {
fprintf(stderr, "SDL_GL_LoadLibrary() failed: %s\n", SDL_GetError());
SDL_GL_MakeCurrent(sdlwindow, glctx);
- if (!lookup_all_glsyms()) {
- fprintf(stderr, "Missing required OpenGL functions.\n");
- SDL_Quit();
- return false;
- }
-
int dblbuf = 0;
if ((SDL_GL_GetAttribute(SDL_GL_DOUBLEBUFFER, &dblbuf) == -1) || (!dblbuf))
{
{
LOGFUNC;
- SDL_Quit();
-#ifndef __MINGW32__ // FIXME: Temporary workaround for GL-8
-#define GL_FUNC(ret,fn,params,call,rt) p##fn = NULL;
-#include "glstubs.h"
-#undef GL_FUNC
- // cheat here...static destructors are calling glDeleteTexture() after
- // the context is destroyed and libGL unloaded by SDL_Quit().
- pglDeleteTextures = glDeleteTextures_doNothing;
-#endif // __MINGW32__
+ delete[] commandLineOptionsBuffer;
+ SDL_Quit();
}
// --------------------------------------------------------------------------
};
option::Option commandLineOptions[commandLineOptionsNumber];
+option::Option* commandLineOptionsBuffer;
int main(int argc, char **argv)
{
std::cerr << "Found incorrect command line option number" << std::endl;
return 1;
}
- option::Option buffer[stats.buffer_max];
- option::Parser parse(true, usage, argc, argv, commandLineOptions, buffer);
+ commandLineOptionsBuffer = new option::Option[stats.buffer_max];
+ option::Parser parse(true, usage, argc, argv, commandLineOptions, commandLineOptionsBuffer);
if (parse.error()) {
+ delete[] commandLineOptionsBuffer;
return 1;
}
if (commandLineOptions[HELP]) {
option::printUsage(std::cout, usage);
+ delete[] commandLineOptionsBuffer;
return 0;
}
if (option::Option* opt = commandLineOptions[UNKNOWN]) {
std::cerr << "Unknown option: " << opt->name << "\n";
option::printUsage(std::cerr, usage);
+ delete[] commandLineOptionsBuffer;
return 1;
}
{
newGame();
- if (!SetUp ())
+ if (!SetUp ()) {
+ delete[] commandLineOptionsBuffer;
return 42;
+ }
bool gameDone = false;
bool gameFocused = true;
LOG(e);
- MessageBox(g_windowHandle, error.what(), "ERROR", MB_OK | MB_ICONEXCLAMATION);
+ SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Exception catched", error.what(), NULL);
return -1;
}