VASSAL Engine Changelog

What's new in VASSAL Engine 3.2.17

Jan 3, 2017
  • Bug fixes:
  • 12534: Regular Expression matching not supported in Calulated Property
  • 12533: Game Refresher fails if Extensions are loaded
  • 12527: “Save Game” behaves as “Save As”
  • 12526: Switching desktop on Mac OS X 10.11.3 sometimes clones the currently selected unit
  • 12518: Rotated Layer following property does not update if property changes
  • 11649: Persistent LOS thread not working with zoom different from 100%
  • 11404: Some uses of the PRNG introduce a minuscule amount of modulo bias
  • 9670: IllegalStateException: Icon Family VASSAL not found in ServerAddressBook.getCurrentIcon

New in VASSAL Engine 3.2.15 (Dec 27, 2014)

  • Bug fixes:
  • 11864: Relative $INSTALL_DIR in VASSAL.sh breaks paths for documentation
  • 11769: NPE in Deck.getState()

New in VASSAL Engine 3.2.14 (Dec 17, 2014)

  • The following bugs in 3.2.13 are fixed in 3.2.14:
  • 11667: Changing directory to $INSTALL_DIR before launching java breaks relative paths for VASSAL.sh
  • 11631: Text in SVG is not rendered by Java 6 on Mac OS X Yosemite
  • 11404: Some uses of the PRNG introduce a minuscule amount of modulo bias
  • 11281: ArrayIndexOutOfBoundsException in PieceDefiner$11.actionPerformed()
  • 11275: Warn user when module contains incompatible class files
  • 2505: NPE in javax.swing.JEditorPane.registerEditorKitForContentType()
  • the following bugs in 3.2.12 are fixed in 3.2.13:
  • 11193: Side selection fix for Bug 11085 misassigned observer
  • 11148: Windows installer fails to uninstall old versions since 3.2.9
  • 11112: DrawPile “Include command to send entire deck” does not persist if no “Send Menu text” is set
  • 10946: Z-order of pieces is not preserved in saves
  • 10100: IllegalArgumentException: Piece is not on this map at VASSAL.build.module.Map.selectionBoundsOf()
  • 4752: ConcurrentModificationException in sun.awt.color.ProfileDeferralMgr.activateProfiles()
  • 4505: BitstreamException in Mp3AudioClip$1.run()
  • 3253: ConcurrentModificationException in GameState.getRestorePiecesCommand()
  • 2686: IllegalArgumentException in GeneralFilter.zoom()

New in VASSAL Engine 3.2.13 (Jul 28, 2014)

  • 11193: Side selection fix for Bug 11085 misassigned observer
  • 11112: DrawPile “Include command to send entire deck” does not persist if no “Send Menu text” is set
  • 10946: Z-order of pieces is not preserved in saves
  • 10100: IllegalArgumentException: Piece is not on this map at VASSAL.build.module.Map.selectionBoundsOf()
  • 4752: ConcurrentModificationException in sun.awt.color.ProfileDeferralMgr.activateProfiles()
  • 4505: BitstreamException in Mp3AudioClip$1.run()
  • 3253: ConcurrentModificationException in GameState.getRestorePiecesCommand()
  • 2686: IllegalArgumentException in GeneralFilter.zoom()

New in VASSAL Engine 3.2.12 (Jun 23, 2014)

  • 11085: Side selection dialog displayed twice when observer chosen
  • 11084: Additional Selection Highlighters do not work
  • 11083: SumStack() function fails if unit in stack does not define Property
  • 11060: Symbol.NatoUnitSymbolSet.createImage() creates images with zero height
  • 10957: Movement trails trait has incorrect bounding box
  • 10925: IllegalArgumentException due to intransitive Comparator in KeyBuffer.sort()
  • 10897: Windows uninstaller unconditionally removes file associations
  • 10886: Java fails to exit after temporary directory cleanup on Windows
  • 10867: Mac launcher script does not find some Apple JDKs
  • 10686: Using String.isEmpty() is Java 5 incompatible
  • 10295: No Drag Cursors when dragging units on Windows 7 using Java 7
  • 10260: Added missing documentation for Mass Piece Loader
  • 9889: Added missing documentation for Module Level Action Button
  • 9888: Added missing documentation for ExpressionBuilder
  • 9483: StackOverflowError while processing InfiniteLoop
  • 2518: NPE in ExtensionsManager.getExtensionsDirectory()
  • 602: Horizontal wheel scrolling modifier should be Shift, not Ctrl

New in VASSAL Engine 3.2.11 (Feb 24, 2014)

  • 10852: New launcher script does not find Java 5 on old Macs
  • 10848: Failure to launch on newer versions of Windows due to old Launch4j
  • 10809: First-time dialog is too tall on very short screens
  • 10807: NPE in ColorManager.getColorSwatch()
  • 10798: ZipException in BrowserHelpFile.ConfigSupport.packFile()
  • 10797: Display installation instructions in DMG root window for Mac OS X
  • 10796: Create compressed DMG for Mac OS X
  • 10793: Text in SVG is not rendered on Macs with Retina displays

New in VASSAL Engine 3.2.10 (Feb 24, 2014)

  • 10723: IllegalStateException in ImageIOImageLoader.

New in VASSAL Engine 3.2.9 (Feb 24, 2014)

  • 10641: Module Manager clobbers global preferences set in Editor, Player
  • 10628: Game state not set to unmodified after a save
  • 10594: Max heap estimate sometimes too low for image tiler on Mac OS X
  • 10590: Cards painted in wrong location when Deck is sent after using "Draw specific cards" but without drawing cards
  • 10518: Text is not antialiased in chat pane on Linux
  • 10493: HTMLCharts do not follow anchors
  • 10468: VASSAL.sh doesn't work if path includes spaces
  • 10369: Windows installer doesn't find older installs on 64-bit systems
  • 10158: UnsatisfiedLinkError: Can't find dependent libraries via MemoryUtils.getPhysicalMemory
  • 9897: Mac bundle fails to find non-Apple JVMs
  • 9833: UnsatisfiedLinkError because JNA DLL cannot be read

New in VASSAL Engine 3.2.8 (Jul 29, 2013)

  • 10342: IOException in ZipArchive.writeToDisk() while writing Preferences file
  • 10317: 3-component JPEGs without JFIF markers where color components are differently subsampled are incorrectly color-corrected by fix for Bug 9882
  • 10298: Exception: TurnTracker.level_error in TurnComponent.getTurnLevel()
  • 10279: Report State failed to perform inner commands before its own command
  • 10266: ConcurrentModificationException at Prefs.save()
  • 3294: IOException writing preferences at startup on Mac OS
  • 2727: NPE in ReadOnlyPrefs ctor
  • 2587: Manager and Player preferences get out of step
  • Reverted bad fix for 2714: NPE in StackMetrics.merge()

New in VASSAL Engine 3.2.7 (Jun 24, 2013)

  • 10261: Off-EDT UIManager.setLookAndFeel() causes lag on Apple Java
  • 10256: StackOverflowError when Preferences can't be read
  • 10249: Deck loses position over loading multiple player logs
  • 10229: ArrayIndexOutOfBoundsException in RandomTextButton.DR
  • 10217: Lose New Room selection field when changing from P2P to VASSAL server
  • 10211: $oldLocation$ for Report Format is not set on Send To Location on same map
  • 10179: Module manager is overwriting P2P server preferences
  • 10135: ClassCastException: GlobalProperties cannot be cast to Zone
  • 10070: ClassCastException in DirectPeerPool.WTextArea()
  • 9833: UnsatisfiedLinkError because JNA DLL cannot be read
  • 9650: NPE in NodePlayer.toProperties()
  • 3934: Windows installer launches VASSAL with admin privileges
  • 3548: NumberFormatException in RandomTextButton.DR
  • 2713: ClassCastException in P2PClient.playerToString()
  • 2630: Editor crashes on close attempt when PieceDefiner is open
  • 2545: NPE in TurnTracker$SetDialog.addChildControls()

New in VASSAL Engine 3.2.6 (May 23, 2013)

  • 10184: Test Mode Counter Refresh created duplicate counters
  • 10174: NPE in DirectPeerPool.Entry.edit()
  • 10170: Incorrect LAN address reported under Linux
  • 10169: Non-latin characters are lost on P2P connections between different OS's
  • 10167: Improve efficiency of SELECTED handling
  • 10165: Rotation is not applied to Text Boxes in Game Piece Layouts
  • 10155: NPE in FormattedStringExpression.evaluate()
  • 10128: Slow Follow Property handling in Embellishment
  • 10125: Expression Builder should return a Property Name, not expression in the Set Global Property trait
  • 10072: NPE in SynchCommand.executeCommand()
  • 2714: NPE in StackMetrics.merge()

New in VASSAL Engine 3.2.5 (May 11, 2013)

  • 10129: Pre-3.0 modules broken under 3.2
  • 10128: Slow Follow Property handling in Embellishment
  • 10125: Expression Builder should return a Property Name, not expression in the Set Global Property trait
  • 10124: Comparisons with GetProperty() calls do not work correctly
  • 10107: NPE in ServerAddressBook.PeerClientEntry.toString()
  • 10101: NPE in MassPieceLoader.MyTreeTableModel.setValueAt()
  • 10099: Counter Detail Viewer displays top card in face down deck as face up
  • 10097: 'Away from Keyboard' and 'Looking for Game' icons are wrong size
  • 10083: Refesh Counters cannot refresh counters from a 3.1 Module/save game
  • 10075: JPEGs with APP14 tags are incorrectly color-corrected by fix for Bug 10053
  • 10052: NPE when Tutorial filename is null
  • 10016: P2P Client/Server modes do not work in 3.2.2
  • 9696: NPE in ZipArchive.writeToDisk()
  • 9694: NPE in ZipArchive.remove()
  • 9654: NPE in ZipArchive$ZipArchiveInputStream.close()

New in VASSAL Engine 3.2.4 (Apr 8, 2013)

  • 10054: Add option to clear tile cache to Module Manager
  • 10053: JPEGs with APP14 tags are incorrectly color-corrected by fix for Bug 9882
  • 10016: P2P Client/Server modes do not work in 3.2.2
  • 10012: NPE in EnumeratedPropertyPrompt.getNewValue()
  • 9969: IllegalArgumentException in MapShader.PatternOp ctor
  • 9823: No entry allowed for Peek command
  • 9700: Unit activation improperly recorded

New in VASSAL Engine 3.2.3 (Apr 1, 2013)

  • 10038: NPE while editing a global property button
  • 10000: IllegalArgumentException in Embellishment.setValue()
  • 9997: NPE in RegionGrid.addRegion()
  • 9990: Cannot customise Reverse Order text on a Deck
  • 9967: Reversed stacking order when dropping a stack onto an expanded stack
  • 9918: NPE in BeanShellExpressionConfigurer.addProp()
  • 9910: ESC key interpreted as "No" instead of "Cancel" at save prompts
  • 9905: User Guide item missing from Help menu
  • 9882: ImageIO munges colors of 3-component JPEGs without JFIF markers
  • 9864: Toolbar menu w/ Inventory Items autoexpands permanently when switching players
  • 9825: Macs with Retina displays unable to paint map tiles at non-power-of-two zoom levels
  • 9823: No entry allowed for Peek command
  • 9717: ClassCastException: javax.swing.KeyStroke cannot be cast to VASSAL.tools.NamedKeyStroke in ADC2 converter
  • 9700: Unit activation improperly recorded
  • 9681: NPE in Zone.getMutablePropertiesContainerId()
  • 9648: ConcurrentModificationException in Map.drawBoardsInRegion()
  • 9589: NPE in Embellishment.myGetKeyCommands()
  • 9555: NoSuchFieldError in ExpressionInterpreter.evaluate()
  • 4803: NoSuchElementException in Footprint.draw()
  • 2531: Change Global Property button missing configurable tooltip

New in VASSAL Engine 3.2.2 (Dec 13, 2012)

  • Faulty base64 encoding when synchronizing with game server
  • Mask trait opens too large if images are large

New in VASSAL Engine 3.2.0 (Dec 4, 2012)

  • Levels within a Layer can be moved up or down the level list using buttons. [RFE 1919]
  • Mass Piece Loader activated by 'Add Multiple Pieces' and 'Add Multiple Cards' options in right-click menu in Editor. Specify a folder of images, specify a counter template and Vassal will automatically load the images and generate units. [RFE 1927]
  • Description field added to Toolbar Menu and Multi-Action button components. [RFE 1885]
  • Specify Keystrokes by name - Key Commands can be entered as single Key Strokes as in earlier versions of Vassal, or can be given a 2 or more character names. Named Key Strokes are essentially 'invisible' to users. Vassal guarantees that a unique real keyStroke will be allocated to each uniquely named Keystroke. [RFE 1928]
  • Decks can specify by Property Expression which pieces are allowed to be dropped onto them. Pieces which may not be added are returned to where the drag started. [RFE 1935]
  • Decks can now specify a Hotkey for the Reverse and FaceUp/Down command and can customize the Reverse and Re-shuffle menu command names. [RFE 1938]
  • Counters now support the DeckPosition property. If a piece is not in a Deck, 0 is returned. If a piece is in a Deck, then the position of the piece relative to the top of the Deck is returned. The top piece returns 1, the next piece down returns 2 etc. [RFE 1937]
  • Support for MP3 sound files. [RFE 1934]
  • Fix Display/Color handling for Grids and Numberings. Allow Numbering to be visible when grid not visible in Zones. [RFE 1917]
  • Implementation of BeanShell allowing arbitrarily complex Java expressions to be used in Property Match Expressions, In-line Java expressions and new Calculated Property trait.
  • Display the Log File Comments in the Chat Window when a log file is opened or continued. [RFE 1939]
  • Global Key Commands created on a Map now have an option to affect counters on all Maps, not just the Map they are created on. [RFE 1902]
  • Traits that move a counter (Send To Location, Return to Deck, Moved Fixed Distance, Pivot) now update the same location Oldxxxxxx properties that Drag and Drop movement does.
  • Added repeat (loop) option to Trigger Action and Multi-action button. [RFE 1876]
  • Ensure all commands generated by a single user action are undone by a single click of the undo action. [RFE 2816016]
  • Option to allow non-owning players to move Restricted Access pieces. [RFE 1789]
  • Add 'Snap to Grid?' option to HexGrid and SquareGrid, defaulting to Yes. Allows Grid Snapping to be turned off for the whole grid. [RFE 2842811]
  • Streamlined room creation: automatic synchronization on room entry [RFE 1784]
  • New scenario updater [RFE 1899]
  • Allow Dynamic Property Select Value list to be dynamic [RFE 1926]
  • All scaling is now high-quality. Low-quality scaling (in hardware) caused too many graphics glitches on Windows.
  • The Invisible trait now supports adjustable transparency.
  • Map images are tiled the first time modules are loaded, to create an image cache. This should dramatically reduce the amount of memory needed to run modules.
  • Improved display of properties in the Editor [RFE 4323]:
  • Display all available properties from all components structured in the same way as the components of the module are built instead of all the global properties being dumped in one menu.
  • Available Global properties now appear without having to start a game. Previously, globals like Deck and Zone properties where not available unless you had started a game.
  • Property and component names are sorted, except for the Piece Property menu where the traits are displayed in the same order they exist in the counter.
  • If a menu has too many options to fit on the screen, it is now scrollable, instead of stretching off the screen and leaving some properties inaccessible.

New in VASSAL Engine 3.2.0 Beta 4 (Oct 11, 2012)

  • 4831: Module revision that created log is not displayed in errorLog
  • 4818: Hide empty TurnTracker launch buttons
  • 4807: Vengine.jar should be readable by group and other
  • 4793: ChangePropertyButton cannot be cast to GamePiece when creating toolbar button
  • 4784: Unable to edit regions within an irregular grid via mouse and arrow keys once created
  • 4775: a context menu containing a single submenu is deviously disallowed
  • 4764: Losing Player Sides when opening module with different language set
  • 4763: Symbolic Dice button window results do not open correctly
  • 4690: Hide Pieces Toolbar button causes Toolbar button icons to move
  • 4547: Ensure that image data is integer type before casting to DataBufferInt
  • 4452: Batik loads com.sun.image.codec.jpeg.TruncatedFileException, which doesn't exist in Java 7
  • 4402: StackOverflowError from recursively generating counter name with Label
  • 4322: Bad justification for text labels containing global properties
  • 4302: Global Hotkey cannot preserve execution order across server
  • 4155: NoClassDefFoundError for com.sun.management.OperatingSystemMXBean
  • 3864: IllegalStateException in ReturnToDeck.promptForDrawPile() when no decks exist
  • 3745: NPE in SVGImageUtils.getImageSize() in Batik
  • 3040: ClassCastException in CommandServer.run()
  • 2746: DOMException on malformed SVG input
  • 2711: Batik throws DOMException on SVG with flowRoot element
  • 2694: Warn (Windows) users to reboot after Java upgrade
  • 2671: BMPs are incompatible with memory-mapped images
  • 2582: Mask and Peek menu entries are not translatable
  • 2556: ImageOp does not support paths

New in VASSAL Engine 3.2.0 Beta 3 (Sep 27, 2012)

  • 4789: ZipFileImageTiler is invoked with too little max heap on Mac OS X
  • 4788: Resizing "Properties" windows doesn't extend text fields
  • 4783: NPE in ServerAddressBook$AddressBookEntry.edit()
  • 4696: Embellishment follows property to display first level when property is null instead of erroring
  • 4477: Image tiler invoked with argument list longer than Windows supports
  • Tiles for removed modules are now removed from tile cache.
  • 4818: Hide empty TurnTracker launch buttons
  • 4807: Vengine.jar should be readable by group and other
  • 4784: Unable to edit regions within an irregular grid via mouse and arrow keys once created
  • 4764: Losing Player Sides when opening module with different language set
  • 4763: Symbolic Dice button window results do not open correctly
  • 4690: Hide Pieces Toolbar button causes Toolbar button icons to move
  • 4547: Ensure that image data is integer type before casting to DataBufferInt
  • 4402: StackOverflowError from recursively generating counter name with Label
  • 4302: Global Hotkey cannot preserve execution order across server
  • 3864: IllegalStateException in ReturnToDeck.promptForDrawPile() when no decks exist
  • 3040: ClassCastException in CommandServer.run()
  • 2694: Warn (Windows) users to reboot after Java upgrade
  • 2671: BMPs are incompatible with memory-mapped images
  • 2556: ImageOp does not support paths

New in VASSAL Engine 3.2.0 Beta 2 (Sep 17, 2012)

  • Levels within a Layer can be moved up or down the level list using buttons. [RFE 1919]
  • Mass Piece Loader activated by 'Add Multiple Pieces' and 'Add Multiple Cards' options in right-click menu in Editor. Specify a folder of images, specify a counter template and Vassal will automatically load the images and generate units. [RFE 1927]
  • Description field added to Toolbar Menu and Multi-Action button components. [RFE 1885]
  • Specify Keystrokes by name - Key Commands can be entered as single Key Strokes as in earlier versions of Vassal, or can be given a 2 or more character names. Named Key Strokes are essentially 'invisible' to users. Vassal guarantees that a unique real keyStroke will be allocated to each uniquely named Keystroke. [RFE 1928]
  • Decks can specify by Property Expression which pieces are allowed to be dropped onto them. Pieces which may not be added are returned to where the drag started. [RFE 1935]
  • Decks can now specify a Hotkey for the Reverse and FaceUp/Down command and can customize the Reverse and Re-shuffle menu command names. [RFE 1938]
  • Counters now support the DeckPosition property. If a piece is not in a Deck, 0 is returned. If a piece is in a Deck, then the position of the piece relative to the top of the Deck is returned. The top piece returns 1, the next piece down returns 2 etc. [RFE 1937]
  • Support for MP3 sound files. [RFE 1934]
  • Fix Display/Color handling for Grids and Numberings. Allow Numbering to be visible when grid not visible in Zones. [RFE 1917]
  • Implementation of BeanShell allowing arbitrarily complex Java expressions to be used in Property Match Expressions, In-line Java expressions and new Calculated Property trait. [RFE 1801]
  • Display the Log File Comments in the Chat Window when a log file is opened or continued. [RFE 1939]
  • Global Key Commands created on a Map now have an option to affect counters on all Maps, not just the Map they are created on. [RFE 1902]
  • Traits that move a counter (Send To Location, Return to Deck, Moved Fixed Distance, Pivot) now update the same location Oldxxxxxx properties that Drag and Drop movement does. [RFE 1792]
  • Added repeat (loop) option to Trigger Action and Multi-action button. [RFE 1876]
  • Ensure all commands generated by a single user action are undone by a single click of the undo action. [RFE 2816016]
  • Option to allow non-owning players to move Restricted Access pieces. [RFE 1789]
  • Add 'Snap to Grid?' option to HexGrid and SquareGrid, defaulting to Yes. Allows Grid Snapping to be turned off for the whole grid. [RFE 2842811]
  • Streamlined room creation: automatic synchronization on room entry [RFE 1784]
  • New scenario updater [RFE 1899]
  • Allow Dynamic Property Select Value list to be dynamic [RFE 1926]
  • All scaling is now high-quality. Low-quality scaling (in hardware) caused too many graphics glitches on Windows.
  • The Invisible trait now supports adjustable transparency.
  • Map images are tiled the first time modules are loaded, to create an image cache. This should dramatically reduce the amount of memory needed to run modules.

New in VASSAL Engine 3.1.20 (Sep 3, 2012)

  • 4745: Snapshot tool fails to force unloaded map tiles to load
  • 4705: Decks behave strangely after loading saved game
  • 4696: Embellishment follows property to display first level when property is null instead of erroring
  • 4639: Movement trail trait erroneously draws dots on unmoved pieces
  • 4599: Cannot return to having no image in BasicPiece trait
  • 4473: TabWidget updates its name using stale values
  • 4459: Property filter built incorrectly in MassKeyCommand
  • 4297: Send Back Command disabled after undo
  • 4244: Dynamic Property Set/Increment expressions cannot access Properties defined above them
  • 4278: Map-level global properties of the same name messed up online
  • 3988: Windows installer does not recognize 64-bit JVMs
  • 3278: Corrupt module should not cause unchecked exception
  • 2807: ArrayIndexOutOfBoundsException in CropOpBitmapImpl.eval()
  • 2719: RotateScaleOpBitmapImpl created with scale == 0
  • 2696: ArrayIndexOutOfBoundsException in Map.popMouseListener()
  • 2573: Negative scale factor passed to RotateScaleOpBitmapImpl
  • 2554: NumberFormatException in SVGImageUtils.getImageSize()
  • 1921: Better adjustment for splitter between log and map panes

New in VASSAL Engine 3.1.19 (May 9, 2012)

  • 4363: When retiring, cancelling side selection leaves side == null
  • 4259: When retiring, 'Become observer' fails to update other players' rosters
  • 4258: Large image masks in Non-Rectangular trait lock up the GUI
  • 4204: Java 7 has incorrect offset for drag images
  • 4184: Should use DocumentListener to catch updates on Swing text fields
  • 4132: Bad layout for Map window obscures Global Key Command buttons
  • 3075: NegativeArraySizeException when snapshotting large maps
  • 1924: Put settings directory in system-appropriate location
  • Bad tile-counting when snapshotting maps

New in VASSAL Engine 3.1.18 (Dec 20, 2011)

  • 4126: PieceMover.dragDropEnd() does not remove DragSourceMotionListener
  • 4106: Send to Location to a counter using a Property Expression not working
  • 3457: Corrupt JPEG causes ArrayIndexOutOfBoundsException
  • 2815: ArrayIndexOutOfBoundsException in Stack.insertPieceAt()
  • 2798: ConcurrentModificationException in PrefsEditor.save()
  • 2715: NPE in Map.setup()

New in VASSAL Engine 3.1.17 (Oct 22, 2011)

  • 4054: Inserting a GamePiece Layer generates an OutOfBounds error
  • 4051: Allow Cut and Paste between Decks and GamePiece Palette
  • 3987: Updated server fallback IP address to game.vassalengine.org
  • 3986: Counters disappear during Undo
  • 3915: IOException in BrowserSupport when opening PDFs
  • 3910: IOException in BrowserSupport when opening web pages
  • 3280: IllegalArgumentException in StackMetrics.relativePosition()
  • 2798: ConcurrentModificationException in PrefsEditor.save()

New in VASSAL Engine 3.1.16 (Aug 18, 2011)

  • 3500: ArrayIndexOutOfBoundsException in TurnComponent.getTurnLevel()
  • 3486: ConfigureTree.isValidParent() should permit subclasses
  • 3479: DynamicProperty.setProperty() casts non-Strings to String
  • 3472: Initial value of DynamicProperty is not evaluated
  • 3463: Infinite recursion if $PieceName$ specified as Text Label
  • 3465: Empty DynamicProperty causes IllegalStateException on loading
  • 3277: NPE because MTRandom.setSeed() not called by Random() in Java 7
  • 3115: NPE in PlayerHand.mapSize()
  • 2907: Don't dump stack traces for missing images
  • 2815: ArrayIndexOutOfBoundsException in Stack.insertPieceAt()
  • 2633: BrowserLaunchingInitializingException in BrowserSupport()

New in VASSAL Engine 3.1.15 (Dec 3, 2010)

  • Bug 2944858: Misplaced AreaOfEffect center when board is magnified
  • Bug 2933236: ArrayIndexOutOfBoundsException in StackMetrics.draw()
  • Bug 2912371: Custom step/undo/connect icons not showing in 3.1.13
  • Bug: user.home property is not passed from Module Manager to Player or Editor
  • Bug: Only select marker if original piece was selected. Prevents
  • autoselecting of markers when placed via Global Key Command.