void CBeam::OnReadFromStream (SLoadCtx &Ctx) // OnReadFromStream // // Read object data from a stream // // CString CWeaponFireDesc UNID // DWORD m_iBonus // DWORD m_iCause // DWORD m_iRotation // Vector m_vPaintTo // DWORD m_iTick // DWORD m_iLifeLeft // DWORD m_Source (CSpaceObject Ref) // DWORD m_pSovereign (UNID) // DWORD m_pHit (CSpaceObject Ref) // DWORD m_iHitDir { DWORD dwLoad; #ifdef DEBUG_LOAD ::OutputDebugString("CBeam::OnReadFromStream\n"); #endif // Load descriptor CString sDescUNID; sDescUNID.ReadFromStream(Ctx.pStream); m_pDesc = g_pUniverse->FindWeaponFireDesc(sDescUNID); Ctx.pStream->Read((char *)&m_iBonus, sizeof(DWORD)); if (Ctx.dwVersion >= 18) { Ctx.pStream->Read((char *)&dwLoad, sizeof(DWORD)); m_iCause = (DestructionTypes)dwLoad; } else m_iCause = killedByDamage; Ctx.pStream->Read((char *)&m_iRotation, sizeof(DWORD)); Ctx.pStream->Read((char *)&m_vPaintTo, sizeof(CVector)); Ctx.pStream->Read((char *)&m_iTick, sizeof(DWORD)); Ctx.pStream->Read((char *)&m_iLifeLeft, sizeof(m_iLifeLeft)); m_Source.ReadFromStream(Ctx); CSystem::ReadSovereignRefFromStream(Ctx, &m_pSovereign); CSystem::ReadObjRefFromStream(Ctx, &m_pHit); Ctx.pStream->Read((char *)&m_iHitDir, sizeof(DWORD)); ComputeOffsets(); }
void CProceduralWeaponAnimation::Update(float deltaTime) { UpdateDebugState(); ComputeOffsets(deltaTime); ResetCustomOffset(); }