void SArtefactActivation::Start() { VERIFY(!ph_world->Processing()); m_af->StopLights (); m_cur_activation_state = eStarting; m_cur_state_time = 0.0f; m_af->processing_activate(); NET_Packet P; CGameObject::u_EventGen (P,GE_OWNERSHIP_REJECT, m_af->H_Parent()->ID()); P.w_u16 (m_af->ID()); if (OnServer()) CGameObject::u_EventSend (P); m_light->set_active (true); ChangeEffects (); }
void CRenderDevice::PreCache (u32 amount) { //if (HW.Caps.bForceGPU_REF) amount=0; if (m_pRender->GetForceGPU_REF()) amount=0; #ifdef DEDICATED_SERVER amount = 0; #endif // Msg ("* PCACHE: start for %d...",amount); dwPrecacheFrame = dwPrecacheTotal = amount; if (amount && !precache_light && g_pGameLevel && g_loading_events.empty()) { precache_light = ::Render->light_create(); precache_light->set_shadow (false); precache_light->set_position (vCameraPosition); precache_light->set_color (255,255,255); precache_light->set_range (5.0f); precache_light->set_active (true); } }
void CRenderDevice::PreCache(u32 amount, bool b_draw_loadscreen, bool b_wait_user_input) { if (m_pRender->GetForceGPU_REF()) amount = 0; #ifdef DEDICATED_SERVER amount = 0; #endif // Msg ("* PCACHE: start for %d...",amount); dwPrecacheFrame = dwPrecacheTotal = amount; if (amount && !precache_light && g_pGameLevel && g_loading_events.empty()) { precache_light = ::Render->light_create(); precache_light->set_shadow(false); precache_light->set_position(vCameraPosition); precache_light->set_color(255, 255, 255); precache_light->set_range(5.0f); precache_light->set_active(true); } if (amount && b_draw_loadscreen && load_screen_renderer.b_registered == false) { load_screen_renderer.start(b_wait_user_input); } }
void CRenderDevice::End (void) { #ifndef DEDICATED_SERVER // Moved to m_pRenderEnd() //VERIFY (HW.pDevice); //if (HW.Caps.SceneMode) overdrawEnd (); // #ifdef INGAME_EDITOR bool load_finished = false; #endif // #ifdef INGAME_EDITOR if (dwPrecacheFrame) { ::Sound->set_master_volume (0.f); dwPrecacheFrame --; pApp->load_draw_internal (); if (0==dwPrecacheFrame) { #ifdef INGAME_EDITOR load_finished = true; #endif // #ifdef INGAME_EDITOR //Gamma.Update (); m_pRender->updateGamma(); if(precache_light) precache_light->set_active (false); if(precache_light) precache_light.destroy (); ::Sound->set_master_volume (1.f); pApp->destroy_loading_shaders (); m_pRender->ResourcesDestroyNecessaryTextures (); Memory.mem_compact (); Msg ("* MEMORY USAGE: %d K",Memory.mem_usage()/1024); Msg ("* End of synchronization A[%d] R[%d]",b_is_Active, b_is_Ready); #ifdef FIND_CHUNK_BENCHMARK_ENABLE g_find_chunk_counter.flush(); #endif // FIND_CHUNK_BENCHMARK_ENABLE CheckPrivilegySlowdown (); if(g_pGamePersistent->GameType()==1)//haCk { WINDOWINFO wi; GetWindowInfo(m_hWnd,&wi); if(wi.dwWindowStatus!=WS_ACTIVECAPTION) Pause(TRUE,TRUE,TRUE,"application start"); } } } g_bRendering = FALSE; // end scene // Present goes here, so call OA Frame end. if (g_SASH.IsBenchmarkRunning()) g_SASH.DisplayFrame(Device.fTimeGlobal); m_pRender->End(); //RCache.OnFrameEnd (); //Memory.dbg_check (); //CHK_DX (HW.pDevice->EndScene()); //HRESULT _hr = HW.pDevice->Present( NULL, NULL, NULL, NULL ); //if (D3DERR_DEVICELOST==_hr) return; // we will handle this later //R_ASSERT2 (SUCCEEDED(_hr), "Presentation failed. Driver upgrade needed?"); # ifdef INGAME_EDITOR if (load_finished && m_editor) m_editor->on_load_finished (); # endif // #ifdef INGAME_EDITOR #endif }