Tile disappears

I asked for help and then realised I had done it in the wrong forum.

Here it is again:

I should say that from my side the game has been played on two Debian buster machines with very different hardware. It does not go away when the vlog files on that other machine.

This one has the following details:

root@leonhartsberger:/home/nicholas/VASSAL/VASSAL-3.2.17# /usr/sbin/hwinfo --short cpu: Intel(R) Pentium(R) CPU N3540 @ 2.16GHz, 500 MHz Intel(R) Pentium(R) CPU N3540 @ 2.16GHz, 500 MHz Intel(R) Pentium(R) CPU N3540 @ 2.16GHz, 500 MHz Intel(R) Pentium(R) CPU N3540 @ 2.16GHz, 500 MHz keyboard: /dev/input/event0 AT Translated Set 2 keyboard mouse: /dev/input/mice Cygnal Integrated USB OPTICAL MOUSE /dev/input/mice ETPS/2 Elantech Touchpad monitor: AUO LCD Monitor graphics card: Intel Atom Processor Z36xxx/Z37xxx Series Graphics & Display sound: Intel Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller network: wlan0 Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter eth0 Realtek RTL810xE PCI Express Fast Ethernet controller network interface: lo Loopback network interface wlan0 WLAN network interface eth0 Ethernet network interface disk: /dev/mmcblk0 Disk partition: /dev/mmcblk0p1 Partition /dev/mmcblk0p2 Partition /dev/mmcblk0p3 Partition usb controller: Intel Atom Processor Z36xxx/Z37xxx, Celeron N2000 Series USB xHCI bios: BIOS bridge: Intel Atom Processor E3800 Series PCI Express Root Port 1 Intel Atom Processor Z36xxx/Z37xxx Series Power Control Unit Intel Atom Processor E3800 Series PCI Express Root Port 4 Intel Atom Processor Z36xxx/Z37xxx Series SoC Transaction Register Intel Atom Processor E3800 Series PCI Express Root Port 2 hub: Linux Foundation 2.0 root hub Linux Foundation 3.0 root hub memory: Main Memory bluetooth: IMC Networks Bluetooth Device unknown: FPU DMA controller PIC Keyboard controller PS/2 Controller Realtek RTS5286 PCI Express Card Reader Intel Atom Processor E3800 Series SMBus Controller Intel Atom Processor Z36xxx/Z37xxx Series Trusted Execution Engine /dev/ttyS0 16550A /dev/input/event14 Chicony Electronics USB2.0 VGA UVC WebCam

You don’t list what version of Java you’re using. That’s probably the most important question.

nicholas@leonhartsberger:~/VASSAL/VASSAL-3.2.17$ PATH=/home/nicholas/VASSAL/jdk8u252-b09/bin:$PATH java -version openjdk version "1.8.0_252" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09, mixed mode)

Another thing I have tried is recreating move 5 to create a new .vsav. (Obviously this gives a different hand refresh.) However this seems to reproduce the issue. That is: I place the red tile, save to a new .vsav. When I reload the .vsav the red tile is gone.

This reproduces even I do this experiment by loading 04-bull.vsav into 3.3.0-beta3.

I am pretty sure this is a mistake in the module now.

So I believe I have largely got to the bottom of this.

The module supports 3 maps. Each map has 8 to 14 at-start stacks each including a red tile. Any tiles not initially on the map should be in the deck. So for maps with less than 14 red tiles initially, I put the excess upto 14 on the map in an “excess” stack. Then I have a startup global key command that sends the excess back to the deck.

The mistake I made was in two assumptions:

  1. That startup global key commands only run when a new game is started (not everytime the module loads).
  2. That I did not need to test saving and loading games, because this was core VASSAL functionality. (Not blaming VASSAL now but that was my reasoning.)

I have fixed that by changing the marker to a dynamic variable. Now the startup command does a trigger which both returns the excess tiles to the deck and clears the excess tag.

The one bit I don’t understand is how the bug presented itself to my opponent. He has sent me a vsav file: drive.google.com/open?id=189eQJ … IBeuHJ-mqY .

If you load this file in version 4.1 of T&E the tile disappears (which I get). If you load it in a tweaked version of 4.1 where the startup command is disabled you see what he reported to me. That is the tile is masked (“flipped”) and you cannot unflip it. I still don’t understand how this could occur.

I am about to upload 4.2 but I would be very grateful if anyone was able to shed light on this aspect.