diff --git a/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs b/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs
index bd424d2..22d787c 100644
--- a/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs
+++ b/TwlBkpCheck/Windows/TWLBackupBlock/Blocks.cs
@@ -3,20 +3,28 @@ using System.Diagnostics;
namespace TwlBackupBlock
{
+ public enum BkpType
+ {
+ NORMAL,
+ WITH_PRIVATE_SAVE,
+ LEGACY
+ };
+
///
/// ブロックの集合です。
///
public class Blocks : ICloneable
{
- private const int NUM_BLOCKS = 14;
+ private const int NUM_BLOCKS = 15;
public Block banner;
public Block header;
public Block signature;
public Block tmd;
public Block[] content;
- public Block saveData;
+ public Block publicSave;
public Block subBanner;
+ public Block privateSave;
///
/// Blocksクラスの新しいインスタンスを初期化します。
@@ -32,8 +40,9 @@ namespace TwlBackupBlock
{
content[i] = new Block();
}
- saveData = new Block();
+ publicSave = new Block();
subBanner = new Block();
+ privateSave = new Block();
}
///
@@ -57,8 +66,9 @@ namespace TwlBackupBlock
case 1: return header;
case 2: return signature;
case 3: return tmd;
- case 12: return saveData;
+ case 12: return publicSave;
case 13: return subBanner;
+ case 14: return privateSave;
default:
Debug.Assert(false);
return null; // never reach
@@ -96,8 +106,12 @@ namespace TwlBackupBlock
newBlocks.content[i] = (Block)content[i].Clone();
}
}
- newBlocks.saveData = (Block)saveData.Clone();
+ newBlocks.publicSave = (Block)publicSave.Clone();
newBlocks.subBanner = (Block)subBanner.Clone();
+ if (privateSave.body != null)
+ {
+ newBlocks.privateSave = (Block)privateSave.Clone();
+ }
return newBlocks;
}
}