X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;ds=sidebyside;f=Source%2Fmain.cpp;h=8463907b00b2aee8a91d2c3c2117f3a77546b76f;hb=4c3e64bc1763c8dc59320d23e613863308aa9e26;hp=9e1c1102eb405a6b2c5c5609115fc6249edf198c;hpb=63b9ec8b134f9b42e899bec74bc0e6335d3afb47;p=lugaru.git
diff --git a/Source/main.cpp b/Source/main.cpp
index 9e1c110..8463907 100644
--- a/Source/main.cpp
+++ b/Source/main.cpp
@@ -18,27 +18,27 @@ You should have received a copy of the GNU General Public License
along with Lugaru. If not, see .
*/
+#include "Game.hpp"
+
+#include "Audio/openal_wrapper.hpp"
+#include "Graphic/gamegl.hpp"
+#include "MacCompatibility.hpp"
+#include "User/Settings.hpp"
+
+#include
+#include
#include
+#include
#include
#include
-#include
-#include
#include
-#include
-#include "gamegl.h"
-#include "MacCompatibility.h"
-#include "Settings.h"
-
-#include "Game.h"
using namespace Game;
-#include "openal_wrapper.h"
-
#ifdef WIN32
-#include
#include
-#include "win-res/resource.h"
+#include
+#include "win-res/resource.hpp"
#endif
extern float multiplier;
@@ -55,6 +55,8 @@ extern float slomospeed;
extern float slomofreq;
extern bool visibleloading;
+extern int difficulty;
+
extern SDL_Window *sdlwindow;
using namespace std;
@@ -63,54 +65,6 @@ set> resolutions;
// 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__
-
// Menu defs
int kContextWidth;
@@ -318,12 +272,6 @@ bool SetUp ()
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))
{
@@ -515,14 +463,6 @@ void CleanUp (void)
delete[] commandLineOptionsBuffer;
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__
}
// --------------------------------------------------------------------------
@@ -643,6 +583,7 @@ const option::Descriptor usage[] =
{SOUND, OPENAL_OUTPUT_OSS, "", "force-oss", option::Arg::None, " --force-oss Force use of OSS back-end." },
{OPENALINFO, 0, "", "openal-info", option::Arg::None, " --openal-info Print info about OpenAL at launch." },
{SHOWRESOLUTIONS, 0, "", "showresolutions", option::Arg::None, " --showresolutions List the resolutions found by SDL at launch." },
+ {DEVTOOLS, 0, "d", "devtools", option::Arg::None, " -d, --devtools Enable dev tools: console, level editor and debug info." },
{0,0,0,0,0,0}
};
@@ -685,7 +626,9 @@ int main(int argc, char **argv)
LOGFUNC;
+#ifdef NDEBUG
try {
+#endif
{
newGame();
@@ -694,6 +637,10 @@ int main(int argc, char **argv)
return 42;
}
+ if (commandLineOptions[DEVTOOLS]) {
+ devtools = true;
+ }
+
bool gameDone = false;
bool gameFocused = true;
@@ -736,6 +683,7 @@ int main(int argc, char **argv)
CleanUp ();
return 0;
+#ifdef NDEBUG
} catch (const std::exception& error) {
CleanUp();
@@ -748,4 +696,5 @@ int main(int argc, char **argv)
return -1;
}
+#endif
}