コード例 #1
0
void VLineFollowerComponent::Serialize(VArchive &ar)
{
  char iLocalVersion = 1;

  IVObjectComponent::Serialize(ar);

  if (ar.IsLoading())
  {
    ar >> iLocalVersion;
    VASSERT_MSG(iLocalVersion==1, "Invalid local version. Please re-export");

    ar.ReadStringBinary(Model_AnimationName, sizeof(Model_AnimationName));
    ar.ReadStringBinary(Path_Key, sizeof(Path_Key));
    ar >> Path_NumberSteps;
    ar >> Path_TriggerDistance;
    ar >> Path_InitialOffset;
    ar >> Model_DeltaRotation;
    ar >> Model_GroundOffset;
    ar >> Model_CapsuleHeight;
    ar >> Model_CapsuleRadius;
    ar >> Debug_DisplayBoxes;
    
    Debug_RenderMesh = false;
    CommonInit();
  }
コード例 #2
0
void VFmodEvent::Serialize( VArchive &ar )
{
  VisObject3D_cl::Serialize(ar);
  char iVersion = -1;
  if (ar.IsLoading())
  {
    ar >> iVersion; 
    VASSERT(iVersion >= VFMOD_EVENT_VERSION_0 && iVersion <= VFMOD_EVENT_VERSION_CURRENT);

    // load resource 
    char szEventProjectPath[FS_MAX_PATH+1];
    char szEventGroupName[FS_MAX_PATH+1];
    ar.ReadStringBinary(szEventProjectPath, FS_MAX_PATH);
    ar.ReadStringBinary(szEventGroupName, FS_MAX_PATH);

    // event properties
    ar >> m_sEventName;

    // @@@ Force events to be non-disposable
    //m_iFlags |= VFMOD_FLAG_NODISPOSE;
    
    ar >> m_iFlags;

    if(iVersion >= VFMOD_EVENT_VERSION_1)
    {
      ar >> m_bPlayedOnce;
    }
コード例 #3
0
void VFmodSoundObject::Serialize( VArchive &ar )
{
  VisObject3D_cl::Serialize(ar);
  char iVersion = -1;
  if (ar.IsLoading())
  {
    ar >> iVersion; 
    VASSERT(iVersion >= VFMOD_SOUNDOBJECT_VERSION_0 && iVersion <= VFMOD_SOUNDOBJECT_VERSION_CURRENT);

    // first, load resource file
    int iResourceFlags;
    char szResourceFile[FS_MAX_PATH+1];
    ar >> iResourceFlags;
    ar.ReadStringBinary(szResourceFile, FS_MAX_PATH); 
    m_spResource = VFmodManager::GlobalManager().LoadSoundResource(szResourceFile, iResourceFlags);

    // sound properties
    ar >> m_iFlags;
    ar >> m_iPriority;
    ar >> m_fVolume >> m_fPan >> m_fConeInside >> m_fConeOutside;
    ar >> m_fFadeMin >> m_fFadeMax;
    ar >> m_bFading;
    ar >> m_fVolumeFadeTime >> m_fVolumeFadeDuration;
    ar >> m_fVolumeFadeStart >> m_fVolumeFadeTarget;
    ar >> m_fPitch;

    if(iVersion >= VFMOD_SOUNDOBJECT_VERSION_1)
    {
      ar >> m_bPlayedOnce;
    }
コード例 #4
0
void VFmodCollisionMeshInstance::Serialize( VArchive &ar )
{
  if (ar.IsLoading())
  {
    char iVersion = -1;
    bool bActive;
    int iMeshType;
    ar >> iVersion; 
    VASSERT(iVersion >= V_FMODCOLLISIONMESHINSTANCE_VERSION_0 && iVersion <= V_FMODCOLLISIONMESHINSTANCE_VERSION_CURRENT);

    VisObject3D_cl::Serialize(ar);
    ar >> bActive;
    m_vScale.SerializeAsVec3(ar);
    ar >> m_fDirectOcclusion >> m_fReverbOcclusion;
    ar >> iMeshType; // mesh type; 0==VBaseMesh

    if (iMeshType==0)
    {
      VBaseMesh *pMesh = (VBaseMesh *)ar.ReadProxyObject();
      SetCollisionMesh(pMesh, m_fDirectOcclusion, m_fReverbOcclusion);
    } 
    else
    {
      VASSERT(!"Yet unsupported mesh type for sound collision geometry");
    }

    SetActive(bActive);
  } 
コード例 #5
0
//TODO: serialize added events!
void VAnimationComponent::Serialize( VArchive &ar )
{
  char iLocalVersion = 0;
  IVObjectComponent::Serialize(ar);
  if (ar.IsLoading())
  {
    ar >> iLocalVersion;
    VASSERT_MSG(iLocalVersion == 0, "Invalid local version. Please re-export");

    char pBuffer[512];
    ar.ReadStringBinary(pBuffer, 512);

    if(pBuffer && pBuffer[0])
    {
      unsigned int flags = 0;
      float time = 0;
      bool isPlaying = true;

      ar >> flags;
      ar >> time;
      ar >> isPlaying;

      Play(pBuffer, (flags&VANIMCTRL_LOOP)!=0);
      if(!isPlaying) Pause();
      SetTime(time);
    }
コード例 #6
0
 inline void SerializeX(VArchive &ar)
 {
   if (ar.IsLoading())
   {
     int iBitCount;
     ar >> iBitCount;
     AllocateBitfield(iBitCount);
     const int iIntCount = GetIntCount();
     if (iIntCount>0)
       ar.Read(GetIntArray(),iIntCount*sizeof(int),"i",iIntCount);
   } else
コード例 #7
0
ファイル: VDialogFrame.cpp プロジェクト: cDoru/projectanarchy
void VDialogFrame::SerializeX( VArchive &ar )
{
  char iLocalVersion = 0;
  if (ar.IsLoading())
  {
    ar >> iLocalVersion; VASSERT_MSG(iLocalVersion==0,"Invalid version");
    ar >> m_pOwner;
    VTextureObject *pTex = (VTextureObject *)ar.ReadProxyObject();
    SetTexture(pTex);
    ar >> m_iColor;
  } else
コード例 #8
0
void VScriptComponent::Serialize( VArchive &ar )
{
  char iLocalVersion = VERSION_CURRENT;
  IVObjectComponent::Serialize(ar);

  if (ar.IsLoading())
  {
    ar >> iLocalVersion;
    if (iLocalVersion<VERSION_INITIAL||iLocalVersion>VERSION_CURRENT)
      hkvLog::FatalError("Invalid script serialization version - please re-export scene.");

    // This is a workaround for [#21287] : This component must be immediately added to the owner's component list,
    // otherwise script function calls on it create a new script component which results in one object having two script components
    // [8.1: need to serialize it here]
    VisTypedEngineObject_cl *pOwner = ar.ReadObject<VisTypedEngineObject_cl>();
    if (pOwner != NULL && !pOwner->Components().Contains(this))
      ((VObjectComponentCollection &)pOwner->Components()).Add(this);
    // additionally we have to temporarily pretend the owner is set:
    m_pOwner = pOwner;

    m_iScriptRefID = LUA_REFNIL;
    VScriptInstance *pInstance = NULL;
    ar >> pInstance;
    // we shouldn't call SetScriptInstance since it calls the Lua OnCreate function, which may try to access the object
    //SetScriptInstance(pInstance);
    m_spInstance = pInstance;

    if(iLocalVersion >= VERSION_CUSTOM_EXPOSED_MEMBERS)
    {
      int iNumOfSerializedMembers;
      ar >> iNumOfSerializedMembers;

      m_CustomExposeVars.Clear();

      // read all members storead as Name+Type
      for(int i = 0;i < iNumOfSerializedMembers; i++)
      {
        char szBuffer1[64];
        char szBuffer2[64];
        bool bAllocated1 = false;
        bool bAllocated2 = false;
        const char *szName = ar.ReadEncryptedString(szBuffer1, 64, bAllocated1);
        const char *szValue = ar.ReadEncryptedString(szBuffer2, 64, bAllocated2);

        m_CustomExposeVars.Add(VScriptMember(szName, szValue));

        if(bAllocated1) V_SAFE_DELETE(szName);
        if(bAllocated2) V_SAFE_DELETE(szValue);
      }
    }
コード例 #9
0
void VBlobShadow::Serialize( VArchive &ar )
{
  char iLocalVersion = 2;
  IVObjectComponent::Serialize(ar);
  if (ar.IsLoading())
  {
    ar >> iLocalVersion;
    VASSERT_MSG(iLocalVersion==2, "Invalid local version. Please re-export");
    ar >> Enabled >> m_bNormalFalloff;
    m_ShadowBox.SerializeAs_VisBoundingBox (ar);
    ar >> Radius >> Height;
    ar >> ShadowColor >> m_vBlendColor;
    m_spShadowTex = (VTextureObject *)ar.ReadProxyObject();
  } else
コード例 #10
0
// ----------------------------------------------------------------------------
void vHavokGenericConstraintDesc::Serialize( VArchive &ar )
{
  vHavokConstraintDesc::Serialize(ar);
  if (ar.IsLoading())
  {
    unsigned int iVersion = 0;
    ar >> iVersion;
    VASSERT((iVersion > 0) && (iVersion <= s_iSerialVersion));

    m_vGenericPivot.SerializeAsVisVector (ar);
    m_vAngularAxis.SerializeAsVisVector (ar);

    int iTmp;
    ar >> iTmp; m_eXMotion = (VGenericMotion_e)iTmp;
    ar >> iTmp; m_eYMotion = (VGenericMotion_e)iTmp;
    ar >> iTmp; m_eZMotion = (VGenericMotion_e)iTmp;
    ar >> iTmp; m_eAngularMotion = (VGenericMotion_e)iTmp;

    ar >> m_fLinearMin;
    ar >> m_fLinearMax;
    ar >> m_fAngularMin;
    ar >> m_fAngularMax;
    ar >> m_fVelocityTarget;
    ar >> m_fTau;
    ar >> m_fMinForce;
    ar >> m_fMaxForce;
    ar >> m_fLinearFriction;
    ar >> m_fAngularFriction;
  }
コード例 #11
0
void VSkyLayer::SerializeX( VArchive &ar )
{
  char iVersion = 0;
  if (ar.IsLoading())
  {
    ar >> iVersion; VVERIFY(iVersion==0 && "Invalid sky serialization version");

    // main properties
    char mapping;
    ar >> mapping;
    ar >> m_vMappingParams;
    ar >> m_vColor;
    ar >> m_vTextureTransform;
    ar >> m_vScrollSpeed;
    SetMapping((VIS_SKY_MappingType)mapping);

    // textures
    float fProgressStep = mapping==VIS_SKYMAPPING_CUBEMAP ? 100.f/6.f : 100.f;
    float fProgress = 0.f;
    VMemoryTempBuffer<FS_MAX_PATH> buffer;
    SAFE_LOAD_TEXTURE(m_spTexture, mapping==VIS_SKYMAPPING_SPHERICAL || mapping==VIS_SKYMAPPING_CYLINDRICAL);
    for (int i=0;i<6;i++)
      SAFE_LOAD_TEXTURE(m_spCubemapFace[i],mapping==VIS_SKYMAPPING_CUBEMAP);

  } else
コード例 #12
0
void vHavokTriggerVolume::Serialize( VArchive &ar )
{
  char iLocalVersion = VHAVOKTRIGGERVOLUME_VERSION_CURRENT;
  IVObjectComponent::Serialize(ar);
  if (ar.IsLoading())
  {
    char iFileVersion = 0;
    ar >> iFileVersion;
    VASSERT_MSG(iFileVersion <= iLocalVersion, "Invalid file version. Please re-export");
  
    ar >> Havok_ShapeType;
    ar >> Havok_MotionType;
    ar >> Havok_QualityType;
    ar >> Havok_CollisionLayer;
    ar >> Havok_CollisionGroup;
    ar >> Havok_SubSystemId;
    ar >> Havok_SubSystemDontCollideWith;
    ar >> Debug_Color;

    VisTriggerSourceComponent_cl *pComp = NULL;
    ar >> pComp;m_spOnObjectEnter = pComp;
    ar >> pComp;m_spOnObjectLeave = pComp;
    ar >> pComp;m_spOnCharacterEnter = pComp;
    ar >> pComp;m_spOnCharacterLeave = pComp;
  } 
コード例 #13
0
ファイル: Curve.cpp プロジェクト: cDoru/projectanarchy
void VCurve2DBase::SerializeX( VArchive &ar )
{
  char iVersion = 0;
  if (ar.IsLoading())
  {
    int iLookupCount;
    ar >> iVersion; VASSERT(iVersion==0);
    ar >> m_iNumCurvePoints;
    AllocatePoints(m_iNumCurvePoints);
    if (m_iNumCurvePoints>0)
      ar.Read(m_pPoints,m_iNumCurvePoints*sizeof(VCurvePoint2D),"ffffff",m_iNumCurvePoints);
    ar >> m_fDuration >> m_fMax;
    ar >> iLookupCount;
    if (iLookupCount>0)
      CreateLookup(iLookupCount);
  } else
コード例 #14
0
void RPG_PlayerCharacterSynchronizationGroup::Synchronize(const VNetworkViewContext& context, VNetworkSynchronizationGroupInstanceInfo_t &instanceInfo, VArchive &ar)
{
  RPG_PlayerCharacter *pObj = (RPG_PlayerCharacter*) instanceInfo.m_pInstance;
  VHistoryData* pData = (VHistoryData*) instanceInfo.m_pCustomData;

  if (ar.IsLoading())
  {
    // Get timing
    __int64 iTimeMS;
    ar >> iTimeMS; //8 byte
    ar >> pData->m_iDataFlagsToSend; // 1 byte

    //hkvLog::Warning("Server time: %.5f", iTimeMS / 1000.0f);


    if (pData->m_iDataFlagsToSend & VCD_POSITION)
    {
      float fX, fY, fZ;

      ar >> fX; //4 byte
      ar >> fY; //4 byte
      ar >> fZ; //4 byte
      hkvVec3 vNewPosition (fX, fY, fZ);
      pData->m_positionHistory.Write (vNewPosition, iTimeMS);
    }
コード例 #15
0
void VScriptInstance::Serialize( VArchive &ar )
{
  IVScriptInstance::Serialize(ar);
  if (ar.IsLoading())
  {
    char iVersion;
    ar >> iVersion; VVERIFY(iVersion==0 && "invalid version number");
    VScriptResource *pRes = (VScriptResource *)ar.ReadProxyObject();
    Init();
    SetResource(pRes);
    if (pRes)
    {
      VScriptResourceManager *pManager = (VScriptResourceManager *)pRes->GetParentManager();
      pManager->Instances().Add(this);
    }
  }
コード例 #16
0
void VPostProcessScreenMasks::Serialize( VArchive &ar )
{
  char iLocalVersion = 0;
  if (ar.IsLoading())
  {
    ar >> iLocalVersion;
    ar >> m_bActive;
  }
コード例 #17
0
void VSimpleCopyPostprocess::Serialize( VArchive &ar )
{
  if (ar.IsLoading())
  {
    ar >> m_bActive;

    VRendererNodeCommon* pDummy;
    ar >> pDummy;
  }
コード例 #18
0
void VLookupItem::Serialize( VArchive &ar )
{
  char iLocalVersion = 0;
  VListControlItem::Serialize(ar);
  if (ar.IsLoading())
  {
    ar >> iLocalVersion; VASSERT_MSG(iLocalVersion==0,"Invalid version");
    ar >> m_iMatchColor;
  } else
コード例 #19
0
void VDlgControlBase::Serialize( VArchive &ar )
{
  VWindowBase::Serialize(ar);
  if (ar.IsLoading())
  {
  } else
  {
  }
}
コード例 #20
0
void VUndoableSectorAction::Serialize( VArchive &ar )
{
  VisTypedEngineObject_cl::Serialize(ar);
  char iLocalVersion = 0;
  if (ar.IsLoading())
  {
    ar >> iLocalVersion;VASSERT_MSG(iLocalVersion==0, "Invalid version number");
    ar >> m_iSectorX >> m_iSectorY;
  }
コード例 #21
0
ファイル: VPrefab.cpp プロジェクト: guozanhua/projectanarchy
void VPrefabInstance::Serialize( VArchive& ar )
{
  VisBaseEntity_cl::Serialize(ar);

  char prefabVersion = 0;
  if(ar.IsLoading())
  {
    char loc_sFilename[FS_MAX_PATH];
    ar >> prefabVersion; VASSERT_MSG(prefabVersion==0, "Invalid version number, please re-export")
    ar.ReadStringBinary(loc_sFilename);
    VPrefab* loadedPrefab = VPrefabManager::GlobalManager().LoadPrefab(loc_sFilename);
    VPrefabInstanceInfo info;
    info.m_pParentObject = this;
    info.m_bOutputInstances = false;
    info.m_vInstancePos = GetPosition();
    info.m_vInstanceEuler = GetOrientation();
    loadedPrefab->Instantiate(info);
  }
コード例 #22
0
void VTextLabel::Serialize( VArchive &ar )
{
  char iLocalVersion = 0;
  VDlgControlBase::Serialize(ar);
  if (ar.IsLoading())
  {
    ar >> iLocalVersion; VASSERT_MSG(iLocalVersion==0,"Invalid version");
    ar >> m_TextCfg;
  } else
コード例 #23
0
// ----------------------------------------------------------------------------
void vHavokStiffSpringConstraintDesc::Serialize( VArchive &ar )
{
  vHavokConstraintDesc::Serialize(ar);
  if (ar.IsLoading())
  {
    unsigned int iVersion = 0;
    ar >> iVersion;
    VASSERT((iVersion > 0) && (iVersion <= s_iSerialVersion));
  }
コード例 #24
0
void VRendererNodeCommon::Serialize( VArchive &ar )
{
  char iLocalVersion = RENDERERNODEBASE_VERSION_CURRENT;
  if (ar.IsLoading())
  {
    ar >> iLocalVersion;
    VASSERT_MSG(iLocalVersion >= RENDERERNODEBASE_VERSION_1 && iLocalVersion <= RENDERERNODEBASE_VERSION_CURRENT, 
      "VRendererNodeCommon: Invalid version number");
  }
コード例 #25
0
void VisClothDeformer_cl::Serialize( VArchive &ar )
{
  VisTypedEngineObject_cl::Serialize(ar);
  if (ar.IsLoading())
  {
  }
  else
  {
  }
}
コード例 #26
0
void VItemContainer::Serialize( VArchive &ar )
{
  char iLocalVersion = 0;
  VDlgControlBase::Serialize(ar);
  if (ar.IsLoading())
  {
    ar >> iLocalVersion; VASSERT_MSG(iLocalVersion==0,"Invalid version");
    ar >> m_Frame;
    m_SubItems.SerializeX(ar);
  } else
コード例 #27
0
void VTimedValueComponent::Serialize( VArchive &ar )
{
  char iLocalVersion = 0;
  IVObjectComponent::Serialize(ar);
  hkvLog::Warning("VTimedValueComponent is not intended to be (de-)serialized. It should only be created by Lua script.");
  if (ar.IsLoading())
  {
    ar >> iLocalVersion;
    VASSERT_MSG(iLocalVersion == 0, "Invalid local version. Please re-export");
  } 
コード例 #28
0
ファイル: FXAA.cpp プロジェクト: Arpit007/projectanarchy
void VPostProcessFXAA::Serialize( VArchive &ar )
{
  if (ar.IsLoading())
  {
    ar >> m_bActive;

    unsigned int iQuality;
    ar >> iQuality;
    Quality = QualityLevel(iQuality);
  }
コード例 #29
0
void VSkeletalBoneProxyObject::Serialize( VArchive &ar )
{
  VisObject3D_cl::Serialize(ar);
  char iLocalVersion = 0;
  if (ar.IsLoading())
  {
    ar >> iLocalVersion; VASSERT_MSG(iLocalVersion==0,"Invalid version number");
    ar >> m_iBoneIndex;
    VASSERT_MSG(m_iBoneIndex==-1 || m_iBoneIndex<((VisBaseEntity_cl *)m_pParent)->GetMesh()->GetSkeleton()->GetBoneCount(), "Invalid bone index");
  } else
コード例 #30
0
void ClothEntity_cl::Serialize( VArchive &ar )
{
  if (ar.IsLoading())
  {
    VisBaseEntity_cl::Serialize(ar);
    char iVersion,iModelType;
    char szModelFile[FS_MAX_PATH+1];
    int iReserved;
    bool bTemp;
    hkvVec4 vPos,vOri;
    ar >> iVersion;VASSERT(iVersion==0 || iVersion==1);
    ar >> iModelType;VASSERT(iModelType==0); // currently from file only. Later maybe planar subdiv.
    ar.ReadStringBinary(szModelFile,FS_MAX_PATH);
    ar >> vPos;
    ar >> vOri;
    if (iVersion>=1)
      m_vCurrentScaling.SerializeAsVisVector (ar);

    ar >> m_fPhysicsTicks;
    ar >> bTemp;m_bSimulateWhenVisible=bTemp;
    ar >> m_fGravity;

    BaseInit();
    
    m_vCurrentPos = vPos.getAsVec3 (); // do not apply delta in SetClothPosition
    SetMeshModel(szModelFile, m_vCurrentScaling);

    ar >> bTemp; // has mesh?
    if (bTemp)
    {
      VASSERT(m_spMesh!=NULL);
      m_spMesh->SerializeX(ar);;
    }
    ar >> m_iInitialTickCount;
    ar >> iReserved; VASSERT(iReserved==0);

    //SetClothPosition(vPos); 
    SetClothOrientation(vOri.getAsVec3 ());
    ResetForces();
    //SetRelativeLightGridSamplePos(vLGRelPos);
    m_iRemainingInitialTicks = m_iInitialTickCount;
    RunInitialTicks();
  } else