void vHavokAiModule::GlobalsChunkFileExchange(VChunkFile &file, CHUNKIDTYPE iID)
{
	const int sanity_number = 0xbaddda1a;
	char iLocalVersion = 2;
	if (file.IsLoading())
	{
		// in loading mode, we receive this callback already when the chunk has been identified
		file.ReadChar(iLocalVersion);
		VASSERT(iLocalVersion<=2);
		int sanity_check;
		file.ReadInt(sanity_check);
		VASSERT(sanity_check == sanity_number);

		if (iLocalVersion >= 2)
		{
      bool bTmp;
			file.Readbool(bTmp); // determine if we want dynamic cutting
      SetConnectToPhysicsWorld(bTmp);
		}
	}
	else
	{
		file.StartChunk(iID); // in save mode, make a sub-chunk
		file.WriteChar(iLocalVersion);
		file.WriteInt(sanity_number);
		file.Writebool(m_connectToPhysicsWorld); // save out if we want dynamic cutting
		file.EndChunk();
	}
}
Esempio n. 2
0
bool LightmapManager::LoadLightGridInfo(const char *szFilename)
{
  VLightGrid_cl *pGrid = Vision::RenderLoopHelper.GetLightGrid();
  if (!pLightGridInfo)
    pLightGridInfo = new LightGridTweakInfo();


  pLightGridInfo->ReleaseColors();

  VChunkFile loader;
  if (loader.Open(szFilename, Vision::File.GetManager()))
  {
    CHUNKIDTYPE iChunkID;
    while (loader.OpenChunk(&iChunkID))
    {
      if (iChunkID=='LGIB')
      {
        loader.ReadInt(pLightGridInfo->m_iFlatColorCount);
        pLightGridInfo->m_pBaseColors = new hkvVec3[pLightGridInfo->m_iFlatColorCount];
        loader.Read(pLightGridInfo->m_pBaseColors, pLightGridInfo->m_iFlatColorCount*sizeof(hkvVec3));
        bLightGridBase = pLightGridInfo->m_bHasBase=true;
      }
      if (iChunkID=='LGIR')
      {
        loader.ReadInt(pLightGridInfo->m_iFlatColorCount);
        pLightGridInfo->m_pRadiosityColors = new hkvVec3[pLightGridInfo->m_iFlatColorCount];
        loader.Read(pLightGridInfo->m_pRadiosityColors, pLightGridInfo->m_iFlatColorCount*sizeof(hkvVec3));
        bLightGridRadiosity = pLightGridInfo->m_bHasRadiosity=true;
      }
      loader.EndChunk();
    }

    loader.Close();
    if (pLightGridInfo->m_iFlatColorCount>0)
      pLightGridInfo->m_pMixResult = new hkvVec3[pLightGridInfo->m_iFlatColorCount];
  }
  else
  {
    // create a clone of the current light grid
    pLightGridInfo->FromLightGrid(pGrid);
  }

  return true;
}