void GameServer::InitDatabase()
{
   CString cszDatabaseFilename = Filesystem().UserFolder() + Database::c_pszDatabaseFilename;

   if (!Path(cszDatabaseFilename).FileExists())
      m_databaseManager.CreateDatabase(cszDatabaseFilename);
   else
      m_databaseManager.OpenExisting(cszDatabaseFilename);
}
/// GameClient main function
int WINAPI _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpstrCmdLine*/, int /*nCmdShow*/)
{
   CrashReporter::Init(_T("gameclient"), Filesystem().UserFolder() + c_pszCrashdumpFoldername);

   try
   {
      GameClient gc;
      gc.Start();
   }
   catch (Exception& ex)
   {
      CString cszText;
      cszText.Format(_T("Arena ended with exception: %s"), ex.Message().GetString());
      MessageBox(GetActiveWindow(), cszText, _T("Arena"), MB_OK);
   }

   return 0;
}
/// TerrainViewer main function
int APIENTRY _tWinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/,
                       LPTSTR    /*lpCmdLine*/, int       /*nCmdShow*/)
{
   CrashReporter::Init(Filesystem().BaseFolder() + c_pszCrashdumpFoldername);

   try
   {
      TerrainViewer::Client gc;
      gc.Start();
   }
   catch(Exception& ex)
   {
      CString cszText;
      cszText.Format(_T("TerrainViewer ended with exception: %s"), ex.Message());
      MessageBox(GetActiveWindow(), cszText, _T("TerrainViewer"), MB_OK);
   }

   return 0;
}