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

Method load

ogsr_engine/xrGame/sound_memory_manager.cpp:427–498  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

425}
426
427void CSoundMemoryManager::load(IReader& packet)
428{
429 if (!m_object->g_Alive())
430 return;
431
432 auto callback = fastdelegate::MakeDelegate(&m_object->memory(), &CMemoryManager::on_requested_spawn);
433
434 int count = packet.r_u8();
435 for (int i = 0; i < count; ++i)
436 {
437 CDelayedSoundObject delayed_object;
438 delayed_object.m_object_id = packet.r_u16();
439
440 CSoundObject& object = delayed_object.m_sound_object;
441 object.m_object = smart_cast<CGameObject*>(Level().Objects.net_Find(delayed_object.m_object_id));
442 // object params
443 object.m_object_params.m_level_vertex_id = packet.r_u32();
444 packet.r_fvector3(object.m_object_params.m_position);
445#ifdef USE_ORIENTATION
446 packet.r_float(object.m_object_params.m_orientation.yaw);
447 packet.r_float(object.m_object_params.m_orientation.pitch);
448 packet.r_float(object.m_object_params.m_orientation.roll);
449#endif
450 // self params
451 object.m_self_params.m_level_vertex_id = packet.r_u32();
452 packet.r_fvector3(object.m_self_params.m_position);
453#ifdef USE_ORIENTATION
454 packet.r_float(object.m_self_params.m_orientation.yaw);
455 packet.r_float(object.m_self_params.m_orientation.pitch);
456 packet.r_float(object.m_self_params.m_orientation.roll);
457#endif
458#ifdef USE_LEVEL_TIME
459 VERIFY(Device.dwTimeGlobal >= object.m_level_time);
460 object.m_level_time = packet.r_u32();
461 object.m_level_time = Device.dwTimeGlobal >= object.m_level_time ? Device.dwTimeGlobal - object.m_level_time : 0;
462 object.m_first_level_time = Device.dwTimeGlobal;
463#endif // USE_LEVEL_TIME
464#ifdef USE_LAST_LEVEL_TIME
465 VERIFY(Device.dwTimeGlobal >= object.m_last_level_time);
466 object.m_last_level_time = packet.r_u32();
467 object.m_last_level_time = Device.dwTimeGlobal >= object.m_last_level_time ? Device.dwTimeGlobal - object.m_last_level_time : 0;
468#endif // USE_LAST_LEVEL_TIME
469#ifdef USE_FIRST_LEVEL_TIME
470 VERIFY(Device.dwTimeGlobal >= (*I).m_first_level_time);
471 object.m_first_level_time = packet.r_u32();
472 object.m_first_level_time = Device.dwTimeGlobal >= object.m_first_level_time ? Device.dwTimeGlobal - (*I).m_first_level_time : 0;
473#endif // USE_FIRST_LEVEL_TIME
474 object.m_sound_type = (ESoundTypes)packet.r_u32();
475 object.m_power = packet.r_float();
476
477 if (object.m_object)
478 {
479 add(object, true);
480 continue;
481 }
482
483 m_delayed_objects.push_back(delayed_object);
484

Callers

nothing calls this directly

Calls 12

addFunction · 0.85
g_AliveMethod · 0.80
ifFunction · 0.50
memoryMethod · 0.45
r_u8Method · 0.45
r_u16Method · 0.45
r_u32Method · 0.45
r_fvector3Method · 0.45
r_floatMethod · 0.45
push_backMethod · 0.45
callbackMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected