本文整理汇总了C++中NET_Packet::w_vec3方法的典型用法代码示例。如果您正苦于以下问题:C++ NET_Packet::w_vec3方法的具体用法?C++ NET_Packet::w_vec3怎么用?C++ NET_Packet::w_vec3使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NET_Packet
的用法示例。
在下文中一共展示了NET_Packet::w_vec3方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
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;
}
示例2: SaveNetState
void CCar::SaveNetState(NET_Packet& P)
{
CPHSkeleton::SaveNetState (P);
P.w_vec3(Position());
Fvector Angle;
XFORM().getXYZ(Angle);
P.w_vec3(Angle);
{
xr_map<u16,SDoor>::iterator i,e;
i=m_doors.begin();
e=m_doors.end();
P.w_u16(u16(m_doors.size()));
for(;i!=e;++i)
i->second.SaveNetState(P);
}
{
xr_map<u16,SWheel>::iterator i,e;
i=m_wheels_map.begin();
e=m_wheels_map.end();
P.w_u16(u16(m_wheels_map.size()));
for(;i!=e;++i)
i->second.SaveNetState(P);
}
P.w_float(GetfHealth());
}
示例3: sizeof
void CSE_Abstract::Spawn_Write (NET_Packet &tNetPacket, BOOL bLocal)
{
// generic
tNetPacket.w_begin (M_SPAWN);
tNetPacket.w_stringZ (s_name );
tNetPacket.w_stringZ (s_name_replace ? s_name_replace : "");
tNetPacket.w_u8 (0);
tNetPacket.w_u8 (s_RP );
tNetPacket.w_vec3 (o_Position );
tNetPacket.w_vec3 (o_Angle );
tNetPacket.w_u16 (RespawnTime );
tNetPacket.w_u16 (ID );
tNetPacket.w_u16 (ID_Parent );
tNetPacket.w_u16 (ID_Phantom );
s_flags.set (M_SPAWN_VERSION,TRUE);
if (bLocal)
tNetPacket.w_u16 (u16(s_flags.flags|M_SPAWN_OBJECT_LOCAL) );
else
tNetPacket.w_u16 (u16(s_flags.flags&~(M_SPAWN_OBJECT_LOCAL|M_SPAWN_OBJECT_ASPLAYER)));
tNetPacket.w_u16 (SPAWN_VERSION);
tNetPacket.w_u16 (m_gameType.m_GameType.get());
tNetPacket.w_u16 (script_server_object_version());
//client object custom data serialization SAVE
u16 client_data_size = (u16)client_data.size(); //не может быть больше 256 байт
tNetPacket.w_u16 (client_data_size);
// Msg ("SERVER:saving:save:%d bytes:%d:%s",client_data_size,ID,s_name_replace ? s_name_replace : "");
if (client_data_size > 0) {
tNetPacket.w (&*client_data.begin(),client_data_size);
}
tNetPacket.w_u16 (m_tSpawnID);
// tNetPacket.w_float (m_spawn_probability);
// tNetPacket.w_u32 (m_spawn_flags.get());
// tNetPacket.w_stringZ (m_spawn_control);
// tNetPacket.w_u32 (m_max_spawn_count);
// tNetPacket.w_u64 (m_min_spawn_interval);
// tNetPacket.w_u64 (m_max_spawn_interval);
#ifdef XRSE_FACTORY_EXPORTS
CScriptValueContainer::assign();
#endif
// write specific data
u32 position = tNetPacket.w_tell();
tNetPacket.w_u16 (0);
STATE_Write (tNetPacket);
u16 size = u16(tNetPacket.w_tell() - position);
//#ifdef XRSE_FACTORY_EXPORTS
R_ASSERT3 ((m_tClassID == CLSID_SPECTATOR) || (size > sizeof(size)),
"object isn't successfully saved, get your backup :(",name_replace());
//#endif
tNetPacket.w_seek (position,&size,sizeof(u16));
}
示例4:
void CSE_ALifeInventoryItem::UPDATE_Write (NET_Packet &tNetPacket)
{
if (!m_u8NumItems) {
tNetPacket.w_u8 (0);
return;
}
mask_num_items num_items;
num_items.mask = 0;
num_items.num_items = m_u8NumItems;
R_ASSERT2 (
num_items.num_items < (u8(1) << 5),
make_string("%d",num_items.num_items)
);
if (State.enabled) num_items.mask |= inventory_item_state_enabled;
if (fis_zero(State.angular_vel.square_magnitude())) num_items.mask |= inventory_item_angular_null;
if (fis_zero(State.linear_vel.square_magnitude())) num_items.mask |= inventory_item_linear_null;
//if (anim_use) num_items.mask |= animated;
tNetPacket.w_u8 (num_items.common);
/*if(check(num_items.mask,animated))
{
tNetPacket.w_float (m_blend_timeCurrent);
}*/
{
tNetPacket.w_vec3 (State.force);
tNetPacket.w_vec3 (State.torque);
tNetPacket.w_vec3 (State.position);
tNetPacket.w_float (State.quaternion.x);
tNetPacket.w_float (State.quaternion.y);
tNetPacket.w_float (State.quaternion.z);
tNetPacket.w_float (State.quaternion.w);
if (!check(num_items.mask,inventory_item_angular_null)) {
tNetPacket.w_float (State.angular_vel.x);
tNetPacket.w_float (State.angular_vel.y);
tNetPacket.w_float (State.angular_vel.z);
}
if (!check(num_items.mask,inventory_item_linear_null)) {
tNetPacket.w_float (State.linear_vel.x);
tNetPacket.w_float (State.linear_vel.y);
tNetPacket.w_float (State.linear_vel.z);
}
}
tNetPacket.w_u8(1); // not freezed - doesn't mean anything...
};
示例5:
void SPHNetState::net_Export(NET_Packet& P)
{
P.w_vec3(linear_vel);
//P.w_vec3(angular_vel);
//P.w_vec3(force);
//P.w_vec3(torque);
P.w_vec3(position);
P.w_vec4(*((Fvector4*)&quaternion));
//P.w_vec4(*((Fvector4*)&previous_quaternion));
P.w_u8 ((u8)enabled);
}
示例6: position_Export
void CInventoryItem::position_Export(NET_Packet& P,SPHNetState &State)
{
P.w_u8 ( State.enabled );
P.w_vec3 ( State.angular_vel);
P.w_vec3 ( State.linear_vel);
P.w_vec3 ( State.force );
P.w_vec3 ( State.torque );
P.w_float ( State.quaternion.x );
P.w_float ( State.quaternion.y );
P.w_float ( State.quaternion.z );
P.w_float ( State.quaternion.w );
}
示例7: OnOk
void CChangeLevelWnd::OnOk()
{
Game().StartStopMenu (this, true);
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));
}
示例8: object
void CInventoryItem::net_Export (NET_Packet& P)
{
P.w_float (m_fCondition);
P.w_u32 (Level().timeServer());
///////////////////////////////////////
CPHSynchronize* pSyncObj = NULL;
SPHNetState State;
pSyncObj = object().PHGetSyncItem (0);
if (pSyncObj && !object().H_Parent())
pSyncObj->get_State(State);
else
State.position.set(object().Position());
///////////////////////////////////////
u16 NumItems = object().PHGetSyncItemsNumber();
if (object().H_Parent())
NumItems = CSE_ALifeInventoryItem::FLAG_NO_POSITION;
else
if (IsGameTypeSingle())
NumItems = 0;
P.w_u16 ( NumItems );
if (NumItems != CSE_ALifeInventoryItem::FLAG_NO_POSITION)
P.w_vec3 ( State.position);
if (!NumItems || (NumItems == CSE_ALifeInventoryItem::FLAG_NO_POSITION))
return;
position_Export(P,State);
};
示例9: PHSaveState
void CPhysicsShellHolder::PHSaveState(NET_Packet &P)
{
//CPhysicsShell* pPhysicsShell=PPhysicsShell();
CKinematics* K =smart_cast<CKinematics*>(Visual());
//Flags8 lflags;
//if(pPhysicsShell&&pPhysicsShell->isActive()) lflags.set(CSE_PHSkeleton::flActive,pPhysicsShell->isEnabled());
// P.w_u8 (lflags.get());
if(K)
{
P.w_u64(K->LL_GetBonesVisible());
P.w_u16(K->LL_GetBoneRoot());
}
else
{
P.w_u64(u64(-1));
P.w_u16(0);
}
/////////////////////////////
Fvector min,max;
min.set(flt_max,flt_max,flt_max);
max.set(-flt_max,-flt_max,-flt_max);
/////////////////////////////////////
u16 bones_number=PHGetSyncItemsNumber();
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
PHGetSyncItem(i)->get_State(state);
Fvector& p=state.position;
if(p.x<min.x)min.x=p.x;
if(p.y<min.y)min.y=p.y;
if(p.z<min.z)min.z=p.z;
if(p.x>max.x)max.x=p.x;
if(p.y>max.y)max.y=p.y;
if(p.z>max.z)max.z=p.z;
}
min.sub(2.f*EPS_L);
max.add(2.f*EPS_L);
VERIFY(!min.similar(max));
P.w_vec3(min);
P.w_vec3(max);
P.w_u16(bones_number);
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
PHGetSyncItem(i)->get_State(state);
state.net_Save(P,min,max);
}
}
示例10:
void CScriptGameObject::DropItemAndTeleport (CScriptGameObject* pItem, Fvector position)
{
DropItem (pItem);
NET_Packet PP;
CGameObject::u_EventGen (PP,GE_CHANGE_POS, pItem->object().ID());
PP.w_vec3 (position);
CGameObject::u_EventSend (PP);
}
示例11: save
void SHeliEnemy::save(NET_Packet &output_packet)
{
output_packet.w_s16 ((s16)type);
output_packet.w_vec3 (destEnemyPos);
output_packet.w_u32 (destEnemyID);
output_packet.w_float (fire_trail_length_des);
output_packet.w_u8 (bUseFireTrail ? 1 : 0);
}
示例12: SaveNetState
void CPHSkeleton::SaveNetState(NET_Packet& P)
{
CPhysicsShellHolder* obj=PPhysicsShellHolder();
CPhysicsShell* pPhysicsShell=obj->PPhysicsShell();
IKinematics* K =smart_cast<IKinematics*>(obj->Visual());
if(pPhysicsShell&&pPhysicsShell->isActive()) m_flags.set(CSE_PHSkeleton::flActive,pPhysicsShell->isEnabled());
P.w_u8 (m_flags.get());
if(K)
{
P.w_u64(K->LL_GetBonesVisible());
P.w_u16(K->LL_GetBoneRoot());
}
else
{
P.w_u64(u64(-1));
P.w_u16(0);
}
/////////////////////////////
Fvector min,max;
min.set(F_MAX,F_MAX,F_MAX);
max.set(-F_MAX,-F_MAX,-F_MAX);
/////////////////////////////////////
u16 bones_number=obj->PHGetSyncItemsNumber();
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
obj->PHGetSyncItem(i)->get_State(state);
Fvector& p=state.position;
if(p.x<min.x)min.x=p.x;
if(p.y<min.y)min.y=p.y;
if(p.z<min.z)min.z=p.z;
if(p.x>max.x)max.x=p.x;
if(p.y>max.y)max.y=p.y;
if(p.z>max.z)max.z=p.z;
}
min.sub(2.f*EPS_L);
max.add(2.f*EPS_L);
P.w_vec3(min);
P.w_vec3(max);
P.w_u16(bones_number);
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
obj->PHGetSyncItem(i)->get_State(state);
state.net_Save(P,min,max);
}
}
示例13: GenExplodeEvent
void CExplosive::GenExplodeEvent (const Fvector& pos, const Fvector& normal)
{
if (OnClient() || cast_game_object()->Remote()) return;
// if( m_bExplodeEventSent )
// return;
VERIFY(!m_explosion_flags.test(flExplodEventSent));//!m_bExplodeEventSent
VERIFY(0xffff != Initiator());
NET_Packet P;
cast_game_object()->u_EventGen (P,GE_GRENADE_EXPLODE,cast_game_object()->ID());
P.w_u16 (Initiator());
P.w_vec3 (pos);
P.w_vec3 (normal);
cast_game_object()->u_EventSend (P);
//m_bExplodeEventSent = true;
m_explosion_flags.set(flExplodEventSent,TRUE);
}
示例14: objects
void CHitMemoryManager::save (NET_Packet &packet) const
{
if (!m_object->g_Alive())
return;
packet.w_u8 ((u8)objects().size());
HITS::const_iterator I = objects().begin();
HITS::const_iterator E = objects().end();
for ( ; I != E; ++I) {
VERIFY ((*I).m_object);
packet.w_u16 ((*I).m_object->ID());
// object params
packet.w_u32 ((*I).m_object_params.m_level_vertex_id);
packet.w_vec3 ((*I).m_object_params.m_position);
#ifdef USE_ORIENTATION
packet.w_float ((*I).m_object_params.m_orientation.yaw);
packet.w_float ((*I).m_object_params.m_orientation.pitch);
packet.w_float ((*I).m_object_params.m_orientation.roll);
#endif // USE_ORIENTATION
// self params
packet.w_u32 ((*I).m_self_params.m_level_vertex_id);
packet.w_vec3 ((*I).m_self_params.m_position);
#ifdef USE_ORIENTATION
packet.w_float ((*I).m_self_params.m_orientation.yaw);
packet.w_float ((*I).m_self_params.m_orientation.pitch);
packet.w_float ((*I).m_self_params.m_orientation.roll);
#endif // USE_ORIENTATION
#ifdef USE_LEVEL_TIME
packet.w_u32 ((Device.dwTimeGlobal >= (*I).m_level_time) ? (Device.dwTimeGlobal - (*I).m_level_time) : 0);
#endif // USE_LAST_LEVEL_TIME
#ifdef USE_LEVEL_TIME
packet.w_u32 ((Device.dwTimeGlobal >= (*I).m_level_time) ? (Device.dwTimeGlobal - (*I).m_last_level_time) : 0);
#endif // USE_LAST_LEVEL_TIME
#ifdef USE_FIRST_LEVEL_TIME
packet.w_u32 ((Device.dwTimeGlobal >= (*I).m_level_time) ? (Device.dwTimeGlobal - (*I).m_first_level_time) : 0);
#endif // USE_FIRST_LEVEL_TIME
packet.w_vec3 ((*I).m_direction);
packet.w_u16 ((*I).m_bone_index);
packet.w_float ((*I).m_amount);
}
}
示例15: objects
void CSoundMemoryManager::save (NET_Packet &packet) const
{
if (!m_object->g_Alive())
return;
packet.w_u8 ((u8)objects().size());
SOUNDS::const_iterator I = objects().begin();
SOUNDS::const_iterator E = objects().end();
for ( ; I != E; ++I) {
packet.w_u16 ((*I).m_object ? (*I).m_object->ID() : ALife::_OBJECT_ID(-1));
// object params
packet.w_u32 ((*I).m_object_params.m_level_vertex_id);
packet.w_vec3 ((*I).m_object_params.m_position);
#ifdef USE_ORIENTATION
packet.w_float ((*I).m_object_params.m_orientation.yaw);
packet.w_float ((*I).m_object_params.m_orientation.pitch);
packet.w_float ((*I).m_object_params.m_orientation.roll);
#endif // USE_ORIENTATION
// self params
packet.w_u32 ((*I).m_self_params.m_level_vertex_id);
packet.w_vec3 ((*I).m_self_params.m_position);
#ifdef USE_ORIENTATION
packet.w_float ((*I).m_self_params.m_orientation.yaw);
packet.w_float ((*I).m_self_params.m_orientation.pitch);
packet.w_float ((*I).m_self_params.m_orientation.roll);
#endif // USE_ORIENTATION
#ifdef USE_LEVEL_TIME
packet.w_u32 ((Device.dwTimeGlobal >= (*I).m_level_time) ? (Device.dwTimeGlobal - (*I).m_level_time) : 0);
#endif // USE_LAST_LEVEL_TIME
#ifdef USE_LEVEL_TIME
packet.w_u32 ((Device.dwTimeGlobal >= (*I).m_level_time) ? (Device.dwTimeGlobal - (*I).m_last_level_time) : 0);
#endif // USE_LAST_LEVEL_TIME
#ifdef USE_FIRST_LEVEL_TIME
packet.w_u32 ((Device.dwTimeGlobal >= (*I).m_level_time) ? (Device.dwTimeGlobal - (*I).m_first_level_time) : 0);
#endif // USE_FIRST_LEVEL_TIME
packet.w_u32 ((*I).m_sound_type);
packet.w_float ((*I).m_power);
}
}