You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.0 KiB
C#

using NetMFAPatcher.chunkloaders;
using NetMFAPatcher.mmfparser;
using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static NetMFAPatcher.mmfparser.Constants;
namespace NetMFAPatcher.MMFParser.Data
{
public class GameData
{
public int runtime_version;
public int runtime_subversion;
public int product_build;
public int product_version;
public Products build;
public ChunkList gameChunks;
public void Read(ByteIO exeReader)
{
string magic = exeReader.ReadAscii(4);
if (magic == Constants.UNICODE_GAME_HEADER) Constants.isUnicode = true;
else if (magic == Constants.GAME_HEADER) Constants.isUnicode = false;
else
{
Logger.Log("Header Fucked Up", true, ConsoleColor.Red);
}
runtime_version = exeReader.ReadUInt16();
runtime_subversion = exeReader.ReadUInt16();
product_version = exeReader.ReadInt32();
product_build = exeReader.ReadInt32();
build = (Products)runtime_version;
Print();
Logger.Log("Press any key to continue",true,ConsoleColor.Magenta);
//Console.ReadKey();
gameChunks = new ChunkList();
gameChunks.Read(exeReader);
}
public void Print()
{
Logger.Log("GameData Info:", true, ConsoleColor.DarkGreen);
Logger.Log($" Runtime Version: {runtime_version}", true, ConsoleColor.DarkGreen);
Logger.Log($" Runtime Subversion: { runtime_subversion}", true, ConsoleColor.DarkGreen);
Logger.Log($" Product Version: { product_version}", true, ConsoleColor.DarkGreen);
Logger.Log($" Product Build: {product_build}", true, ConsoleColor.DarkGreen);
Logger.Log($" {(isUnicode ? "Unicode" : "NonUnicode")} Game", true, ConsoleColor.DarkGreen);
}
}
}