Move game loop into a spearate functoin. (Aside from being cleaner--that
main function was huge--it makes profiling easier since loading and gameplay are on separate call trees.) Implement alt-enter. Link to glu. (Not committing the code that uses it yet ...)
This commit is contained in:
+75
-56
@@ -68,6 +68,7 @@
|
|||||||
#pragma comment(lib, "SDL-1.2.5/lib/SDLmain.lib")
|
#pragma comment(lib, "SDL-1.2.5/lib/SDLmain.lib")
|
||||||
#endif
|
#endif
|
||||||
#pragma comment(lib, "opengl32.lib")
|
#pragma comment(lib, "opengl32.lib")
|
||||||
|
#pragma comment(lib, "glu32.Lib")
|
||||||
#pragma comment(lib, "d3dx8.lib")
|
#pragma comment(lib, "d3dx8.lib")
|
||||||
|
|
||||||
|
|
||||||
@@ -268,6 +269,8 @@ void ApplyGraphicOptions()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void GameLoop();
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Name: WinMain()
|
// Name: WinMain()
|
||||||
// Desc: Application entry point
|
// Desc: Application entry point
|
||||||
@@ -402,8 +405,67 @@ int main(int argc, char* argv[])
|
|||||||
// SCREENMAN->SetNewScreen( "ScreenSandbox" );
|
// SCREENMAN->SetNewScreen( "ScreenSandbox" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Run the main loop. */
|
||||||
|
GameLoop();
|
||||||
|
|
||||||
// Do game loop
|
#ifndef _DEBUG
|
||||||
|
}
|
||||||
|
catch( RageException e )
|
||||||
|
{
|
||||||
|
g_sErrorString = e.what();
|
||||||
|
|
||||||
|
LOG->Trace(
|
||||||
|
"\n"
|
||||||
|
"//////////////////////////////////////////////////////\n"
|
||||||
|
"Exception: %s\n"
|
||||||
|
"//////////////////////////////////////////////////////\n"
|
||||||
|
"\n",
|
||||||
|
g_sErrorString.GetString()
|
||||||
|
);
|
||||||
|
|
||||||
|
LOG->Flush();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SAFE_DELETE( SCREENMAN );
|
||||||
|
SAFE_DELETE( NETWORK );
|
||||||
|
SAFE_DELETE( INPUTQUEUE );
|
||||||
|
SAFE_DELETE( INPUTMAPPER );
|
||||||
|
SAFE_DELETE( INPUTFILTER );
|
||||||
|
SAFE_DELETE( SONGMAN );
|
||||||
|
SAFE_DELETE( SONGINDEX );
|
||||||
|
SAFE_DELETE( PREFSMAN );
|
||||||
|
SAFE_DELETE( GAMESTATE );
|
||||||
|
SAFE_DELETE( GAMEMAN );
|
||||||
|
SAFE_DELETE( THEME );
|
||||||
|
SAFE_DELETE( ANNOUNCER );
|
||||||
|
SAFE_DELETE( INPUTMAN );
|
||||||
|
SAFE_DELETE( MUSIC );
|
||||||
|
SAFE_DELETE( SOUND );
|
||||||
|
// SAFE_DELETE( SOUNDMAN );
|
||||||
|
SAFE_DELETE( TIMER );
|
||||||
|
SAFE_DELETE( FONT );
|
||||||
|
SAFE_DELETE( TEXTUREMAN );
|
||||||
|
SAFE_DELETE( DISPLAY );
|
||||||
|
SAFE_DELETE( LOG );
|
||||||
|
|
||||||
|
|
||||||
|
if( g_sErrorString != "" )
|
||||||
|
{
|
||||||
|
// throw up a pretty error dialog
|
||||||
|
DialogBox(
|
||||||
|
NULL,
|
||||||
|
MAKEINTRESOURCE(IDD_ERROR_DIALOG),
|
||||||
|
NULL,
|
||||||
|
ErrorWndProc
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameLoop()
|
||||||
|
{
|
||||||
bool do_exit = false;
|
bool do_exit = false;
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
while(!do_exit)
|
while(!do_exit)
|
||||||
@@ -499,6 +561,17 @@ int main(int argc, char* argv[])
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(type == IET_FIRST_PRESS && DeviceI == DeviceInput(DEVICE_KEYBOARD, DIK_RETURN))
|
||||||
|
{
|
||||||
|
if( INPUTMAN->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, DIK_RMENU)) ||
|
||||||
|
INPUTMAN->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, DIK_LMENU)) )
|
||||||
|
{
|
||||||
|
/* alt-enter */
|
||||||
|
PREFSMAN->m_bWindowed = !PREFSMAN->m_bWindowed;
|
||||||
|
ApplyGraphicOptions();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GameInput GameI;
|
GameInput GameI;
|
||||||
MenuInput MenuI;
|
MenuInput MenuI;
|
||||||
@@ -539,59 +612,5 @@ int main(int argc, char* argv[])
|
|||||||
if( DISPLAY && DISPLAY->IsWindowed() )
|
if( DISPLAY && DISPLAY->IsWindowed() )
|
||||||
::Sleep( 0 ); // give some time to other processes
|
::Sleep( 0 ); // give some time to other processes
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _DEBUG
|
|
||||||
}
|
|
||||||
catch( RageException e )
|
|
||||||
{
|
|
||||||
g_sErrorString = e.what();
|
|
||||||
|
|
||||||
LOG->Trace(
|
|
||||||
"\n"
|
|
||||||
"//////////////////////////////////////////////////////\n"
|
|
||||||
"Exception: %s\n"
|
|
||||||
"//////////////////////////////////////////////////////\n"
|
|
||||||
"\n",
|
|
||||||
g_sErrorString.GetString()
|
|
||||||
);
|
|
||||||
|
|
||||||
LOG->Flush();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SAFE_DELETE( SCREENMAN );
|
|
||||||
SAFE_DELETE( NETWORK );
|
|
||||||
SAFE_DELETE( INPUTQUEUE );
|
|
||||||
SAFE_DELETE( INPUTMAPPER );
|
|
||||||
SAFE_DELETE( INPUTFILTER );
|
|
||||||
SAFE_DELETE( SONGMAN );
|
|
||||||
SAFE_DELETE( SONGINDEX );
|
|
||||||
SAFE_DELETE( PREFSMAN );
|
|
||||||
SAFE_DELETE( GAMESTATE );
|
|
||||||
SAFE_DELETE( GAMEMAN );
|
|
||||||
SAFE_DELETE( THEME );
|
|
||||||
SAFE_DELETE( ANNOUNCER );
|
|
||||||
SAFE_DELETE( INPUTMAN );
|
|
||||||
SAFE_DELETE( MUSIC );
|
|
||||||
SAFE_DELETE( SOUND );
|
|
||||||
// SAFE_DELETE( SOUNDMAN );
|
|
||||||
SAFE_DELETE( TIMER );
|
|
||||||
SAFE_DELETE( FONT );
|
|
||||||
SAFE_DELETE( TEXTUREMAN );
|
|
||||||
SAFE_DELETE( DISPLAY );
|
|
||||||
SAFE_DELETE( LOG );
|
|
||||||
|
|
||||||
|
|
||||||
if( g_sErrorString != "" )
|
|
||||||
{
|
|
||||||
// throw up a pretty error dialog
|
|
||||||
DialogBox(
|
|
||||||
NULL,
|
|
||||||
MAKEINTRESOURCE(IDD_ERROR_DIALOG),
|
|
||||||
NULL,
|
|
||||||
ErrorWndProc
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user