Author Topic: "Include referenced commands" limitations not mentioned in VoiceAttackHelp.pdf  (Read 2306 times)

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
The manual states:
Quote from: VoiceAttackHelp.pdf page 112
The option, ‘Include referenced commands’ will allow you to include (by checking) or exclude (by unchecking) referenced commands with your export.
A referenced command is a command that is either executed by an, ‘Execute Another Command’ action or is terminated by a ‘Stop Another Command’ action.
Note: There are very few instances where you would want to exclude referenced commands.
(Bold emphasis mine)

However, there are caveats to this:

If a command from a profile included using the "Include commands from other profiles" option is referenced(by name, as that's the only option there), that will not be included when exporting(which makes sense technically, and even logically as it's not part of the profile being exported, but it may still be expected behavior).

If a command is referenced using a phrase derived from dynamic command sections(E.G. using "test 1" to reference "test [1;2]"), that command will not be included when exporting.



As an aside, the "Execute by name (Advanced)" option does not work with the full contents of the "When I say" field, E.G. "test [1;2] or even "test 1;test 2" will result in "UNABLE TO EXECUTE COMMAND, 'test 1;test 2' (by name). COMMAND NOT AVAILABLE." written to the log.

The changelog entry for 1.5.7 does note
Quote
if you are trying to execute a multipart command by name, you can pick any one of the commands and it will be used (for instance, if you have a multipart command labeled, 'test;test all;test something', you can just put, 'test' in the box.
Which does not make clear that using a single phrase is in fact the only option.

The manual, on the other hand, does not reference this at all:
Quote from: VoiceAttackHelp.pdf page 33
The second option (designated as an, 'advanced' feature) lets you select a command
to execute by name (replacement tokens are supported). If a name of a command that
exits is given, a simple loop check is done to make sure you will not potentially freeze
up or crash VoiceAttack. If the referenced command does not exist (or if a
replacement token is used) VoiceAttack will be unable to make the loop check, leaving
you at risk for an infinite loop. Use this feature at your own peril:)
(This section may contain a typo, highlighted in red above)

As the feature is designated "Advanced" it may be expected that a prospective user is aware of this, but perhaps it's worth mentioning regardless?


EDIT: Nearly all fixed :D, however the following still applies to v1.7.3(and is not mentioned in the relevant section of the manual, which has shifted to pages 113 and 114):

If a command is referenced using a phrase derived from dynamic command sections(E.G. using "test 1" to reference "test [1;2]"), that command will not be included when exporting.


EDIT#2: Limitation also not mentioned with v1.7.5.8

EDIT#3: Adjustments were made in the documentation bundled with v1.8.3.22
« Last Edit: March 07, 2020, 10:11:29 PM by Pfeil »

Gary

  • Administrator
  • Hero Member
  • *****
  • Posts: 2827
These are touched up and the typos are corrected.  Thanks for all the hard work on that, Pfeil.  This will be in the full release - hoping this coming week.

Gary

  • Administrator
  • Hero Member
  • *****
  • Posts: 2827
I've notated the limitation as well as updated the verbiage to try to make it more clear that the single phrase is the only option when referencing a command to execute by name.

Thanks, bud!