mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2026-05-14 23:15:27 +08:00
Merge branch 'dexyfex:master' into master
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Generated
+18
-18
@@ -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
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user