using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MMOLoader
{
public partial class EQVersion : Form
{
public EQVersion()
{
InitializeComponent();
}
private void closeButton_Click(object sender, EventArgs e)
{
Hide();
}
private void exeLocationButton_Click(object sender, EventArgs e)
{
SelectFile();
}
private void SelectFile()
{
this.Enabled = false;
exeOpenFileDialog.InitialDirectory = exeLocationTextBox.Text;
DialogResult drResult = exeOpenFileDialog.ShowDialog();
if (drResult != DialogResult.OK)
{
this.Enabled = true;
return;
}
exeLocationTextBox.Text = exeOpenFileDialog.FileName;
ReadAndDisplayVersion();
this.Enabled = true;
}
private void ReadAndDisplayVersion()
{
try
{
FileStream fs = File.OpenRead(exeOpenFileDialog.FileName);
byte[] buffer = new byte[fs.Length];
int bytesRead = fs.Read(buffer, 0, buffer.Length);
fs.Close();
if (bytesRead > 0)
{
string tmpBuffer = ASCIIEncoding.ASCII.GetString(buffer);
int startLoc = tmpBuffer.IndexOf("Client Version: %s %s") + 48;
versionTextBox.Text = tmpBuffer.Substring(startLoc);
startLoc += versionTextBox.TextLength + 1;
versionTextBox.Text += " " + tmpBuffer.Substring(startLoc);
if (!(versionTextBox.Text.Contains("20")))
{
versionTextBox.Text = "";
startLoc = tmpBuffer.IndexOf("Client Version: %s %s") - 22;
string verDate = " ", verTime = " ";
for (int z = startLoc; z >= 0 && z > startLoc - 100; z--)
{
if (tmpBuffer[z] == 0)
{
verTime = tmpBuffer.Substring(z + 1);
if (verTime.Length == 0)
verTime = "Unknown";
startLoc = tmpBuffer.IndexOf("Client Version: %s %s") - 2;
for (int y = startLoc; y >= 0 && y > startLoc - 100; y--)
{
if (tmpBuffer[y] == 0)
{
verDate = tmpBuffer.Substring(y + 1);
if (verDate.Length == 0)
verDate = "Unknown";
versionTextBox.Text = verDate;
versionTextBox.Text += " " + verTime;
break;
}
}
break;
}
}
if (versionTextBox.TextLength == 0)
versionTextBox.Text = "Unknown";
}
}
else
{
versionTextBox.Text = "Unknown";
}
MainForm.EQType eqType = MainForm.GetEQType(exeOpenFileDialog.FileName);
if (eqType == MainForm.EQType.BETA_TYPE)
{
versionLabel.Text = "Version of EverQuest: Beta Server";
}
else if (eqType == MainForm.EQType.LIVE_TYPE)
{
versionLabel.Text = "Version of EverQuest: Live Servers";
}
else if (eqType == MainForm.EQType.TEST_TYPE)
{
versionLabel.Text = "Version of EverQuest: Test Server";
}
else if (eqType == MainForm.EQType.EMU_MAC_TYPE)
{
versionLabel.Text = "Version of EverQuest: Mac (Macintosh/Al'Kabor) EMU";
}
else if (eqType == MainForm.EQType.EMU_ROF2_TYPE)
{
versionLabel.Text = "Version of EverQuest: Rain of Fear 2 (ROF2) EMU";
}
else if (eqType == MainForm.EQType.EMU_ROF_TYPE)
{
versionLabel.Text = "Version of EverQuest: Rain of Fear (ROF) EMU";
}
else if (eqType == MainForm.EQType.EMU_HOT_TYPE)
{
versionLabel.Text = "Version of EverQuest: House of Thule (HOT) EMU";
}
else if (eqType == MainForm.EQType.EMU_UF_TYPE)
{
versionLabel.Text = "Version of EverQuest: Underfoot (UF) EMU";
}
else if (eqType == MainForm.EQType.EMU_SOD_TYPE)
{
versionLabel.Text = "Version of EverQuest: Seeds of Destruction (SOD) EMU";
}
else if (eqType == MainForm.EQType.EMU_SOF_TYPE)
{
versionLabel.Text = "Version of EverQuest: Secrets of Faydwer (SOF) EMU";
}
else if (eqType == MainForm.EQType.EMU_TIT_TYPE)
{
versionLabel.Text = "Version of EverQuest: Titanium (TIT) EMU";
}
else
{
versionLabel.Text = "Version of EverQuest: Unknown Client Type";
}
}
catch (Exception ex)
{
versionTextBox.Text = ex.Message;
}
}
}
}
Comments