3.2 Build - Other Bugs Found

I’ve started a new thread for this stuff as (as Joel said) the other thread’s becoming a monster.

I’ve run across some bugs as I’ve been working on my TBK mod with the new builds. It’s been hard to isolate exactly what the problems are but they’re easy to replicate.

Expression Builder

The expression building (which is awesome) is creating expressions that Vassal does not like. For example, if I activate a Global Key Command via an Action Button and I enter the filter manually according to the old Vassal rules, it will look like this:

CurrentMap = Resources && DeckName = MLSB

…it works fine. If I use the expression builder, I get a line that looks like this:

{CurrentMap == “Resources” && DeckName == “MLSB”}

If I create the line manually and then click the expression builder button, the line looks like this:

{(CurrentMap == “Resources”) && (DeckName == “MLSB”)}

The only one that will work, is the original line I put in manually. Clicking the Action Button using any of the other expressions will fail.

Replace with Other & Place Markers

When I use these traits, I usually do not define the piece onto the piece that’s calling it but rather I create a piece on a hidden window and use the Select feature to select that hidden piece. When I use Select, I get the browse window, find the piece, and then click OK. This will generate an error. When I close the error window and select OK again, it works. However, the defined piece may not contain all the functions of the original …all the traits are listed but they may not work right.

It’s hard to isolate what’s happening here except to say that a piece called up by Place Marker or Replace with Other just doesn’t work like it’s supposed to …especially if you change something on the original piece being called.

svn7855

Here’s the error log generated when I try to select a piece with a Place Marker trait. Keep in mind that if I close this error and click OK again, it accepts the piece.

2011-09-30 06:44:42,359 [0-main] INFO VASSAL.launch.StartUp - Starting
2011-09-30 06:44:42,375 [0-main] INFO VASSAL.launch.StartUp - OS Windows XP
2011-09-30 06:44:42,375 [0-main] INFO VASSAL.launch.StartUp - Java version 1.6.0_26
2011-09-30 06:44:42,375 [0-main] INFO VASSAL.launch.StartUp - VASSAL version 3.2.0-svn7855
2011-09-30 06:44:42,437 [0-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager
2011-09-30 06:44:55,375 [0-SwingWorker-pool-21673243-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module file C:\Games\VassalFiles\TBK_New\Mod\TBK_0.99.vmod
2011-09-30 06:44:55,890 [0-SwingWorker-pool-21673243-thread-1] INFO VASSAL.launch.TilingHandler - No images to tile.
2011-09-30 06:44:55,890 [0-SwingWorker-pool-21673243-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module To Be King
2011-09-30 06:44:55,890 [0-SwingWorker-pool-21673243-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Utilities\Java6u22\bin\java -Xms256M -Xmx512M -DVASSAL.id=1 -DVASSAL.port=1361 -Duser.home=C:\Documents and Settings\Rich -cp lib\Vengine.jar VASSAL.launch.Editor --edit – C:\Games\VassalFiles\TBK_New\Mod\TBK_0.99.vmod
2011-09-30 06:44:56,812 [1-main] INFO VASSAL.launch.StartUp - Starting
2011-09-30 06:44:56,828 [1-main] INFO VASSAL.launch.StartUp - OS Windows XP
2011-09-30 06:44:56,828 [1-main] INFO VASSAL.launch.StartUp - Java version 1.6.0_26
2011-09-30 06:44:56,828 [1-main] INFO VASSAL.launch.StartUp - VASSAL version 3.2.0-svn7855
2011-09-30 06:44:56,828 [1-main] INFO VASSAL.launch.Launcher - Editor
2011-09-30 06:44:58,750 [1-AWT-EventQueue-0] WARN VASSAL.tools.ErrorDialog - Image not found: Splash.png
2011-09-30 06:44:59,375 [1-AWT-EventQueue-0] WARN VASSAL.launch.BasicModule - To Be King version 0.99_A0008
2011-09-30 06:45:17,531 [1-AWT-EventQueue-0] INFO VASSAL.build.GameModule - Exiting
2011-09-30 06:45:18,343 [0-IPC receiver for 19351067] ERROR VASSAL.tools.ipc.IPCMessageReceiver -
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source) ~[na:1.6.0_26]
at java.net.SocketInputStream.read(Unknown Source) ~[na:1.6.0_26]
at java.io.ObjectInputStream$PeekInputStream.peek(Unknown Source) ~[na:1.6.0_26]
at java.io.ObjectInputStream$BlockDataInputStream.peek(Unknown Source) ~[na:1.6.0_26]
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source) ~[na:1.6.0_26]
at java.io.ObjectInputStream.readObject0(Unknown Source) ~[na:1.6.0_26]
at java.io.ObjectInputStream.readObject(Unknown Source) ~[na:1.6.0_26]
at VASSAL.tools.ipc.IPCMessageReceiver.run(IPCMessageReceiver.java:34) ~[Vengine.jar:na]
at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
2011-09-30 06:45:34,625 [0-SwingWorker-pool-21673243-thread-2] INFO VASSAL.launch.AbstractLaunchAction - Loading module file C:\Games\VassalFiles\TBK_New\Mod\TBK_0.99.vmod
2011-09-30 06:45:34,656 [0-SwingWorker-pool-21673243-thread-2] INFO VASSAL.launch.TilingHandler - No images to tile.
2011-09-30 06:45:34,656 [0-SwingWorker-pool-21673243-thread-2] INFO VASSAL.launch.AbstractLaunchAction - Loading module To Be King
2011-09-30 06:45:34,656 [0-SwingWorker-pool-21673243-thread-2] INFO VASSAL.tools.io.ProcessLauncher - launching C:\Utilities\Java6u22\bin\java -Xms256M -Xmx512M -DVASSAL.id=3 -DVASSAL.port=1363 -Duser.home=C:\Documents and Settings\Rich -cp lib\Vengine.jar VASSAL.launch.Editor --edit – C:\Games\VassalFiles\TBK_New\Mod\TBK_0.99.vmod
2011-09-30 06:45:35,531 [3-main] INFO VASSAL.launch.StartUp - Starting
2011-09-30 06:45:35,531 [3-main] INFO VASSAL.launch.StartUp - OS Windows XP
2011-09-30 06:45:35,531 [3-main] INFO VASSAL.launch.StartUp - Java version 1.6.0_26
2011-09-30 06:45:35,531 [3-main] INFO VASSAL.launch.StartUp - VASSAL version 3.2.0-svn7855
2011-09-30 06:45:35,531 [3-main] INFO VASSAL.launch.Launcher - Editor
2011-09-30 06:45:37,234 [3-AWT-EventQueue-0] WARN VASSAL.tools.ErrorDialog - Image not found: Splash.png
2011-09-30 06:45:37,750 [3-AWT-EventQueue-0] WARN VASSAL.launch.BasicModule - To Be King version 0.99_A0008
2011-09-30 06:46:24,453 [3-AWT-EventQueue-0] WARN VASSAL.tools.ErrorDialog - Image not found: moved.gif
2011-09-30 06:46:47,656 [3-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LVASSAL.build.Configurable;
at VASSAL.configure.ChooseComponentPathDialog.valueChanged(ChooseComponentPathDialog.java:52) ~[Vengine.jar:na]
at javax.swing.JTree.fireValueChanged(Unknown Source) ~[na:1.6.0_26]
at javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source) ~[na:1.6.0_26]
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source) ~[na:1.6.0_26]
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source) ~[na:1.6.0_26]
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source) ~[na:1.6.0_26]
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source) ~[na:1.6.0_26]
at javax.swing.JTree.setSelectionPath(Unknown Source) ~[na:1.6.0_26]
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source) ~[na:1.6.0_26]
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source) ~[na:1.6.0_26]
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source) ~[na:1.6.0_26]
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source) ~[na:1.6.0_26]
at java.awt.Component.processMouseEvent(Unknown Source) [na:1.6.0_26]
at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Component.processEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Container.processEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Window.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.access$000(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$1.run(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$1.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$2.run(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$2.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[na:1.6.0_26]
at java.awt.Dialog$1.run(Unknown Source) ~[na:1.6.0_26]
at java.awt.Dialog$3.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.awt.Dialog.show(Unknown Source) [na:1.6.0_26]
at java.awt.Component.show(Unknown Source) [na:1.6.0_26]
at java.awt.Component.setVisible(Unknown Source) [na:1.6.0_26]
at java.awt.Window.setVisible(Unknown Source) [na:1.6.0_26]
at java.awt.Dialog.setVisible(Unknown Source) [na:1.6.0_26]
at VASSAL.counters.PlaceMarker$Ed$2.actionPerformed(PlaceMarker.java:432) [Vengine.jar:na]
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [na:1.6.0_26]
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [na:1.6.0_26]
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [na:1.6.0_26]
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) [na:1.6.0_26]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [na:1.6.0_26]
at java.awt.Component.processMouseEvent(Unknown Source) [na:1.6.0_26]
at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Component.processEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Container.processEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Window.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.access$000(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$1.run(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$1.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$2.run(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$2.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[na:1.6.0_26]
at java.awt.Dialog$1.run(Unknown Source) ~[na:1.6.0_26]
at java.awt.Dialog$3.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.awt.Dialog.show(Unknown Source) [na:1.6.0_26]
at java.awt.Component.show(Unknown Source) [na:1.6.0_26]
at java.awt.Component.setVisible(Unknown Source) [na:1.6.0_26]
at java.awt.Window.setVisible(Unknown Source) [na:1.6.0_26]
at java.awt.Dialog.setVisible(Unknown Source) [na:1.6.0_26]
at VASSAL.counters.PieceDefiner.edit(PieceDefiner.java:568) [Vengine.jar:na]
at VASSAL.counters.PieceDefiner$8.actionPerformed(PieceDefiner.java:406) [Vengine.jar:na]
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [na:1.6.0_26]
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [na:1.6.0_26]
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [na:1.6.0_26]
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) [na:1.6.0_26]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [na:1.6.0_26]
at java.awt.Component.processMouseEvent(Unknown Source) [na:1.6.0_26]
at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Component.processEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Container.processEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [na:1.6.0_26]
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Window.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.Component.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.access$000(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$1.run(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$1.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$2.run(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue$2.run(Unknown Source) [na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) [na:1.6.0_26]
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) [na:1.6.0_26]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [na:1.6.0_26]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) ~[na:1.6.0_26]
at java.awt.EventDispatchThread.run(Unknown Source) ~[na:1.6.0_26]

svn7855

New bug found. Improper message display when moving pieces.

I currently have the standard message…

$BasicName$ moves $previousLocation$ → $location$ *

…on the map for piece movement.

All I’m getting is

  • moves ML26 → ML24 *

In other words, it’s not displaying the BasicName of the piece.

What’s even weirder is that the line used to be:

$pieceName$ moves $previousLocation$ → $location$ *

…and that would generate messages like

*1 moves ML26 → ML24 *
*6 moves ML26 → ML24 *

I was logged into playerSide 1 so I thought maybe it was displaying the player side. But then it started displaying 6. Since the name of the piece is River, I don’t quite know what it’s displaying.

Additional note on the Place Marker / Replace with Other trait.

I’m finding that if I make changes to the piece that’s being selected to define the PM or RWO, I have to delete the PM or RWO trait from the original piece, save the mod, close it, re-open it, and recreate the PM or RWO trait. I still get the error when I’m selecting the defining piece but everything works after that.

I will note that I’ve had some struggles with the ‘place marker’ trait in 3.1, so this may not be entirely new. It’s been a while, so I do not remember what the particular problem was, but I think the ‘rotate’ trait was having trouble with as ‘placed’ marker (while the same piece drawn directly from the counter menu was fine).

I will look into all of these bugs.

svn7857

Another bug found concerning the Trigger Action trait.

Overall, the use of keywords vs key commands is working brilliantly. However, if you have a list of keywords on a Trigger Action trait and you delete any of the keywords below the first one and click OK, the Trigger Action freaks out. If you open it again, it shows you a massive list of key commands.

I’m sorry. I meant if you delete any of the keywords above the last one in the list.

Just tried the new Loop options on the Trigger Action trait. Woo Hoo!! I am impressed!

The Trigger Action has been problematic, though. Besides my previous comments, I am finding that if you create a Trigger Action trait, it’s best to get it right the first time. Any changes made to it may create a variety of unexpected results and I’ve had to rebuild Trigger Actions from scratch a few times now.

Thanks DrNostromo,
Working on this one as well. I have some time today and hope to knock a few of these on the head:

3970 Expression builder expressions not working in Global Key Command
3971 Place Marker/Replace problems
3972 BasicName/pieceName not showing correct values in Report Format
3974 Trigger Action problems

Hi DrNostromo,

This part is actually working correctly. Report Formats in the Map component can only display a subset of properties, those available in the drop-down box.

General Piece properties only work in Report Formats in traits.

I can’t reproduce this, can you confirm that these pieces are not actually called ‘1’ and ‘6’? If not, could you please post a link to your module.

I have found and fixed the Trigger Action bug, it will be available soon.

Brent.

svn7857

Ah, that makes sense. I’ll probably be removing all the message formats (except for $message$) from the map window anyway as I tend to control reports with the game pieces. I just thought it may be a problem.

As far as the pieceName problem. What’s weird is that I tried to make a sample to reproduce the problem but the sample worked fine. However, my TBK mod still reports the pieceName as a number.

Here’s a link to my current mod. The zip contains the .vmod and a Notes.txt so you can reproduce the problem.

drnostromo.com/TBK_Sample.zip

Hi DrNostromo,

It’s a bug in your module. The Layer trait ‘Movement Point Cost Display’ is defined so that the name of the layers replace the name, not get used as a suffix or prefix. You haven’t selected neither the ‘is prefix’ or ‘is suffix’ radio button.

Brent.

Ah, that’s a new one. Thanx!

Bug 3971 - Place Marker/Replace problems

I have had a look at this and have found a problem in the definition of the target marker using the ‘Select’ button. I have checked in a fix and it should be in the next build. This may or may not solve your problem. Please re-test and if it is still a problem, send me detailed instructions on how to reproduce it in a module.

One thing I noticed is that when using the ‘Select’ option to select a marker, it saves a path to the marker using the names of the intervening Windoes, tabs and panels where the unit resides. This means that if you will have problems if you have Units with the same name in the same panel/tab , or multiple panel/tabs with the same name at the same level.

Regards,
Brent.

Hi Joel,

Branch brent-3.2 has some fixes:

7862 & 7863 - Fix for bug 3974 - Trigger Action issues
7864 - Bug 3971 Possible fix. Fixes a ClassCastException that was hopefully causing the problem.

Bug 3970 is being caused by a couple of missing files in the generated VEngine.jar. In VASSAL.script are 2 files, init_script.bsh and init_expression.bsh. These are beanshell scripts that are used to initialise the Beanshell Expression and Script interpreters.

Brent.

Thus spake Brent Easton:

Hi Joel,

Branch brent-3.2 has some fixes:

7862 & 7863 - Fix for bug 3974 - Trigger Action issues

Merged to trunk@7866.

7864 - Bug 3971 Possible fix. Fixes a ClassCastException that was
hopefully causing the problem.

Merged to trunk@7867.

Bug 3970 is being caused by a couple of missing files in the generated
VEngine.jar. In VASSAL.script are 2 files, init_script.bsh and
init_expression.bsh. These are beanshell scripts that are used to
initialise the Beanshell Expression and Script interpreters.

Fixed in trunk@7869.


J.

Quick Question:

Can a variable be used in a keyword? For example:

Let’s say I have a Set Global Property trait that has 4 key commands

SetABC1
SetABC2
SetABC3
SetABC4

The key command I use is based on the roll of a D4.

Can I send a keyword command to the SGP of SetABC$D4_result$ ?

svn7869 is uploaded and contains all of Brent’s fixes above.

Hi Dr Nostromo,
Can you please donwload the latest build and recheck the problems you found.
Thanks,
Brent.

PS. I am moving your question above to another thread.