CUIGameCustom* game_cl_Deathmatch::createGameUI() { game_cl_mp::createGameUI(); CLASS_ID clsid = CLSID_GAME_UI_DEATHMATCH; m_game_ui = smart_cast<CUIGameDM*> ( NEW_INSTANCE ( clsid ) ); R_ASSERT(m_game_ui); m_game_ui->SetClGame(this); m_game_ui->Init(); return m_game_ui; }
Heap_T Heap_new(int size, heap_type type, compare_fn compare) { Heap_T heap = NEW_INSTANCE(Heap_Struct); heap->index = 0; heap->size = size+1; heap->type = type; heap->compare = compare; heap->array = (void**)malloc(sizeof(*(heap->array)) * heap->size); return heap; }
BOOL IGame_Level::Load (u32 dwNum) { // Initialize level data pApp->Level_Set ( dwNum ); string256 temp; if (!FS.exist(temp, "$level$", "level.ltx")) Debug.fatal (DEBUG_INFO,"Can't find level configuration file '%s'.",temp); pLevel = xr_new<CInifile> ( temp ); // Open g_pGamePersistent->LoadTitle ("st_opening_stream"); IReader* LL_Stream = FS.r_open ("$level$","level"); IReader &fs = *LL_Stream; // Header hdrLEVEL H; fs.r_chunk_safe (fsL_HEADER,&H,sizeof(H)); R_ASSERT2 (XRCL_PRODUCTION_VERSION==H.XRLC_version,"Incompatible level version."); // CForms g_pGamePersistent->LoadTitle ("st_loading_cform"); ObjectSpace.Load (); pApp->LoadSwitch (); // HUD + Environment //. pHUD = (CCustomHUD*)NEW_INSTANCE (CLSID_HUDMANAGER); if(g_hud) pHUD = g_hud; else pHUD = (CCustomHUD*)NEW_INSTANCE (CLSID_HUDMANAGER); // Render-level Load Render->level_Load (LL_Stream); tscreate.FrameEnd (); // Msg ("* S-CREATE: %f ms, %d times",tscreate.result,tscreate.count); // Objects g_pGamePersistent->Environment().mods_load (); R_ASSERT (Load_GameSpecific_Before()); Objects.Load (); R_ASSERT (Load_GameSpecific_After ()); // Done FS.r_close ( LL_Stream ); bReady = true; if (!g_pGamePersistent->bDedicatedServer) IR_Capture(); #ifndef DEDICATED_SERVER Device.seqRender.Add (this); #endif Device.seqFrame.Add (this); return TRUE; }
CUIGameCustom* game_cl_Deathmatch::createGameUI() { if (g_dedicated_server) return NULL; CLASS_ID clsid = CLSID_GAME_UI_DEATHMATCH; m_game_ui = smart_cast<CUIGameDM*> ( NEW_INSTANCE ( clsid ) ); R_ASSERT (m_game_ui); m_game_ui->Load (); m_game_ui->SetClGame (this); return m_game_ui; }
CUIGameCustom* game_cl_ArtefactHunt::createGameUI() { if (g_dedicated_server) return NULL; CLASS_ID clsid = CLSID_GAME_UI_ARTEFACTHUNT; m_game_ui = smart_cast<CUIGameAHunt*> ( NEW_INSTANCE ( clsid ) ); R_ASSERT (m_game_ui); m_game_ui->Load (); m_game_ui->SetClGame (this); LoadMessagesMenu (MESSAGE_MENUS); return m_game_ui; }
CUIGameCustom* game_cl_TeamDeathmatch::createGameUI() { game_cl_mp::createGameUI(); CLASS_ID clsid = CLSID_GAME_UI_TEAMDEATHMATCH; m_game_ui = smart_cast<CUIGameTDM*> ( NEW_INSTANCE ( clsid ) ); R_ASSERT(m_game_ui); m_game_ui->SetClGame(this); m_game_ui->Init(); //----------------------------------------------------------- // pInventoryMenu = xr_new<CUIInventoryWnd>(); //----------------------------------------------------------- // pPdaMenu = xr_new<CUIPdaWnd>(); //----------------------------------------------------------- // pMapDesc = xr_new<CUIMapDesc>(); //----------------------------------------------------------- LoadMessagesMenu(MESSAGE_MENUS); //----------------------------------------------------------- return m_game_ui; }
bool CMainMenu::ReloadUI() { if(m_startDialog) { if(m_startDialog->IsShown()) m_startDialog->HideDialog (); CleanInternals (); } DLL_Pure* dlg = NEW_INSTANCE(TEXT2CLSID("MAIN_MNU")); if(!dlg) { m_Flags.set (flActive|flNeedChangeCapture,FALSE); return false; } xr_delete (m_startDialog); m_startDialog = smart_cast<CUIDialogWnd*>(dlg); VERIFY (m_startDialog); m_startDialog->m_bWorkInPause= true; m_startDialog->ShowDialog (true); m_activatedScreenRatio = (float)Device.dwWidth/(float)Device.dwHeight > (UI_BASE_WIDTH/UI_BASE_HEIGHT+0.01f); return true; }
xrServer::EConnect xrServer::Connect(shared_str &session_name) { #ifdef DEBUG Msg ("* sv_Connect: %s", *session_name); #endif // Parse options and create game if (0==strchr(*session_name,'/')) return ErrConnect; string1024 options; R_ASSERT2(xr_strlen(session_name) <= sizeof(options), "session_name too BIIIGGG!!!"); strcpy (options,strchr(*session_name,'/')+1); // Parse game type string1024 type; R_ASSERT2(xr_strlen(options) <= sizeof(type), "session_name too BIIIGGG!!!"); strcpy (type,options); if (strchr(type,'/')) *strchr(type,'/') = 0; game = NULL; CLASS_ID clsid = game_GameState::getCLASS_ID(type,true); game = smart_cast<game_sv_GameState*> (NEW_INSTANCE(clsid)); // Options if (0==game) return ErrConnect; csPlayers.Enter (); // game->type = type_id; #ifdef DEBUG Msg("* Created server_game %s",game->type_name()); #endif game->Create (session_name); csPlayers.Leave (); #ifdef BATTLEYE if ( game->get_option_i( *session_name, "battleye", 1) != 0 ) // default => battleye enable (always) { // if level exist & if server in internet if ( g_pGameLevel && (game->get_option_i( *session_name, "public", 0) != 0) ) { if ( Level().battleye_system.server ) { Msg( "Warning: BattlEye already loaded!" ); } else { if ( !Level().battleye_system.LoadServer( this ) ) { return ErrBELoad; } } }//g_pGameLevel } /* if ( g_pGameLevel && Level().battleye_system.server ) { if ( game->get_option_i( *session_name, "battleye_update", 1) != 0 ) // default => battleye auto_update enable (always) { Level().battleye_system.auto_update = 1; } else { Level().battleye_system.auto_update = 0; } }*/ #endif // BATTLEYE return IPureServer::Connect(*session_name); }