OldMap doesn't update with Return to Deck command

When you draw a card from a deck from one map window to another and then immediately return it using Return To Deck, the OldMap property value doesn’t update with the name of the map the card was discarded from.

I have included a module that demonstrates this.
Start the module, open the Deck Window, drag and drop the card from the Deck Window to the Main Map. Then, without moving it again, right click the Return to Deck command. The returned card correctly shows CurrentMap as Deck Window, but it also shows OldMap as Deck Window, which in my opinion should instead read Main Map.

This makes reporting of a discarded card that is only drawn but never moved fairly clumsy, as I would have to write a workaround to dump CurrentMap into a different global variable whenever Return To Deck is selected and then report THAT variable as the place the card was discarded from. It seems like OldMap should serve this purpose, but it doesn’t seem to when Return to Deck is used.

I thought I had seen this somewhere before on the forums but I searched for the issue and couldn’t find it.

The key being drag-and-drop movement.

Have you tried reporting the Return-to-Deck action with a Report Action trait?

B.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

That’s exactly what I’m doing in this module. I’m combining Return to Deck with a Report Action trait. The problem is, using $OldMap$ in the Report Action gives me the wrong map if I use Return to Deck unless I’ve moved the piece at least twice, once from the deck window to the main map, and then once again from the main map to some other place on the main map.

If I only move the card manually from the deck in the Deck Window to the Main Map, then use Return to Deck, $OldMap$ never updates (even though $CurrentMap$ does), so there is no property on the card that will return the name of the map window that the card was returned from.

Instead of making the menu command fire the Return to Deck and having the Report Action look for that keystroke (as I’m currently doing in the test module), I can probably create a Trigger Action that first reports that the card is being discarded from $CurrentMap$ and then fires Return to Deck, and that may be what you’re suggesting by saying “combine.”

Is there a design reason that Return to Deck intentionally does not update the same values that drag-and-drop movement does? It seems that Return to Deck is mimicking drag-and-drop movement, so why would we want Return to Deck not to update the same properties that a drag-and-drop movement would?

Not intentional. It’s a matter of that code being migrated from DnD movement to the traits that mimic movement.

B.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)

This would simplify my module a fair amount and let me bury the reporting at a prototype level for the card instead of having to create a trigger action for report and discard for each different card deck. Is this a reasonable item to submit as a feature request (Return to Deck updates the same properties that a manual drag-and-drop placement of a card back onto a deck would)?

Absolutely. Some features have already been added to ‘Send To location’, ‘Return to Deck’ and ‘Moved Fixed Distance’ to make them act more like DnD movement.

B.


Messages mailing list
Messages@forums.vassalengine.org
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)