UBOOL FFileManagerWindows::InternalGetTimestamp( const TCHAR* Filename, FTimeStamp& Timestamp )
{
	appMemzero( &Timestamp, sizeof(Timestamp) );
	struct _stat FileInfo;
	if( 0 == _wstat( Filename, &FileInfo ) )
	{
		time_t	FileTime;	
		FileTime = FileInfo.st_mtime;
#if USE_SECURE_CRT
		tm Time;
		gmtime_s(&Time,&FileTime);
#else
		tm& Time = *gmtime(&FileTime);
#endif
		Timestamp.Day       = Time.tm_mday;
		Timestamp.Month     = Time.tm_mon;
		Timestamp.DayOfWeek = Time.tm_wday;
		Timestamp.Hour      = Time.tm_hour;
		Timestamp.Minute    = Time.tm_min;
		Timestamp.Second    = Time.tm_sec;
		Timestamp.Year      = Time.tm_year + 1900;
		return TRUE;
	}
	return FALSE;
}
Beispiel #2
0
FSHVector::FSHVector(const FQuantizedSHVector& Quantized)
{
	appMemzero(V, sizeof(V));
	const FLOAT MinCoefficient32 = Quantized.MinCoefficient.GetFloat();
	const FLOAT MaxCoefficient32 = Quantized.MaxCoefficient.GetFloat();
	for (INT BasisIndex = 0; BasisIndex < MAX_SH_BASIS; BasisIndex++)
	{
		// Dequantize from 8 bit with stored min and max
		V[BasisIndex] = (MaxCoefficient32 - MinCoefficient32) * Quantized.V[BasisIndex] / 255.0f + MinCoefficient32;
	}
}
Beispiel #3
0
int CMetaWater::CopyMetaData( const CMetaWater& Src )
{

	//m_listWaterGroup = Src->m_listWaterGroup;
	MetaDataRelease();

	SWaterGroup * pWaterGroupDest = NULL;
	const SWaterGroup * pWaterGroupSrc  = NULL;

	int iSrcGroupNum = Src.m_listWaterGroup.Num();

	for( int i = 0; i < iSrcGroupNum; i++ )
	{
		pWaterGroupDest = new SWaterGroup;
		pWaterGroupSrc  = Src.m_listWaterGroup[i];

		appMemzero( pWaterGroupDest->szNameTexture1, sizeof(char)*WATER_TEXTURENAME_SIZE );
		appMemzero( pWaterGroupDest->szNameTexture2, sizeof(char)*WATER_TEXTURENAME_SIZE );
		appMemzero( pWaterGroupDest->szNameTextureSpecular, sizeof(char)*WATER_TEXTURENAME_SIZE );
		appMemzero( pWaterGroupDest->szNameTextureGloss, sizeof(char)*WATER_TEXTURENAME_SIZE );

		pWaterGroupDest->iID = pWaterGroupSrc->iID;

		if( m_iGroupIDCounter <= pWaterGroupSrc->iID )
		{
			m_iGroupIDCounter = pWaterGroupSrc->iID+1;
		}

		appStrcpy( pWaterGroupDest->szNameTexture1, pWaterGroupSrc->szNameTexture1 );
		appStrcpy( pWaterGroupDest->szNameTexture2, pWaterGroupSrc->szNameTexture2 );
		appStrcpy( pWaterGroupDest->szNameTextureSpecular, pWaterGroupSrc->szNameTextureSpecular );
		appStrcpy( pWaterGroupDest->szNameTextureGloss, pWaterGroupSrc->szNameTextureGloss );
		pWaterGroupDest->WaterIdxBuffer = pWaterGroupSrc->WaterIdxBuffer;
		pWaterGroupDest->WaterVtxBuffer = pWaterGroupSrc->WaterVtxBuffer;
		pWaterGroupDest->fTextureURepeat = pWaterGroupSrc->fTextureURepeat;
		pWaterGroupDest->fTextureVLength = pWaterGroupSrc->fTextureVLength;

		m_listWaterGroup.AddItem(pWaterGroupDest);
	}
	return 0;
}
Beispiel #4
0
bool DTextParser::Bind( SString strBuffer )
{
	if( strBuffer.IsEmpty() ) return false;

	DTextParser::Release();
	DTextParser::InitMembers();

	m_lBufSize = strBuffer.Len()+1;

	// buffer init.
	SAFE_DELETE_ARRAY( m_pBuffer );
	m_pBuffer = new char[m_lBufSize];
	appMemzero( m_pBuffer, m_lBufSize*sizeof(char) );
	// buffer assignment
	appMemcpy( m_pBuffer, (lpctstr)strBuffer, m_lBufSize-1 );

	return true;
}
Beispiel #5
0
void Physics::InitCollision( void )
{
	DLogWriteSystem(" ---- Init Collision ----" );
//	InitPhysics( SBox( SVector(-100000.f, -50000.f, -100000.f), SVector(100000.f, 50000.f, 100000.f) ) );
	g_WorldRange.Init();
	g_WorldRange += SVector( WORLD_MAX_X, WORLD_MAX_Y, WORLD_MAX_Z );
	g_WorldRange += SVector( WORLD_MIN_X, WORLD_MIN_Y, WORLD_MIN_Z );
	WorldMin = g_WorldRange.Min;
	WorldGrid = ( g_WorldRange.Max - g_WorldRange.Min ) / SVector( GRID_X, GRID_Y, GRID_Z );

	appMemzero( Hash, sizeof(SHashNode*)*HASH_TABLE_NUM );
	Available = NULL;
	CollisionTag = 0;
	
	DTerrainActor::TerrainList.Empty();

	DLogWriteSystem(" ---- init collision end" );
}
Beispiel #6
0
bool DTextParser::Bind( FILE *fp, dword dwSize )
{
	if( fp==NULL || dwSize==0 ) return false;

	DTextParser::Release();
	DTextParser::InitMembers();

//	FILE *fp = GetFile();
//	if( !fp ) return;
	m_lBufSize = dwSize;

	// buffer init.
	SAFE_DELETE_ARRAY( m_pBuffer );
	m_pBuffer = new char[m_lBufSize];
	appMemzero( m_pBuffer, m_lBufSize*sizeof(char) );
	// buffer assignment
	fread( m_pBuffer, sizeof(char), m_lBufSize, fp );
	//fread( m_pBuffer, sizeof(char), m_lBufSize, fp );

	//Close();
	return true;
}
Beispiel #7
0
bool DTextParser::Bind( DFile *pFile )
{
	if( pFile==NULL || !pFile->IsReadable() ) return false;

	DTextParser::Release();
	DTextParser::InitMembers();

//	FILE *fp = GetFile();
//	if( !fp ) return;
	m_lBufSize = pFile->GetSize();

	// buffer init.
	SAFE_DELETE_ARRAY( m_pBuffer );
	m_pBuffer = new char[m_lBufSize];
	appMemzero( m_pBuffer, m_lBufSize*sizeof(char) );
	// buffer assignment
	pFile->Read( m_pBuffer, m_lBufSize );
	//fread( m_pBuffer, sizeof(char), m_lBufSize, fp );

	//Close();

	return true;
}
Beispiel #8
0
void CEnvironment::Load( DFile& FileToLoad_ )
{
	if( !FileToLoad_.IsReadable() ) return;

	// Load to buffer
	//vector<char> aBuffer;
	//aBuffer.resize( FileToLoad_.GetSize()+1 );
	//appMemzero( &aBuffer[0], sizeof(char)*aBuffer.size() );
	//FileToLoad_.Read( &aBuffer[0], sizeof(char)*FileToLoad_.GetSize() );
	dword dwBufSize = FileToLoad_.GetSize()+1;
	char *szBuffer = new char[dwBufSize];
	appMemzero( szBuffer, sizeof(char)*dwBufSize );
	FileToLoad_.Read( szBuffer, sizeof(char)*FileToLoad_.GetSize() );

	//if( aBuffer.size()<2 ) { return; } // too small

	// parsing
	CVarBlockParser Parser( szBuffer );
	const CVarBlockParser::_VariableBlock *pBlock = &Parser.Root();

	ParseScript( pBlock );

	SAFE_DELETE_ARRAY( szBuffer );
}
Beispiel #9
0
int CMetaWater::Load( DFile &LoadFile )
{
	if( !LoadFile.IsReadable() )
	{
		return -1;
	}

	dword dwIdentifier = 0;
	dword dwVerson = 0;
	dword dwReserved0 = 0;
	dword dwReserved1 = 0;
	dword dwReserved2 = 0;
	dword dwReserved3 = 0;

	SWaterGroup * pWaterGroup = NULL;

	{
		//´Ù Áö¿ì°í..
		MetaDataRelease();
		//
		LoadFile.Read(&dwIdentifier, sizeof(dword));

		if( dwIdentifier != WATER_METADATA_IDENTIFIER ) return -1;
		
		LoadFile.Read(&dwVerson, sizeof(dword));
		if( dwVerson == WATER_METADATA_VER_1 )
		{
			LoadFile.Read(&dwReserved0, sizeof(dword));
			LoadFile.Read(&dwReserved1, sizeof(dword));
			LoadFile.Read(&dwReserved2, sizeof(dword));
			LoadFile.Read(&dwReserved3, sizeof(dword));

			LoadFile.Read(&m_iGroupIDCounter, sizeof(m_iGroupIDCounter));
			LoadFile.Read(&m_iVtxIDCounter, sizeof(m_iVtxIDCounter));

			int iGroupNum = 0;
			LoadFile.Read( &iGroupNum, sizeof(iGroupNum));


			for( int i = 0; i < iGroupNum; i++ )
			{

				pWaterGroup = new SWaterGroup;

				LoadFile.Read(& pWaterGroup->iID, sizeof(pWaterGroup->iID));
				LoadFile.Read(pWaterGroup->szNameTexture1, sizeof(pWaterGroup->szNameTexture1));
				LoadFile.Read(pWaterGroup->szNameTexture2, sizeof(pWaterGroup->szNameTexture2));
				LoadFile.Read(pWaterGroup->szNameTextureSpecular, sizeof(pWaterGroup->szNameTextureSpecular));
				LoadFile.Read(pWaterGroup->szNameTextureGloss, sizeof(pWaterGroup->szNameTextureGloss));
				LoadFile.Read(& pWaterGroup->fTextureURepeat, sizeof(pWaterGroup->fTextureURepeat));
				LoadFile.Read(& pWaterGroup->fTextureVLength, sizeof(pWaterGroup->fTextureVLength));


				int iIdxNum = 0;

				LoadFile.Read( &iIdxNum, sizeof(iIdxNum) );
				
				for( int j = 0; j < iIdxNum; j++ )
				{
					int iValue = 0;

					LoadFile.Read(&iValue, sizeof(iValue));
					pWaterGroup->WaterIdxBuffer.AddItem(iValue);
				}

				int iVtxNum = 0;
				LoadFile.Read( &iVtxNum, sizeof(iVtxNum));

				for( int k = 0; k < iVtxNum; k++ )
				{
					SWaterVtx WaterVtx;
					appMemzero( &WaterVtx, sizeof(SWaterVtx) );
					LoadFile.Read( &WaterVtx, sizeof(WaterVtx) );
					pWaterGroup->WaterVtxBuffer.AddItem(WaterVtx);
				}

				m_listWaterGroup.AddItem(pWaterGroup);
			}
		}
	}
	return 0;
}
Beispiel #10
0
void VObject::StaticInit()
{
	_GObjInitialized = TRUE;
	appMemzero(_GObjHash, sizeof(VObject*) * OBJECT_HASH_BINS);
	appMemzero(_GObjHashOuter, sizeof(VObject*) * OBJECT_HASH_BINS);
}