as always, thank you alyza. double checking is always a good thing.
i want to take the time to explain some stuff about the new UI and what will change due to better handling and managing files and mods.
1. Settings
The Settings consist of two classes, ClientSettings and GameSettings. If you start the application for the first time, folders and default settings are being generated and placed in the folderstructure of 7th.
ClientSettings will set the configuration of 7th Heaven and GameSettings will configurate the video and audio settings for the game itself (take a look at aali's driver).
The planned folderstructure as of now is like:
7th Root
- Config
--Settings
---ClientSettings.xml
---GameSettings.xml
-Subscriptions
--Subscription_X.xml (x is an integer)
-Library
--Mod files (*.iro)
-Log
--yyyy-mm-dd.txt
The idea of having everything you need to know /change for 7th is in one place, is more userfriendly imo.
What will change in the ClientSettings?
Just two things:
- The default settings will set the library path to 7th root/Library/
- The subscriptions box just needs the ID of the pastbin catalog. I access them via an api and save the content to the xml.
No change for the GameSettings.
2.Logging
As far as i remember, the current 7th has no real adequate logging feature. It is important to trace errors in a more userfriendly way, so everyone can help each other in the forums better.
Every action will be logged and saved in the Log folder. Additionally, all tasks that have been done, will be logged in the Log-Tab / -Window. You can check it via the screen if a task was successfully or created an error. If you see it for yourself, you get the hang of it. Hope you know what i mean.
3.Online Library
First of all, there are changes.
The current class looks like this:
[Serializable]
public class Mod
{
public string ID { get; set; }
public string Author { get; set; }
[XmlIgnore]
public Uri ForumThread { get; set; }
[XmlElement("ForumThread")]
public string ForumThreadString
{
get { return ForumThread?.ToString(); }
set { ForumThread = new Uri(value); }
}
public LatestVersion LatestVersion { get; set; }
public int MetaVersion { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<string> Tags { get; set; }
[XmlIgnore]
public Uri Patch { get; set; }
[XmlElement("Patch")]
public string PatchString
{
get { return Patch?.ToString(); }
set { Patch = new Uri(value); }
}
[Serializable]
public class LatestVersion
{
public string Version { get; set; }
[XmlIgnore]
public Uri Mega { get; set; }
[XmlElement("Mega")]
public string MegaString
{
get { return Mega?.ToString(); }
set { Mega = new Uri(value); }
}
[XmlIgnore]
public Uri Google { get; set; }
[XmlElement("Google")]
public string GoogleString
{
get { return Google?.ToString(); }
set { Google = new Uri(value); }
}
[XmlIgnore]
public Uri Patch { get; set; }
[XmlElement("Patch")]
public string PatchString
{
get { return Patch?.ToString(); }
set { Patch = new Uri(value); }
}
public string ExtractSubFolder { get; set; }
public string ExtractInfo { get; set; }
public DateTime ReleaseDate { get; set; }
public string CompatibleGameVersions { get; set; }
[XmlIgnore]
public Uri Image { get; set; }
[XmlElement("Image")]
public string ImageString
{
get { return Image?.ToString(); }
set { Image = new Uri(value); }
}
public string ReleaseNotes { get; set; }
public int DownloadSize { get; set; }
In that case, the library has to be altered. I did that and the result is working really good. I havent the time to make more of it right now, so i just put it to the DataGrid...
As i already mentioned at another thread, i would like to add an additional field for Auto-Order. Thats for something later.
Thats how far the progress is.
When i can handle the online library, downloading stuff, activating and deactivating mods, i need the help of iro, because i cannot do the "inject mod etc." stuff.
All is still WIP.
ps: if you are interested about the new catalog, check:
http://pastebin.com/raw/Ra9wUPabThank you for your attention.
@Iro (the last post)
Maybe, but not necessarily. The core part, the injection, is the most important part and it is already working. There might be the case that some stuff has to be rewritten for wpf than it was working in the winform-application. I mentioned earlier that i would put your core functionality to a library which can be accessed by the ui (which it is already doing, for other stuff). would that be alright with you? I am not at this point yet, but it might be in the future.