From cc6a65d5e40129d7fd73b1fc5af6d4a079c2e47c Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 9 Jan 2023 22:17:58 -0800 Subject: [PATCH] Slight reorganization --- BurnOutSharp.Wrappers/CFB.cs | 42 ++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/BurnOutSharp.Wrappers/CFB.cs b/BurnOutSharp.Wrappers/CFB.cs index e18bf4a1..fd61e632 100644 --- a/BurnOutSharp.Wrappers/CFB.cs +++ b/BurnOutSharp.Wrappers/CFB.cs @@ -159,7 +159,7 @@ namespace BurnOutSharp.Wrappers #endregion - #region Data + #region FAT Sector Data /// /// Get the ordered FAT sector chain for a given starting sector @@ -210,7 +210,7 @@ namespace BurnOutSharp.Wrappers for (int i = 0; i < sectorChain.Count; i++) { // Try to get the sector data offset - int sectorDataOffset = (int)ToFileOffset(sectorChain[i]); + int sectorDataOffset = (int)FATSectorToFileOffset(sectorChain[i]); if (sectorDataOffset < 0 || sectorDataOffset >= GetEndOfFile()) return null; @@ -227,6 +227,25 @@ namespace BurnOutSharp.Wrappers return data.ToArray(); } + /// + /// Convert a FAT sector value to a byte offset + /// + /// Sector to convert + /// File offset in bytes, -1 on error + public long FATSectorToFileOffset(Models.CFB.SectorNumber sector) + { + // If we have an invalid sector number + if (sector > Models.CFB.SectorNumber.MAXREGSECT) + return -1; + + // Convert based on the sector shift value + return (long)((long)(sector + 1) * Math.Pow(2, SectorShift)); + } + + #endregion + + #region Mini FAT Sector Data + /// /// Get the ordered Mini FAT sector chain for a given starting sector /// @@ -276,7 +295,7 @@ namespace BurnOutSharp.Wrappers for (int i = 0; i < sectorChain.Count; i++) { // Try to get the sector data offset - int sectorDataOffset = (int)ToMiniFileOffset(sectorChain[i]); + int sectorDataOffset = (int)MiniFATSectorToFileOffset(sectorChain[i]); if (sectorDataOffset < 0 || sectorDataOffset >= GetEndOfFile()) return null; @@ -293,27 +312,12 @@ namespace BurnOutSharp.Wrappers return data.ToArray(); } - /// - /// Convert a FAT sector value to a byte offset - /// - /// Sector to convert - /// File offset in bytes, -1 on error - public long ToFileOffset(Models.CFB.SectorNumber sector) - { - // If we have an invalid sector number - if (sector > Models.CFB.SectorNumber.MAXREGSECT) - return -1; - - // Convert based on the sector shift value - return (long)((long)(sector + 1) * Math.Pow(2, SectorShift)); - } - /// /// Convert a Mini FAT sector value to a byte offset /// /// Sector to convert /// File offset in bytes, -1 on error - public long ToMiniFileOffset(Models.CFB.SectorNumber sector) + public long MiniFATSectorToFileOffset(Models.CFB.SectorNumber sector) { // If we have an invalid sector number if (sector > Models.CFB.SectorNumber.MAXREGSECT)