v3.5.1 - Module level GKC may perform badly

v3.5.1, Global Key Command - Fast Match

I have noticed that for at least one situation, the new Fast Match criteria seem to be ignored in a Module Level GKC, resulting in a very slow GKC.

The example that I have is of GKC buttons that send a command to a single piece on a specific map, where the Additional Matching Expression field is left blank.

Under v3.4.13, the GKC simply specified the map on which to execute the Global Key Command. This gives an almost instantaneous response.

Under v3.5.1, if one moves the map specification to the “By Location” Fast Match field, performance nose dives to several seconds. I suspect the criteria is being ignored and the module is attempting to execute the command on every piece across all maps. Adding a By Property criterion makes no difference - performance is still poor.

Using the Additional Matching Expression field restores expected response time. In the example that I have, it makes no discernible difference whether or not the Fast Match fields are specified.

So far, I have also used map GKC buttons using “Apply to counters on this Map only” or a fixed number of pieces in the deck. These types perform as expected. I have also used GKCs on counters and performance has improved or at least not got worse, though I will re-visit my work and see if there are any examples where I have not specified the Additional Matching Expression.

Mark

Hi Mark! Do you have a module that reproduces this problem that you could upload for me (or point me at) w/ specific repro steps?

sure… here is a demo file: dropbox.com/s/7dow2xv9ql7gg … .vmod?dl=0

Steps

  1. Join as Allies, opening any scenario.
  2. Try rolling any of the dice buttons except 1d… they all respond quickly.
  3. Now try the single die button. Wait a few moments and the result will appear.

The definitions of these buttons are at the module top level about half way down.
Notice that that only difference between 1d and the rest is that the 1d does not have the “Additional Expression” BUT the expression should in fact be redundant as the GKC criteria are fully specified in the Fast Match fields. Any of the buttons when reconfigured to match the 1d button will perform the same way (ie badly).

The actual die rolling is performed on the “Dice Tray” map within the “dicetray” piece.The dice tray map has a similar set of GKC buttons, all configured without an additional expression but these all perform correctly.

Mark

Hi Mark - unfortunately that item had already been deleted when I got there. Could you please upload it again?

Sorry about that, maybe I deleted it by mistake. Here is a link to the other copy…

dropbox.com/s/6ibivfglahugc … .vmod?dl=0

Thx! Problem found and fixed for next version. 3.5.4 I think it is.

Brian

Great news. Thanks Brian. I will look out for a snapshot with this in, if there is one before the release.

Try the 3.5.4-SNAPSHOT-95b893e38 build: vassalengine.org/~uckelman/tmp/

Does that solve the problem?

Yes, problem solved.