diff --git a/stepmania/src/StepMania.cpp b/stepmania/src/StepMania.cpp index b878483023..6e1eaa86ea 100644 --- a/stepmania/src/StepMania.cpp +++ b/stepmania/src/StepMania.cpp @@ -10,6 +10,8 @@ ----------------------------------------------------------------------------- */ +#include "StepMania.h" + // // Rage global classes // @@ -46,13 +48,8 @@ #include "InputQueue.h" #include "SongCacheIndex.h" - -#include "archutils/win32/tls.h" -#include "archutils/win32/crash.h" - - -#include "SDL.h" -#include "SDL_opengl.h" +/* This is also a global class; we own it. */ +ArchHooks *HOOKS = NULL; #ifdef DEBUG @@ -217,14 +214,13 @@ static void RestoreAppPri() int main(int argc, char* argv[]) { + /* Set up arch hooks first. This may set up crash handling. */ + HOOKS = MakeArchHooks(); + ChangeToDirOfExecutable(argv[0]); atexit(SDL_Quit); /* Clean up on exit */ - SetUnhandledExceptionFilter(CrashHandler); - InitThreadData("Main thread"); - VDCHECKPOINT; - /* Fire up the SDL, but don't actually start any subsystems. */ int SDL_flags = 0; #ifdef WIN32 @@ -365,8 +361,8 @@ int main(int argc, char* argv[]) SAFE_DELETE( TEXTUREMAN ); SAFE_DELETE( DISPLAY ); SAFE_DELETE( LOG ); - - + SAFE_DELETE( HOOKS ); + if( g_sErrorString != "" ) { // throw up a pretty error dialog diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 23eb7d38b6..71495373af 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -60,7 +60,7 @@ IntDir=.\../Release6 TargetDir=\temp\stepmania TargetName=StepMania SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -95,7 +95,7 @@ IntDir=.\../Debug6 TargetDir=\temp\stepmania TargetName=StepMania-debug SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -644,6 +644,26 @@ SOURCE=.\arch\ErrorDialog\ErrorDialog_Win32.cpp SOURCE=.\arch\ErrorDialog\ErrorDialog_Win32.h # End Source File # End Group +# Begin Group "ArchHooks" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\arch\ArchHooks\ArchHooks.h +# End Source File +# Begin Source File + +SOURCE=.\arch\ArchHooks\ArchHooks_none.h +# End Source File +# Begin Source File + +SOURCE=.\arch\ArchHooks\ArchHooks_Win32.cpp +# End Source File +# Begin Source File + +SOURCE=.\arch\ArchHooks\ArchHooks_Win32.h +# End Source File +# End Group # Begin Source File SOURCE=.\arch\arch.cpp diff --git a/stepmania/src/StepMania.h b/stepmania/src/StepMania.h index c280634371..0b15d97c99 100644 --- a/stepmania/src/StepMania.h +++ b/stepmania/src/StepMania.h @@ -13,10 +13,10 @@ void ApplyGraphicOptions(); - void ExitGame(); - void ResetGame(); +#include "arch/ArchHooks/ArchHooks.h" +extern ArchHooks *HOOKS; // global and accessable from anywhere in our program #endif diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj index a218b1b764..fa4e067498 100644 --- a/stepmania/src/StepMania.vcproj +++ b/stepmania/src/StepMania.vcproj @@ -742,8 +742,20 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ + + + + + + + +