Releases: vassalengine/vassal
Releases · vassalengine/vassal
VASSAL 3.5.6
Changes since 3.5.5
Bug fixes
- 14518: Zoomer hotkeys should take effect only if their map is focused
- 14506: NPE in PieceWindow.launchButtonPressed()
- 14505: Edit Extension menu item should be disabled when the extension is already being edited
- 14504: Improved results for users who started with no password and then set one later
- 14503: Set errorLog encoding explicitly to UTF-8
- 14502: Tailer misdecodes errorLog
- 14484: Module editing permanently disabled after editing associated Extension
- 14469: Java's ProcessBuilder misencodes Unicode outside Latin1 on Windows
- 14468: MouseoverStackViewer: corrected text centering problem with "extra space between" setting
- 14461: NPE in TableInfo.getExpressionList()
- 14460: StackOverflowError when referencing _Level property in layer-following expression
- 14456: ConcurrentModificationException in GameState.setup() when component setup() adds components
- 14452: Catch PatternSyntaxException on user-provided regexes
- 14440: Counter refresh function sometimes changes stacking order of pieces
- 14422: ArrayIndexOutOfBoundsException in Embellishment.getProperty()
- 14418: MassPieceLoader: Copy/Paste of Modified Layer trait generates Standard Layer on Paste
- 14401: Cancelling a predefined-setup load during setup wizard shouldn't show "Loaded..." message
- 14393: Don't show that sending bug reports failed when they've succeeded
- 14386: Editor was reporting module saved when the "confirm overwrite" dialog cancelled
- 14370: NPE in BasicLogger.write() when there is no game state to write
- 14368: Using String functions on property names containing double quotes in value causes Bad Module Data errors
- 14351: NPE when Player Roster deleted from module
- 14337: Show/Hide Palette Hotkey shows but does not hide
- 14325: TileNotFoundException after second copy of a module in use is removed
- 14311: Cancelling edit where a Hotkey name was changed does not cancel changes
- 14308: Bad encoding in errorLog, bug reports
- 14286: Prevent bad expressions from returning null
- 14271: Chat & Notes input panel(s) treat Hotkeys differently
- 14261: StackOverflowError: Infinite loop caused by Text Label wasn't being caught properly
- 10755: Infinite loop in RecursionLimiter.infiniteLoop()
- 10114: ArrayIndexOutOfBoundsException in SecretNotesController.setup()
- 2623: FreeRotator does not update masked image if sides change
Other improvements
- 14477: MouseoverStackViewer: Show a single card when used in a PlayerHand window
- 14453: Improved error message on failure to load a deck
- 14408: Lock logs and saves during writes to preempt locking by programs like Dropbox
VASSAL 3.5.5
Changes since 3.5.4
Bug fixes
- 14348: Invisible Trait UI conflated opacity with transparency
- 14336: MouseoverStackViewer improperly excludes does-not-move pieces when "include move-when-selected" is unchecked
- 14332: NullPointerException in Expression.resetCachedExpressions()
- 14331: Additional Selection Highlighter fails to offset images
- 14327: IllegalComponentStateException in ToolbarMenu.launch()
- 14322: IllegalComponentStateException in TableInfo.myKeyEvent()
- 14321: IllegalComponentStateException in PropertySheet.myKeyEvent()
- 14317: NPE in ReturnToDeck.getDeckName()
- 14310: Property Sheet options not saved
- 14309: Missing Deck.deck translation key
- 14301: GKC/GHK trigger actions out of order at remote end in online play
- 14296: IndexOutOfBoundsException in BasicLogger.step() when holding down step key
- 14291: IllegalArgumentException in PlayerRoster.resetListeners()
- 14290: Online multi-player game is subject to a race condition that ends with corrupt decks
- 14288: Deck Hotkey ignored from keyboard and Global Hotkey Trait in preset scenarios
- 14285: IllegalArgumentException in PlayerRoster when moving items in Editor
- 14284: Chess Clocks: fixed problem where "allow reset" option selection wouldn't "stick"
- 14262: Missing Editor.GridEditor.command_arrow_keys translation key
- 14225: Send Hotkey action corrupts target deck
- 13837: Creating a Global Property with Null name causes NPE on Load Game
- 13203: Refresh Counters causes Pieces within Decks to expand
Other improvements
- 14282: Upgrade to Java 16 for Windows, Mac packages
VASSAL 3.5.4
Changes since 3.5.3
New features
- 14228: Chess Clocks can now be manually reset (if manual reset is enabled for them by module designer)
- 14217: MouseoverStackViewer -
$countPieces$ will give the total number of pieces found in the stack (w/o having to create a property) - 14207: Improved translation features (Global Translatable Message component, Translatable Message trait, exposing current language/locale as property)
- 14191: CurrentLanguage and CurrentLanguageName exposed as module properties
Bug fixes
- 14270: "maximum heap too large" message shown when maximum heap is too small
- 14269: Poor Editor performance when using Fast Match
- 14267: Game Refresher: Refresh Predefined Setups should clear any open game in the Player
- 14256: LOS gets stuck on screen when replayed through logfile
- 14255: Default autoreport text made -< instead of ->
- 14246: Fast Match Global Key Commands were "dealing off the bottom of the deck" in certain cases
- 14245: HTML in Tabbed Panes (charts, widgets): Work around apparent Swing bug in JTabbedPane
- 14243: Game Piece Layer manipulation commands do not match described effect
- 14227: Mark When Moved had Vertical offset mislabeled as Horizontal offset
- 14226: Undo and Server buttons steal focus after being clicked
- 14222: Editor Search output loses less-than symbols
- 14219: Do not expand every prototype in a piece before searching it, just match the name of the prototype.
- 14203: Global Key Commands should exit after displaying report if there is no key command to issue
- 14200: Scenario names (Predefined Setup) should be displayed in translated language
- 14199: Inventory text not translated
- 14198: Translated private windows do not work when changing sides if module is translated
- 14196: Right-click menu localization is not shown for some elements
- 14192: Decks from previous saves and logs are retained in memory
- 14187: Drag Thresholds shouldn't be violated by "deep legacy" mouse listeners (e.g. accepting double click AND drag from same mouse sequence)
- 14178: Some weird systems lack awt.font.desktophints but aren't headless
- 14168: Fix broken HTML in the 'not-allowed-in-multiplayer-games' message
- 14164: Fast Match change persists despite Cancel
- 14163: NPE due to File.listFiles() returning null for symlnks on Macs
- 14159: Fast Search GKC ignores "Within a deck, apply to no pieces"
- 14156: Loading a log file to continue a game shouldn't reset the map window
- 14155: Search was showing duplicate entries for certain items
- 14154: Search wasn't finding "Fast Match" fields
- 14152: .vsav, .vlog should be appended to saves, logs when not present, instead of checking for '.'
- 14149: Windows installer fails to run uninstallers for old versions
- 14143: First character is 'eaten' when typing chat while over map
- 14138: Turn Tracker mispopulates button tooltip field while running in editor
- 14136: Module-level GKCs were not honoring fast match
- 14131: String method calls in Beanshell don't return proper result unless GetProperty is used
- 14124: Remove "(Optional)" from Send to Location Board Name hint text
- 14112: In Dynamic Property List of values, cursor jumps after first character entered
- 14088: Ensure image is updated on selection of new image with duplicate filename in the Editor
- 14069: ArrayIndexOutOfBoundsException in StringArrayConfigurer due to race
- 13796: Stacks after the first are unstacked when multiple stacks dragged to a snap-to map
- 13793: ArrayIndexOutOfBoundsException in CompoundPieceCollection.indexOf()
- 13472: "Send to Deck" creates phantom cards in proportion to the number of game starts
- 13145: Send Hot Key ignored by Deck
- 12538: Decks report multiple shuffles after loading saved game
Other improvements
- 14258: "Logging" and "Replaying" should have priority over "Saved" in the title bar
- 14240: Welcome Wizard: Put "enter your name" screen after the main welcome (so that option to turn off wizard is always on first screen viewed)
- 14209: Write logs and saves to .part file to forestall copying of partially written files
- 14205: Allow different images to be loaded based on currrent VASSAL language
- 14201: Share immutable objects
- 14193: Expressions should be cached
- 14185: Distinguish tile loading errors from other image loading errors
- 14182: Prevent duplication of FormattedString data and Expressions
- 14167: Inefficient implementation of FilterOutputStream in ZipWriter
- 14148: Module Editor Labels get truncated with '...'
- 14139: Delete trait to set 'old...' properties prior to deleting piece
- 14133: Better support for Mac Alt and Function keys
- 14066: Remove Unused Images: Dialog sizing and file size display improvements
VASSAL 3.5.3
Changes since 3.5.2
Bug fixes
- 14122: IllegalArgumentException when Action Button is armed on one map but released on another
- 14078: Undo causes standard counter to become unstacked
Other improvements
- 14121: Editor shows Global Property descriptions next to the names in the main list
VASSAL 3.5.2
Changes since 3.5.1
Bug fixes
- 14117: Action Button fails to respond on a stacked counter (except at top)
- 14116: Incorrect module sort order in Module Manager
- 14111: Incorrect description for Dynamic Property initial value
- 14104: Removing Image from BasicPiece stores image name as '(No Image)'
- 14086: Fix Alt key for selecting on maps
- 14078: Undo causes standard counter to become unstacked
- 14076: SetGlobalProperty editor has incorrect label for maximum value field
- 14075: BoardPicker and LOS_Thread could sometimes intercept commands for wrong objects
- 14074: Flares sometimes not appearing on opponent's map (in log replay, or online)
- 14065: Show OS Specific cut/paste key descriptions in Piece Definer
- 14061: ArrayIndexOutOfBoundsException in StringArrayConfigurer.entryChanged()
- 14047: Prevent versions <= 3.2 from clobbering the 3.5 module list
- 14046: Nested ExecutionException when cancelling a screenshot
- 14043: Help button on Flare, Chess Clock, Deselect had broken link
- 14041: Prevent race when creating GlobalPrefs
Other improvements
- 14098: Player includes module version number in window title
- 14077: Include '(pixels)' in Turn Counter Label Display Length Label
- 14070: Array Configurers: Add button moves focus to newly created entry
- 14068: Key Command editor: Change return arrow icon to Tango undo icon
- 14064: Add Refresh Predefined Setups in ExtensionEditor + (remove warning on pieces without parent)
- 14059: Show better descriptions for Marker traits in Piece Definer
- 14057: Piece Definer should give piece image a little breathing space on left and right by default
- 14056: Search now covers initial/min/max values in property traits
- 14053: Canceling Welcome Wizard closes the Player (unless "show wizard at startup" has been unchecked)
- 14055: Set Global Property: include name/expression of property in trait list
VASSAL 3.5.1
Changes since 3.5.0
Bug fixes
- 14035: Multi Action Button and Toolbar Menu lose last item in Menu Entry list
- 14034: Prevent concurrent updates to preferences
- 14033: Fast Match forgets fields when added to Maps and Module
- 14032: Fast Match was picking wrong number of cards from decks
- 14026: GameRefresher incorrectly deletes off map pieces
- 14024: NumberFormatException when private server port is empty
- 14023: Advanced Search displays "hit lists" properly for names/types of prototypes & configurables
- 14018: Refresh Predefined Setup incorrectly clones at start stacks
- 14012: Die Roll 'Prompt for values when button pushed' dialog is broken
- 14008: Unused Images Tool was suggesting some in-use GIFs for deletion
- 14007: NPE when adding dockable PieceWindow from module extension
- 14000: OverlappingFileLockException when attempting to write preferences
- 13999: Fast-Match wasn't working for "Moved" property
- 13997: Chat log should start display on bottom line even with larger monitors
- 13996: Sanitize temp file basenames to escape illegal characters
- 13995: Don't try to write a logfile without having started one
- 13993: IllegalBuildException on gpIdChecker when using GameRefresher
- 13992: NPE in Embellishment.addLocalImageNames()
- 13991: NPE when using Game Refresher on predefined setups
- 13988: ExecutionException when opening a moved or renamed module file
- 13987: ChessClock buttons with icons had inappropriate height/width
- 13984: NPE in BugUtils when involved from the Module Manager
- 13981: NoSuchElementException using Edit All Contained Pieces
- 13975: ArrayIndexOutOfBoundsException using Edit All Contained Pieces
- 13973: Missing message for failure to write file
- 13971: Cannot create new module extensions
- 13970: DiceButton icons and Mask images incorrectly suggested for removal by unneeded-file-remover
- 13968: NPE in HelpFile.addLocalImageNames()
- 13967: Search wasn't searching into PieceSlots ("Single Piece" items in Setup Stacks, etc.)
- 13965: MouseoverStackViewer should not show face-down cards in decks, should not unnecessarily clip underneath text, and should not run off left edge of screen in an overzealous attempt to center-on-cursor
- 13964: Module extension file extension incorrectly listed as .vext instead of .vmdx
- 13960: MouseoverStackViewer mis-centering if "draw pieces" wasn't selected
- 13959: Loads from wizard should add filename to window title
- 13958: ExecutionException when cancelling a screenshot
- 13954: Alt-click, Shift+Ctrl-click should not change selection
- 13944: NPE when loading second game in modules using deprecated Map.mainWindowDock
Other improvements
- 14040: Reference Manual cleanup
- 14039: Improved/Repaired some tables in online docs
- 14022: Upgrade bundled Java to 15.0.2+7
- 14019: Remove confusing Vassal Version column from MM, show based on preference
- 14015: Added infinite loop protection to PlaceMarker
- 14011: Search now pre-selects contents of search field when restoring/remembering the previous contents
- 14009: Standardize remaining dialogs
- 13977: Alt+Shift now an option for band selection of Does Not Stack pieces
- 13974: Better window title bars (filename-first like most apps)
- 13930: Added infinite loop protection to TurnTracker
- 13742: Action Button trait should arm when pressed, fire on release
VASSAL 3.5.0
Changes since 3.4.13
New features
- 13706: Console, for entering commands to affect errorlog, properties, etc.
- 13522: Performance improvements for Global Key Commands
- 13504: Simpler way to display PDF files from Help menu
- 13494: Expose version numbers and module strings to module as properties
- 13432: MouseOverStackViewer can show > 1 piece of a deck
- 13417: Editor's search function can now search piece traits and component attributes
- 13415: MouseoverStackViewer has HTML support and additional formatting options
- 13414: "Help" button (and help information) added to Preferences dialog
- 13368: Added preference to control drag-at-edge-of-map width
- 13355: Threshold for centering on opponent's move is now configurable
- 13352: Title Bar of module should always show most recent Save/Load/Log
- 13297: Ability to Deselect a piece with a Key Command (also remove it from its stack)
- 13296: Flare feature for map
- 13219: Added KeyNamer for overriding key names
- 1868: Method for removing unused images from modules
- 1826: Aesthetic improvements to dialogs
- 1807: Chess clocks
- 1804: Added Preference for turning off sounds
Bug fixes
- 13950: Level name in Layer trait is not being saved
- 13900: MassPieceLoader trait editor shows standard Embellishment trait editor instead of MPL-specific one
- 13886: Reinstate removed TilingHandler ctor for VASL 6.6.1
- 13879: NPE in DieManager ctor
- 13876: NPE in AbstractMetaData.getVassalVersion()
- 13868: Added description field to (nearly) all traits
- 13853: Toolbars missing from non-dockable windows
- 13825: "Module from older version" check is too strict
- 13823: Map/Module Global Key Command Description not being saved
- 13821: SendToLocation does not create Movement Trail points
- 13811: NPE in DiceButton.setAttribute()
- 13810: Find all parentless Dialogs and JOptionPanes and give them a parent
- 13783: Non-rectangular trait should remember name of image that created it
- 13782: Suffix/Prefix fields in Layer trait are not displayed correctly
- 13781: Bad parameter in Editor.UniqueIdManager.more_than_one message
- 13771: NPE after cutting/pasting piece palettes in Editor
- 13755: Chess clock help file is misnamed
- 13741: DataArchive.getImageNames() incorrectly returns an empty string if images/ has an entry in the ZIP archive
- 13675: Piece Slots shouldn't be allowed at very top level of Piece Palette
- 13660: Replaced ComponentSplitter with SplitPane for better splitter positioning
- 13659: "Remember window size" preference is no longer ignored
- 13593: Global preferences are written when changed
- 13509: Save As in Editor, if it fails, complains the new filename
- 13495: Wizard should set the initial value for next save/load dialog
- 13336: Fixed incorrect date format in SecretNotesController
- 12946: Prevent top level required components from being deleted in Editor
- 4779: Comparison operator >= no longer incorrectly documented as =>
- 4324: Antialiasing RenderingHints not set properly for drawing game components
Other improvements
- 13952: Make Flare animation disableable
- 13947: File > Import Module moved to Tools > Convert Module
- 13813: Simplified communication between Module Manager, Player, Editor
- 13792: Combined save and log loading; Load Continuation moved from File to Tools menu
- 13777: Improved workflow of zone editor
- 13761: Refer to MacOS instead of MacOS X now that MacOS 11 is out
- 13661: Simplified ZIP archive writing and error reporting
- 13450: Improve look of Auto Configured editor dialogs
- 13437: Improve visibility of Logging status - Help people to remember to start logs
- 13363: buildFile renamed to buildFile.xml
- 13354: Add a chatter message when starting to write a logfile
- 13353: Use native file chooser on Linux
- 13333: Better handling of logfile/savefile comments
- 13326: Saving a module will default to .vmod, an extension to .vext
- 13323: Player switching sides now reported in Chat Log
- 13098: Move Compatibility related preferences on the General tab to a new Compatibility tab
- 1907: Suggest default filename extensions
VASSAL 3.4.13
Changes since 3.4.12
Bug fixes:
- 13920: CounterDetailViewer should support setting no foreground color
- 13915: Boards with same source but different grids fail to render distinctly
- 13903: SVG with viewBox and percentage width, height renders incorrectly
- 13861: NPE in MassPieceLoader when adding Layer to piece template
- 13285: Show useful message on AWTError due to bad Java Access Bridge install
VASSAL 3.5.0-beta3
Changes since 3.5.0-beta2
Bug fixes
- 13900: MassPieceLoader trait editor shows standard Embellishment trait editor instead of MPL-specific one
- 13886: Reinstate removed TilingHandler ctor for VASL 6.6.1
- 13879: NPE in DieManager ctor
- 13876: NPE in AbstractMetaData.getVassalVersion()
- 13868: Added description field to (nearly) all traits
- 13853: Toolbars missing from non-dockable windows
- 13811: NPE in DiceButton.setAttribute()
- 13810: Find all parentless Dialogs and JOptionPanes and give them a parent
VASSAL 3.5.0-beta2
Changes since 3.5.0-beta1
Bug fixes
- 13825: "Module from older version" check is too strict
- 13823: Map/Module Global Key Command Description not being saved
- 13821: SendToLocation does not create Movement Trail points
- 13783: Non-rectangular trait should remember name of image that created it
- 13782: Suffix/Prefix fields in Layer trait are not displayed correctly
- 13781: Bad parameter in Editor.UniqueIdManager.more_than_one message
- 13771: NPE after cutting/pasting piece palettes in Editor
- 13755: Chess clock help file is misnamed
- 4324: Antialiasing RenderingHints not set properly for drawing game components
Other improvements
- 13813: Simplified communication between Module Manager, Player, Editor
- 13792: Combined save and log loading; Load Continuation moved from File to Tools menu
- 13777: Improved workflow of zone editor
- 13761: Refer to MacOS instead of MacOS X now that MacOS 11 is out