htw icon

The Other One

htw | PRO | 04/19/19 08:41:12 PM UTC | 0 ⭐ | 1085 👁️ | Never ⏰ | []
C++ |

5.33 KB

|

None

|

0 👍

/

0 👎

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