diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2017-02-19 08:32:08 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2017-02-19 08:32:08 +0300 |
commit | 8662d7938c8ff29b6c6a20878fb079fdd075bc5c (patch) | |
tree | 3bd72d1b8e30fba1b6a496d34e70548d5439b9a8 | |
parent | eb456f27307110c5c9a03678c0235cb3500eb6bc (diff) |
Refactoring
-rw-r--r-- | Apps/FdsGame.cs (renamed from FdsGame.cs) | 23 | ||||
-rw-r--r-- | Apps/NesGame.cs (renamed from NesGame.cs) | 5 | ||||
-rw-r--r-- | Apps/NesMiniApplication.cs (renamed from NesMiniApplication.cs) | 24 | ||||
-rw-r--r-- | Apps/NesUGAme.cs | 34 | ||||
-rw-r--r-- | ConfigIni.cs | 17 | ||||
-rw-r--r-- | NesMenuFolder.cs | 12 | ||||
-rw-r--r-- | Properties/Resources.Designer.cs | 24 | ||||
-rw-r--r-- | Properties/Resources.resx | 7 | ||||
-rw-r--r-- | TreeContructorForm.Designer.cs | 14 | ||||
-rw-r--r-- | TreeContructorForm.cs | 32 | ||||
-rw-r--r-- | TreeContructorForm.resx | 118 | ||||
-rw-r--r-- | TreeContructorForm.ru-RU.resx | 72 | ||||
-rw-r--r-- | WorkerForm.cs | 30 | ||||
-rw-r--r-- | hakchi_gui.csproj | 18 | ||||
-rw-r--r-- | images/app_sm.png | bin | 0 -> 1020 bytes | |||
-rw-r--r-- | images/app_sm_tr.png | bin | 0 -> 1004 bytes | |||
-rw-r--r-- | images/blank_app.png | bin | 0 -> 8589 bytes | |||
-rw-r--r-- | images/famicom_sm.png | bin | 0 -> 281 bytes | |||
-rw-r--r-- | images/famicom_sm_tr.png | bin | 0 -> 286 bytes | |||
-rw-r--r-- | images/fds_sm.png | bin | 0 -> 318 bytes | |||
-rw-r--r-- | images/fds_sm_tr.png | bin | 0 -> 321 bytes | |||
-rw-r--r-- | images/nes_sm.png (renamed from images/blank_sm.png) | bin | 276 -> 276 bytes | |||
-rw-r--r-- | images/nes_sm_tr.png (renamed from images/blank_sm_tr.png) | bin | 275 -> 275 bytes |
23 files changed, 287 insertions, 143 deletions
diff --git a/FdsGame.cs b/Apps/FdsGame.cs index ffd452b1..08909370 100644 --- a/FdsGame.cs +++ b/Apps/FdsGame.cs @@ -16,9 +16,20 @@ namespace com.clusterrr.hakchi_gui {
public class FdsGame : NesMiniApplication
{
- protected const char prefixCode = 'D';
-
- public readonly string FdsPath;
+ internal static override char Prefix
+ {
+ get
+ {
+ return 'D';
+ }
+ }
+ internal static override Image DefaultCover
+ {
+ get
+ {
+ return Resources.blank_fds;
+ }
+ }
const string DefaultArgs = "--guest-overscan-dimensions 0,0,9,3 --initial-fadein-durations 10,2 --volume 75 --enable-armet --fds-auto-disk-side-switch-on-keypress";
public string Args
@@ -39,12 +50,10 @@ namespace com.clusterrr.hakchi_gui public FdsGame(string path, bool ignoreEmptyConfig)
: base(path, ignoreEmptyConfig)
{
- FdsPath = Path.Combine(GamePath, Code + ".fds");
- hasUnsavedChanges = false;
Args = Args; // To update exec path if need
}
- public static FdsGame Import(string fdsFileName, byte[] rawRomData = null)
+ public static FdsGame ImportFds(string fdsFileName, byte[] rawRomData = null)
{
if (rawRomData == null)
rawRomData = File.ReadAllBytes(fdsFileName);
@@ -55,7 +64,7 @@ namespace com.clusterrr.hakchi_gui rawRomData = fdsDataNoHeader;
}
var crc32 = CRC32(rawRomData);
- var code = GenerateCode(crc32, prefixCode);
+ var code = GenerateCode(crc32, Prefix);
var gamePath = Path.Combine(GamesDirectory, code);
var fdsPath = Path.Combine(gamePath, code + ".fds");
Directory.CreateDirectory(gamePath);
diff --git a/NesGame.cs b/Apps/NesGame.cs index 23e7ad3a..3eb78323 100644 --- a/NesGame.cs +++ b/Apps/NesGame.cs @@ -68,11 +68,10 @@ namespace com.clusterrr.hakchi_gui if (File.Exists(GameGeniePath))
gameGenie = File.ReadAllText(GameGeniePath);
- hasUnsavedChanges = false;
Args = Args; // To update exec path if need
}
- public static NesMiniApplication Import(string nesFileName, bool? ignoreMapper, ref bool? needPatch, NeedPatchDelegate needPatchCallback = null, Form parentForm = null, byte[] rawRomData = null)
+ public static NesMiniApplication ImportNes(string nesFileName, bool? ignoreMapper, ref bool? needPatch, NeedPatchDelegate needPatchCallback = null, Form parentForm = null, byte[] rawRomData = null)
{
NesFile nesFile;
try
@@ -147,7 +146,7 @@ namespace com.clusterrr.hakchi_gui game.Name = Regex.Replace(game.Name, @" ?\(.*?\)", string.Empty).Trim();
game.Name = Regex.Replace(game.Name, @" ?\[.*?\]", string.Empty).Trim();
game.Name = game.Name.Replace("_", " ").Replace(" ", " ");
- game.FindCover(nesFileName, (game.region == "Japan") ? Resources.blank_jp : Resources.blank, crc32);
+ game.FindCover(nesFileName, (game.region == "Japan") ? Resources.blank_jp : Resources.blank_nes, crc32);
game.Args = DefaultArgs;
game.Save();
return game;
diff --git a/NesMiniApplication.cs b/Apps/NesMiniApplication.cs index ae8e9345..3b2106cd 100644 --- a/NesMiniApplication.cs +++ b/Apps/NesMiniApplication.cs @@ -25,6 +25,18 @@ namespace com.clusterrr.hakchi_gui {
get { return code; }
}
+ virtual internal static char Prefix
+ {
+ get { return 'Z'; }
+ }
+ virtual internal static Image DefaultCover
+ {
+ get { return Resources.blank_app; }
+ }
+ virtual internal static string DefaultAp
+ {
+ get { return "/bin/path-to-your-app"; }
+ }
public readonly string GamePath;
public readonly string ConfigPath;
public readonly string IconPath;
@@ -114,16 +126,18 @@ namespace com.clusterrr.hakchi_gui var extension = Path.GetExtension(fileName).ToLower();
char prefixCode;
string application;
+ Image defaultCover = Resources.blank_app;
switch (extension)
{
// For some unusual NES ROM formats
case ".fds":
- return FdsGame.Import(fileName, rawRomData);
+ return FdsGame.ImportFds(fileName, rawRomData);
case ".nes":
case ".unf":
case ".unif":
- prefixCode = 'U';
+ prefixCode = NesUGame.Prefix;
application = "/bin/nes";
+ defaultCover = NesUGame.DefaultCover; // Most of UNIF roms are pirated Famicom games
break;
case ".desktop":
return ImportApp(fileName);
@@ -135,7 +149,7 @@ namespace com.clusterrr.hakchi_gui case ".gba":
prefixCode = 'A';
application = "/bin/gba";
- break;
+ break;
case ".n64":
case ".z64":
case ".v64":
@@ -165,7 +179,7 @@ namespace com.clusterrr.hakchi_gui var crc32 = CRC32(rawRomData);
var code = GenerateCode(crc32, prefixCode);
var gamePath = Path.Combine(GamesDirectory, code);
- var romName = Path.GetFileName(fileName).Replace(" ", "_");
+ var romName = Regex.Replace(Path.GetFileName(fileName), @"[^A-Za-z0-9.-]", "_").Trim();
var romPath = Path.Combine(gamePath, romName);
Directory.CreateDirectory(gamePath);
File.WriteAllBytes(romPath, rawRomData);
@@ -174,7 +188,7 @@ namespace com.clusterrr.hakchi_gui game.Name = Regex.Replace(game.Name, @" ?\(.*?\)", string.Empty).Trim();
game.Name = Regex.Replace(game.Name, @" ?\[.*?\]", string.Empty).Trim();
game.Name = game.Name.Replace("_", " ").Replace(" ", " ").Trim();
- game.FindCover(fileName, Resources.blank, crc32);
+ game.FindCover(fileName, Resources.blank_app, crc32);
game.Command = string.Format("{0} /usr/share/games/nes/kachikachi/{1}/{2}", application, code, romName);
game.Save();
return game;
diff --git a/Apps/NesUGAme.cs b/Apps/NesUGAme.cs new file mode 100644 index 00000000..d0b1e5b4 --- /dev/null +++ b/Apps/NesUGAme.cs @@ -0,0 +1,34 @@ +using com.clusterrr.Famicom;
+using com.clusterrr.hakchi_gui.Properties;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Windows.Forms;
+using System.Xml.XPath;
+
+namespace com.clusterrr.hakchi_gui
+{
+ public class NesUGame : NesMiniApplication
+ {
+ protected const char prefixCode = 'U';
+
+ internal override Image DefaultCover
+ {
+ get
+ {
+ return Resources.blank_jp;
+ }
+ }
+ public NesUGame(string path, bool ignoreEmptyConfig)
+ : base(path, ignoreEmptyConfig)
+ {
+ }
+ }
+}
+
diff --git a/ConfigIni.cs b/ConfigIni.cs index e5628e7b..95aaf282 100644 --- a/ConfigIni.cs +++ b/ConfigIni.cs @@ -25,12 +25,21 @@ namespace com.clusterrr.hakchi_gui public static SelectButtonsForm.NesButtons ResetCombination = SelectButtonsForm.NesButtons.Down | SelectButtonsForm.NesButtons.Select;
public static Dictionary<string, string> Presets = new Dictionary<string, string>();
public static string ExtraCommandLineArguments = "";
+ public const string ConfigDir = "config";
public const string ConfigFile = "config.ini";
public static void Load()
{
Debug.WriteLine("Loading config");
- var fileName = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), ConfigFile);
+ var fileNameOld = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), ConfigFile);
+ var configFullDir = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), ConfigDir);
+ var fileName = Path.Combine(configFullDir, ConfigFile);
+ if (File.Exists(fileNameOld)) // Moving old config to new directory
+ {
+ Directory.CreateDirectory(configFullDir);
+ File.Copy(fileNameOld, fileName, true);
+ File.Delete(fileNameOld);
+ }
if (File.Exists(fileName))
{
var configLines = File.ReadAllLines(fileName);
@@ -130,7 +139,11 @@ namespace com.clusterrr.hakchi_gui {
configLines.Add(string.Format("{0}={1}", preset, Presets[preset]));
}
- File.WriteAllLines(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), ConfigFile), configLines.ToArray());
+
+ var configFullDir = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), ConfigDir);
+ var fileName = Path.Combine(configFullDir, ConfigFile);
+ Directory.CreateDirectory(configFullDir);
+ File.WriteAllLines(fileName, configLines.ToArray());
}
}
}
diff --git a/NesMenuFolder.cs b/NesMenuFolder.cs index 42c562a9..f872b81f 100644 --- a/NesMenuFolder.cs +++ b/NesMenuFolder.cs @@ -156,10 +156,10 @@ namespace com.clusterrr.hakchi_gui const int maxY = 204;
if (image.Width <= maxX && image.Height <= maxY) // Do not upscale
return image;
- if (image.Width / image.Height > maxX / maxY)
- outImage = new Bitmap(maxX, maxY * image.Height / image.Width);
+ if ((double)image.Width / (double)image.Height > (double)maxX / (double)maxY)
+ outImage = new Bitmap(maxX, (int)((double)maxY * (double)image.Height / (double)image.Width));
else
- outImage = new Bitmap(maxX * image.Width / image.Height, maxY);
+ outImage = new Bitmap((int)(maxX * (double)image.Width / (double)image.Height), maxY);
gr = Graphics.FromImage(outImage);
gr.DrawImage(image, new Rectangle(0, 0, outImage.Width, outImage.Height),
new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
@@ -181,10 +181,10 @@ namespace com.clusterrr.hakchi_gui const int maxY = 40;
if (image.Width <= maxX && image.Height <= maxY) // Do not upscale
return image;
- if (image.Width / image.Height > maxX / maxY)
- outImage = new Bitmap(maxX, maxY * image.Height / image.Width);
+ if ((double)image.Width / (double)image.Height > (double)maxX / (double)maxY)
+ outImage = new Bitmap(maxX, (int)((double)maxY * (double)image.Height / (double)image.Width));
else
- outImage = new Bitmap(maxX * image.Width / image.Height, maxY);
+ outImage = new Bitmap((int)(maxX * (double)image.Width / (double)image.Height), maxY);
gr = Graphics.FromImage(outImage);
gr.DrawImage(image, new Rectangle(0, 0, outImage.Width, outImage.Height),
new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index 8b054c61..f603d7da 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -108,9 +108,9 @@ namespace com.clusterrr.hakchi_gui.Properties { /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
- internal static System.Drawing.Bitmap blank {
+ internal static System.Drawing.Bitmap blank_app {
get {
- object obj = ResourceManager.GetObject("blank", resourceCulture);
+ object obj = ResourceManager.GetObject("blank_app", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -136,6 +136,16 @@ namespace com.clusterrr.hakchi_gui.Properties { }
/// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
+ internal static System.Drawing.Bitmap blank_nes {
+ get {
+ object obj = ResourceManager.GetObject("blank_nes", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
/// Looks up a localized string similar to Building the custom kernel image....
/// </summary>
internal static string BuildingCustom {
@@ -226,7 +236,7 @@ namespace com.clusterrr.hakchi_gui.Properties { }
/// <summary>
- /// Looks up a localized string similar to Do you really want to delete "{0}" preset?.
+ /// Looks up a localized string similar to Do you really want to delete the "{0}" preset?.
/// </summary>
internal static string DeletePreset {
get {
@@ -334,7 +344,7 @@ namespace com.clusterrr.hakchi_gui.Properties { }
/// <summary>
- /// Looks up a localized string similar to Executing FES-1....
+ /// Looks up a localized string similar to Executing fes1....
/// </summary>
internal static string ExecutingFes1 {
get {
@@ -922,7 +932,7 @@ namespace com.clusterrr.hakchi_gui.Properties { }
/// <summary>
- /// Looks up a localized string similar to Sorry, "{0}" uses mapper #{1} but this mapper is not supported by the NES Mini and the game probably will not start with the default emulator. But it should work if other emulator's module installed. Do you want to add this game?.
+ /// Looks up a localized string similar to Sorry, "{0}" uses mapper #{1} but this mapper is not supported by the NES Mini and the game will probably not start with the default emulator. But it should work if other emulator's module installed. Do you want to add this game?.
/// </summary>
internal static string MapperNotSupported {
get {
@@ -940,7 +950,7 @@ namespace com.clusterrr.hakchi_gui.Properties { }
/// <summary>
- /// Looks up a localized string similar to The kernel is already patched or it's an unknown revision. Please send this message to me (press Ctrl+C). Continue at on your own risk..
+ /// Looks up a localized string similar to The kernel is already patched or it's an unknown revision. Please send this message to me (press Ctrl+C). Continue at your own risk..
/// </summary>
internal static string MD5Failed2 {
get {
@@ -1030,7 +1040,7 @@ namespace com.clusterrr.hakchi_gui.Properties { }
/// <summary>
- /// Looks up a localized string similar to Don't worry! Everything is fine. There are just too many ROMs to transfer them at once. Please wait until the power LED goes out, press OK and follow the instructions to continue..
+ /// Looks up a localized string similar to Don't worry! Everything is fine. There are just too many ROMs to transfer at once. Please wait until power LED goes out, press OK and follow the instructions to continue..
/// </summary>
internal static string ParticallyBody {
get {
diff --git a/Properties/Resources.resx b/Properties/Resources.resx index 886ef25b..ac16d397 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -313,7 +313,7 @@ <value>Extra command-line arguments</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
- <data name="blank" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <data name="blank_nes" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\images\blank.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DownloadAllCoversTitle" xml:space="preserve">
@@ -511,4 +511,7 @@ <data name="UninstallingMods" xml:space="preserve">
<value>Uninstalling mods...</value>
</data>
-</root>
+ <data name="blank_app" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\images\blank_app.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+</root>
\ No newline at end of file diff --git a/TreeContructorForm.Designer.cs b/TreeContructorForm.Designer.cs index a1bc0dff..041acee7 100644 --- a/TreeContructorForm.Designer.cs +++ b/TreeContructorForm.Designer.cs @@ -111,10 +111,16 @@ this.imageList.TransparentColor = System.Drawing.Color.Transparent;
this.imageList.Images.SetKeyName(0, "folder_sm.png");
this.imageList.Images.SetKeyName(1, "folder_sm_tr.png");
- this.imageList.Images.SetKeyName(2, "blank_sm.png");
- this.imageList.Images.SetKeyName(3, "blank_sm_tr.png");
- this.imageList.Images.SetKeyName(4, "original_sm.png");
- this.imageList.Images.SetKeyName(5, "original_sm_tr.png");
+ this.imageList.Images.SetKeyName(2, "original_sm.png");
+ this.imageList.Images.SetKeyName(3, "original_sm_tr.png");
+ this.imageList.Images.SetKeyName(4, "app_sm.png");
+ this.imageList.Images.SetKeyName(5, "app_sm_tr.png");
+ this.imageList.Images.SetKeyName(6, "nes_sm.png");
+ this.imageList.Images.SetKeyName(7, "nes_sm_tr.png");
+ this.imageList.Images.SetKeyName(8, "famicom_sm.png");
+ this.imageList.Images.SetKeyName(9, "famicom_sm_tr.png");
+ this.imageList.Images.SetKeyName(10, "fds_sm.png");
+ this.imageList.Images.SetKeyName(11, "fds_sm_tr.png");
//
// comboBoxPosition
//
diff --git a/TreeContructorForm.cs b/TreeContructorForm.cs index 17db792d..122b6c66 100644 --- a/TreeContructorForm.cs +++ b/TreeContructorForm.cs @@ -17,7 +17,7 @@ namespace com.clusterrr.hakchi_gui {
public partial class TreeContructorForm : Form
{
- public static string FoldersXmlPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "folders.xml");
+ public static string FoldersXmlPath = Path.Combine(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), ConfigIni.ConfigDir), "folders.xml");
List<TreeNode> cuttedNodes = new List<TreeNode>();
List<INesMenuElement> deletedGames = new List<INesMenuElement>();
NesMenuCollection gamesCollection = new NesMenuCollection();
@@ -112,6 +112,22 @@ namespace com.clusterrr.hakchi_gui ShowSelected();
}
+ static int getImageIndex(INesMenuElement nesElement)
+ {
+ if (nesElement is NesMenuFolder || nesElement is NesMenuCollection)
+ return 0;
+ if (nesElement is NesDefaultGame)
+ return 2;
+ if (nesElement is NesGame)
+ return 6;
+ //if (nesElement is ) // How to determine Famicom game?
+ // return 8;
+ if (nesElement is FdsGame)
+ return 10;
+ //if (nesElement is NesMiniApplication)
+ return 4;
+ }
+
void AddNodes(TreeNodeCollection treeNodeCollection, NesMenuCollection nesMenuCollection, List<NesMenuCollection> usedFolders = null)
{
if (usedFolders == null)
@@ -130,12 +146,8 @@ namespace com.clusterrr.hakchi_gui nesMenuCollection.Remove(nesElement); // We don't need any "back" folders
continue;
}
- newNode.SelectedImageIndex = newNode.ImageIndex = 0;
}
- else if (nesElement is NesMiniApplication)
- newNode.SelectedImageIndex = newNode.ImageIndex = 2;
- else if (nesElement is NesDefaultGame)
- newNode.SelectedImageIndex = newNode.ImageIndex = 4;
+ newNode.SelectedImageIndex = newNode.ImageIndex = getImageIndex(nesElement as INesMenuElement);
newNode.Text = nesElement.Name;
newNode.Tag = nesElement;
treeNodeCollection.Add(newNode);
@@ -198,12 +210,7 @@ namespace com.clusterrr.hakchi_gui var item = new ListViewItem();
item.Text = element.Name;
var transparency = cuttedNodes.Contains(n) ? 1 : 0;
- if (element is NesMenuFolder)
- item.ImageIndex = 0 + transparency;
- else if (element is NesMiniApplication)
- item.ImageIndex = 2 + transparency;
- else if (element is NesDefaultGame)
- item.ImageIndex = 4 + transparency;
+ item.ImageIndex = getImageIndex(element) + transparency;
item.Tag = n;
listViewContent.Items.Add(item);
}
@@ -802,6 +809,7 @@ namespace com.clusterrr.hakchi_gui void SaveTree()
{
+ Directory.CreateDirectory(Path.GetDirectoryName(FoldersXmlPath));
File.WriteAllText(FoldersXmlPath, TreeToXml());
if (mainForm != null)
{
diff --git a/TreeContructorForm.resx b/TreeContructorForm.resx index 40d35f29..648b81a7 100644 --- a/TreeContructorForm.resx +++ b/TreeContructorForm.resx @@ -117,9 +117,6 @@ <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
- <data name=">>splitContainer.Type" xml:space="preserve">
- <value>System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
<data name=">>buttonFoldersEqually.Name" xml:space="preserve">
<value>buttonFoldersEqually</value>
</data>
@@ -206,7 +203,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC0
- CwAAAk1TRnQBSQFMAgEBBgEAAbwBAAHQAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CwAAAk1TRnQBSQFMAgEBBgEAAbwBAAHcAQABEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -262,21 +259,12 @@ <data name="treeView.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
- <data name=">>cutToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
- <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
- <value>784, 512</value>
- </data>
<data name="buttonOk.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 25</value>
</data>
<data name=">>buttonFoldersLetters.Parent" xml:space="preserve">
<value>groupBoxSplitModes</value>
</data>
- <data name=">>buttonNoFolders.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
<data name="buttonCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
@@ -307,6 +295,9 @@ <data name="comboBoxPosition.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
+ <data name=">>splitContainer.Panel2.Name" xml:space="preserve">
+ <value>splitContainer.Panel2</value>
+ </data>
<data name=">>listViewContent.Name" xml:space="preserve">
<value>listViewContent</value>
</data>
@@ -1466,6 +1457,9 @@ //////////////////////////////////8=
</value>
</data>
+ <data name=">>cutToolStripMenuItem.Name" xml:space="preserve">
+ <value>cutToolStripMenuItem</value>
+ </data>
<data name="buttonFoldersEquallyOriginal.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 60</value>
</data>
@@ -1526,12 +1520,18 @@ <data name="buttonCancel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
+ <data name="groupBoxArt.Size" type="System.Drawing.Size, System.Drawing">
+ <value>221, 227</value>
+ </data>
<data name=">>buttonCancel.Parent" xml:space="preserve">
<value>panel2</value>
</data>
<data name="buttonFoldersLetters.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
+ <data name=">>splitContainer.Panel2.ZOrder" xml:space="preserve">
+ <value>1</value>
+ </data>
<data name="buttonNewFolder.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
@@ -1553,8 +1553,11 @@ <data name=">>treeView.ZOrder" xml:space="preserve">
<value>0</value>
</data>
- <data name=">>buttonFoldersEqually.Type" xml:space="preserve">
- <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="buttonFoldersEquallyOriginal.Text" xml:space="preserve">
+ <value>Original games -> Split equally</value>
+ </data>
+ <data name=">>buttonNoFoldersOriginal.ZOrder" xml:space="preserve">
+ <value>0</value>
</data>
<data name="buttonNewFolder.Location" type="System.Drawing.Point, System.Drawing">
<value>394, 243</value>
@@ -1595,15 +1598,15 @@ <data name=">>panel2.Name" xml:space="preserve">
<value>panel2</value>
</data>
+ <data name=">>buttonFoldersEqually.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
<data name="buttonFoldersLettersOriginal.Text" xml:space="preserve">
<value>Original games -> Split by first letter</value>
</data>
<data name="buttonFoldersEqually.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 88</value>
</data>
- <data name="deleteToolStripMenuItem.Text" xml:space="preserve">
- <value>Delete</value>
- </data>
<data name="toolStripMenuItemSep.Size" type="System.Drawing.Size, System.Drawing">
<value>164, 6</value>
</data>
@@ -1634,15 +1637,9 @@ <data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>678, 7</value>
</data>
- <data name=">>buttonOk.ZOrder" xml:space="preserve">
- <value>1</value>
- </data>
<data name="splitContainer.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
- <data name="buttonFoldersEquallyOriginal.Text" xml:space="preserve">
- <value>Original games -> Split equally</value>
- </data>
<data name="treeView.ImageIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
@@ -1664,6 +1661,9 @@ <data name=">>pasteToolStripMenuItem.Name" xml:space="preserve">
<value>pasteToolStripMenuItem</value>
</data>
+ <data name="newFolderToolStripMenuItem.Text" xml:space="preserve">
+ <value>Create new folder</value>
+ </data>
<data name="buttonOk.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
@@ -1694,6 +1694,9 @@ <data name="deleteToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 22</value>
</data>
+ <data name=">>contextMenuStrip.Name" xml:space="preserve">
+ <value>contextMenuStrip</value>
+ </data>
<data name="pictureBoxArt.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
@@ -1721,9 +1724,6 @@ <data name=">>groupBoxSplitModes.Type" xml:space="preserve">
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="buttonOk.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
- <value>Top, Right</value>
- </data>
<data name=">>splitContainer.ZOrder" xml:space="preserve">
<value>2</value>
</data>
@@ -1739,6 +1739,9 @@ <data name="buttonFoldersLettersOriginal.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
+ <data name="pictureBoxArt.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+ <value>NoControl</value>
+ </data>
<data name=">>groupBoxArt.Name" xml:space="preserve">
<value>groupBoxArt</value>
</data>
@@ -1757,15 +1760,15 @@ <data name=">>buttonNewFolder.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
+ <data name="buttonFoldersLettersOriginal.Size" type="System.Drawing.Size, System.Drawing">
+ <value>110, 60</value>
+ </data>
<data name="panel2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name=">>buttonCancel.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name=">>deleteToolStripMenuItem.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </data>
<data name=">>listViewContent.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
@@ -1778,15 +1781,12 @@ <data name=">>$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name=">>contextMenuStrip.Name" xml:space="preserve">
- <value>contextMenuStrip</value>
+ <data name=">>deleteToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name=">>panel2.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name=">>buttonNoFolders.Parent" xml:space="preserve">
- <value>groupBoxSplitModes</value>
- </data>
<data name="comboBoxPosition.Items3" xml:space="preserve">
<value>Rightmost</value>
</data>
@@ -1829,8 +1829,8 @@ <data name="labelPosition.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
- <data name=">>cutToolStripMenuItem.Name" xml:space="preserve">
- <value>cutToolStripMenuItem</value>
+ <data name=">>splitContainer.Type" xml:space="preserve">
+ <value>System.Windows.Forms.SplitContainer, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name=">>buttonNoFoldersOriginal.Parent" xml:space="preserve">
<value>groupBoxSplitModes</value>
@@ -1847,11 +1847,11 @@ <data name="panel2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Bottom</value>
</data>
- <data name="newFolderToolStripMenuItem.Text" xml:space="preserve">
- <value>Create new folder</value>
+ <data name=">>cutToolStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name=">>splitContainer.Panel2.ZOrder" xml:space="preserve">
- <value>1</value>
+ <data name="deleteToolStripMenuItem.Text" xml:space="preserve">
+ <value>Delete</value>
</data>
<data name="buttonNewFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 21</value>
@@ -1868,8 +1868,8 @@ <data name="labelPosition.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 13</value>
</data>
- <data name="groupBoxArt.Size" type="System.Drawing.Size, System.Drawing">
- <value>221, 227</value>
+ <data name=">>buttonOk.ZOrder" xml:space="preserve">
+ <value>1</value>
</data>
<data name=">>labelElementCount.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
@@ -1877,12 +1877,15 @@ <data name="buttonFoldersEquallyOriginal.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
- <data name=">>buttonNoFoldersOriginal.ZOrder" xml:space="preserve">
- <value>0</value>
+ <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
+ <value>784, 512</value>
</data>
<data name=">>newFolderToolStripMenuItem.Name" xml:space="preserve">
<value>newFolderToolStripMenuItem</value>
</data>
+ <data name="comboBoxPosition.Items2" xml:space="preserve">
+ <value>Right to the games</value>
+ </data>
<data name="buttonNoFoldersOriginal.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
@@ -1895,8 +1898,8 @@ <data name=">>panel2.Parent" xml:space="preserve">
<value>$this</value>
</data>
- <data name=">>splitContainer.Panel2.Name" xml:space="preserve">
- <value>splitContainer.Panel2</value>
+ <data name="buttonOk.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+ <value>Top, Right</value>
</data>
<data name="groupBoxArt.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
@@ -1904,14 +1907,11 @@ <data name=">>imageList.Name" xml:space="preserve">
<value>imageList</value>
</data>
- <data name="pictureBoxArt.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
- <value>NoControl</value>
- </data>
<data name=">>toolStripMenuItemSep.Name" xml:space="preserve">
<value>toolStripMenuItemSep</value>
</data>
- <data name="buttonFoldersLettersOriginal.Size" type="System.Drawing.Size, System.Drawing">
- <value>110, 60</value>
+ <data name=">>buttonNoFolders.Parent" xml:space="preserve">
+ <value>groupBoxSplitModes</value>
</data>
<data name="buttonFoldersLetters.Text" xml:space="preserve">
<value>Split by first letter</value>
@@ -1934,8 +1934,8 @@ <data name=">>imageList.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="comboBoxPosition.Items2" xml:space="preserve">
- <value>Right to the games</value>
+ <data name=">>buttonNoFolders.Type" xml:space="preserve">
+ <value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="comboBoxPosition.Size" type="System.Drawing.Size, System.Drawing">
<value>126, 21</value>
@@ -1946,16 +1946,16 @@ <data name=">>comboBoxPosition.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>120, 17</value>
- </metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
+ <metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>ru-RU</value>
</metadata>
- <metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>17, 17</value>
+ <metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>120, 17</value>
</metadata>
</root>
\ No newline at end of file diff --git a/TreeContructorForm.ru-RU.resx b/TreeContructorForm.ru-RU.resx index 9e89198e..edc323dc 100644 --- a/TreeContructorForm.ru-RU.resx +++ b/TreeContructorForm.ru-RU.resx @@ -121,9 +121,9 @@ <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABy
- CwAAAk1TRnQBSQFMAgEBBgEAAbABAAGwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
- AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAU
+ EQAAAk1TRnQBSQFMAgEBDAEAAcABAAHAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABQAMAAUADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
@@ -150,27 +150,51 @@ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
- AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0IADhICAA7vIgABEgHt
- ArwJ7QESAgAB7wG8AvIJvAHvIgABEgHtAhIJ7QESAgAB7wG8Au8JvAHvIQABEgLtArwC7QESB+0BEgHv
- ArwC8gK8Ae8HvAHvIAABEgLtAhIK7QESAe8CvALvCrwB7yAAARIC7QK8Ae0HMgLtARIB7wK8AvIBvAea
- ArwB7yAAARIC7QISAe0CMgKGAYsCMgLtARIB7wK8Au8BvAKaA7UCmgK8Ae8gAAESAu0CvAHtAjgBiwES
- ARoBEwE4Au0BEgHvArwC8gG8ApoBuwHvARsB9wGaArwB7yAAARIC7QISAe0COAFuAZMBGgEcATgC7QES
- Ae8CvALvAbwCmgEHAbwB8wHwAZoCvAHvIAABEgLtArwB7QQ4AhcBOALtARIB7wK8AvIBvASgApQBoAK8
- Ae8gAAESAu0CEgHtBTgBlAE4Au0BEgHvArwC7wG8BaABvQGgArwB7yAAARIC7QK8Ae0B+wHTAfsB0wP7
- Au0BEgHvArwC8gG8AaAB3AGgAdwDoAK8Ae8gAAESAu0CDwHtAfsB0wH7A9MB+wLtARIB7wK8AuwBvAGg
- AdwBoAPcAaACvAHvIAABEgK8AhIBvAf7ArwBEgHvAvIC7wHyB6AC8gHvIAADEgIPARIHMAMSA+8C7AHv
- B5kD74EADhICAA7vAgAOtAIADrwCAAESAe0CvAntARICAAHvAbwC8gm8Ae8CAAG0DAkBtAIAAbwM8gG8
- AgABEgHtAhIJ7QESAgAB7wG8Au8JvAHvAgABtAwJAbQCAAG8DPIBvAEAARIC7QK8Au0BEgftARIB7wK8
- AvICvAHvB7wB7wEAAbQMCQG0AgABvAzyAbwBAAESAu0CEgrtARIB7wK8Au8KvAHvAbQOCQG0AbwO8gG8
- ARIC7QK8Ae0HbQLtARIB7wK8AvIBvAfvArwB7wG0DgkBtAG8DvIBvAESAu0CEgHtB20C7QESAe8CvALv
- AbwH7wK8Ae8BtA4JAbQBvA7yAbwBEgLtArwB7QdtAu0BEgHvArwC8gG8B+8CvAHvAbQOCQG0AbwO8gG8
- ARIC7QISAe0HbQLtARIB7wK8Au8BvAfvArwB7wG0DgkBtAG8DvIBvAESAu0CvAHtB20C7QESAe8CvALy
- AbwH7wK8Ae8HtAgJAbQHvAjyAbwBEgLtAhIB7QdtAu0BEgHvArwC7wG8B+8CvAHvAQAFrgq0AQAFBwq8
- ARIC7QK8Ae0HbQLtARIB7wK8AvIBvAfvArwB7wEADq4CAA4HAQABEgLtAg8B7QdtAu0BEgHvArwC7AG8
- B+8CvAHvAgAFrgsABQcJAAESArwCEgG8B20CvAESAe8C8gLvAfIH7wLyAe8gAAMSAg8BEgcPAxID7wLs
- Ae8H7APvAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAT/BAABgAEBAYABAQQA
- AYABAQGAAQEEAAGAAQEBgAEBZAAM/wGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGA
- AQEBgAEBAYABAQQAAYABAQGAAQE0AAGAAQABgAUAAYABAQGAAQEEAAHBAf8BwQH/BAAE/wQACw==
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AZgAOKwIA
+ DpkiAAErDDIBKwIAAZkMmgGZAgAOSAIADpgCAAErDDIBKwIAAZkMmgGZAgABSAxUAUgCAA6YAgABKwIy
+ ASsHmgIyASsCAAGZApoBmQfDApoBmQEAAkgMVAJIEJgBAAErAjIHKwGaAjIBKwIAAZkCmgeZAcMCmgGZ
+ AQABSA5UAUgQmAEAASsMMgErAgABmQyaAZkBAAFIAVQH8AEzBPABVAFIApgH8wGYBPMCmAEAASsFMgKa
+ BTIBKwIAAZkFmgLDBZoBmQEAAUgBVAczAfABMwPwAVQBSAmYAfMBmAPzApgBAAErBDIBmgIyAZoEMgEr
+ AgABmQSaAcMCmgHDBJoBmQEAAUgBVAnwATMB8AEzAVQBSAKYCfMBmAHzA5gBAAErAzIBKwEyAv8BMgEr
+ AzIBKwIAAZkDmgGZAZoC/wGaAZkDmgGZAQABSAFUAjMI8AEzAfABVAFIBJgI8wGYAfMCmAEAASsDMgEr
+ BDIBKwMyASsCAAGZA5oBmQSaAZkDmgGZAQABSA5UAUgQmAEAASsBMgErATIBKwEyAg8BMgErATIBKwEy
+ ASsCAAGZAZoBmQGaAZkBmgLsAZoBmQGaAZkBmgGZAQABSA48AUgBmA6eAZgBAAErAzIBKwEyAg8BMgEr
+ AzIBKwIAAZkDmgGZAZoC7AGaAZkDmgGZAgAOSAIADpgCAAErATIDmgQyA5oBMgErAgABmQGaA8MEmgPD
+ AZoBmSIAASsBmgMrBJoDKwGaASsCAAGZAcMDmQTDA5kBwwGZIgACKwMABCsDAAIrAgACmQMABJkDAAKZ
+ AgAB9AG8Cu8BvAHzAgAB9AHyCrwB8QH0IgAB8QEHCrwBBwHxAgAB8gzwAfICAA4SAgAO7wIAAfIBvAQH
+ ArwFBwHyAgAB8wzwAfMCAAESAe0CvAntARICAAHvAbwC8gm8Ae8CAAHyAgcDvAL3A7wCBwHxAgAB8wTw
+ AfECBwHxBPAB8wIAARIB7QISCe0BEgIAAe8BvALvCbwB7wIAAfIDBwHtAfcC7AH3Ae0BBwG8AQcB8QIA
+ AfMD8AIHAu8CBwPwAfMBAAESAu0CvALtARIH7QESAe8CvALyArwB7we8Ae8BAAHyAgcBvAHsAesC7AHr
+ AewCvAEHAfECAAHzAvAB8QHvAfcC7wH3Ae8D8AHzAQABEgLtAhIK7QESAe8CvALvCrwB7wEAAfICBwHv
+ Ae0B7AIHAuwB9wIHAfECAAHzAvABvAEHAe8C8AEHAe8BvALwAfMBAAESAu0CvAHtB20C7QESAe8CvALy
+ AbwH7wK8Ae8BAAHyAQcBvALsAZIC8QH3AewB6wIHAfECAAHzAvAC7wEHAvIBBwHvAfcC8AHzAQABEgLt
+ AhIB7QdtAu0BEgHvArwC7wG8B+8CvAHvAQAB8gMHAe0B7AL3AewB7QMHAfECAAHzA/ABBwHvArwB7wEH
+ A/AB8wEAARIC7QK8Ae0HbQLtARIB7wK8AvIBvAfvArwB7wEAAfICBwG8BuwBBwG8AQcB8QIAAfMD8Abv
+ A/AB8wEAARIC7QISAe0HbQLtARIB7wK8Au8BvAfvArwB7wEAAfICBwG8AfcBBwLsAQcB9wO8AfICAAHz
+ A/ACvALvArwD8AHzAQABEgLtArwB7QdtAu0BEgHvArwC8gG8B+8CvAHvAQAB8gMHArwC7wG8AQcC9wG8
+ AfMCAAHzBPAB8QK8AfEB8AK8AfAB9AEAARIC7QISAe0HbQLtARIB7wK8Au8BvAfvArwB7wEAAfIFBwK8
+ AQcB9wHtAQcEAAHzCPACBwG8AwABEgLtArwB7QdtAu0BEgHvArwC8gG8B+8CvAHvAQAB8ggHAfcBBwUA
+ AfMI8AEHAbwEAAESAu0CDwHtB20C7QESAe8CvALsAbwH7wK8Ae8BAAHzAbwIBwYAAfQB8QfwAbwFAAES
+ ArwCEgG8B20CvAESAe8C8gLvAfIH7wLyAe8BAAH/AfQB8QXyAfEB9AYAAf8B9AHyBfMB8gH/BQADEgIP
+ ARIHDwMSA+8C7AHvB+wD72EADhICAA7vAgAOtAIADrwCAAESAe0CvAntARICAAHvAbwC8gm8Ae8CAAG0
+ DAkBtAIAAbwM8gG8AgABEgHtAhIJ7QESAgAB7wG8Au8JvAHvAgABtAwJAbQCAAG8DPIBvAEAARIC7QK8
+ Au0BEgftARIB7wK8AvICvAHvB7wB7wEAAbQMCQG0AgABvAzyAbwBAAESAu0CEgrtARIB7wK8Au8KvAHv
+ AbQOCQG0AbwO8gG8ARIC7QK8Ae0HMgLtARIB7wK8AvIBvAeaArwB7wG0DgkBtAG8DvIBvAESAu0CEgHt
+ AjIChgGLAjIC7QESAe8CvALvAbwCmgO1ApoCvAHvAbQOCQG0AbwO8gG8ARIC7QK8Ae0COAGLARIBGgET
+ ATgC7QESAe8CvALyAbwCmgG7Ae8BGwH3AZoCvAHvAbQOCQG0AbwO8gG8ARIC7QISAe0COAFuAZMBGgEc
+ ATgC7QESAe8CvALvAbwCmgEHAbwB8wHwAZoCvAHvAbQOCQG0AbwO8gG8ARIC7QK8Ae0EOAIXATgC7QES
+ Ae8CvALyAbwEoAKUAaACvAHvB7QICQG0B7wI8gG8ARIC7QISAe0FOAGUATgC7QESAe8CvALvAbwFoAG9
+ AaACvAHvAQAFrgq0AQAFBwq8ARIC7QK8Ae0B+wHTAfsB0wP7Au0BEgHvArwC8gG8AaAB3AGgAdwDoAK8
+ Ae8BAA6uAgAOBwEAARIC7QIPAe0B+wHTAfsD0wH7Au0BEgHvArwC7AG8AaAB3AGgA9wBoAK8Ae8CAAWu
+ CwAFBwkAARICvAISAbwH+wK8ARIB7wLyAu8B8gegAvIB7yAAAxICDwESBzADEgPvAuwB7weZA+8BQgFN
+ AT4HAAE+AwABKAMAAUADAAFAAwABAQEAAQEGAAECFgAD/4EADP8BgAEBAYABAQT/AYABAQGAAQEBgAEB
+ AYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBBAABgAEBAYABAQQA
+ AYABAQGAAQEEAAGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBAYABAQGAAQEBgAEB
+ AYABAQT/AYABAQGAAQEE/wGcATkBnAE5AYABAQGAAQEE/wGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGA
+ AQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEBBAABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEB
+ BAABgAEBAYABAQQAAYABAQGAAQEEAAGAAQEBgAEBBAABgAEBAYABAQQAAYABBwGAAQcEAAGAAQ8BgAEP
+ BAABgAEfAYABHwQAAYABHwGAAR8EAAz/AYABAQGAAQEBgAEBAYABAQGAAQEBgAEBAYABAQGAAQEBgAEB
+ AYABAQGAAQEBgAEBBAABgAEBAYABATQAAYABAAGABQABgAEBAYABAQQAAcEB/wHBAf8EAAT/BAAL
</value>
</data>
<data name="comboBoxPosition.Items" xml:space="preserve">
diff --git a/WorkerForm.cs b/WorkerForm.cs index e52d38f3..39faae39 100644 --- a/WorkerForm.cs +++ b/WorkerForm.cs @@ -886,6 +886,7 @@ namespace com.clusterrr.hakchi_gui var ext = Path.GetExtension(file).ToLower();
bool? needPatch = YesForAllPatches ? (bool?)true : null;
byte[] rawData = null;
+ string tmp = null;
if (ext == ".7z" || ext == ".zip" || ext == ".rar")
{
SevenZipExtractor.SetLibraryPath(Path.Combine(baseDirectory, IntPtr.Size == 8 ? @"tools\7z64.dll" : @"tools\7z.dll"));
@@ -896,11 +897,11 @@ namespace com.clusterrr.hakchi_gui foreach (var f in szExtractor.ArchiveFileNames)
{
var e = Path.GetExtension(f).ToLower();
- if (e == ".nes" || e == ".fds" || e == ".unf" || e == ".unif")
+ if (e == ".nes" || e == ".fds" || e == ".unf" || e == ".unif" || e == ".desktop")
nesFilesInArchive.Add(f);
filesInArchive.Add(f);
}
- if (nesFilesInArchive.Count == 1) // Only one NES file
+ if (nesFilesInArchive.Count == 1) // Only one NES file (or app)
{
fileName = nesFilesInArchive[0];
}
@@ -921,17 +922,29 @@ namespace com.clusterrr.hakchi_gui else continue;
}
var o = new MemoryStream();
- szExtractor.ExtractFile(fileName, o);
- rawData = new byte[o.Length];
- o.Seek(0, SeekOrigin.Begin);
- o.Read(rawData, 0, (int)o.Length);
+ if (Path.GetExtension(fileName).ToLower() == ".desktop" // App in archive, need the whole directory
+ || szExtractor.ArchiveFileNames.Contains(Path.GetFileNameWithoutExtension(fileName)+".jpg") // Or it has cover in archive
+ || szExtractor.ArchiveFileNames.Contains(Path.GetFileNameWithoutExtension(fileName) + ".png"))
+ {
+ tmp = Path.Combine(Path.GetTempPath(), fileName);
+ Directory.CreateDirectory(tmp);
+ szExtractor.ExtractArchive(tmp);
+ fileName = Path.Combine(tmp, fileName);
+ }
+ else
+ {
+ szExtractor.ExtractFile(fileName, o);
+ rawData = new byte[o.Length];
+ o.Seek(0, SeekOrigin.Begin);
+ o.Read(rawData, 0, (int)o.Length);
+ }
}
}
if (Path.GetExtension(fileName).ToLower() == ".nes")
{
try
{
- app = NesGame.Import(fileName, YesForAllUnsupportedMappers ? (bool?)true : null, ref needPatch, needPatchCallback, this, rawData);
+ app = NesGame.ImportNes(fileName, YesForAllUnsupportedMappers ? (bool?)true : null, ref needPatch, needPatchCallback, this, rawData);
// Trying to import Game Genie codes
var lGameGeniePath = Path.Combine(Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName) + ".xml");
@@ -955,7 +968,7 @@ namespace com.clusterrr.hakchi_gui MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, true);
while (r == DialogResult.None) Thread.Sleep(100);
if (r == DialogResult.Yes || r == DialogResult.Abort || r == DialogResult.Retry)
- app = NesGame.Import(fileName, true, ref needPatch, needPatchCallback, this, rawData);
+ app = NesGame.ImportNes(fileName, true, ref needPatch, needPatchCallback, this, rawData);
if (r == DialogResult.Abort)
YesForAllUnsupportedMappers = true;
}
@@ -966,6 +979,7 @@ namespace com.clusterrr.hakchi_gui {
app = NesMiniApplication.Import(fileName, rawData);
}
+ if (!string.IsNullOrEmpty(tmp) && Directory.Exists(tmp)) Directory.Delete(tmp, true);
ConfigIni.SelectedGames += ";" + app.Code;
}
catch (Exception ex)
diff --git a/hakchi_gui.csproj b/hakchi_gui.csproj index 43466c63..a9af9153 100644 --- a/hakchi_gui.csproj +++ b/hakchi_gui.csproj @@ -138,12 +138,12 @@ <Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
- <Compile Include="FdsGame.cs" />
+ <Compile Include="Apps\FdsGame.cs" />
<Compile Include="NesMenuCollection.cs" />
<Compile Include="NesMenuFolder.cs" />
<Compile Include="NesFile.cs" />
- <Compile Include="NesGame.cs" />
- <Compile Include="NesMiniApplication.cs" />
+ <Compile Include="Apps\NesGame.cs" />
+ <Compile Include="Apps\NesMiniApplication.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.ru-RU.Designer.cs">
@@ -606,6 +606,16 @@ <Content Include="folder_images\folder_z.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
+ <Content Include="images\app_sm.png" />
+ <Content Include="images\app_sm_tr.png" />
+ <Content Include="images\blank_app.png" />
+ <Content Include="images\nes_sm_tr.png" />
+ <Content Include="images\famicom_sm.png" />
+ <Content Include="images\famicom_sm_tr.png" />
+ <Content Include="images\fds_sm.png" />
+ <Content Include="images\fds_sm_tr.png" />
+ <Content Include="images\folder_sm_tr.png" />
+ <Content Include="images\original_sm_tr.png" />
<Content Include="user_mods\music_hack.hmod\music.wav">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
@@ -622,7 +632,7 @@ </Content>
<Content Include="images\blank_fds.png" />
<Content Include="images\blank_jp.png" />
- <Content Include="images\blank_sm.png" />
+ <Content Include="images\nes_sm.png" />
<Content Include="images\folder_sm.png" />
<Content Include="images\gamepad.png" />
<Content Include="images\original_sm.png" />
diff --git a/images/app_sm.png b/images/app_sm.png Binary files differnew file mode 100644 index 00000000..52878f0c --- /dev/null +++ b/images/app_sm.png diff --git a/images/app_sm_tr.png b/images/app_sm_tr.png Binary files differnew file mode 100644 index 00000000..475753e9 --- /dev/null +++ b/images/app_sm_tr.png diff --git a/images/blank_app.png b/images/blank_app.png Binary files differnew file mode 100644 index 00000000..0f55e2a1 --- /dev/null +++ b/images/blank_app.png diff --git a/images/famicom_sm.png b/images/famicom_sm.png Binary files differnew file mode 100644 index 00000000..2cc4c321 --- /dev/null +++ b/images/famicom_sm.png diff --git a/images/famicom_sm_tr.png b/images/famicom_sm_tr.png Binary files differnew file mode 100644 index 00000000..7913d555 --- /dev/null +++ b/images/famicom_sm_tr.png diff --git a/images/fds_sm.png b/images/fds_sm.png Binary files differnew file mode 100644 index 00000000..cd6559ff --- /dev/null +++ b/images/fds_sm.png diff --git a/images/fds_sm_tr.png b/images/fds_sm_tr.png Binary files differnew file mode 100644 index 00000000..c2d638b0 --- /dev/null +++ b/images/fds_sm_tr.png diff --git a/images/blank_sm.png b/images/nes_sm.png Binary files differindex c2cf89df..c2cf89df 100644 --- a/images/blank_sm.png +++ b/images/nes_sm.png diff --git a/images/blank_sm_tr.png b/images/nes_sm_tr.png Binary files differindex d2706c8b..d2706c8b 100644 --- a/images/blank_sm_tr.png +++ b/images/nes_sm_tr.png |