Commit Graph

8 Commits

Author SHA1 Message Date
3b9bf011e1 fix: replace PartyList with status check 2020-08-08 22:15:04 -04:00
d2ab96fcf9 refactor: use stopwatch elapsed time 2020-08-08 18:29:32 -04:00
e9a2fb11a8 feat: use a thread to scan for targeters
Also make the poll interval configurable.

For the case of one targeter, the UI scans through the ActorTable to
find the relevant Actor, achieving either a partial or full scan. In
the case of more than one targeter, the UI constructs a Dictionary
mapping ActorId to Actor, then indexes that dictionary for each
targeter. This achieves one full scan, which may or may not be more
efficient than multiple partial scans, depending on where the actors
are located in the table.

The UI must do this because current targeters are no longer guaranteed
to be spawned anymore, especially with a high polling frequency, and
the UI needs accurate information about the targeters' address in
memory.
2020-08-08 16:59:06 -04:00
f5378f5c9d fix: clear history when logging out 2020-08-08 06:21:57 -04:00
6beca446fc fix: lock on history when modifying it 2020-08-08 06:21:44 -04:00
9f44f7b3a9 refactor: make mutexes private 2020-08-08 06:21:35 -04:00
cc9b66c216 feat: add options for behaviour when closed 2020-08-08 06:05:23 -04:00
1c31f19b89 refactor: pull targeting code out of ui
This has some consequences. First, LocalPlayer is no longer necessary
for rendering the UI, meaning the UI stays open even during loading
screens and other situations where there is no player.

Secondly, the sound effect will play even when the window is closed.

Thirdly, the history will update even when the window is closed.

The last two points will become config options in future.

I would also like to make TargetWatcher run in a task and run perhaps
every 100ms instead of every framework update.
2020-08-08 05:20:48 -04:00