ENVOY - a utility for command and control with order delay

Forum for subjects that are not covered in the dedicated forums
musurca
Posts: 13
Joined: Mon Jun 26, 2023 9:37 am
Location: Los Angeles
Contact:

ENVOY - a utility for command and control with order delay

Post by musurca »

Image

Hi everyone — I've created an open-source utility for the Napoleonic/Musket & Pike/Civil War Battles series that simulates command and control with order delay. It allows you to compose orders for subordinates, then pass them down the chain of command with realistic (and customizable) delay. You will be notified on the turn when the order is delivered.

As a solo/PBEM player, you can use this tool as a prompt for moving your units along constraints defined by the orders. You can also use it to umpire Kriegspiel-style wargames for multiple players, using the underlying WDS game to adjudicate combat.

Other features include:

* limited number of orders issued per leader, per turn
* random chance of message loss & delay
* interdiction of messages passing through enemy zones of control
* shortcuts for common orders and objectives, via the right-click context menu
* browsable history of all dispatches sent and received

Hope it's useful — and please let me know if there are other features you'd like to see.

Download it here (v1.12)

(you can check out the user manual to get more detail about how it works, or take a look at the source code on Github.)

VERSION HISTORY

v1.12 (01/02/2024)
  • fixed: crash bug when a message is delivered at application start
  • fixed: received messages tree losing messages at start
v1.11 (11/17/2023)
  • added: support for coalition armies in Thirty Years War
  • added: support for coalition armies in Great Northern War
  • added: support for coalition armies in The Renaissance
  • added: preset for 17th century warfare
  • fixed: support for coalition armies in Seven Years War
v1.1 (11/7/2023)
  • added: history of dispatches sent & received
  • added: custom sender & receiver
  • added: support for hotseat battles
  • added: digitally-signed executable via WDS
  • changed: user can set name of dispatch file
  • changed: dispatch file can be relinked to battle file if path is no longer valid
  • changed: main window resizable
  • fixed: chain of command for sender/recipient in different branches of hierarchy
  • fixed: allied armies now appear correctly in the OOB
  • fixed: parsing fixed for Windows regions using non-Western float notation
v1.04 (7/20/2023)
  • added: OOB color-coding to indicate presence of units
  • added: chance for additional delay to dispatches
  • added: can change player-controlled army if not detected correctly
  • fixed: various crashes related to OOB parsing in Civil War Battles
  • fixed: parts of OOBs not being displayed
v1.03 (6/28/2023)
  • fixed bug with parsing some OOBs
v1.02 (6/26/2023)
  • fixed bug with Civil War Battles scenarios
v1.01 (6/26/2023)
  • fixed bug with off-map message recipients in a message chain
  • fixed bug with enemy ZOC evaluation with off-map units
v1.0 (6/25/2023)
  • initial release
Last edited by musurca on Tue Jan 02, 2024 5:06 pm, edited 12 times in total.
User avatar
rahamy
Posts: 711
Joined: Sat Jun 18, 2022 1:43 pm

Re: ENVOY - a utility for command and control with order delay

Post by rahamy »

Interesting, will check it out in a bit.
Rich Hamilton
WDS Operations Manager
musurca
Posts: 13
Joined: Mon Jun 26, 2023 9:37 am
Location: Los Angeles
Contact:

Re: ENVOY - a utility for command and control with order delay

Post by musurca »

Cool, would be interested to hear what you think.

(And if you downloaded it earlier today, you may want to grab it again, as I just pushed a new version to fix a bug that I introduced at the last minute.)
Nhefob
Posts: 13
Joined: Wed Aug 17, 2022 7:45 pm

Re: ENVOY - a utility for command and control with order delay

Post by Nhefob »

Hello there

I get an error message during file loading, in French.

************* Texte de l'exception **************
System.FormatException: Le format de la chaîne d'entrée est incorrect.
à System.Number.ParseSingle(String value, NumberStyles options, NumberFormatInfo numfmt)
à WDS_Dispatches.ScenarioData.ReadScenarioMap(ScenarioReader map, Int32 x, Int32 y, Int32 w, Int32 h)
à WDS_Dispatches.ScenarioData.ReadMap(String basepath, String filename)
à WDS_Dispatches.ScenarioData.ReadScenario(String filename, String wdsPath, TreeView tvRecip, TreeView tvSender)
à WDS_Dispatches.ScenarioData.LoadScenario(String battlePath, TreeView tvRecip, TreeView tvSender)
à WDS_Dispatches.DispatchState.Deserialize(String filename, TreeView treeRecip, TreeView treeSender)
à WDS_Dispatches.MainWindow.loadToolStripMenuItem_Click(Object sender, EventArgs e)
à System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
à System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
à System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
à System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
à System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
à System.Windows.Forms.ToolStrip.WndProc(Message& m)
à System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)


Hope it helps
musurca
Posts: 13
Joined: Mon Jun 26, 2023 9:37 am
Location: Los Angeles
Contact:

Re: ENVOY - a utility for command and control with order delay

Post by musurca »

Thanks for the report. Which scenario for which game?

EDIT: Ah -- was it a Civil War Battles game? The map format is a little older in those. I've fixed it now. If you wouldn't mind, download the latest version and see if that works better for you.
Last edited by musurca on Wed Jun 28, 2023 7:19 pm, edited 1 time in total.
Nhefob
Posts: 13
Joined: Wed Aug 17, 2022 7:45 pm

Re: ENVOY - a utility for command and control with order delay

Post by Nhefob »

Same result with v1.02 on SYW getting Started scenario.
I am using a map mod (Ferraris one), can it a be the issue ?
musurca
Posts: 13
Joined: Mon Jun 26, 2023 9:37 am
Location: Los Angeles
Contact:

Re: ENVOY - a utility for command and control with order delay

Post by musurca »

Hmm -- I've tested with that scenario quite a bit and haven't had any issues.

1) Are you running the latest SYW update from WDS, which is v4.02? (in the SYW menubar, click Help -> About... to find out)
2) Playing with manual control of one side and AI control of the other?
3) Followed the instructions in the Tutorial section of the manual?

If yes to all 3, please send me the saved battle file if you can.
Nhefob
Posts: 13
Joined: Wed Aug 17, 2022 7:45 pm

Re: ENVOY - a utility for command and control with order delay

Post by Nhefob »

Yes to all 3.

I did send you a PM with a link to the save file.

Thank you

Regards
homet
Posts: 6
Joined: Sat Jul 09, 2022 12:03 pm

Re: ENVOY - a utility for command and control with order delay

Post by homet »

Hi. I just tried Envoy v1.02 with Bonapararte's Peninsula War v4.06 and got the following error message when trying to load the battle.bte file into Envoy.
Something similar happened with I tried Envoy with a battle from the Civil War game Campaign Ozarks.

Will PM you a question.

Thanks for your help. Envoy seems very interesting.


************** Exception Text **************
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at WDS_Dispatches.ScenarioData.PopulateArmies(TreeView tvRecip, TreeView tvSender)
at WDS_Dispatches.ScenarioData.ReadOOB(String filename, TreeView tvRecip, TreeView tvSender)
at WDS_Dispatches.ScenarioData.ReadScenario(String filename, String wdsPath, TreeView tvRecip, TreeView tvSender)
at WDS_Dispatches.ScenarioData.LoadScenario(String battlePath, TreeView tvRecip, TreeView tvSender)
at WDS_Dispatches.DispatchState.Deserialize(String filename, TreeView treeRecip, TreeView treeSender)
at WDS_Dispatches.MainWindow.loadToolStripMenuItem_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9166.0 built by: NET481REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Envoy
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/WDS/Envoy.v1.02/Envoy%20v1.02/Envoy.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9075.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9166.0 built by: NET481REL1LAST_B
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9032.0 built by: NET481REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9032.0 built by: NET481REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9166.0 built by: NET481REL1LAST_B
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9032.0 built by: NET481REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9032.0 built by: NET481REL1
CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
Newtonsoft.Json
Assembly Version: 9.0.0.0
Win32 Version: 9.0.1.19813
CodeBase: file:///D:/WDS/Envoy.v1.02/Envoy%20v1.02/Newtonsoft.Json.DLL
musurca
Posts: 13
Joined: Mon Jun 26, 2023 9:37 am
Location: Los Angeles
Contact:

Re: ENVOY - a utility for command and control with order delay

Post by musurca »

Thanks for the reports, everyone. I've just put out a new release (v1.03) that should fix the issues people have been having with some OOBs. Appreciate your patience as I deal with the edge cases that come up in all of the various WDS games.
Last edited by musurca on Thu Jul 20, 2023 6:02 pm, edited 1 time in total.
Post Reply