mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2024-07-07 18:31:23 +08:00
R27_dev1 - Extract uncompressed RPF explorer option
This commit is contained in:
parent
b4c481d83f
commit
b6d77c9ca8
36
ExploreForm.Designer.cs
generated
36
ExploreForm.Designer.cs
generated
|
@ -103,6 +103,8 @@
|
||||||
this.ListContextCopyPathMenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.ListContextCopyPathMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ListContextCopyFileListMenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.ListContextCopyFileListMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.ListContextOpenFileLocationMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.ListContextOpenFileLocationSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.ListContextRenameMenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.ListContextRenameMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ListContextReplaceMenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.ListContextReplaceMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ListContextDeleteMenu = new System.Windows.Forms.ToolStripMenuItem();
|
this.ListContextDeleteMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -118,8 +120,7 @@
|
||||||
this.SaveFileDialog = new System.Windows.Forms.SaveFileDialog();
|
this.SaveFileDialog = new System.Windows.Forms.SaveFileDialog();
|
||||||
this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
|
this.OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.FolderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
|
this.FolderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
|
||||||
this.ListContextOpenFileLocationSeparator = new System.Windows.Forms.ToolStripSeparator();
|
this.ListContextExtractUncompressedMenu = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.ListContextOpenFileLocationMenu = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
this.MainMenu.SuspendLayout();
|
this.MainMenu.SuspendLayout();
|
||||||
this.MainToolbar.SuspendLayout();
|
this.MainToolbar.SuspendLayout();
|
||||||
this.StatusBar.SuspendLayout();
|
this.StatusBar.SuspendLayout();
|
||||||
|
@ -714,6 +715,7 @@
|
||||||
this.toolStripSeparator2,
|
this.toolStripSeparator2,
|
||||||
this.ListContextExportXmlMenu,
|
this.ListContextExportXmlMenu,
|
||||||
this.ListContextExtractRawMenu,
|
this.ListContextExtractRawMenu,
|
||||||
|
this.ListContextExtractUncompressedMenu,
|
||||||
this.ListContextExtractAllMenu,
|
this.ListContextExtractAllMenu,
|
||||||
this.toolStripSeparator5,
|
this.toolStripSeparator5,
|
||||||
this.ListContextImportXmlMenu,
|
this.ListContextImportXmlMenu,
|
||||||
|
@ -731,7 +733,7 @@
|
||||||
this.ListContextEditSeparator,
|
this.ListContextEditSeparator,
|
||||||
this.ListContextSelectAllMenu});
|
this.ListContextSelectAllMenu});
|
||||||
this.ListContextMenu.Name = "MainContextMenu";
|
this.ListContextMenu.Name = "MainContextMenu";
|
||||||
this.ListContextMenu.Size = new System.Drawing.Size(208, 392);
|
this.ListContextMenu.Size = new System.Drawing.Size(208, 414);
|
||||||
//
|
//
|
||||||
// ListContextViewMenu
|
// ListContextViewMenu
|
||||||
//
|
//
|
||||||
|
@ -841,6 +843,18 @@
|
||||||
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
this.toolStripSeparator6.Name = "toolStripSeparator6";
|
||||||
this.toolStripSeparator6.Size = new System.Drawing.Size(204, 6);
|
this.toolStripSeparator6.Size = new System.Drawing.Size(204, 6);
|
||||||
//
|
//
|
||||||
|
// ListContextOpenFileLocationMenu
|
||||||
|
//
|
||||||
|
this.ListContextOpenFileLocationMenu.Name = "ListContextOpenFileLocationMenu";
|
||||||
|
this.ListContextOpenFileLocationMenu.Size = new System.Drawing.Size(207, 22);
|
||||||
|
this.ListContextOpenFileLocationMenu.Text = "Open File Location";
|
||||||
|
this.ListContextOpenFileLocationMenu.Click += new System.EventHandler(this.ListContextOpenFileLocationMenu_Click);
|
||||||
|
//
|
||||||
|
// ListContextOpenFileLocationSeparator
|
||||||
|
//
|
||||||
|
this.ListContextOpenFileLocationSeparator.Name = "ListContextOpenFileLocationSeparator";
|
||||||
|
this.ListContextOpenFileLocationSeparator.Size = new System.Drawing.Size(204, 6);
|
||||||
|
//
|
||||||
// ListContextRenameMenu
|
// ListContextRenameMenu
|
||||||
//
|
//
|
||||||
this.ListContextRenameMenu.Image = ((System.Drawing.Image)(resources.GetObject("ListContextRenameMenu.Image")));
|
this.ListContextRenameMenu.Image = ((System.Drawing.Image)(resources.GetObject("ListContextRenameMenu.Image")));
|
||||||
|
@ -935,17 +949,12 @@
|
||||||
this.TreeContextCollapseAllMenu.Text = "Collapse All";
|
this.TreeContextCollapseAllMenu.Text = "Collapse All";
|
||||||
this.TreeContextCollapseAllMenu.Click += new System.EventHandler(this.TreeContextCollapseAllMenu_Click);
|
this.TreeContextCollapseAllMenu.Click += new System.EventHandler(this.TreeContextCollapseAllMenu_Click);
|
||||||
//
|
//
|
||||||
// ListContextOpenFileLocationSeparator
|
// ListContextExtractUncompressedMenu
|
||||||
//
|
//
|
||||||
this.ListContextOpenFileLocationSeparator.Name = "ListContextOpenFileLocationSeparator";
|
this.ListContextExtractUncompressedMenu.Name = "ListContextExtractUncompressedMenu";
|
||||||
this.ListContextOpenFileLocationSeparator.Size = new System.Drawing.Size(204, 6);
|
this.ListContextExtractUncompressedMenu.Size = new System.Drawing.Size(207, 22);
|
||||||
//
|
this.ListContextExtractUncompressedMenu.Text = "Extract Uncompressed...";
|
||||||
// ListContextOpenFileLocationMenu
|
this.ListContextExtractUncompressedMenu.Click += new System.EventHandler(this.ListContextExtractUncompressedMenu_Click);
|
||||||
//
|
|
||||||
this.ListContextOpenFileLocationMenu.Name = "ListContextOpenFileLocationMenu";
|
|
||||||
this.ListContextOpenFileLocationMenu.Size = new System.Drawing.Size(207, 22);
|
|
||||||
this.ListContextOpenFileLocationMenu.Text = "Open File Location";
|
|
||||||
this.ListContextOpenFileLocationMenu.Click += new System.EventHandler(this.ListContextOpenFileLocationMenu_Click);
|
|
||||||
//
|
//
|
||||||
// ExploreForm
|
// ExploreForm
|
||||||
//
|
//
|
||||||
|
@ -1070,5 +1079,6 @@
|
||||||
private System.Windows.Forms.ColumnHeader MainPathColumnHeader;
|
private System.Windows.Forms.ColumnHeader MainPathColumnHeader;
|
||||||
private System.Windows.Forms.ToolStripMenuItem ListContextOpenFileLocationMenu;
|
private System.Windows.Forms.ToolStripMenuItem ListContextOpenFileLocationMenu;
|
||||||
private System.Windows.Forms.ToolStripSeparator ListContextOpenFileLocationSeparator;
|
private System.Windows.Forms.ToolStripSeparator ListContextOpenFileLocationSeparator;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem ListContextExtractUncompressedMenu;
|
||||||
}
|
}
|
||||||
}
|
}
|
100
ExploreForm.cs
100
ExploreForm.cs
|
@ -1396,6 +1396,7 @@ namespace CodeWalker
|
||||||
|
|
||||||
ListContextExportXmlMenu.Enabled = canexportxml;
|
ListContextExportXmlMenu.Enabled = canexportxml;
|
||||||
ListContextExtractRawMenu.Enabled = isfile;
|
ListContextExtractRawMenu.Enabled = isfile;
|
||||||
|
ListContextExtractUncompressedMenu.Enabled = isfile;
|
||||||
|
|
||||||
ListContextImportRawMenu.Visible = canimport;
|
ListContextImportRawMenu.Visible = canimport;
|
||||||
ListContextImportXmlMenu.Visible = canimport;
|
ListContextImportXmlMenu.Visible = canimport;
|
||||||
|
@ -1474,6 +1475,93 @@ namespace CodeWalker
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RpfResourceFileEntry rrfe = file.File as RpfResourceFileEntry;
|
||||||
|
if (rrfe != null) //add resource header if this is a resource file.
|
||||||
|
{
|
||||||
|
data = ResourceBuilder.Compress(data);
|
||||||
|
data = ResourceBuilder.AddResourceHeader(rrfe, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SaveFileDialog.FileName = file.Name;
|
||||||
|
if (SaveFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
string path = SaveFileDialog.FileName;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File.WriteAllBytes(path, data);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Error saving file " + path + ":\n" + ex.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (FolderBrowserDialog.ShowDialog() != DialogResult.OK) return;
|
||||||
|
string folderpath = FolderBrowserDialog.SelectedPath;
|
||||||
|
if (!folderpath.EndsWith("\\")) folderpath += "\\";
|
||||||
|
|
||||||
|
StringBuilder errors = new StringBuilder();
|
||||||
|
|
||||||
|
for (int i = 0; i < MainListView.SelectedIndices.Count; i++)
|
||||||
|
{
|
||||||
|
var idx = MainListView.SelectedIndices[i];
|
||||||
|
if ((idx < 0) || (idx >= CurrentFiles.Count)) continue;
|
||||||
|
var file = CurrentFiles[idx];
|
||||||
|
if (file.Folder == null)
|
||||||
|
{
|
||||||
|
var path = folderpath + file.Name;
|
||||||
|
var data = GetFileData(file);
|
||||||
|
if (data == null)
|
||||||
|
{
|
||||||
|
errors.AppendLine("Unable to extract file: " + file.Path);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
RpfResourceFileEntry rrfe = file.File as RpfResourceFileEntry;
|
||||||
|
if (rrfe != null) //add resource header if this is a resource file.
|
||||||
|
{
|
||||||
|
data = ResourceBuilder.Compress(data);
|
||||||
|
data = ResourceBuilder.AddResourceHeader(rrfe, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
File.WriteAllBytes(path, data);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
errors.AppendLine("Error saving file " + path + ":\n" + ex.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string errstr = errors.ToString();
|
||||||
|
if (!string.IsNullOrEmpty(errstr))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Errors were encountered:\n" + errstr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void ExtractUncompressed()
|
||||||
|
{
|
||||||
|
if (MainListView.SelectedIndices.Count == 1)
|
||||||
|
{
|
||||||
|
var idx = MainListView.SelectedIndices[0];
|
||||||
|
if ((idx < 0) || (idx >= CurrentFiles.Count)) return;
|
||||||
|
var file = CurrentFiles[idx];
|
||||||
|
if (file.Folder == null)
|
||||||
|
{
|
||||||
|
byte[] data = GetFileData(file);
|
||||||
|
if (data == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Unable to extract file: " + file.Path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SaveFileDialog.FileName = file.Name;
|
SaveFileDialog.FileName = file.Name;
|
||||||
if (SaveFileDialog.ShowDialog() == DialogResult.OK)
|
if (SaveFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
|
@ -1551,6 +1639,13 @@ namespace CodeWalker
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
RpfResourceFileEntry rrfe = file.File as RpfResourceFileEntry;
|
||||||
|
if (rrfe != null) //add resource header if this is a resource file.
|
||||||
|
{
|
||||||
|
data = ResourceBuilder.Compress(data);
|
||||||
|
data = ResourceBuilder.AddResourceHeader(rrfe, data);
|
||||||
|
}
|
||||||
|
|
||||||
File.WriteAllBytes(path, data);
|
File.WriteAllBytes(path, data);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -2056,6 +2151,11 @@ namespace CodeWalker
|
||||||
ExtractRaw();
|
ExtractRaw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ListContextExtractUncompressedMenu_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ExtractUncompressed();
|
||||||
|
}
|
||||||
|
|
||||||
private void ListContextExtractAllMenu_Click(object sender, EventArgs e)
|
private void ListContextExtractAllMenu_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ExtractAll();
|
ExtractAll();
|
||||||
|
|
|
@ -258,16 +258,6 @@
|
||||||
GvZP7/3NqMHOyEACQlVVHxGjBiOpbdu1KIokGRDjZCqQj/3WzsPozi3L8oNTCXEyAqDv+93PykyM7hyb
|
GvZP7/3NqMHOyEACQlVVHxGjBiOpbdu1KIokGRDjZCqQj/3WzsPozi3L8oNTCXEyAqDv+93PykyM7hyb
|
||||||
OEgy37QlAVUSCxs9tKCADeqLDGjzT4Gu676IErtUgaDbuTwDCUhYccAhyS2wicsjWZXIJ9R1vYsbPdjm
|
OEgy37QlAVUSCxs9tKCADeqLDGjzT4Gu676IErtUgaDbuTwDCUhYccAhyS2wicsjWZXIJ9R1vYsbPdjm
|
||||||
ePJI4uQjAWAz8UYNxvNEhJNVrq7ziMzzN2pq/DDMhNNPcE6+bs69AUIIBqGH+5QgAAAAAElFTkSuQmCC
|
ePJI4uQjAWAz8UYNxvNEhJNVrq7ziMzzN2pq/DDMhNNPcE6+bs69AUIIBqGH+5QgAAAAAElFTkSuQmCC
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="SearchButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
|
||||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADVSURBVDhPpVIxDoMwDORJfQN7pI5hz1pmytSJ7/EFhrYZ
|
|
||||||
MqSVgDXlIhslaoga9aQTsn1nOyFVDsuynNd1HTe6gCPyJDnGJrpN0+T6vnd1Xe9EjDzqJP0GJkAkhIjM
|
|
||||||
TOSpSXoTrMmTu+7qHvene9m3/7aX1udRh44sMXBWnsZmJmKuQUeWGFiPRaGZKaXMN/hrg3meTygopbyo
|
|
||||||
6A7IbIdh2KekmPwLR+amaaI4+Q6OzDiGMcafNWD8EnNmrbVFnaRppBr8bGaETYrNDG4CFpsZMJaZq+oD
|
|
||||||
NQar60zqQI0AAAAASUVORK5CYII=
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SearchGlobalButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="SearchGlobalButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
@ -287,6 +277,16 @@
|
||||||
lVY67e7NJiI/2QxXrEetVVZsAY5938U5NzUbthbgknMW7735iOnYsB0AqBXXlJL5jOnYsDUBqA1uMcbh
|
lVY67e7NJiI/2QxXrEetVVZsAY5938U5NzUbthbgknMW7735iOnYsB0AqBXXlJL5jOnYsDUBqA1uMcbh
|
||||||
mYyuz6aAU/M9hKDP3GR0ffYegNrwXEpRADdZr5+aAlB7UAB3j1V/Anh1j1UD4Fub4YrN8HPL9gAVE1vf
|
mYyuz6aAU/M9hKDP3GR0ffYegNrwXEpRADdZr5+aAlB7UAB3j1V/Anh1j1UD4Fub4YrN8HPL9gAVE1vf
|
||||||
J6IiRgAAAABJRU5ErkJggg==
|
J6IiRgAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="SearchButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||||
|
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADVSURBVDhPpVIxDoMwDORJfQN7pI5hz1pmytSJ7/EFhrYZ
|
||||||
|
MqSVgDXlIhslaoga9aQTsn1nOyFVDsuynNd1HTe6gCPyJDnGJrpN0+T6vnd1Xe9EjDzqJP0GJkAkhIjM
|
||||||
|
TOSpSXoTrMmTu+7qHvene9m3/7aX1udRh44sMXBWnsZmJmKuQUeWGFiPRaGZKaXMN/hrg3meTygopbyo
|
||||||
|
6A7IbIdh2KekmPwLR+amaaI4+Q6OzDiGMcafNWD8EnNmrbVFnaRppBr8bGaETYrNDG4CFpsZMJaZq+oD
|
||||||
|
NQar60zqQI0AAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="StatusBar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="StatusBar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
@ -300,7 +300,7 @@
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADo
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADo
|
||||||
HwAAAk1TRnQBSQFMAgEBGAEAAZABAAGQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
HwAAAk1TRnQBSQFMAgEBGAEAAZgBAAGYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAAXADAAEBAQABCAYAARwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
AwABQAMAAXADAAEBAQABCAYAARwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||||
|
|
50
Readme.txt
50
Readme.txt
|
@ -74,6 +74,56 @@ CodeWalker.exe explorer
|
||||||
Alternatively, run the CodeWalker Explorer batch file in the program's directory.
|
Alternatively, run the CodeWalker Explorer batch file in the program's directory.
|
||||||
|
|
||||||
|
|
||||||
|
Main Toolbar:
|
||||||
|
-------------
|
||||||
|
The main toolbar is used to access most of the editing features in CodeWalker. Shortcuts for new, open and
|
||||||
|
create files are provided. The selection mode can be changed with the "pointer" button. Move, rotate and
|
||||||
|
scale buttons provide access to the different editing widget modes.
|
||||||
|
Other shortcuts on the toolbar include buttons to open the Selection Info window, and the Project window.
|
||||||
|
See the tooltips on the toolbar items for hints.
|
||||||
|
|
||||||
|
|
||||||
|
Project Window:
|
||||||
|
---------------
|
||||||
|
The project window is the starting point for editing files in CodeWalker. Project files can be created,
|
||||||
|
and files can be added to them. It is recommended to create and save a project file before adding files
|
||||||
|
to be edited and saved.
|
||||||
|
The tree view displays the files in the current project, and their contents.
|
||||||
|
|
||||||
|
|
||||||
|
YMAP editing:
|
||||||
|
-------------
|
||||||
|
New YMAP files can be created via the project window, and existing ymap files can be edited.
|
||||||
|
To edit an existing single player YMAP, first change codewalker DLC level to patchday2ng, and enable DLC.
|
||||||
|
Open the toolbar, and enable Entity selection mode. Enable the Move widget with the toolbar Move button.
|
||||||
|
Open the project window with the toolbar button. Changes made while the project window is open are
|
||||||
|
automatically added to the project.
|
||||||
|
Select an entity to edit by right clicking when the entity is moused over, and its bounding box shown in
|
||||||
|
white. Move, rotate and/or scale the selected entity with the widget. When the first change is made, the
|
||||||
|
entity's YMAP will be added to the current project. If no project is open, a new one will be created.
|
||||||
|
The edited YMAP file can be saved to the drive using the File menu in the project window.
|
||||||
|
After saving the file, it needs to be added into the mods folder. Using OpenIV, find the existing YMAP
|
||||||
|
file using the search function (note: the correct path for the edited YMAP can be found in the selection
|
||||||
|
info window in CodeWalker, when an entity is selected, look for YMap>RpfFileEntry in the selection info
|
||||||
|
property grid). Replace the edited YMAP into a copy of the correct archive in the /mods folder.
|
||||||
|
Newly created YMAPs can be added to DLC archives in the same manner.
|
||||||
|
|
||||||
|
|
||||||
|
Traffic Paths (YND) editing:
|
||||||
|
----------------------------
|
||||||
|
[TODO - write this!]
|
||||||
|
|
||||||
|
|
||||||
|
Train Tracks editing:
|
||||||
|
---------------------
|
||||||
|
[TODO - write this!]
|
||||||
|
|
||||||
|
|
||||||
|
Scenario Regions (YMT) editing:
|
||||||
|
-------------------------------
|
||||||
|
[TODO: write this!]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Regarding game files: (FYI)
|
Regarding game files: (FYI)
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
Loading…
Reference in New Issue
Block a user