Beispiel #1
0
        private void CheckFileExists()
        {
            string filename = mSaveFileNameTextBox.Text;
            int    result   = ARMaxNativeMethods.InitMaxSave();

            if (result != 0)
            {
                throw new Exception("Could not load initialize ARMax DLL!");
            }
            result = ARMaxNativeMethods.LoadSave(filename);
            if (result != 0)
            {
                throw new Exception("Could not load file:" + filename);
            }
            result = ARMaxNativeMethods.FileExistsInSavePos(mFileExistsTextBox.Text);
            if (result > 0)
            {
                mFileExistsLabel.Text = "File Exists";
            }
            else
            {
                mFileExistsLabel.Text = "File Does Not Exist";
            }

            ARMaxNativeMethods.FreeMaxSave();
        }
Beispiel #2
0
        public bool AddFileToSave(string pathToFileToAdd)
        {
            int result = -1;

            if (File.Exists(pathToFileToAdd))
            {
                result = ARMaxNativeMethods.AddFileToSave(pathToFileToAdd);
            }
            return(result == 0);
        }
Beispiel #3
0
        public bool ReplaceFile(string internalFileName, string pathToFile)
        {
            int result = -1;

            if (HasFile(internalFileName))
            {
                result = ARMaxNativeMethods.ReplaceFileInSave(internalFileName, pathToFile);
            }
            return(result == 0);
        }
Beispiel #4
0
        public bool DeleteFileFromSave(string filename)
        {
            int result = -1;
            int index  = this.FilesInSave.IndexOf(filename);

            if (index > -1)
            {
                result = ARMaxNativeMethods.DeleteFileInSave(index + 1);
            }
            return(result == 0);
        }
Beispiel #5
0
        public bool ExtractFile(string internalFile, string pathToExtractTo)
        {
            bool retVal = false;
            int  index  = FilesInSave.IndexOf(internalFile);

            if (index > -1)
            {
                index++;
                int result = ARMaxNativeMethods.ExtractAFile(index, pathToExtractTo);
                retVal = (result == 0);
            }
            return(retVal);
        }
Beispiel #6
0
        private void ExtractFileContents()
        {
            string filename = mSaveFileNameTextBox.Text;
            int    result   = ARMaxNativeMethods.InitMaxSave();

            if (result != 0)
            {
                throw new Exception("Could not load initialize ARMax DLL!");
            }
            result = ARMaxNativeMethods.LoadSave(filename);
            if (result != 0)
            {
                throw new Exception("Could not load file:" + filename);
            }

            StringBuilder rootDirName = new StringBuilder(256);

            ARMaxNativeMethods.GetRootDir(rootDirName, 256);
            rootDirName.Append("\\");
            string dirName = ".\\UnpackFolder_" + rootDirName.ToString();

            if (Directory.Exists(dirName))
            {
                Directory.Delete(dirName, true);
            }
            Directory.CreateDirectory(dirName);

            int numFiles = ARMaxNativeMethods.NumberOfFiles();

            // show the files in the list box
            for (int i = 1; i < numFiles + 1; i++) // there is no '0'th file
            {
                try
                {
                    result = ARMaxNativeMethods.ExtractAFile(i, dirName);
                    if (result != 0)
                    {
                        Console.Error.Write("'ARMaxNativeMethods.ExtractAFile' Failed; code = {0}", result);
                    }
                }
                catch (Exception exc)
                {
                    Console.Error.WriteLine("Error calling 'ARMaxNativeMethods.GetRootDir()' LastError:{0}\n{1}",
                                            System.Runtime.InteropServices.Marshal.GetLastWin32Error()
                                            , exc.Message
                                            );
                }
            }
            ARMaxNativeMethods.FreeMaxSave();
        }
Beispiel #7
0
        private void PackContents(string resultFileName, string folderName)
        {
            string filename = mSaveFileNameTextBox.Text;
            int    result   = ARMaxNativeMethods.InitMaxSave();

            if (result != 0)
            {
                throw new Exception("Could not load initialize ARMax DLL!");
            }
            result = ARMaxNativeMethods.LoadSave(filename);
            if (result != 0)
            {
                throw new Exception("Could not load file:" + filename);
            }
        }
Beispiel #8
0
        private static int LoadARMaxFile(string filename)
        {
            int result = ARMaxNativeMethods.InitMaxSave();

            Console.WriteLine("#DLL version: ", ARMaxNativeMethods.DLLVersion());

            if (result != 0)
            {
                throw new Exception("Could not load initialize ARMax DLL!");
            }
            result = ARMaxNativeMethods.LoadSave(filename);
            if (result != 0)
            {
                throw new Exception("Could not load file:" + filename);
            }
            return(result);
        }
Beispiel #9
0
        private void ShowContants(string filename)
        {
            if (filename.EndsWith(".max", StringComparison.InvariantCultureIgnoreCase))
            {
                mInternalFilesListBox.Items.Clear();
                int result = LoadARMaxFile(filename);

                int           numFiles = ARMaxNativeMethods.NumberOfFiles();
                StringBuilder buff     = new StringBuilder(256);
                int           fileSize = -1;
                // show the files in the list box
                for (int i = 1; i < numFiles + 1; i++) // there is no '0'th file
                {
                    try
                    {
                        result = ARMaxNativeMethods.FileDetails(i, buff, 256, ref fileSize);
                        if (result == 0)
                        {
                            mInternalFilesListBox.Items.Add(buff.ToString()); // add to the list box items
                        }
                        else
                        {
                            Console.Error.WriteLine("Error Code = {0}", result);
                        }
                    }
                    catch (Exception exc)
                    {
                        Console.Error.WriteLine("Error calling 'ARMaxNativeMethods.GetRootDir()' LastError:{0}\n{1}",
                                                System.Runtime.InteropServices.Marshal.GetLastWin32Error()
                                                , exc.Message
                                                );
                    }
                    buff.Length = 0; // clear out the chars in buff
                }
                ARMaxNativeMethods.FreeMaxSave();
                mExtractButton.Enabled = true;
            }
            else
            {
                MessageBox.Show("This is not a a .max file: " + filename);
            }
        }
Beispiel #10
0
        public PS2FileHelper(string filename)
        {
            this.Filename = filename;

            int result = ARMaxNativeMethods.InitMaxSave();

            if (result == 0)
            {
                result = ARMaxNativeMethods.LoadSave(filename);

                Console.WriteLine("#ARMax version: {0}, Number of files:{1}; RootDir: {2}",
                                  ARMaxNativeMethods.DLLVersion(),
                                  ARMaxNativeMethods.NumberOfFiles()
                                  , this.RootDir
                                  );
            }
            else
            {
                Console.Error.WriteLine("#Error calling 'ARMaxNativeMethods.InitMaxSave()' result:{0}", result);
            }
        }
Beispiel #11
0
        public void ExtractPS2SaveContents(string pathToExtractTo)
        {
            string dirName = pathToExtractTo;

            if (!dirName.EndsWith("\\"))
            {
                dirName += "\\";
            }

            if (Directory.Exists(dirName))
            {
                Directory.Delete(dirName, true);
            }
            Directory.CreateDirectory(dirName);
            int result   = -1;
            int numFiles = ARMaxNativeMethods.NumberOfFiles();

            // show the files in the list box
            for (int i = 1; i <= numFiles; i++) // there is no '0'th file
            {
                try
                {
                    result = ARMaxNativeMethods.ExtractAFile(i, dirName);
                    if (result != 0)
                    {
                        Console.Error.Write("'ARMaxNativeMethods.ExtractAFile' Failed; code = {0}", result);
                    }
                }
                catch (Exception exc)
                {
                    Console.Error.WriteLine("Error calling 'ARMaxNativeMethods.GetRootDir()' LastError:{0}\n{1}",
                                            System.Runtime.InteropServices.Marshal.GetLastWin32Error()
                                            , exc.Message
                                            );
                }
            }
        }
Beispiel #12
0
 public void Dispose()
 {
     ARMaxNativeMethods.FreeMaxSave();
 }
Beispiel #13
0
        public bool SaveMaxFileAs(string filename)
        {
            int result = ARMaxNativeMethods.SaveMaxFile(filename);

            return(result == 0);
        }