| 178 | } |
| 179 | |
| 180 | BOOL CSE_Abstract::Spawn_Read(NET_Packet& tNetPacket) |
| 181 | { |
| 182 | u16 dummy16; |
| 183 | // generic |
| 184 | tNetPacket.r_begin(dummy16); |
| 185 | R_ASSERT(M_SPAWN == dummy16); |
| 186 | tNetPacket.r_stringZ(s_name); |
| 187 | |
| 188 | string256 temp; |
| 189 | tNetPacket.r_stringZ(temp); |
| 190 | set_name_replace(temp); |
| 191 | tNetPacket.r_u8(s_gameid); |
| 192 | tNetPacket.r_u8(s_RP); |
| 193 | tNetPacket.r_vec3(o_Position); |
| 194 | tNetPacket.r_vec3(o_Angle); |
| 195 | tNetPacket.r_u16(RespawnTime); |
| 196 | tNetPacket.r_u16(ID); |
| 197 | tNetPacket.r_u16(ID_Parent); |
| 198 | tNetPacket.r_u16(ID_Phantom); |
| 199 | |
| 200 | tNetPacket.r_u16(s_flags.flags); |
| 201 | |
| 202 | tNetPacket.r_u16(m_wVersion); |
| 203 | |
| 204 | ASSERT_FMT(m_wVersion && m_wVersion >= 118, "Invalid spawn version: [%u]", m_wVersion); |
| 205 | |
| 206 | m_script_version = tNetPacket.r_u16(); |
| 207 | |
| 208 | // read specific data |
| 209 | |
| 210 | // client object custom data serialization LOAD |
| 211 | { |
| 212 | client_data.clear(); |
| 213 | |
| 214 | const u16 client_data_size = tNetPacket.r_u16(); // не может быть больше 256 байт |
| 215 | if (client_data_size > 0) |
| 216 | { |
| 217 | client_data.resize(client_data_size); |
| 218 | tNetPacket.r(client_data.data(), client_data_size); |
| 219 | } |
| 220 | } |
| 221 | |
| 222 | tNetPacket.r(&m_tSpawnID, sizeof(m_tSpawnID)); |
| 223 | |
| 224 | u16 size; |
| 225 | tNetPacket.r_u16(size); // size |
| 226 | R_ASSERT((size > sizeof(size)), "cannot read object, which is not successfully saved :(", name_replace()); |
| 227 | STATE_Read(tNetPacket, size); |
| 228 | |
| 229 | return TRUE; |
| 230 | } |
| 231 | |
| 232 | void CSE_Abstract::load(NET_Packet& tNetPacket) |
| 233 | { |
no test coverage detected