public static void AddDFF(ArchiveFile j) { if (ObjectDFFNames.Contains(j.Name)) { RenderWareModelFile d = new RenderWareModelFile(j.Name); byte[] dffData = j.DecompressThis(); d.SetForRendering(ReadFileMethods.ReadRenderWareFile(dffData), dffData); if (DFFStream.ContainsKey(j.Name)) { MessageBox.Show("Object model " + j.Name + " has already been loaded and will be replaced."); foreach (SharpMesh mesh in DFFStream[j.Name].meshList) { mesh.Dispose(); } DFFStream[j.Name] = d; } else { DFFStream.Add(j.Name, d); } } }
private void AddDFF(ArchiveFile j) { if (ObjectDFFNames.Contains(j.Name)) { RenderWareModelFile d = new RenderWareModelFile(j.Name); byte[] dffData = j.DecompressThis(); try { d.SetForRendering(mainForm.renderer.Device, ReadFileMethods.ReadRenderWareFile(dffData), dffData); if (DFFModels.ContainsKey(j.Name)) { foreach (SharpMesh mesh in DFFModels[j.Name].meshList) { mesh.Dispose(); } DFFModels[j.Name] = d; } else { DFFModels.Add(j.Name, d); } } catch (Exception ex) { // TODO: Investigate RenderWareFile failing to open certain DFFs. MessageBox.Show($"RenderWareFile: Failed to open DFF model file; {j.Name} | Exception Message: {ex.Message}"); } } else if (Path.GetExtension(j.Name).ToLower().Equals(".txd")) { try { byte[] txdData = j.DecompressThis(); mainForm.LoadTexturesFromTXD(txdData); } catch (Exception ex) { #if DEBUG MessageBox.Show("Unable to load textures from TXD: " + ex.Message); #endif } } }