void SArtefactActivation::ChangeEffects() { VERIFY(!ph_world->Processing()); SStateDef& state_def = m_activation_states[(int)m_cur_activation_state]; if(m_snd._feedback()) m_snd.stop(); if(state_def.m_snd.size()){ m_snd.create (*state_def.m_snd,st_Effect,sg_SourceType); m_snd.play_at_pos (m_af, m_af->Position()); }; m_light->set_range ( state_def.m_light_range); m_light->set_color ( state_def.m_light_color.r, state_def.m_light_color.g, state_def.m_light_color.b); if(state_def.m_particle.size()){ Fvector dir; dir.set(0,1,0); m_af->CParticlesPlayer::StartParticles( state_def.m_particle, dir, m_af->ID(), iFloor(state_def.m_time*1000) ); }; if(state_def.m_animation.size()){ CKinematicsAnimated *K=smart_cast<CKinematicsAnimated*>(m_af->Visual()); if(K)K->PlayCycle(*state_def.m_animation); } }
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); } }