Exemple #1
0
        public static List <Section_AHDR> GetAssets(out bool success, out bool overwrite)
        {
            ImportTextures a = new ImportTextures();

            if (a.ShowDialog() == DialogResult.OK)
            {
                ReadFileMethods.treatStuffAsByteArray = true;

                List <Section_AHDR> AHDRs = new List <Section_AHDR>();

                for (int i = 0; i < a.filePaths.Count; i++)
                {
                    if (Path.GetExtension(a.filePaths[i]).ToLower().Equals(".rwtex"))
                    {
                        byte[] data = ReadFileMethods.ExportRenderWareFile(new TextureDictionary_0016()
                        {
                            textureDictionaryStruct = new TextureDictionaryStruct_0001()
                            {
                                textureCount = 1, unknown = 0
                            },
                            textureNativeList = new List <TextureNative_0015>()
                            {
                                new TextureNative_0015().FromBytes(File.ReadAllBytes(a.filePaths[i]))
                            },
                            textureDictionaryExtension = new Extension_0003()
                        }, ArchiveEditorFunctions.currentTextureVersion);

                        string assetName = Path.GetFileNameWithoutExtension(a.filePaths[i]) + (a.checkBoxRW3.Checked ? ".RW3" : "");

                        Section_ADBG ADBG = new Section_ADBG(0, assetName, "", 0);
                        Section_AHDR AHDR = new Section_AHDR(Functions.BKDRHash(assetName), AssetType.RWTX, ArchiveEditorFunctions.AHDRFlagsFromAssetType(AssetType.RWTX), ADBG, data);

                        AHDRs.Add(AHDR);
                    }
                    else
                    {
                        AHDRs.Add(ArchiveEditorFunctions.CreateRWTXFromBitmap(a.filePaths[i], a.checkBoxRW3.Checked, a.checkBoxFlipTextures.Checked, a.checkBoxMipmaps.Checked, a.checkBoxCompress.Checked));
                    }
                }

                ReadFileMethods.treatStuffAsByteArray = false;

                success   = true;
                overwrite = a.checkBoxOverwrite.Checked;
                return(AHDRs);
            }
            else
            {
                success   = false;
                overwrite = false;
                return(null);
            }
        }
Exemple #2
0
        private void buttonImport_Click(object sender, System.EventArgs e)
        {
            OpenFileDialog a = new OpenFileDialog()
            {
                Filter = ImportTextures.filter
            };

            if (a.ShowDialog() == DialogResult.OK)
            {
                archive.UnsavedChanges = true;

                string i = a.FileName;

                if (Path.GetExtension(i).ToLower().Equals(".rwtex"))
                {
                    asset.Data = ReadFileMethods.ExportRenderWareFile(new TextureDictionary_0016()
                    {
                        textureDictionaryStruct = new TextureDictionaryStruct_0001()
                        {
                            textureCount = 1, unknown = 0
                        },
                        textureNativeList = new List <TextureNative_0015>()
                        {
                            new TextureNative_0015().FromBytes(File.ReadAllBytes(i))
                        },
                        textureDictionaryExtension = new Extension_0003()
                    }, ArchiveEditorFunctions.currentTextureVersion);
                }
                else
                {
                    asset.Data = ArchiveEditorFunctions.CreateRWTXFromBitmap(i, false, false, true, true).data;
                }

                archive.EnableTextureForDisplay(asset);
            }
        }