MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / Spawn_Write

Method Spawn_Write

ogsr_engine/COMMON_AI/xrServer_Object_Base.cpp:129–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129void CSE_Abstract::Spawn_Write(NET_Packet& tNetPacket, BOOL bLocal)
130{
131 // generic
132 tNetPacket.w_begin(M_SPAWN);
133 tNetPacket.w_stringZ(s_name);
134 tNetPacket.w_stringZ(s_name_replace ? s_name_replace : "");
135 tNetPacket.w_u8(s_gameid);
136 tNetPacket.w_u8(s_RP);
137 tNetPacket.w_vec3(o_Position);
138 tNetPacket.w_vec3(o_Angle);
139 tNetPacket.w_u16(RespawnTime);
140 tNetPacket.w_u16(ID);
141 tNetPacket.w_u16(ID_Parent);
142 tNetPacket.w_u16(ID_Phantom);
143
144 s_flags.set(M_SPAWN_VERSION, TRUE);
145 if (bLocal)
146 tNetPacket.w_u16(u16(s_flags.flags | M_SPAWN_OBJECT_LOCAL));
147 else
148 tNetPacket.w_u16(u16(s_flags.flags & ~(M_SPAWN_OBJECT_LOCAL | M_SPAWN_OBJECT_ASPLAYER)));
149
150 tNetPacket.w_u16(SPAWN_VERSION);
151
152 tNetPacket.w_u16(script_server_object_version());
153
154 // client object custom data serialization SAVE
155 u16 client_data_size = (u16)client_data.size(); //не может быть больше 256 байт
156 tNetPacket.w_u16(client_data_size);
157 // Msg ("SERVER:saving:save:%d bytes:%d:%s",client_data_size,ID,s_name_replace ? s_name_replace : "");
158 if (client_data_size > 0)
159 {
160 tNetPacket.w(&*client_data.begin(), client_data_size);
161 }
162
163 tNetPacket.w(&m_tSpawnID, sizeof(m_tSpawnID));
164 // tNetPacket.w_float (m_spawn_probability);
165 // tNetPacket.w_u32 (m_spawn_flags.get());
166 // tNetPacket.w_stringZ (m_spawn_control);
167 // tNetPacket.w_u32 (m_max_spawn_count);
168 // tNetPacket.w_u64 (m_min_spawn_interval);
169 // tNetPacket.w_u64 (m_max_spawn_interval);
170
171 // write specific data
172 u32 position = tNetPacket.w_tell();
173 tNetPacket.w_u16(0);
174 STATE_Write(tNetPacket);
175 u16 size = u16(tNetPacket.w_tell() - position);
176 R_ASSERT3((m_tClassID == CLSID_SPECTATOR) || (size > sizeof(size)), "object isn't successfully saved, get your backup :(", name_replace());
177 tNetPacket.w_seek(position, &size, sizeof(u16));
178}
179
180BOOL CSE_Abstract::Spawn_Read(NET_Packet& tNetPacket)
181{

Callers 15

ScopeRespawnMethod · 0.80
SpawnCopyMethod · 0.80
UpdateMethod · 0.80
createMethod · 0.80
ContactMethod · 0.80
spawn_fake_missileMethod · 0.80
ExitContactCallbackMethod · 0.80
DetachMethod · 0.80
SpawnRocketMethod · 0.80
SpawnAnomalyMethod · 0.80
SLS_SaveMethod · 0.80
SpawnAmmoMethod · 0.80

Calls 12

w_beginMethod · 0.80
w_stringZMethod · 0.80
w_vec3Method · 0.80
w_tellMethod · 0.80
w_seekMethod · 0.80
w_u8Method · 0.45
w_u16Method · 0.45
setMethod · 0.45
sizeMethod · 0.45
wMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected