-
Notifications
You must be signed in to change notification settings - Fork 0
Developer notes
TaskManager.cs
- @58
TaskManager.Pulseintroduces some logic on the order ofIManagers execution.
FiniteStateMachine/.
- Introduces some kind of
FSMbehavior. BTWStatedoes not represent classic machine state. Classic states defined implicitly byState.NeedToRunand internal logic ofState.Runmethod.State.Runcalled in a loop each time executing different branches as predicates are changing. EachStatedescendant looks like a wholeFSM,Enginelike a collection ofFSMs.
IMOEngine/Stateshould be reimplemented with coroutines because it will: - reduce extension overhead, it is difficult to formulate correct set of
State.NeedToRunpredicates - remove unconditional
State.NeedToRunevaluation on each Pulse
WoW/WowLockToken.cs
- Looks like the only application of
WowLockToken.LockObjectis to ensure exclusive access toconfig.wtf, other uses looks confusing/haze. - Using
Launcher.exeis the odd way to makeasyncwow process start.
HBRelogManager.cs, HBRelogHelper.cs, Remoting/
- In order to add control over HB client directly from HBRelog, I need to change remoting protocol from simplex to duplex.
It was possible to start wow via cmd/bat script. The reason for that obviously is to provide the user ability to do things before/after wow is started. I will remove this option and replace it with equal functionality by providing different kind of hooks which will execute specific command per event. Examples of such events can be wow process is started, character logged in, character logged out etc.
Wow process is a resource which should be reused if possible. Resource pool had an initial state when there's no wow processes in the system. So Resource manager creates one per request. Resource manager count references and as soon count is 0 it is became free and is returned into the pool of free wow processes.