Rename ByteIO to ByteReader

Fix ImageBank writing
Fix ObjectCommon reading
master
REDxEYE 5 years ago
parent fce070d9d8
commit 3bd7bca7c6

@ -186,7 +186,7 @@
<Compile Include="MMFParser\Data\PackData.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Utils\ByteIO.cs" />
<Compile Include="Utils\ByteReader.cs" />
<Compile Include="Utils\Decompressor.cs" />
<Compile Include="Utils\Decryption.cs" />
<Compile Include="Utils\ImageDumper.cs" />

@ -434,45 +434,31 @@ namespace NetMFAPatcher.GUI
this.PerformLayout();
}
private System.Windows.Forms.Button packDataBtn;
private System.Windows.Forms.ToolStripMenuItem saveChunkBtn;
private System.Windows.Forms.ToolStripMenuItem viewHexBtn;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.CheckBox ChunkBox;
private System.Windows.Forms.ContextMenuStrip ChunkCombo;
private System.Windows.Forms.Button dumpSortedBtn;
private System.Windows.Forms.Button showHexBtn;
private System.Windows.Forms.Button cryptKeyBtn;
private System.Windows.Forms.Label loadingLabel;
private System.Windows.Forms.Button ImagesButton;
private System.Windows.Forms.Button SoundsButton;
private System.Windows.Forms.Button dumpSortedBtn;
private System.Windows.Forms.Button FolderBTN;
private System.Windows.Forms.Button MFABtn;
private System.Windows.Forms.ProgressBar SoundBar;
private System.Windows.Forms.Label SoundsLabel;
private System.Windows.Forms.Label ImagesLabel;
private System.Windows.Forms.ProgressBar ImagesBar;
private System.Windows.Forms.CheckBox ChunkBox;
private System.Windows.Forms.CheckBox ImageBox;
private System.Windows.Forms.CheckBox SoundBox;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label GameInfo;
private System.Windows.Forms.CheckBox ImageBox;
private System.Windows.Forms.ProgressBar ImagesBar;
private System.Windows.Forms.Button ImagesButton;
private System.Windows.Forms.Label ImagesLabel;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Label loadingLabel;
private System.Windows.Forms.Button MFABtn;
private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.Button packDataBtn;
private System.Windows.Forms.ToolStripMenuItem saveChunkBtn;
private System.Windows.Forms.Button showHexBtn;
private System.Windows.Forms.ProgressBar SoundBar;
private System.Windows.Forms.CheckBox SoundBox;
private System.Windows.Forms.Button SoundsButton;
private System.Windows.Forms.Label SoundsLabel;
private System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.ToolStripMenuItem viewHexBtn;
#endregion
}

@ -20,39 +20,39 @@ namespace NetMFAPatcher.GUI
public static bool BreakImages;
public static bool BreakSounds;
public Thread LoaderThread;
public Color colorTheme = Color.FromArgb(223,114,38);
public Color ColorTheme = Color.FromArgb(223,114,38);
public PackDataForm PackForm;
public MainForm()
{
//Buttons
InitializeComponent();
cryptKeyBtn.ForeColor = colorTheme;
dumpSortedBtn.ForeColor = colorTheme;
showHexBtn.ForeColor = colorTheme;
FolderBTN.ForeColor = colorTheme;
MFABtn.ForeColor = colorTheme;
ImagesButton.ForeColor = colorTheme;
SoundsButton.ForeColor = colorTheme;
packDataBtn.ForeColor = colorTheme;
cryptKeyBtn.ForeColor = ColorTheme;
dumpSortedBtn.ForeColor = ColorTheme;
showHexBtn.ForeColor = ColorTheme;
FolderBTN.ForeColor = ColorTheme;
MFABtn.ForeColor = ColorTheme;
ImagesButton.ForeColor = ColorTheme;
SoundsButton.ForeColor = ColorTheme;
packDataBtn.ForeColor = ColorTheme;
//Menu
saveChunkBtn.ForeColor = colorTheme;
saveChunkBtn.ForeColor = ColorTheme;
saveChunkBtn.BackColor=Color.Black;
viewHexBtn.ForeColor = colorTheme;
viewHexBtn.ForeColor = ColorTheme;
viewHexBtn.BackColor=Color.Black;
//Labels
label1.ForeColor = colorTheme;
label1.ForeColor = ColorTheme;
label1.Text = Settings.DumperVersion;
button1.ForeColor = colorTheme;
GameInfo.ForeColor = colorTheme;
loadingLabel.ForeColor = colorTheme;
ImagesLabel.ForeColor = colorTheme;
SoundsLabel.ForeColor=colorTheme;
button1.ForeColor = ColorTheme;
GameInfo.ForeColor = ColorTheme;
loadingLabel.ForeColor = ColorTheme;
ImagesLabel.ForeColor = ColorTheme;
SoundsLabel.ForeColor=ColorTheme;
//Other
treeView1.ForeColor = colorTheme;
listBox1.ForeColor = colorTheme;
ImagesBar.ForeColor = colorTheme;
SoundBar.ForeColor = colorTheme;
treeView1.ForeColor = ColorTheme;
listBox1.ForeColor = ColorTheme;
ImagesBar.ForeColor = ColorTheme;
SoundBar.ForeColor = ColorTheme;
}
@ -386,7 +386,7 @@ namespace NetMFAPatcher.GUI
rawData += Settings.Copyright;
}
var KeyForm = new CryptoKeyForm(rawData,colorTheme);
var KeyForm = new CryptoKeyForm(rawData,ColorTheme);
KeyForm.Show();
}
@ -403,7 +403,7 @@ namespace NetMFAPatcher.GUI
var node = ((ChunkNode) treeView1.SelectedNode);
HexViewForm hexform = null;
hexform = new HexViewForm(node.chunk.ChunkData,node.chunk.RawData,colorTheme,$"Hew View: {node.chunk.Name}");
hexform = new HexViewForm(node.chunk.ChunkData,node.chunk.RawData,ColorTheme,$"Hew View: {node.chunk.Name}");
hexform.Show();
}
@ -439,7 +439,7 @@ namespace NetMFAPatcher.GUI
private void packDataBtn_Click(object sender, EventArgs e)
{
if(PackForm==null)PackForm = new PackDataForm(Exe.LatestInst.PackData,colorTheme);
if(PackForm==null)PackForm = new PackDataForm(Exe.LatestInst.PackData,ColorTheme);
PackForm.Show();
}
}

@ -87,7 +87,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
List<int> _objects = new List<int>();
public Quailifer(Chunk chunk) : base(chunk) { }
public Quailifer(ByteIO reader) : base(reader) { }
public Quailifer(ByteReader reader) : base(reader) { }
public override void Print(bool ext)
{
@ -120,7 +120,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public List<Action> Actions = new List<Action>();
public EventGroup(Chunk chunk) : base(chunk) { }
public EventGroup(ByteIO reader) : base(reader) { }
public EventGroup(ByteReader reader) : base(reader) { }
public override void Print(bool ext)
{

@ -21,7 +21,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public int Identifier;
public int ObjectInfoList;
public List<Parameter> Items = new List<Parameter>();
public Condition(ByteIO reader) : base(reader) { }
public Condition(ByteReader reader) : base(reader) { }
public override void Print()
{
throw new NotImplementedException();
@ -68,7 +68,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public int ObjectInfo;
public int ObjectInfoList;
public List<Parameter> Items = new List<Parameter>();
public Action(ByteIO reader) : base(reader) { }
public Action(ByteReader reader) : base(reader) { }
public override void Print( )
{
throw new NotImplementedException();
@ -108,7 +108,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public int Code;
public DataLoader Loader;
public Parameter(ByteIO reader) : base(reader) { }
public Parameter(ByteReader reader) : base(reader) { }
public override void Print()
{

@ -10,7 +10,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Expressions
public int Num;
public int ObjectInfo;
public int ObjectInfoList;
public Expression(ByteIO reader) : base(reader) { }
public Expression(ByteReader reader) : base(reader) { }
public override void Print()
{
throw new NotImplementedException();

@ -10,7 +10,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
class AlterableValue : Short
{
public AlterableValue(ByteIO reader) : base(reader) { }
public AlterableValue(ByteReader reader) : base(reader) { }
public override void Read()
{
base.Read();

@ -7,7 +7,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
public Color Value;
public Colour(ByteIO reader) : base(reader) { }
public Colour(ByteReader reader) : base(reader) { }
public override void Read()
{
var bytes = Reader.ReadBytes(4);

@ -8,7 +8,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public int ObjectInfo;
public Position Position;
public Create(ByteIO reader) : base(reader) { }
public Create(ByteReader reader) : base(reader) { }
public override void Read()
{
Position = new Position(Reader);

@ -8,7 +8,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public int Compteur;
public Every(ByteIO reader) : base(reader) { }
public Every(ByteReader reader) : base(reader) { }
public override void Read()
{
Delay = Reader.ReadInt32();

@ -6,7 +6,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
public float Value;
public Float(ByteIO reader) : base(reader) { }
public Float(ByteReader reader) : base(reader) { }
public override void Read()
{
Value = Reader.ReadSingle();

@ -7,7 +7,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
public GlobalValue(ByteIO reader) : base(reader) { }
public GlobalValue(ByteReader reader) : base(reader) { }
public override void Read()
{
base.Read();

@ -6,7 +6,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
public Int(ByteIO reader) : base(reader) { }
public Int(ByteReader reader) : base(reader) { }
public override void Read()
{
Value = (short)Reader.ReadInt32();

@ -7,7 +7,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public int ObjectInfoList;
public int ObjectInfo;
public int ObjectType;
public ParamObject(ByteIO reader) : base(reader) { }
public ParamObject(ByteReader reader) : base(reader) { }
public override void Read()
{
ObjectInfoList = Reader.ReadInt16();

@ -8,7 +8,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
public ParameterCommon(ByteIO reader) : base(reader) { }
public ParameterCommon(ByteReader reader) : base(reader) { }
public override void Print()
{
throw new NotImplementedException();

@ -15,7 +15,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public int ObjectInfoList;
public int Layer;
public Position(ByteIO reader) : base(reader) { }
public Position(ByteReader reader) : base(reader) { }
public override void Read()
{
ObjectInfoParent = Reader.ReadInt16();

@ -6,7 +6,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
public Remark(ByteIO reader) : base(reader) { }
public Remark(ByteReader reader) : base(reader) { }
public override void Read()
{
//TODO

@ -8,7 +8,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public string Name;
public int Flags;
public Sample(ByteIO reader) : base(reader) { }
public Sample(ByteReader reader) : base(reader) { }
public override void Read()
{
Handle = Reader.ReadInt16();

@ -6,7 +6,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
public short Value;
public Short(ByteIO reader) : base(reader) { }
public Short(ByteReader reader) : base(reader) { }
public override void Read()
{
Value = Reader.ReadInt16();

@ -7,7 +7,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public int Timer;
public int Loops;
public Time(ByteIO reader) : base(reader) { }
public Time(ByteReader reader) : base(reader) { }
public override void Read()
{
Timer = Reader.ReadInt32();

@ -25,10 +25,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public override void Read()
{
var numberOfItems = Reader.ReadUInt16();
var templist = new List<ByteIO>();
var templist = new List<ByteReader>();
for (int i = 0; i < numberOfItems; i++)
{
templist.Add(new ByteIO(Reader.ReadBytes(4)));
templist.Add(new ByteReader(Reader.ReadBytes(4)));
}
foreach (var item in templist)
{

@ -33,7 +33,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
}
}
public ObjectNames(ByteIO reader) : base(reader) { }
public ObjectNames(ByteReader reader) : base(reader) { }
public ObjectNames(Chunk chunk) : base(chunk) { }
}
}

@ -9,7 +9,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
{
public Dictionary<int, Animation> AnimationDict;
public Animations(ByteIO reader) : base(reader)
public Animations(ByteReader reader) : base(reader)
{
}
@ -63,7 +63,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
{
public Dictionary<int, AnimationDirection> DirectionDict;
public Animation(ByteIO reader) : base(reader)
public Animation(ByteReader reader) : base(reader)
{
}
@ -113,7 +113,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
public int Repeat;
public int BackTo;
public List<int> Frames = new List<int>();
public AnimationDirection(ByteIO reader) : base(reader)
public AnimationDirection(ByteReader reader) : base(reader)
{
}

@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using NetMFAPatcher.MMFParser.Data;
using NetMFAPatcher.Utils;
@ -9,6 +11,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
{
private short _valuesOffset;
private short _stringsOffset;
private byte[] Identifier;
private int _fadeinOffset;
private int _fadeoutOffset;
private ushort _movementsOffset;
@ -19,8 +22,62 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
public Animations Animations;
private long _end;
public ObjectCommon(ByteIO reader) : base(reader)
private BitDict preferences = new BitDict(new string[]
{
"Backsave",
"ScrollingIndependant",
"QuickDisplay",
"Sleep",
"LoadOnCall",
"Global",
"BackEffects",
"Kill",
"InkEffects",
"Transitions",
"FineCollisions",
"AppletProblems"
}
);
private BitDict flags = new BitDict(new string[]
{
"DisplayInFront",
"Background",
"Backsave",
"RunBeforeFadeIn",
"Movements",
"Animations",
"TabStop",
"WindowProc",
"Values",
"Sprites",
"InternalBacksave",
"ScrollingIndependant",
"QuickDisplay",
"NeverKill",
"NeverSleep",
"ManualSleep",
"Text",
"DoNotCreateAtStart",
"FakeSprite",
"FakeCollisions"
}
);
private BitDict new_flags = new BitDict(new string[]
{
"DoNotSaveBackground",
"SolidBackground",
"CollisionBox",
"VisibleAtStart",
"ObstacleSolid",
"ObstaclePlatform",
"AutomaticRotation"
}
);
public ObjectCommon(ByteReader reader) : base(reader)
{
}
@ -30,57 +87,56 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
public override void Read()
{
var currentPosition = Reader.Tell();
var size = Reader.ReadInt32();
var newobj = Settings.Build > 284;
var newobj2 = true;
if (newobj&&newobj2)
long currentPosition = Reader.Tell();
int size = Reader.ReadInt32();
bool newobj = Settings.Build > 284;
if (newobj && true)
{
_animationsOffset = (short) Reader.ReadUInt16();
_movementsOffset = Reader.ReadUInt16();
var Version = Reader.ReadInt16();
short version = Reader.ReadInt16();
Reader.ReadBytes(2);
var extensionOffset = Reader.ReadUInt16();
var counterOffset = Reader.ReadUInt16();
var flags = Reader.ReadUInt32();
ushort extensionOffset = Reader.ReadUInt16();
ushort counterOffset = Reader.ReadUInt16();
flags.flag = Reader.ReadUInt32();
var end = Reader.Tell() + 16;
long end = Reader.Tell() + 16;
var qualifiers = new List<short>();
List<short> qualifiers = new List<short>();
for (int i = 0; i < 8; i++)
{
var qualifier = Reader.ReadInt16();
short qualifier = Reader.ReadInt16();
if (qualifier == -1) break;
qualifiers.Add(qualifier);
}
Reader.Seek(end);
var systemObjectOffset = Reader.ReadInt16();
short systemObjectOffset = Reader.ReadInt16();
_valuesOffset = Reader.ReadInt16();
_stringsOffset = Reader.ReadInt16();
var newFlags = Reader.ReadUInt16();
var preferences = Reader.ReadFourCc();
var backColor = Reader.ReadColor();
var fadeinOffset = Reader.ReadInt32();
var fadeoutOffset = Reader.ReadInt32();
new_flags.flag = Reader.ReadUInt16();
preferences.flag = Reader.ReadUInt16();
Identifier = Reader.ReadFourCc();
Color backColor = Reader.ReadColor();
int fadeinOffset = Reader.ReadInt32();
int fadeoutOffset = Reader.ReadInt32();
}
else if (newobj)
{
_counterOffset = Reader.ReadInt16();
var version = Reader.ReadInt16();
short version = Reader.ReadInt16();
Reader.ReadBytes(2);
_movementsOffset = (ushort) Reader.ReadInt16();
_extensionOffset = Reader.ReadInt16();
_animationsOffset = Reader.ReadInt16();
var flags = Reader.ReadUInt32();
var end = Reader.Tell() + 16;
var qualifiers = new List<short>();
uint flags = Reader.ReadUInt32();
long end = Reader.Tell() + 16;
List<short> qualifiers = new List<short>();
for (int i = 0; i < 8; i++)
{
var qualifier = Reader.ReadInt16();
short qualifier = Reader.ReadInt16();
if (qualifier == -1) break;
qualifiers.Add(qualifier);
}
@ -89,9 +145,9 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
_valuesOffset = Reader.ReadInt16();
_stringsOffset = Reader.ReadInt16();
var newFlags = Reader.ReadUInt16();
var preferences = Reader.ReadFourCc();
var backColor = Reader.ReadColor();
ushort newFlags = Reader.ReadUInt16();
byte[] preferences = Reader.ReadFourCc();
Color backColor = Reader.ReadColor();
_fadeinOffset = Reader.ReadInt32();
_fadeoutOffset = Reader.ReadInt32();
}
@ -99,18 +155,18 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
{
_movementsOffset = Reader.ReadUInt16();
_animationsOffset = Reader.ReadInt16();
var version = Reader.ReadInt16();
short version = Reader.ReadInt16();
_counterOffset = Reader.ReadInt16();
_systemObjectOffset = Reader.ReadInt16();
Reader.ReadBytes(2);
var flags = Reader.ReadUInt32();
flags.flag = Reader.ReadUInt32();
_end = Reader.Tell() + 16;
var qualifiers = new List<short>();
List<short> qualifiers = new List<short>();
for (int i = 0; i < 8; i++)
{
var qualifier = Reader.ReadInt16();
short qualifier = Reader.ReadInt16();
if (qualifier == -1) break;
qualifiers.Add(qualifier);
}
@ -121,10 +177,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
_valuesOffset = Reader.ReadInt16();
_stringsOffset = Reader.ReadInt16();
var newFlags = Reader.ReadUInt16();
var preferences = Reader.ReadUInt16();
var identifier = Reader.ReadFourCc();
var backColor = Reader.ReadColor();
new_flags.flag = Reader.ReadUInt16();
preferences.flag = Reader.ReadUInt16();
byte[] identifier = Reader.ReadFourCc();
Color backColor = Reader.ReadColor();
_fadeinOffset = Reader.ReadInt32();
_fadeoutOffset = Reader.ReadInt32();
}
@ -135,20 +191,23 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
//var movements = new Movements(Reader);
//movements.Read();
}
Console.WriteLine("Movements done");
if (_valuesOffset != 0)
{
Reader.Seek(currentPosition + _valuesOffset);
var values = new AlterableValues(Reader);
AlterableValues values = new AlterableValues(Reader);
values.Read();
}
Console.WriteLine("Values done");
if (_stringsOffset != 0)
{
Reader.Seek(currentPosition + _stringsOffset);
var strings = new AlterableStrings(Reader);
AlterableStrings strings = new AlterableStrings(Reader);
strings.Read();
}
Console.WriteLine("Strings done");
if (_animationsOffset != 0)
{
@ -157,16 +216,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
Animations.Read();
}
Console.WriteLine("Animations done");
Console.WriteLine("SysObjOff: " + _systemObjectOffset);
Console.WriteLine("ExtOff: " + _extensionOffset);
}
public override void Print(bool ext)

@ -8,7 +8,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
{
public class AlterableValues:ChunkLoader
{
public AlterableValues(ByteIO reader) : base(reader)
public AlterableValues(ByteReader reader) : base(reader)
{
}
@ -44,7 +44,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Objects
}
public class AlterableStrings:ChunkLoader
{
public AlterableStrings(ByteIO reader) : base(reader)
public AlterableStrings(ByteReader reader) : base(reader)
{
}

@ -15,7 +15,7 @@ namespace NetMFAPatcher.MMFParser.Data
public bool Verbose = false;
public List<Frame> Frames = new List<Frame>();
public void Read(ByteIO exeReader)
public void Read(ByteReader exeReader)
{
Chunks.Clear();
while (true)
@ -77,12 +77,12 @@ namespace NetMFAPatcher.MMFParser.Data
_chunkList = actualChunkList;
}
public ByteIO get_reader()
public ByteReader get_reader()
{
return new ByteIO(ChunkData);
return new ByteReader(ChunkData);
}
public void Read(ByteIO exeReader)
public void Read(ByteReader exeReader)
{
Id = exeReader.ReadInt16();
Name = this.ActualName();

@ -6,10 +6,10 @@ namespace NetMFAPatcher.MMFParser.Data
public abstract class DataLoader
{
private Chunk _chunk;
public ByteIO Reader;
public ByteReader Reader;
public bool Verbose = true;
protected DataLoader(ByteIO reader)
protected DataLoader(ByteReader reader)
{
this.Reader = reader;
}

@ -13,7 +13,7 @@ namespace NetMFAPatcher.MMFParser.Data
public PackData PackData;
public GameData GameData;
public static Exe LatestInst;
public void ParseExe(ByteIO exeReader)
public void ParseExe(ByteReader exeReader)
{
Exe.LatestInst = this;
Logger.Log($"Executable: {Settings.GameName}\n", true, ConsoleColor.DarkRed);

@ -53,7 +53,7 @@ namespace NetMFAPatcher.MMFParser.Data
public List<Frame> Frames = new List<Frame>();
public void Read(ByteIO exeReader)
public void Read(ByteReader exeReader)
{
string magic = exeReader.ReadAscii(4); //Reading header

@ -383,7 +383,7 @@ namespace NetMFAPatcher.MMFParser.Data
}
public MFA(ByteIO reader) : base(reader)
public MFA(ByteReader reader) : base(reader)
{
}

@ -17,7 +17,7 @@ namespace NetMFAPatcher.MMFParser.Data
{
}
public void Read(ByteIO exeReader)
public void Read(ByteReader exeReader)
{
long start = exeReader.Tell();
byte[] header = exeReader.ReadBytes(8);
@ -70,7 +70,7 @@ namespace NetMFAPatcher.MMFParser.Data
int _bingo = 0;
public byte[] Data;
public void Read(ByteIO exeReader)
public void Read(ByteReader exeReader)
{
UInt16 len = exeReader.ReadUInt16();
PackFilename = exeReader.ReadWideString(len);

@ -11,7 +11,7 @@ namespace NetMFAPatcher.MMFParser.Decompiling
public static void BuildMFA()
{
Settings.DoMFA = true;
var mfaReader = new ByteIO(TemplatePath, FileMode.Open);
var mfaReader = new ByteReader(TemplatePath, FileMode.Open);
var template = new MFA(mfaReader);
template.Read(); //Loading template
@ -27,7 +27,7 @@ namespace NetMFAPatcher.MMFParser.Decompiling
public static void ReadTestMFA()
{
var mfaReader = new ByteIO(TemplatePath, FileMode.Open);
var mfaReader = new ByteReader(TemplatePath, FileMode.Open);
var template = new MFA(mfaReader);
template.Read();
var mfaWriter = new ByteWriter("outTest.mfa", FileMode.Create);

@ -79,7 +79,7 @@ namespace NetMFAPatcher
{
Settings.DoMFA = false;
var exeReader = new ByteIO(path, FileMode.OpenOrCreate);
var exeReader = new ByteReader(path, FileMode.OpenOrCreate);
var currentExe = new Exe();
currentExe.ParseExe(exeReader);
Logger.Log("Finished!", true, ConsoleColor.Yellow);

@ -17,6 +17,7 @@ namespace NetMFAPatcher.Utils
public bool this[String key]
{
get => GetFlag(key);
// set => SetFlag(key,value);
}
public bool GetFlag(String key)

@ -5,25 +5,25 @@ using System.Text;
namespace NetMFAPatcher.Utils
{
public class ByteIO : BinaryReader
public class ByteReader : BinaryReader
{
public ByteIO(Stream input) : base(input)
public ByteReader(Stream input) : base(input)
{
}
public ByteIO(Stream input, Encoding encoding) : base(input, encoding)
public ByteReader(Stream input, Encoding encoding) : base(input, encoding)
{
}
public ByteIO(Stream input, Encoding encoding, bool leaveOpen) : base(input, encoding, leaveOpen)
public ByteReader(Stream input, Encoding encoding, bool leaveOpen) : base(input, encoding, leaveOpen)
{
}
public ByteIO(byte[] data) : base(new MemoryStream(data))
public ByteReader(byte[] data) : base(new MemoryStream(data))
{
}
public ByteIO(string path, FileMode fileMode) : base(new FileStream(path, fileMode))
public ByteReader(string path, FileMode fileMode) : base(new FileStream(path, fileMode))
{
}

@ -6,7 +6,7 @@ namespace NetMFAPatcher.Utils
{
public static class Decompressor
{
public static byte[] Decompress(ByteIO exeReader, out int decompressed)
public static byte[] Decompress(ByteReader exeReader, out int decompressed)
{
Int32 decompSize = exeReader.ReadInt32();
Int32 compSize = exeReader.ReadInt32();
@ -14,7 +14,7 @@ namespace NetMFAPatcher.Utils
return decompress_block(exeReader, compSize, decompSize);
}
public static ByteIO DecompressAsReader(ByteIO exeReader, out int decompressed)
public static ByteReader DecompressAsReader(ByteReader exeReader, out int decompressed)
{
Int32 decompSize = exeReader.ReadInt32();
Int32 compSize = exeReader.ReadInt32();
@ -22,19 +22,19 @@ namespace NetMFAPatcher.Utils
byte[] actualData = Ionic.Zlib.ZlibStream.UncompressBuffer(compressedData);
Debug.Assert(actualData.Length == decompSize);
decompressed = decompSize;
return new ByteIO(actualData);
return new ByteReader(actualData);
}
public static byte[] decompress_block(ByteIO reader, int size, int decompSize)
public static byte[] decompress_block(ByteReader reader, int size, int decompSize)
{
byte[] compressedData = reader.ReadBytes(size);
byte[] actualData = Ionic.Zlib.ZlibStream.UncompressBuffer(compressedData);
return actualData;
}
public static ByteIO decompress_asReader(ByteIO imageData, int v, int decompressedSize)
public static ByteReader decompress_asReader(ByteReader imageData, int v, int decompressedSize)
{
return new ByteIO(decompress_block(imageData, v, decompressedSize));
return new ByteReader(decompress_block(imageData, v, decompressedSize));
}

@ -51,7 +51,7 @@ namespace NetMFAPatcher.Utils
public static byte[] DecodeMode3(byte[] chunkData, int chunkSize, int chunkId, out int decompressed)
{
var reader = new ByteIO(chunkData);
var reader = new ByteReader(chunkData);
var decompressedSize = reader.ReadUInt32();
var rawData = reader.ReadBytes((int) reader.Size());
@ -61,7 +61,7 @@ namespace NetMFAPatcher.Utils
}
rawData = DecodeChunk(rawData, chunkSize);
using (var data = new ByteIO(rawData))
using (var data = new ByteReader(rawData))
{
var compressedSize = data.ReadUInt32();
decompressed = (int) decompressedSize;

@ -15,7 +15,6 @@ namespace NetMFAPatcher.Utils
{
static class Helper
{
public static string CleanInput(string strIn)
{
try
@ -39,54 +38,57 @@ namespace NetMFAPatcher.Utils
if (i > 0)
{
temp += " " + item.ToString(format);
}
else
{
temp += item.ToString(format);
}
}
if (log)
{
Console.WriteLine(temp);
}
return temp;
return temp;
}
public static string AutoReadUnicode(ByteIO reader)
public static string AutoReadUnicode(ByteReader reader)
{
var len = reader.ReadInt16();
reader.Skip(2);
return reader.ReadWideString(len);
}
public static void AutoWriteUnicode(this ByteWriter writer, string value)
{
writer.WriteInt16((short) value.Length);
writer.Skip(2);
writer.WriteUnicode(value);
}
public static DataLoader LoadParameter(int code, ByteIO reader)
public static DataLoader LoadParameter(int code, ByteReader reader)
{
DataLoader item = null;
if (code == 1)
{
item = new ParamObject(reader);
}
if (code == 2)
{
item = new Time(reader);
}
if (code==3|| code == 10|| code == 11 || code == 12 || code == 17 || code == 26 || code == 31 || code == 43 || code == 57 || code == 58 || code == 60 || code == 61)
if (code == 3 || code == 10 || code == 11 || code == 12 || code == 17 || code == 26 || code == 31 ||
code == 43 || code == 57 || code == 58 || code == 60 || code == 61)
{
item = new Short(reader);
}
return item;
return item;
}
public static string GetHex(this byte[] data, int count = -1, int position = 0)
{
var actualCount = count;
@ -97,6 +99,7 @@ namespace NetMFAPatcher.Utils
temp += data[i].ToString("X2");
temp += " ";
}
return temp;
}
@ -112,13 +115,10 @@ namespace NetMFAPatcher.Utils
if (b < 128 && b > 32) charAcc += Convert.ToChar(b);
else charAcc += '.';
}
var bLen = block.Count();
//var accLen=
}
}
public static byte[] GetContents(this ByteWriter wrt)
@ -127,11 +127,11 @@ namespace NetMFAPatcher.Utils
for (int i = 0; i < wrt.BaseStream.Length; i++)
{
buff.Append<byte>((byte) wrt.BaseStream.ReadByte());
}
return buff;
}
/// <summary>
/// Splits an array into several smaller arrays.
/// </summary>
@ -161,7 +161,8 @@ namespace NetMFAPatcher.Utils
public static void CheckPattern(object source, object pattern)
{
if (source.GetType() != pattern.GetType()) throw new InvalidDataException("Data is not valid: types are different");
if (source.GetType() != pattern.GetType())
throw new InvalidDataException("Data is not valid: types are different");
if (source is string)
{
if ((string) source != (string) pattern)
@ -182,6 +183,7 @@ namespace NetMFAPatcher.Utils
{
Program.MyForm.UpdateImageBar(index, all);
}
public static void OnSoundSaved(int index, int all)
{
Program.MyForm.UpdateSoundBar(index, all);
@ -218,7 +220,6 @@ namespace NetMFAPatcher.Utils
int.TryParse(constName, out tempId);
if (tempId != chunk.Id) return constName;
else return $"Unknown-{chunk.Id}";
}
public static ChunkNode GetChunkNode(ChunkList.Chunk chunk, string customName = "[DEFAULT-NAME]")
@ -227,17 +228,17 @@ namespace NetMFAPatcher.Utils
if (chunk.Loader != null)
{
node = new ChunkNode(chunk.Name, chunk.Loader);
}
else
{
node = new ChunkNode(chunk.Name, chunk);
}
if (customName != "[DEFAULT-NAME]")
{
node.Text = customName;
}
return node;
}
@ -247,12 +248,13 @@ namespace NetMFAPatcher.Utils
{
return animDict[index];
}
catch {}
catch
{
}
return null;
}
[DllImport("kernel32.dll")]
public static extern IntPtr GetConsoleWindow();
@ -263,7 +265,24 @@ namespace NetMFAPatcher.Utils
public const int SW_SHOW = 5;
public static T[] To1DArray<T>(T[,] input)
{
// Step 1: get total size of 2D array, and allocate 1D array.
int size = input.Length;
T[] result = new T[size];
// Step 2: copy 2D array elements into a 1D array.
int write = 0;
for (int i = 0; i <= input.GetUpperBound(0); i++)
{
for (int z = 0; z <= input.GetUpperBound(1); z++)
{
result[write++] = input[i, z];
}
}
// Step 3: return the new array.
return result;
}
}
}

@ -64,7 +64,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public override void Read()
{
Reader = new ByteIO(Chunk.ChunkData);
Reader = new ByteReader(Chunk.ChunkData);
Size = Reader.ReadInt32();
Flags.flag=(uint) Reader.ReadInt16();//I finally got my balls back
@ -105,7 +105,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
}
public AppHeader(ByteIO reader) : base(reader)
public AppHeader(ByteReader reader) : base(reader)
{
}
@ -119,7 +119,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
public List<PlayerControl> Items;
public Controls(ByteIO reader) : base(reader)
public Controls(ByteReader reader) : base(reader)
{
this.Reader = reader;
}
@ -155,10 +155,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public class PlayerControl
{
int _controlType = 0;
ByteIO _reader;
ByteReader _reader;
Keys _keys;
public PlayerControl(ByteIO reader)
public PlayerControl(ByteReader reader)
{
this._reader = reader;
}
@ -188,9 +188,9 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
int _button2;
int _button3;
int _button4;
ByteIO _reader;
ByteReader _reader;
public Keys(ByteIO reader)
public Keys(ByteReader reader)
{
this._reader = reader;
}

@ -16,7 +16,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public List<short> AccelKey;
public List<short> AccelId;
public AppMenu(ByteIO reader) : base(reader)
public AppMenu(ByteReader reader) : base(reader)
{
}
@ -62,7 +62,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
}
}
public void Load(ByteIO reader)
public void Load(ByteReader reader)
{
while(true)
{
@ -94,7 +94,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public int Flags = 0;
public int Id = 0;
public string Mnemonic = "";
public AppMenuItem(ByteIO reader) : base(reader)
public AppMenuItem(ByteReader reader) : base(reader)
{
}

@ -6,10 +6,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public abstract class ChunkLoader//:DataLoader
{
public Chunk Chunk;
public ByteIO Reader;
public ByteReader Reader;
public bool Verbose = false;
protected ChunkLoader(ByteIO reader)
protected ChunkLoader(ByteReader reader)
{
this.Reader = reader;
}

@ -16,7 +16,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
class FrameName : StringChunk
{
public FrameName(ByteIO reader) : base(reader)
public FrameName(ByteReader reader) : base(reader)
{
}
@ -27,7 +27,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class FramePassword : StringChunk
{
public FramePassword(ByteIO reader) : base(reader)
public FramePassword(ByteReader reader) : base(reader)
{
}
@ -76,7 +76,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public override void Read()
{
var frameReader = new ByteIO(Chunk.ChunkData);
var frameReader = new ByteReader(Chunk.ChunkData);
Chunks = new ChunkList();
Chunks.Verbose = false;
@ -122,7 +122,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
}
public Frame(ByteIO reader) : base(reader)
public Frame(ByteReader reader) : base(reader)
{
}
@ -150,7 +150,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
});
public byte[] Background;
public FrameHeader(ByteIO reader) : base(reader)
public FrameHeader(ByteReader reader) : base(reader)
{
}
@ -191,7 +191,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public int CountOfObjects=0;
public List<ObjectInstance> Items = new List<ObjectInstance>();
public ObjectInstances(ByteIO reader) : base(reader)
public ObjectInstances(ByteReader reader) : base(reader)
{
}
@ -237,7 +237,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public string Name;
public short ParentHandle;
public ObjectInstance(ByteIO reader) : base(reader)
public ObjectInstance(ByteReader reader) : base(reader)
{
}
@ -292,7 +292,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class Layer : ChunkLoader
{
public Layer(ByteIO reader) : base(reader)
public Layer(ByteReader reader) : base(reader)
{
}

@ -17,7 +17,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public List<string> Names = new List<string>();
public int NumberOfItems;
public FrameItems(Chunk chunk) : base(chunk) { }
public FrameItems(ByteIO reader) : base(reader) { }
public FrameItems(ByteReader reader) : base(reader) { }
public override void Print(bool ext)
{

@ -28,7 +28,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
}
public ObjectInfo(ByteIO reader) : base(reader)
public ObjectInfo(ByteReader reader) : base(reader)
{
}
@ -91,7 +91,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public class ObjectName : StringChunk
{
public ObjectName(ByteIO reader) : base(reader)
public ObjectName(ByteReader reader) : base(reader)
{
}
@ -105,7 +105,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public bool IsCommon;
public ObjectCommon Loader;
public ObjectProperties(ByteIO reader) : base(reader)
public ObjectProperties(ByteReader reader) : base(reader)
{
}
@ -151,7 +151,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public UInt32 InkEffect;
public UInt32 InkEffectParameter;
public ObjectHeader(ByteIO reader) : base(reader)
public ObjectHeader(ByteReader reader) : base(reader)
{
}

@ -17,7 +17,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public override void Read()
{
Reader = new ByteIO(Chunk.ChunkData);
Reader = new ByteReader(Chunk.ChunkData);
Value = Reader.ReadWideString();
}
@ -36,7 +36,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
}
public StringChunk(ByteIO reader) : base(reader)
public StringChunk(ByteReader reader) : base(reader)
{
}
@ -47,7 +47,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class AppName : StringChunk
{
public AppName(ByteIO reader) : base(reader)
public AppName(ByteReader reader) : base(reader)
{
}
@ -58,7 +58,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class AppAuthor : StringChunk
{
public AppAuthor(ByteIO reader) : base(reader)
public AppAuthor(ByteReader reader) : base(reader)
{
}
@ -69,7 +69,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class ExtPath : StringChunk
{
public ExtPath(ByteIO reader) : base(reader)
public ExtPath(ByteReader reader) : base(reader)
{
}
@ -80,7 +80,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class EditorFilename : StringChunk
{
public EditorFilename(ByteIO reader) : base(reader)
public EditorFilename(ByteReader reader) : base(reader)
{
}
@ -91,7 +91,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class TargetFilename : StringChunk
{
public TargetFilename(ByteIO reader) : base(reader)
public TargetFilename(ByteReader reader) : base(reader)
{
}
@ -102,7 +102,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class AppDoc : StringChunk
{
public AppDoc(ByteIO reader) : base(reader)
public AppDoc(ByteReader reader) : base(reader)
{
}
@ -113,7 +113,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class AboutText : StringChunk
{
public AboutText(ByteIO reader) : base(reader)
public AboutText(ByteReader reader) : base(reader)
{
}
@ -124,7 +124,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class Copyright : StringChunk
{
public Copyright(ByteIO reader) : base(reader)
public Copyright(ByteReader reader) : base(reader)
{
}
@ -135,7 +135,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
class DemoFilePath : StringChunk
{
public DemoFilePath(ByteIO reader) : base(reader)
public DemoFilePath(ByteReader reader) : base(reader)
{
}

@ -26,7 +26,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
//i am testing with no fonts suck pinus haha
}
public FontBank(ByteIO reader) : base(reader)
public FontBank(ByteReader reader) : base(reader)
{
}

@ -5,11 +5,11 @@ using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;
using System.Windows.Forms;
using NetMFAPatcher.GUI;
using NetMFAPatcher.MMFParser.Data;
using NetMFAPatcher.Utils;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
@ -19,7 +19,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
public Dictionary<int, ImageItem> Images = new Dictionary<int, ImageItem>();
public uint NumberOfItems;
public ImageBank(ByteIO reader) : base(reader)
public ImageBank(ByteReader reader) : base(reader)
{
}
@ -41,7 +41,6 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
public override void Read()
{
Reader.Seek(0); //Reset the reader to avoid bugs when dumping more than once
NumberOfItems = Reader.ReadUInt32();
@ -56,12 +55,12 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
MainForm.BreakImages = false;
break;
}
var item = new ImageItem(Reader);
item.Read();
Images.Add(item.Handle, item);
if (Settings.DumpImages)
{
item.Save($"{Settings.ImagePath}\\" + item.Handle.ToString() + ".png");
Console.ReadKey();
Helper.OnImageSaved(i, (int) NumberOfItems);
@ -108,6 +107,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
int _indexed;
public byte[] rawImg;
public byte[] rawAlpha;
public bool Debug = false;
@ -122,7 +122,6 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
public override void Print(bool ext)
{
}
public override string[] GetReadableData()
@ -133,7 +132,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
public void Load()
{
Reader.Seek(Position);
ByteIO imageReader;
ByteReader imageReader;
imageReader = Debug ? Reader : Decompressor.DecompressAsReader(Reader, out var a);
@ -145,7 +144,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
if (Debug)
{
imageReader = new ByteIO(imageReader.ReadBytes(Size + 20));
imageReader = new ByteReader(imageReader.ReadBytes(Size + 20));
}
_width = imageReader.ReadInt16();
@ -160,25 +159,12 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
_actionY = imageReader.ReadInt16();
_transparent = imageReader.ReadBytes(4);
Logger.Log($"Loading image {Handle.ToString(),4} Size: {_width,4}x{_height,4}");
byte[] imageData = new byte[1];
if (Debug2 == 1)
{
var imgLen = imageReader.Size() - imageReader.Tell();
var data = imageReader.ReadBytes((int) imgLen);
imageReader.BaseStream.Position -= imgLen;
File.WriteAllBytes("CumImage.bin", Ionic.Zlib.DeflateStream.CompressBuffer(data));
}
if (Debug2 == 2)
{
imageData = File.ReadAllBytes("CumImage.bin");
}
byte[] imageData;
if (Flags["LZX"])
{
var DecompressedSize = imageReader.ReadUInt32();
uint decompressedSize = imageReader.ReadUInt32();
imageData = Decompressor.decompress_block(imageReader, (int) (imageReader.Size() - imageReader.Tell()),
(int) DecompressedSize);
(int) decompressedSize);
}
else
{
@ -186,18 +172,13 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
}
int bytesRead = 0;
rawImg = imageData;
if (Flags["RLE"] || Flags["RLEW"] || Flags["RLET"])
{
}
else
{
switch (_graphicMode)
{
case 4:
@ -222,6 +203,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
if (Flags["Alpha"])
{
byte[,] alpha = ImageHelper.ReadAlpha(imageData, _width, _height, Size - alphaSize);
rawAlpha = Helper.To1DArray(alpha);
int stride = _width * 4;
for (int y = 0; y < _height; y++)
{
@ -256,44 +238,41 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
public void Write(ByteWriter writer)
{
writer.WriteInt32(_checksum);
writer.WriteInt32(_references);
writer.WriteInt32(_colorArray.Length);
writer.WriteInt16((short) _width);
writer.WriteInt16((short) _height);
writer.WriteInt8(4);
ByteWriter chunk = new ByteWriter(new MemoryStream());
chunk.WriteInt32(_checksum);
chunk.WriteInt32(_references);
chunk.WriteInt32(_colorArray.Length);
chunk.WriteInt16((short) _width);
chunk.WriteInt16((short) _height);
chunk.WriteInt8((byte) _graphicMode);
if (Flags["Alpha"])
{
writer.WriteInt8(16);
chunk.WriteInt8(16);
}
else
{
writer.WriteInt8(0);
chunk.WriteInt8(0);
}
writer.Skip(2);
writer.WriteInt16((short) _xHotspot);
writer.WriteInt16((short) _yHotspot);
writer.WriteInt16((short) _actionX);
writer.WriteInt16((short) _actionY);
writer.WriteBytes(_transparent);
writer.Skip(1);
writer.WriteBytes(rawImg);
chunk.Skip(2);
chunk.WriteInt16((short) _xHotspot);
chunk.WriteInt16((short) _yHotspot);
chunk.WriteInt16((short) _actionX);
chunk.WriteInt16((short) _actionY);
chunk.WriteBytes(_transparent);
chunk.WriteBytes(rawImg);
chunk.WriteBytes(rawAlpha);
writer.WriteInt32(Handle);
chunk.Seek(0);
MemoryStream ms = (MemoryStream) chunk.BaseStream;
writer.WriteBytes(ms.GetBuffer());
}
public ImageItem(ByteIO reader) : base(reader)
public ImageItem(ByteReader reader) : base(reader)
{
}

@ -34,7 +34,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
}
}
public MusicBank(ByteIO reader) : base(reader)
public MusicBank(ByteReader reader) : base(reader)
{
}
@ -62,7 +62,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
{
}
public MusicFile(ByteIO reader) : base(reader)
public MusicFile(ByteReader reader) : base(reader)
{
}

@ -62,7 +62,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
}
}
public SoundBank(ByteIO reader) : base(reader)
public SoundBank(ByteReader reader) : base(reader)
{
}
@ -90,7 +90,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
{
}
public SoundBase(ByteIO reader) : base(reader)
public SoundBase(ByteReader reader) : base(reader)
{
}
@ -118,15 +118,15 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
Flags = (int)Reader.ReadUInt32(); //flags
var reserved = Reader.ReadInt32();
var nameLenght = Reader.ReadInt32();
ByteIO soundData;
ByteReader soundData;
if (IsCompressed) //compressed
{
var size = Reader.ReadInt32();
soundData = new ByteIO(Decompressor.decompress_block(Reader, size, decompressedSize));
soundData = new ByteReader(Decompressor.decompress_block(Reader, size, decompressedSize));
}
else
{
soundData = new ByteIO(Reader.ReadBytes(decompressedSize));
soundData = new ByteReader(Reader.ReadBytes(decompressedSize));
}
if (IsCompressed)
{
@ -171,7 +171,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
}
public SoundItem(ByteIO reader) : base(reader)
public SoundItem(ByteReader reader) : base(reader)
{
}

@ -18,7 +18,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
List<byte> _points;
public AppIcon(ByteIO reader) : base(reader)
public AppIcon(ByteReader reader) : base(reader)
{
}

@ -30,6 +30,6 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
}
public ChunkList(ByteIO reader) : base(reader) { }
public ChunkList(ByteReader reader) : base(reader) { }
}
}

@ -10,7 +10,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
{
public List<PlayerControl> Items;
public Controls(ByteIO reader) : base(reader)
public Controls(ByteReader reader) : base(reader)
{
}
@ -57,7 +57,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
public int Button4;
public PlayerControl(ByteIO reader) : base(reader)
public PlayerControl(ByteReader reader) : base(reader)
{
}

@ -14,7 +14,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
public Color Background;
public int MaxObjects;
public Frame(ByteIO reader) : base(reader)
public Frame(ByteReader reader) : base(reader)
{
}

@ -63,7 +63,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
}
public FrameItem(ByteIO reader):base(reader)
public FrameItem(ByteReader reader):base(reader)
{ }
}
}

@ -71,7 +71,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
Items[key].Write(writer);
}
}
public AgmiBank(ByteIO reader) : base(reader)
public AgmiBank(ByteReader reader) : base(reader)
{
}

@ -27,7 +27,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
}
public Layer(ByteIO reader):base(reader)
public Layer(ByteReader reader):base(reader)
{
}
}

@ -8,7 +8,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
public class ValueList : DataLoader
{
public List<ValueItem> Items = new List<ValueItem>();
public ValueList(ByteIO reader) : base(reader)
public ValueList(ByteReader reader) : base(reader)
{
}
@ -44,7 +44,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders
public object Value;
public string Name;
public ValueItem(ByteIO reader) : base(reader)
public ValueItem(ByteReader reader) : base(reader)
{
}

@ -14,6 +14,6 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
{
base.Read();
}
public Active(ByteIO reader) : base(reader) { }
public Active(ByteReader reader) : base(reader) { }
}
}

@ -24,7 +24,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
}
public AnimationObject(ByteIO reader) : base(reader) { }
public AnimationObject(ByteReader reader) : base(reader) { }
}
class Animation : DataLoader
{
@ -49,7 +49,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
}
public Animation(ByteIO reader) : base(reader) { }
public Animation(ByteReader reader) : base(reader) { }
}
class AnimationDirection : DataLoader
{
@ -69,7 +69,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
var frames = new List<int>();
}
public AnimationDirection(ByteIO reader) : base(reader) { }
public AnimationDirection(ByteReader reader) : base(reader) { }
}
}

@ -23,12 +23,12 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
_items.Add(item);
}
}
public Behaviours(ByteIO reader) : base(reader) { }
public Behaviours(ByteReader reader) : base(reader) { }
}
class Behaviour : DataLoader
{
public string Name = "ERROR";
public ByteIO Data;
public ByteReader Data;
public override void Print()
{
throw new NotImplementedException();
@ -37,9 +37,9 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
public override void Read()
{
Name = Reader.ReadAscii(Reader.ReadInt32());
Data = new ByteIO(Reader.ReadBytes(Reader.ReadInt32()));
Data = new ByteReader(Reader.ReadBytes(Reader.ReadInt32()));
}
public Behaviour(ByteIO reader) : base(reader) { }
public Behaviour(ByteReader reader) : base(reader) { }
}
}

@ -26,7 +26,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
}
public Movements(ByteIO reader) : base(reader) { }
public Movements(ByteReader reader) : base(reader) { }
}
class Movement : DataLoader
{
@ -45,7 +45,7 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
var dataSize = Reader.ReadInt32();
if(extension.Length>0)
{
var newReader = new ByteIO(Reader.ReadBytes(dataSize));
var newReader = new ByteReader(Reader.ReadBytes(dataSize));
}
@ -60,6 +60,6 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
}
}
public Movement(ByteIO reader) : base(reader) { }
public Movement(ByteReader reader) : base(reader) { }
}
}

@ -68,6 +68,6 @@ namespace NetMFAPatcher.MMFParser.MFALoaders.mfachunks
}
public ObjectLoader(ByteIO reader) : base(reader) { }
public ObjectLoader(ByteReader reader) : base(reader) { }
}
}

Loading…
Cancel
Save