void CLevelChanger::feel_touch_new (CObject *tpObject) { CActor* l_tpActor = smart_cast<CActor*>(tpObject); VERIFY (l_tpActor); if (!l_tpActor->g_Alive()) return; if (m_bSilentMode) { NET_Packet p; p.w_begin (M_CHANGE_LEVEL); p.w (&m_game_vertex_id,sizeof(m_game_vertex_id)); p.w (&m_level_vertex_id,sizeof(m_level_vertex_id)); p.w_vec3 (m_position); p.w_vec3 (m_angles); Level().Send(p,net_flags(TRUE)); return; } Fvector p,r; bool b = get_reject_pos(p,r); CUIGameSP *pGameSP = smart_cast<CUIGameSP*>(HUD().GetUI()->UIGame()); if (pGameSP) pGameSP->ChangeLevel (m_game_vertex_id,m_level_vertex_id,m_position,m_angles,p,r,b); m_entrance_time = Device.fTimeGlobal; }
void CLevelChanger::update_actor_invitation() { if(m_bSilentMode) return; xr_vector<CObject*>::iterator it = feel_touch.begin(); xr_vector<CObject*>::iterator it_e = feel_touch.end(); for(;it!=it_e;++it){ CActor* l_tpActor = smart_cast<CActor*>(*it); VERIFY (l_tpActor); if(m_entrance_time+5.0f < Device.fTimeGlobal){ CUIGameSP* pGameSP = smart_cast<CUIGameSP*>(HUD().GetUI()->UIGame()); Fvector p,r; bool b = get_reject_pos(p,r); if(pGameSP)pGameSP->ChangeLevel(m_game_vertex_id,m_level_vertex_id,m_position,m_angles,p,r,b); m_entrance_time = Device.fTimeGlobal; } } }