Skip to content
This repository was archived by the owner on Jul 9, 2024. It is now read-only.

Commit 0dc5c3c

Browse files
committed
Reduced CPU usage by disabling memory scan for nearby mobs when not in a hunt zone.
1 parent 3e94f9c commit 0dc5c3c

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

untitled-ffxiv-hunt-tracker/Enums.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace untitled_ffxiv_hunt_tracker
22
{
3-
//I don't need these enums anymore. sharlayan.utilities.getzoneinfo
3+
//I don't need these enums anymore. sharlayan.utilities.getzoneinfo idk
44

55
public enum HuntRank
66
{
@@ -13,7 +13,6 @@ public enum HuntRank
1313

1414
public enum MapID
1515
{
16-
//https://stackoverflow.com/questions/5582228/insert-space-before-capital-letters
1716
//assign map values here.
1817
//ARR
1918
MiddleLaNoscea = 134,

untitled-ffxiv-hunt-tracker/Memory/MemoryReader.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public bool Setup()
5757
Console.WriteLine(processModel.ProcessID);
5858

5959
//wait a mo' for things to load
60-
Thread.Sleep(2000);
60+
Thread.Sleep(1000);
6161

6262
return true;
6363
}

untitled-ffxiv-hunt-tracker/ViewModels/Session.cs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class Session
4444
public Player CurrentPlayer { get; set; }
4545

4646

47+
4748
public Session(MemoryReader memoryReader, SpeechSynthesizer tts, int refreshRate)
4849
{
4950
_memoryReader = memoryReader;
@@ -103,20 +104,31 @@ public void Start(CancellationTokenSource ct)
103104
{
104105
break;
105106
}
107+
106108
//Trace.WriteLine($"1inside loop can get process? {_memoryReader.CanGetProcess} has exited? {_memoryReader.ProcessHasExited}");
107109
//this is really messy but it works. so...
108110
if (!_memoryReader.CanGetProcess || _memoryReader.ProcessHasExited)
109111
{
110-
Trace.WriteLine($"1inside loop can get process? {_memoryReader.CanGetProcess} has exited? {_memoryReader.ProcessHasExited}");
112+
Trace.WriteLine(
113+
$"1inside loop can get process? {_memoryReader.CanGetProcess} has exited? {_memoryReader.ProcessHasExited}");
111114
Thread.Sleep(2000);
112115
SetUpMemReader();
113116
}
114117

115118
GetUser();
119+
120+
//if not in a valid hunt map, only refresh every 250ms. Skip searching for mobs.
121+
if (!Enum.IsDefined(typeof(MapID), (int) CurrentPlayer.MapTerritory))
122+
{
123+
Thread.Sleep(250);
124+
continue;
125+
}
126+
116127
SearchNearbyMobs();
117128

118129
//1000/144 = 6.94 - so this should refresh a bit more than 144 times per sec, so animation should be 144+fps, right? seems legit. def smoother. cpu usage low.
119130
Thread.Sleep(_refreshRate);
131+
120132
}
121133
}
122134

@@ -261,14 +273,14 @@ public void SearchNearbyMobs()
261273
var mob = CurrentNearbyMobs.FirstOrDefault(m => m.Name.ToLower() == tMob.Name.ToLower());
262274

263275
//if (mob.Coordinates.X != tMob.Coordinates.X || mob.Coordinates.Y != tMob.Coordinates.Y)
264-
265-
mob.Coordinates = tMob.Coordinates;
266-
276+
277+
mob.Coordinates = tMob.Coordinates;
278+
267279

268280
//if (mob.HPPercent != tMob.HPPercent)
269-
270-
mob.HPPercent = tMob.HPPercent;
271-
281+
282+
mob.HPPercent = tMob.HPPercent;
283+
272284
}
273285
}
274286

0 commit comments

Comments
 (0)