Like the poster here …
viewtopic.php?f=6&t=7998
I am getting that same error when trying to Refresh Pieces. I have a base module and a number of extensions and it is failing when I have any of the extensions added (though the base module did refresh fine). Looking at my base module, all of the gpids are okay …
<VASSAL.build.widget.PieceSlot entryName="Pz IIIFL" gpid="161" height="103" width="102">+/null/prototype;German Tank piece;;;G-Pz-IIIFL;Pz IIIFL/ null;0;0;161</VASSAL.build.widget.PieceSlot>
But on my extensions, they all have an extensionID in the first line of the build file …
<VASSAL.build.module.ModuleExtension anyModule="false" description="Ghost Panzer - Jim Krohn © Worthington Games" extensionId="8gp" module="Band of Brothers" moduleVersion="2.1" nextPieceSlotId="103" vassalVersion="3.2.16" version="2.0">
seems to have been carried over into the GamePieceIDs, as shown here …
<VASSAL.build.widget.PieceSlot entryName="KV1M41" gpid="8gp:77" height="103" width="102">+/null/prototype;Russian Tank piece;;;R-KV1M41;KV1M41/ null;0;0;8gp:77</VASSAL.build.widget.PieceSlot>
I have two questions …
-
Can I simply remove the extensionID from the gpid (for example, using the case above, gpid=“77”)?
-
Do the gpid’s in the extensions have to be different integers from the base module, or as long as they are all different inside each separate module and extension, can they repeat?
Thanks.
Hi Davey,
The short answer is that there is a bug in the Refresh pieces code when trying to refresh a scenario with an extension loaded.
To answer your questions
- No, don’t do this. The extensionId is required.
- No, they don’t have to be different integers. However, the bug is thinking gpid ‘77’ in the module is the same as gpid ‘8gp:77’ in the extension and causing the refresh to fail. No, they cannot repeat. You could workaround this by changing the numeric part of the gpid’s in the extension to be guaranteed different from any in the main module (e.g. by adding 1000 to each). However, this will impact your ability to be able to refresh older scenarios.
I have opened a Bug Tracker item (http://www.vassalengine.org/tracker/show_bug.cgi?id=12533) and found and fixed the bug. Committed to the repository changeset #9230.
Hopefully we can get this into a new version of Vassal soon.
Regards,
Brent.
Thus spake Brent Easton:
Hi Davey,
The short answer is that there is a bug in the Refresh pieces code when
trying to refresh a scenario with an extension loaded.
To answer your questions
- No, don’t do this. The extensionId is required.
- No, they don’t have to be different integers. However, the bug is
thinking gpid ‘77’ in the module is the same as gpid ‘8gp:77’ in the
extension and causing the refresh to fail. No, they cannot repeat. You
could workaround this by changing the numeric part of the gpid’s in the
extension to be guaranteed different from any in the main module (e.g.
by adding 1000 to each). However, this will impact your ability to be
able to refresh older scenarios.
I have opened a Bug Tracker item
(vassalengine.org/tracker/sho … i?id=12533) and found
and fixed the bug. Committed to the repository changeset #9230.
Hopefully we can get this into a new version of Vassal soon.
Regards,
Brent.
The fix is in the current development build, 3.2.17-svn9243, available
here:
J.