void TestFileSystemInit(void) { CFileSystem cSystem; char* szFullName; CFileUtil cFileUtil; CChars szWorkingDirectory; CChars szTemp; CTextFile cTextFile; szWorkingDirectory.Init("Finder"); cFileUtil.FullPath(&szWorkingDirectory); cSystem.Init("Finder"); szFullName = cSystem.GetFileName("Lord/1.rar"); szTemp.Init(szFullName); szTemp.RemoveFromStart(szWorkingDirectory.Length()+1); szTemp.Replace(FILE_SEPARATOR[0], '/'); AssertString("Lord/1.rar", szTemp.Text()); szTemp.Kill(); szFullName = cSystem.GetFileName("File.txt"); cTextFile.Init(); cTextFile.Read(szFullName); AssertString("Hello World.", cTextFile.Text()); cTextFile.Kill(); cSystem.Kill(); }
void AssertPakFile(char* szFileName, char* szContents, CFiles* pcFiles) { CAbstractFile* pcFile; CTextFile cTextFile; pcFile = pcFiles->GetFile(szFileName); AssertNotNull(pcFile); cTextFile.Init(); cTextFile.Read(pcFile); AssertString(szContents, cTextFile.Text()); cTextFile.Kill(); }
void TestFilesSimple(void) { CFiles cFiles; CAbstractFile* pcFile; CTextFile cTextFile; //If this test fails you probably need to re-generate the source PAK files. //Use TestPackFilesPackerSimple to do this. cFiles.Init("Game", "PAK"); AssertInt(6, cFiles.GetNumPackFiles()); pcFile = cFiles.GetFile("Sounds/Santa/Seattle.txt"); AssertNotNull(pcFile); cTextFile.Init(); cTextFile.Read(pcFile); AssertString("All night long\r\n", cTextFile.Text()); cTextFile.Kill(); pcFile = cFiles.GetFile("Sounds/General.txt"); AssertNotNull(pcFile); cTextFile.Init(); cTextFile.Read(pcFile); AssertString("General", cTextFile.Text()); cTextFile.Kill(); pcFile = cFiles.GetFile("Sounds/Santa/Slay/Spelling.txt"); AssertNotNull(pcFile); cTextFile.Init(); cTextFile.Read(pcFile); AssertString("Spelling", cTextFile.Text()); cTextFile.Kill(); cFiles.Kill(); }
void CInputDeviceDesc::Dump(void) { CTextFile cFile; CChars szName; cFile.Init(); ToString(&cFile.mcText); szName.Init("../"); szName.Append(mszFriendlyName.Text()); szName.Append(".txt"); cFile.Write(szName.Text()); szName.Kill(); cFile.Kill(); }
////////////////////////////////////////////////////////////////////////// // // // // ////////////////////////////////////////////////////////////////////////// void CCFile::Load(void) { CTextFile cFile; if (!mbLoaded) { mbLoaded = TRUE; cFile.Init(); cFile.Read(mszFullName.Text()); mszContents.Kill(); mszContents.Init(cFile.Text()); cFile.Kill(); } }
BOOL SaveOBJ(CMesh *pcMesh, char* szFileName) { CTextFile cTextFile; BOOL bTextureCoords; BOOL bVertexNormals; cTextFile.Init(); AddOBJHeading(&cTextFile.mcText); AddOBJName(pcMesh, &cTextFile.mcText); AddOBJVertices(pcMesh, &cTextFile.mcText); bVertexNormals = AddOBJNormals(&pcMesh->mcNormals, &cTextFile.mcText); bTextureCoords = AddOBJTextureCoords(&pcMesh->mcUVs, &cTextFile.mcText); AddOBJFaces(pcMesh, &cTextFile.mcText, bTextureCoords, bVertexNormals); cTextFile.Write(szFileName); cTextFile.Kill(); return FALSE; }
void TestBufferedFileReadWrite(void) { CFileUtil cFileUtil; CFileBasic cFile; CTextFile cText; char sz[20]; cFileUtil.Delete("Test.txt"); cFile.Init(BufferedFile(DiskFile("Test.txt"), 3)); cFile.Open(EFM_ReadWrite_Create); cFile.Write("abcdefghijklmn", 1, 14); cFile.Write("op", 1, 2); cFile.Seek(3); memset(sz, 0, 20); cFile.Read(sz, 2, 1); AssertString("de", sz); cFile.Read(sz, 2, 1); AssertString("fg", sz); cFile.Write("12", 2, 1); cFile.Read(sz, 2, 1); AssertString("jk", sz); cFile.Write("34", 2, 1); cFile.Read(sz, 2, 1); AssertString("no", sz); cFile.Seek(2); cFile.Write("XY", 2, 1); cFile.Read(sz, 1, 3); AssertString("efg", sz); cFile.Close(); cFile.Kill(); cText.Init(); cText.Read("Test.txt"); AssertString("abXYefg12jk34nop", cText.mcText.Text()); cText.Kill(); cFileUtil.Delete("Test.txt"); }
BOOL CConvexHullGenerator::Generate(void) { int iMaxXIndex; int iMinXIndex; CHalfSpaceHelper cHalfSpace; int iFarIndex; SFloat3* psPosition; CArrayExtremeTrianglePtr apcTriangles; CExtremeTriangle* pcTriangle; CExtremeTriangle* pcDeleted; SFreeListIterator sIter; CArrayExtremeTrianglePtr cDeleted; CArrayExtremeTrianglePtr cFixedDeleted; int j; SConvexHullHoleEdge sEdges; int k; int aiIndex[3]; int iIndex; CExtremeTriangle* pcSelected; CTextFile cTextFile; int iTriangle; float fMinX; float fMaxX; iMaxXIndex = FindMaxX(&fMinX); iMinXIndex = FindMinX(&fMaxX); iFarIndex = FindFurthestPoint(iMaxXIndex, iMinXIndex); if (iFarIndex == -1) { gcUserError.Set("Could not find a third point generating Convex Hull."); return FALSE; } apcTriangles.Init(2048); if (!FindFirstPairTriangles(&apcTriangles, iMaxXIndex, iMinXIndex, iFarIndex)) { gcUserError.Set("Could not find the first triangle pair generating Convex Hull."); return FALSE; } cDeleted.Init(512); cFixedDeleted.Init(512); for (iTriangle = 0; iTriangle < apcTriangles.NumElements(); iTriangle++) { pcSelected = *apcTriangles.Get(iTriangle); if ((pcSelected == NULL) || (pcSelected->maiVisible.NumElements() == 0)) { continue; } aiIndex[0] = GetIndex(mpsPoints, iStride, pcSelected->mpsPosition); aiIndex[1] = GetIndex(mpsPoints, iStride, pcSelected->mpsPosition1); aiIndex[2] = GetIndex(mpsPoints, iStride, pcSelected->mpsPosition2); iFarIndex = pcSelected->FindFurthestPoint(mpsPoints, iStride); if (iFarIndex == -1) { gcUserError.Set("Could not find furthest point!"); return FALSE; } cDeleted.FakeSetUsedElements(0); //It's sort of safe to do this. psPosition = GetPosition(mpsPoints, iStride, iFarIndex); pcTriangle = (CExtremeTriangle*)mcTriangles.StartIteration(&sIter); while (pcTriangle) { if (pcTriangle->maiVisible.NumElements() > 0) { if (pcTriangle->NotContains(psPosition)) { cDeleted.Add(&pcTriangle); } } pcTriangle = (CExtremeTriangle*)mcTriangles.Iterate(&sIter); } RemoveDiscontiguousTriangles(pcSelected, &cDeleted, &cFixedDeleted); for (j = 0; j < cDeleted.NumElements(); j++) { pcDeleted = *cDeleted.Get(j); FindEdges(&sEdges, pcDeleted, &cDeleted); for (k = 0; k < sEdges.iNumEdges; k++) { pcTriangle = AddTriangle(GetPosition(mpsPoints, iStride, sEdges.aaiEdgeIndices[k][0]), GetPosition(mpsPoints, iStride, sEdges.aaiEdgeIndices[k][1]), GetPosition(mpsPoints, iStride, iFarIndex)); apcTriangles.Add(&pcTriangle); AddPointsFromTriangles(pcTriangle, &cDeleted, iFarIndex); } } for (j = 0; j < cDeleted.NumElements(); j++) { pcDeleted = *cDeleted.Get(j); pcDeleted->Kill(); mcTriangles.Remove(pcDeleted); iIndex = apcTriangles.FindWithIntKey((int)(size_t)pcDeleted, 0); *(apcTriangles.Get(iIndex)) = NULL; } } cDeleted.Kill(); cFixedDeleted.Kill(); apcTriangles.Kill(); RemoveSlivers(); if (mszHullName) { CChars szTemp; szTemp.Init("Writing Hull file ["); szTemp.Append(mszHullName); szTemp.Append("]\n"); szTemp.Kill(); cTextFile.Init(); DumpTriangleObj(&cTextFile.mcText, iTriangle); cTextFile.Write(mszHullName); cTextFile.Kill(); } return TRUE; }
void TestBufferedFileWrite(void) { CFileUtil cFileUtil; CFileBasic cFile; CTextFile cText; cFileUtil.Delete("Test.txt"); cFile.Init(BufferedFile(DiskFile("Test.txt"), 3)); cFile.Open(EFM_Write_Create); cFile.Write("ab", 1, 2); cFile.Write("cd", 1, 2); cFile.Close(); cFile.Kill(); cText.Init(); cText.Read("Test.txt"); AssertString("abcd", cText.mcText.Text()); cText.Kill(); cFile.Init(BufferedFile(DiskFile("Test.txt"), 5)); cFile.Open(EFM_Write_Create); cFile.Write("abcdefghi", 1, 9); cFile.Write("jklmn", 1, 5); cFile.Close(); cFile.Kill(); cText.Init(); cText.Read("Test.txt"); AssertString("abcdefghijklmn", cText.mcText.Text()); cText.Kill(); cFile.Init(BufferedFile(DiskFile("Test.txt"), 5)); cFile.Open(EFM_ReadWrite); cFile.Seek(4); cFile.Write("xyz", 3, 1); cFile.Close(); cFile.Kill(); cText.Init(); cText.Read("Test.txt"); AssertString("abcdxyzhijklmn", cText.mcText.Text()); cText.Kill(); cFile.Init(BufferedFile(DiskFile("Test.txt"), 8)); cFile.Open(EFM_ReadWrite); cFile.Seek(0, EFSO_END); cFile.Write("opqrst", 6, 1); cFile.Seek(0); cFile.Write("123456", 6, 1); cFile.Write("78", 2, 1); cFile.Close(); cFile.Kill(); cText.Init(); cText.Read("Test.txt"); AssertString("12345678ijklmnopqrst", cText.mcText.Text()); cText.Kill(); cFile.Init(BufferedFile(DiskFile("Test.txt"), 3)); cFile.Open(EFM_Write_Create); cFile.Write("ab", 1, 2); cFile.Write("cdef", 1, 4); cFile.Write("gh", 1, 2); cFile.Close(); cFile.Kill(); cText.Init(); cText.Read("Test.txt"); AssertString("abcdefgh", cText.mcText.Text()); cText.Kill(); cFileUtil.Delete("Test.txt"); }
void TestBufferedFileRead(void) { CFileUtil cFileUtil; CFileBasic cFile; CTextFile cText; char sz[20]; char c; int iCount; int i; char szExpected[20]; cFileUtil.Delete("Test.txt"); cText.Init(); cText.mcText.Append("abcdefghijk"); cText.Write("Test.txt"); cText.Kill(); cFile.Init(BufferedFile(DiskFile("Test.txt"), 3)); cFile.Open(EFM_Read); for (c = 'a'; c <= 'k'; c++) { AssertFalse(cFile.IsEndOfFile()); memset(sz, 0, 20); iCount = (int)cFile.Read(sz, 1, 1); AssertChar(c, sz[0]); AssertChar(0, sz[1]); AssertInt(1, iCount); } AssertTrue(cFile.IsEndOfFile()); cFile.Seek(0); szExpected[2] = 0; for (i = 0; i < 5; i++) { AssertFalse(cFile.IsEndOfFile()); memset(sz, 0, 20); iCount = (int)cFile.Read(sz, 1, 2); szExpected[0] = 'a' + (char)i * 2; szExpected[1] = 'b' + (char)i * 2; AssertString(szExpected, sz); AssertInt(2, iCount); } AssertFalse(cFile.IsEndOfFile()); memset(sz, 0, 20); iCount = (int)cFile.Read(sz, 1, 2); AssertString("k", sz); AssertInt(1, iCount); AssertTrue(cFile.IsEndOfFile()); cFile.Seek(0); szExpected[3] = 0; for (i = 0; i < 3; i++) { AssertFalse(cFile.IsEndOfFile()); memset(sz, 0, 20); iCount = (int)cFile.Read(sz, 1, 3); szExpected[0] = 'a' + (char)i * 3; szExpected[1] = 'b' + (char)i * 3; szExpected[2] = 'c' + (char)i * 3; AssertString(szExpected, sz); AssertInt(3, iCount); } AssertFalse(cFile.IsEndOfFile()); memset(sz, 0, 20); iCount = (int)cFile.Read(sz, 1, 3); AssertString("jk", sz); AssertInt(2, iCount); AssertTrue(cFile.IsEndOfFile()); cFile.Kill(); cFileUtil.Delete("Test.txt"); }