Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
db2fa1e
Added the ability to launch renamed WoW.exe
highvoltz Oct 8, 2015
7ac5f76
* Fixed issue with starting renamed WoW process
highvoltz Oct 9, 2015
1138968
* Launcher exit codes greater than 0 is now assumed to be the game pr…
highvoltz Oct 28, 2015
c9e8cb4
* Added an option to disable encrypting sensitive settings
highvoltz Nov 4, 2015
2013fcb
* Fixed a design-time error for MainWindow
highvoltz Dec 19, 2015
9ba875d
Updated HBRelog to work with WoW 6.2.4
highvoltz Mar 23, 2016
7b96e83
Fixed realm selection
highvoltz Mar 23, 2016
cba2016
Add gitignore and mark solution as no longer SVN managed
aevitas Apr 20, 2016
4ffcfaa
Ensure Honorbuddy path is set when updating bot state
aevitas Apr 20, 2016
f366d02
Break execution if HB path isn't specified
aevitas Apr 20, 2016
f22cb30
Merge pull request #13 from aevitas/patch-1
highvoltz Apr 26, 2016
a62ab82
* Fixed Authenticator
highvoltz Apr 26, 2016
7a7260d
Merge branch 'master' of https://github.com/highvoltz/HBRelog.git
highvoltz Apr 26, 2016
c1b6b2d
Updated offsets to WoW Legion
highvoltz Jul 25, 2016
02d204e
* Fixed account selection
highvoltz Jul 27, 2016
13437d8
* Fixed issue browser windows being opened.
Aug 9, 2016
7d0b56f
* HBRelogHelper.cs now loads the System.ServiceModel assembly - fixes…
Sep 2, 2016
9aa004f
bumped version
Sep 2, 2016
dfe58f1
* Removed AutoStart from GlobalSettings since it doesn't belong in there
Sep 2, 2016
b87c89a
Bug fixes
Sep 2, 2016
cc07dde
* Fixed issue that caused mouse to click at wrong position
Sep 3, 2016
c934f08
* Fixed issue that caused mouse to be clicked at wrong position
Sep 3, 2016
f9f9de3
* Removed option to minimized HB on startup - HB now handles this
Sep 23, 2016
e248306
Updated to WoW 7.1
Oct 26, 2016
fc60a85
* Updated the LoadingScreenEnableCount offset pattern
Nov 4, 2016
d148c24
Incremented the version
Nov 4, 2016
0f4284d
updated README.md
highvoltz Nov 17, 2016
8b60cf5
* Input is now only blocked when HBRelog is ready to do a mouse click…
Feb 7, 2017
1cd69c2
Merge branch 'master' of https://github.com/highvoltz/HBRelog
Feb 7, 2017
c325d5e
HBRelog no supports WoW 7.2
Apr 2, 2017
ef99f69
HBPlugin is no longer compiled from within solution, so that the HB d…
Apr 2, 2017
c70587a
Removed some leftover code
Apr 3, 2017
e810ea7
Fixed some incorrect offsets
Apr 4, 2017
3f250c7
Increased version to 1.1.15
Apr 4, 2017
9394c2e
Fixed a bug that caused a profile to be paused because WoW was shown …
Apr 6, 2017
a557be7
# Fixes
Apr 11, 2017
ca8d59d
* Fixed bug that caused HBRelog to idle after starting WoW
Apr 13, 2017
15f81c9
HBRelog 1.1.18
Sep 1, 2017
12625b1
Update for WoW 7.3
Oct 3, 2017
08ed360
HBRelog can now log into different regions
Oct 3, 2017
37be815
Added support for launching the new HB
Oct 4, 2017
c667caa
Bumped version up to 1.1.19
Oct 4, 2017
0905507
Fixed account selection issue
Oct 4, 2017
52d44f7
Updated PostBUild.build
Oct 4, 2017
adb8585
Updated PostBUild.build
Oct 4, 2017
7ae31b8
Temp. removed ziplevel from PostBuild ant script
Oct 4, 2017
faacd4b
Fixed PostBuild.build
Oct 4, 2017
2055ef0
Added Ziplevel to PostBuild.build
Oct 4, 2017
60853c8
Added Ziplevel to PostBuild.build
Oct 4, 2017
58711d9
Fixes and Change:
Oct 9, 2017
b317ffb
WoW is now restarted if unable to switch realm at character selection…
Oct 9, 2017
0978f91
Fixes and Change:
Oct 9, 2017
a691eee
Removed the HBRelogHelperSettings class because it's no longer used
Oct 9, 2017
ec9ad3f
Merge branch 'master' into master
highvoltz Oct 9, 2017
ecf66a6
HBRelog fixes (#44)
highvoltz Oct 9, 2017
3804305
Merge branch 'master' of https://github.com/highvoltz/HBRelog
Oct 10, 2017
ba30103
Added gold tooltip and fixed WoW disconnection detection issue (#47)
highvoltz Oct 10, 2017
9336f51
Merge branch 'master' of https://github.com/highvoltz/HBRelog
Oct 10, 2017
81bcde2
Increased the time WoW can be shown as a dialog before it's believed …
Oct 10, 2017
c599a65
* HBRelog no longer closes WoW because of disconnection or logged out
Oct 11, 2017
b988e86
SkipCurrentTask will now only skip if profile is running and not paused.
Oct 11, 2017
9e7bc91
Added a delay before pressing the 'Change Realm' button to avoid the …
Oct 11, 2017
d06327f
The WoW dialog display timer has been reverted back to 10 seconds bec…
Oct 11, 2017
c5d5a8e
Added a 'MinRequiredVersion.txt' file that HBRelog will read on start…
Oct 15, 2017
222bd45
Update MinRequiredVersion.txt
highvoltz Oct 15, 2017
4d57e8c
Update MinRequiredVersion.txt
highvoltz Oct 15, 2017
c89158b
Update MinRequiredVersion.txt
highvoltz Oct 15, 2017
db12af6
Update MinRequiredVersion.txt
highvoltz Oct 15, 2017
281e522
Update MinRequiredVersion.txt
highvoltz Oct 15, 2017
616ea99
Minimum version check, and 'Resize' and 'Grab' button fix (#54)
highvoltz Oct 16, 2017
edc4727
Update MinRequiredVersion.txt
highvoltz Oct 16, 2017
82cc8a5
Clean up configs
jakobbotsch Oct 22, 2017
a6d414b
Enter debug mode once and for all
jakobbotsch Oct 22, 2017
ed38755
Update MinRequiredVersion.txt
highvoltz Oct 22, 2017
8e0d1f7
Work (#56)
highvoltz Oct 23, 2017
9d5270f
Security improvements and multi-instance fixes (#57)
highvoltz Oct 24, 2017
c922d55
Added the PsExec.exe tool and adjusted the .gitignore file (#58)
highvoltz Oct 24, 2017
d156a9b
Fixed PostBuild.build (#59)
highvoltz Oct 24, 2017
ac8f162
Fixed 'CopyTools' basedir in PostBuild.build (#60)
highvoltz Oct 24, 2017
d1fa997
Fixed PostBuild.build (#61)
highvoltz Oct 24, 2017
bfed86b
Fixed PostBuild.build for real this time (#62)
highvoltz Oct 24, 2017
1141bf4
Zone restriction fix (#63)
highvoltz Oct 24, 2017
eff1ecc
User setings fix (#64)
highvoltz Oct 30, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
239 changes: 239 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.db
*.VC.db
*.VC.VC.opendb

# Executables
*.dll
[Dd]ependencies/*

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/

# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# DNX
project.lock.json
artifacts/

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config

# Windows Azure Build Output
csx/
*.build.csdef

# Windows Azure Emulator
ecf/
rcf/

# Windows Store app package directory
AppPackages/
BundleArtifacts/

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/

# Others
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe

# FAKE - F# Make
.fake/
2 changes: 1 addition & 1 deletion App.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
98 changes: 93 additions & 5 deletions CharacterProfile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ limitations under the License.
using System.Windows.Media;
using HighVoltz.HBRelog.Tasks;
using HighVoltz.HBRelog.Settings;
using System.Xml.Linq;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Xml.Serialization;
using System.Globalization;
using System.Diagnostics;

namespace HighVoltz.HBRelog
{
Expand Down Expand Up @@ -142,7 +150,11 @@ public void Stop()
private string _lastLog;
public void Log(string format, params object[] args)
{
var msg = string.Format(format, args);
Log(string.Format(format, args));
}

public void Log(string msg)
{
if (msg == _lastLog)
return;
_lastLog = msg;
Expand All @@ -154,9 +166,14 @@ public void Log(string format, params object[] args)
}

public void Err(string format, params object[] args)
{
Err(string.Format(format, args));
}

public void Err(string msg)
{
HBRelog.Log.Write(HbRelogManager.Settings.UseDarkStyle ? Colors.LightBlue : Colors.DarkSlateBlue,
Settings.ProfileName + ": ", Colors.Red, format, args);
Settings.ProfileName + ": ", Colors.Red, msg);
}

public CharacterProfile ShadowCopy()
Expand All @@ -167,17 +184,88 @@ public CharacterProfile ShadowCopy()
{
cp.Tasks.Add(bmTask.ShadowCopy());
}
cp.Settings = Settings.ShadowCopy();
cp.Settings = (ProfileSettings)Settings.ShadowCopy();
return cp;
}

public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}

public void LoadFromXml(XElement element)
{
Settings.LoadFromXml(element.Element("Settings"));

// Tasks
XElement tasksElement = element.Element("Tasks");
foreach (XElement taskElement in tasksElement.Elements())
{
Type taskType = Type.GetType("HighVoltz.HBRelog.Tasks." + taskElement.Name);
if (taskType != null)
{
var task = (BMTask)Activator.CreateInstance(taskType);
task.SetProfile(this);
// Dictionary of property Names and the corresponding PropertyInfo
Dictionary<string, PropertyInfo> propertyDict =
task.GetType()
.GetProperties()
.Where(pi => pi.GetCustomAttributesData().All(cad => cad.Constructor.DeclaringType != typeof(XmlIgnoreAttribute)))
.ToDictionary(k => k.Name);

foreach (XAttribute attr in taskElement.Attributes())
{
string propKey = attr.Name.ToString();
if (propertyDict.ContainsKey(propKey))
{
// if property is an enum then use Enum.Parse.. otherwise use Convert.ChangeValue
object val = typeof(Enum).IsAssignableFrom(propertyDict[propKey].PropertyType)
? Enum.Parse(propertyDict[propKey].PropertyType, attr.Value)
: Convert.ChangeType(attr.Value, propertyDict[propKey].PropertyType, CultureInfo.InvariantCulture);
propertyDict[propKey].SetValue(task, val, null);
}
else
{
Err("{0} does not have a property called {1}", taskElement.Name, attr.Name);
}
}
Tasks.Add(task);
}
else
{
Err("{0} is not a known task type", taskElement.Name);
}
}
}

public XElement ConvertToXml()
{
var xml = new XElement("CharacterProfile");
var settingsElement = Settings.ConvertToXml();
xml.Add(settingsElement);

// Tasks
var tasksElement = new XElement("Tasks");
foreach (BMTask task in Tasks)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
var taskElement = new XElement(task.GetType().Name);
// get a list of propertyes that don't have [XmlIgnore] custom attribute attached.
List<PropertyInfo> propertyList =
task.GetType()
.GetProperties()
.Where(pi => pi.GetCustomAttributesData().All(cad => cad.Constructor.DeclaringType != typeof(XmlIgnoreAttribute)))
.ToList();
foreach (PropertyInfo property in propertyList)
{
var value = property.GetValue(task, null);
Debug.Assert(value != null, string.Format("value for {0} != null", property.Name));
taskElement.Add(new XAttribute(property.Name, value));
}
tasksElement.Add(taskElement);
}
xml.Add(tasksElement);
return xml;
}
}
}
Loading