Merge branch 'dexyfex:master' into master

This commit is contained in:
Arif Sezer AKTAŞ
2022-02-13 16:01:05 +03:00
committed by GitHub
Unverified
17 changed files with 2881 additions and 1089 deletions
+66 -7
View File
@@ -276,10 +276,10 @@ namespace CodeWalker
InitFileType(".gfx", "Scaleform Flash", 7);
InitFileType(".ynd", "Path Nodes", 8, FileTypeAction.ViewYnd, true);
InitFileType(".ynv", "Nav Mesh", 9, FileTypeAction.ViewModel, true);
InitFileType(".yvr", "Vehicle Record", 9, FileTypeAction.ViewYvr);
InitFileType(".ywr", "Waypoint Record", 9, FileTypeAction.ViewYwr);
InitFileType(".yvr", "Vehicle Record", 9, FileTypeAction.ViewYvr, true);
InitFileType(".ywr", "Waypoint Record", 9, FileTypeAction.ViewYwr, true);
InitFileType(".fxc", "Compiled Shaders", 9, FileTypeAction.ViewFxc);
InitFileType(".yed", "Expression Dictionary", 9, FileTypeAction.ViewYed);
InitFileType(".yed", "Expression Dictionary", 9, FileTypeAction.ViewYed, true);
InitFileType(".yld", "Cloth Dictionary", 9, FileTypeAction.ViewYld, true);
InitFileType(".yfd", "Frame Filter Dictionary", 9, FileTypeAction.ViewYfd);
InitFileType(".asi", "ASI Plugin", 9);
@@ -313,6 +313,8 @@ namespace CodeWalker
InitSubFileType(".dat", "cache_y.dat", "Cache File", 6, FileTypeAction.ViewCacheDat, true);
InitSubFileType(".dat", "heightmap.dat", "Heightmap", 6, FileTypeAction.ViewHeightmap, true);
InitSubFileType(".dat", "heightmapheistisland.dat", "Heightmap", 6, FileTypeAction.ViewHeightmap, true);
InitSubFileType(".dat", "distantlights.dat", "Distant Lights", 6, FileTypeAction.ViewDistantLights);
InitSubFileType(".dat", "distantlights_hd.dat", "Distant Lights", 6, FileTypeAction.ViewDistantLights);
}
private void InitFileType(string ext, string name, int imgidx, FileTypeAction defaultAction = FileTypeAction.ViewHex, bool xmlConvertible = false)
{
@@ -1404,6 +1406,7 @@ namespace CodeWalker
case FileTypeAction.ViewYfd:
case FileTypeAction.ViewHeightmap:
case FileTypeAction.ViewMrf:
case FileTypeAction.ViewDistantLights:
return true;
case FileTypeAction.ViewHex:
default:
@@ -1539,6 +1542,9 @@ namespace CodeWalker
case FileTypeAction.ViewNametable:
ViewNametable(name, path, data, fe);
break;
case FileTypeAction.ViewDistantLights:
ViewDistantLights(name, path, data, fe);
break;
case FileTypeAction.ViewHex:
default:
ViewHex(name, path, data);
@@ -1748,16 +1754,16 @@ namespace CodeWalker
private void ViewYed(string name, string path, byte[] data, RpfFileEntry e)
{
var yed = RpfFile.GetFile<YedFile>(e, data);
GenericForm f = new GenericForm(this);
MetaForm f = new MetaForm(this);
f.Show();
f.LoadFile(yed, yed.RpfFileEntry);
f.LoadMeta(yed);
}
private void ViewYld(string name, string path, byte[] data, RpfFileEntry e)
{
var yld = RpfFile.GetFile<YldFile>(e, data);
GenericForm f = new GenericForm(this);
MetaForm f = new MetaForm(this);
f.Show();
f.LoadFile(yld, yld.RpfFileEntry);
f.LoadMeta(yld);
}
private void ViewYfd(string name, string path, byte[] data, RpfFileEntry e)
{
@@ -1793,6 +1799,13 @@ namespace CodeWalker
f.Show();
f.LoadNametable(name, path, data, e);
}
private void ViewDistantLights(string name, string path, byte[] data, RpfFileEntry e)
{
var dlf = RpfFile.GetFile<DistantLightsFile>(e, data);
GenericForm f = new GenericForm(this);
f.Show();
f.LoadFile(dlf, dlf.RpfFileEntry);
}
private RpfFileEntry CreateFileEntry(string name, string path, ref byte[] data)
{
@@ -2741,6 +2754,18 @@ namespace CodeWalker
{
mformat = MetaFormat.Yld;
}
if (fnamel.EndsWith(".yed.xml"))
{
mformat = MetaFormat.Yed;
}
if (fnamel.EndsWith(".ywr.xml"))
{
mformat = MetaFormat.Ywr;
}
if (fnamel.EndsWith(".yvr.xml"))
{
mformat = MetaFormat.Yvr;
}
if (fnamel.EndsWith(".awc.xml"))
{
mformat = MetaFormat.Awc;
@@ -2924,6 +2949,39 @@ namespace CodeWalker
data = yld.Save();
break;
}
case MetaFormat.Yed:
{
var yed = XmlYed.GetYed(doc, fpathin);
if (yed.ExpressionDictionary == null)
{
MessageBox.Show(fname + ": Schema not supported.", "Cannot import YED XML");
continue;
}
data = yed.Save();
break;
}
case MetaFormat.Ywr:
{
var ywr = XmlYwr.GetYwr(doc, fpathin);
if (ywr.Waypoints == null)
{
MessageBox.Show(fname + ": Schema not supported.", "Cannot import YWR XML");
continue;
}
data = ywr.Save();
break;
}
case MetaFormat.Yvr:
{
var yvr = XmlYvr.GetYvr(doc, fpathin);
if (yvr.Records == null)
{
MessageBox.Show(fname + ": Schema not supported.", "Cannot import YVR XML");
continue;
}
data = yvr.Save();
break;
}
case MetaFormat.Awc:
{
var awc = XmlAwc.GetAwc(doc, fpathin);
@@ -4819,6 +4877,7 @@ namespace CodeWalker
ViewHeightmap = 23,
ViewMrf = 24,
ViewNametable = 25,
ViewDistantLights = 26,
}
+46
View File
@@ -318,6 +318,34 @@ namespace CodeWalker.Forms
metaFormat = MetaFormat.Ynd;
}
}
public void LoadMeta(YldFile yld)
{
var fn = ((yld?.RpfFileEntry?.Name) ?? "") + ".xml";
Xml = MetaXml.GetXml(yld, out fn);
FileName = fn;
RawPropertyGrid.SelectedObject = yld;
rpfFileEntry = yld?.RpfFileEntry;
modified = false;
metaFormat = MetaFormat.XML;
if (yld?.RpfFileEntry != null)
{
metaFormat = MetaFormat.Yld;
}
}
public void LoadMeta(YedFile yed)
{
var fn = ((yed?.RpfFileEntry?.Name) ?? "") + ".xml";
Xml = MetaXml.GetXml(yed, out fn);
FileName = fn;
RawPropertyGrid.SelectedObject = yed;
rpfFileEntry = yed?.RpfFileEntry;
modified = false;
metaFormat = MetaFormat.XML;
if (yed?.RpfFileEntry != null)
{
metaFormat = MetaFormat.Yed;
}
}
public void LoadMeta(CacheDatFile cachedat)
{
var fn = ((cachedat?.FileEntry?.Name) ?? "") + ".xml";
@@ -404,6 +432,24 @@ namespace CodeWalker.Forms
}
data = ynd.Save();
break;
case MetaFormat.Yld:
var yld = XmlYld.GetYld(doc);
if (yld.ClothDictionary == null)
{
MessageBox.Show("Schema not supported.", "Cannot import YLD XML");
return false;
}
data = yld.Save();
break;
case MetaFormat.Yed:
var yed = XmlYed.GetYed(doc);
if (yed.ExpressionDictionary == null)
{
MessageBox.Show("Schema not supported.", "Cannot import YED XML");
return false;
}
data = yed.Save();
break;
case MetaFormat.CacheFile:
MessageBox.Show("Sorry, CacheFile import is not supported.", "Cannot import CacheFile XML");
return false;
+18 -18
View File
@@ -41,9 +41,9 @@
this.RightXColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.RightYColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.RightZColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.TopXColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.TopYColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.TopZColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.ForwardXColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.ForwardYColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.ForwardZColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SteeringAngleColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.GasPedalPowerColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.BrakePedalPowerColumn = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@@ -81,9 +81,9 @@
this.RightXColumn,
this.RightYColumn,
this.RightZColumn,
this.TopXColumn,
this.TopYColumn,
this.TopZColumn,
this.ForwardXColumn,
this.ForwardYColumn,
this.ForwardZColumn,
this.SteeringAngleColumn,
this.GasPedalPowerColumn,
this.BrakePedalPowerColumn,
@@ -146,20 +146,20 @@
this.RightZColumn.Text = "Right Z";
this.RightZColumn.Width = 48;
//
// TopXColumn
// ForwardXColumn
//
this.TopXColumn.Text = "Top X";
this.TopXColumn.Width = 44;
this.ForwardXColumn.Text = "Fwd X";
this.ForwardXColumn.Width = 44;
//
// TopYColumn
// ForwardYColumn
//
this.TopYColumn.Text = "Top Y";
this.TopYColumn.Width = 44;
this.ForwardYColumn.Text = "Fwd Y";
this.ForwardYColumn.Width = 44;
//
// TopZColumn
// ForwardZColumn
//
this.TopZColumn.Text = "Top Z";
this.TopZColumn.Width = 44;
this.ForwardZColumn.Text = "Fwd Z";
this.ForwardZColumn.Width = 44;
//
// SteeringAngleColumn
//
@@ -236,9 +236,9 @@
private System.Windows.Forms.ColumnHeader RightXColumn;
private System.Windows.Forms.ColumnHeader RightYColumn;
private System.Windows.Forms.ColumnHeader RightZColumn;
private System.Windows.Forms.ColumnHeader TopXColumn;
private System.Windows.Forms.ColumnHeader TopYColumn;
private System.Windows.Forms.ColumnHeader TopZColumn;
private System.Windows.Forms.ColumnHeader ForwardXColumn;
private System.Windows.Forms.ColumnHeader ForwardYColumn;
private System.Windows.Forms.ColumnHeader ForwardZColumn;
private System.Windows.Forms.ColumnHeader SteeringAngleColumn;
private System.Windows.Forms.ColumnHeader GasPedalPowerColumn;
private System.Windows.Forms.ColumnHeader BrakePedalPowerColumn;
+33 -33
View File
@@ -66,42 +66,42 @@ namespace CodeWalker.Forms
private string GenerateText()
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("PositionX, PositionY, PositionZ, Time, VelocityX, VelocityY, VelocityZ, RightX, RightY, RightZ, TopX, TopY, TopZ, SteeringAngle, GasPedalPower, BrakePedalPower, HandbrakeUsed");
sb.AppendLine("PositionX, PositionY, PositionZ, Time, VelocityX, VelocityY, VelocityZ, RightX, RightY, RightZ, ForwardX, ForwardY, ForwardZ, SteeringAngle, GasPedalPower, BrakePedalPower, HandbrakeUsed");
foreach (var entry in yvr.Records.Entries.data_items)
{
sb.Append(FloatUtil.ToString(entry.PositionX));
sb.Append(FloatUtil.ToString(entry.Position.X));
sb.Append(", ");
sb.Append(FloatUtil.ToString(entry.PositionY));
sb.Append(FloatUtil.ToString(entry.Position.Y));
sb.Append(", ");
sb.Append(FloatUtil.ToString(entry.PositionZ));
sb.Append(FloatUtil.ToString(entry.Position.Z));
sb.Append(", ");
sb.Append(entry.Time.ToString());
sb.Append(", ");
sb.Append(entry.VelocityX.ToString());
sb.Append(FloatUtil.ToString(entry.Velocity.X));
sb.Append(", ");
sb.Append(entry.VelocityY.ToString());
sb.Append(FloatUtil.ToString(entry.Velocity.Y));
sb.Append(", ");
sb.Append(entry.VelocityZ.ToString());
sb.Append(FloatUtil.ToString(entry.Velocity.Z));
sb.Append(", ");
sb.Append(entry.RightX.ToString());
sb.Append(FloatUtil.ToString(entry.Right.X));
sb.Append(", ");
sb.Append(entry.RightY.ToString());
sb.Append(FloatUtil.ToString(entry.Right.Y));
sb.Append(", ");
sb.Append(entry.RightZ.ToString());
sb.Append(FloatUtil.ToString(entry.Right.Z));
sb.Append(", ");
sb.Append(entry.TopX.ToString());
sb.Append(FloatUtil.ToString(entry.Forward.X));
sb.Append(", ");
sb.Append(entry.TopY.ToString());
sb.Append(FloatUtil.ToString(entry.Forward.Y));
sb.Append(", ");
sb.Append(entry.TopZ.ToString());
sb.Append(FloatUtil.ToString(entry.Forward.Z));
sb.Append(", ");
sb.Append(entry.SteeringAngle.ToString());
sb.Append(FloatUtil.ToString(entry.Steering));
sb.Append(", ");
sb.Append(entry.GasPedalPower.ToString());
sb.Append(FloatUtil.ToString(entry.GasPedal));
sb.Append(", ");
sb.Append(entry.BrakePedalPower.ToString());
sb.Append(FloatUtil.ToString(entry.BrakePedal));
sb.Append(", ");
sb.Append(entry.HandbrakeUsed.ToString());
sb.Append(entry.Handbrake.ToString());
sb.AppendLine();
}
return sb.ToString();
@@ -114,23 +114,23 @@ namespace CodeWalker.Forms
{
string[] row =
{
FloatUtil.ToString(entry.PositionX),
FloatUtil.ToString(entry.PositionY),
FloatUtil.ToString(entry.PositionZ),
FloatUtil.ToString(entry.Position.X),
FloatUtil.ToString(entry.Position.Y),
FloatUtil.ToString(entry.Position.Z),
entry.Time.ToString(),
entry.VelocityX.ToString(),
entry.VelocityY.ToString(),
entry.VelocityZ.ToString(),
entry.RightX.ToString(),
entry.RightY.ToString(),
entry.RightZ.ToString(),
entry.TopX.ToString(),
entry.TopY.ToString(),
entry.TopZ.ToString(),
entry.SteeringAngle.ToString(),
entry.GasPedalPower.ToString(),
entry.BrakePedalPower.ToString(),
entry.HandbrakeUsed.ToString(),
FloatUtil.ToString(entry.Velocity.X),
FloatUtil.ToString(entry.Velocity.Y),
FloatUtil.ToString(entry.Velocity.Z),
FloatUtil.ToString(entry.Right.X),
FloatUtil.ToString(entry.Right.Y),
FloatUtil.ToString(entry.Right.Z),
FloatUtil.ToString(entry.Forward.X),
FloatUtil.ToString(entry.Forward.Y),
FloatUtil.ToString(entry.Forward.Z),
FloatUtil.ToString(entry.Steering),
FloatUtil.ToString(entry.GasPedal),
FloatUtil.ToString(entry.BrakePedal),
entry.Handbrake.ToString(),
};
MainListView.Items.Add(new ListViewItem(row));
}
+6 -6
View File
@@ -72,11 +72,11 @@ namespace CodeWalker.Forms
sb.AppendLine("PositionX, PositionY, PositionZ, Unk0, Unk1, Unk2, Unk3");
foreach (var entry in ywr.Waypoints.Entries)
{
sb.Append(FloatUtil.ToString(entry.PositionX));
sb.Append(FloatUtil.ToString(entry.Position.X));
sb.Append(", ");
sb.Append(FloatUtil.ToString(entry.PositionY));
sb.Append(FloatUtil.ToString(entry.Position.Y));
sb.Append(", ");
sb.Append(FloatUtil.ToString(entry.PositionZ));
sb.Append(FloatUtil.ToString(entry.Position.Z));
sb.Append(", ");
sb.Append(entry.Unk0.ToString());
sb.Append(", ");
@@ -97,9 +97,9 @@ namespace CodeWalker.Forms
{
string[] row =
{
FloatUtil.ToString(entry.PositionX),
FloatUtil.ToString(entry.PositionY),
FloatUtil.ToString(entry.PositionZ),
FloatUtil.ToString(entry.Position.X),
FloatUtil.ToString(entry.Position.Y),
FloatUtil.ToString(entry.Position.Z),
entry.Unk0.ToString(),
entry.Unk1.ToString(),
entry.Unk2.ToString(),