From 0ed334a22c86553a406975d6dcee2883816983bd Mon Sep 17 00:00:00 2001 From: Taka Date: Mon, 6 Jul 2020 08:46:15 +0000 Subject: [PATCH] Check both label fields when identifying player-owned snippets. --- vassal-shim/release/vassal-shim.jar | Bin 30016 -> 30041 bytes vassal-shim/src/vassal_shim/VassalShim.java | 40 +++++++++++++------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/vassal-shim/release/vassal-shim.jar b/vassal-shim/release/vassal-shim.jar index a5b4dfea86dee52d61b8a4da6e9e09c96c491fa4..7c317d56dd5ecda657d60813ab18ee2b9750e09a 100644 GIT binary patch delta 15159 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 diff --git a/vassal-shim/src/vassal_shim/VassalShim.java b/vassal-shim/src/vassal_shim/VassalShim.java index 471e003..afef180 100644 --- a/vassal-shim/src/vassal_shim/VassalShim.java +++ b/vassal-shim/src/vassal_shim/VassalShim.java @@ -317,12 +317,34 @@ public class VassalShim // check if the label is one of ours String snippetId = isVaslTemplatesLabel( fields, GamePieceLabelFields.FIELD_INDEX_LABEL1 ) ; + int labelNo=1, fieldIndex=GamePieceLabelFields.FIELD_INDEX_LABEL1 ; + if ( snippetId == null ) { + snippetId = isVaslTemplatesLabel( fields, GamePieceLabelFields.FIELD_INDEX_LABEL2 ) ; + labelNo = 2 ; + fieldIndex = GamePieceLabelFields.FIELD_INDEX_LABEL2 ; + } if ( snippetId != null ) { boolean addSnippet = true ; // check if the label is associated with a player nationality int pos = snippetId.indexOf( '/' ) ; if ( pos >= 0 ) { // yup - the nationality must be one of the 2 passed in to us + // FUDGE! We identify player-owned labels because they have an ID of the form "nationality/snippet-id". + // We originally used to just check for the presence of a "/", but this would get tripped up by snippets + // generated from an "extras" template, since the snippet ID is the relative path, so something like + // "extras/blank-space" would fool us into thinking that the scenario contained player-owned labels. + // Adding a simple check for "extras" is not quite right, since template packs allow their template files + // to be organized into arbitrary sub-directories, and so their snippets will also be incorrectly identified + // as a player-owned label, but it's not really a problem because the reason we're checking is to figure out + // if the scenario was generated using an old version of vasl-templates that didn't have player-owned labels. + // The only time this check will go wrong is if: + // - this scenario was created using an old version of vasl-templates that doesn't support player-owned labels + // - the user had used their own template pack that had a sub-directory called something other than "extras". + // IOW, not something we really need to worry about. The webapp server could pass in a list of known nationalities, + // but that'd be more trouble that it's worth, since this is only an issue for legacy save files. + // NOTE: If we've got a scenario that was created using a later version of vasl-templates, and it contains a snippet + // generated from a template file in a sub-directory, then yes, that snippet might cause us to "incorrectly" decide + // that the scenario contains player-owned labels, but it doesn't matter, because it's still the correct answer :-) String nat = snippetId.substring( 0, pos ) ; if ( ! nat.equals( "extras" ) ) hasPlayerOwnedLabels.setVal( true ) ; @@ -332,24 +354,16 @@ public class VassalShim } } if ( addSnippet ) { - logger.debug( "- Found label (1): {}", snippetId ) ; + logger.debug( "- Found label (" + labelNo + "): {}", snippetId ) ; ourLabels.put( snippetId, - new GamePieceLabelFields( target, separators, fields, GamePieceLabelFields.FIELD_INDEX_LABEL1 ) + new GamePieceLabelFields( target, separators, fields, fieldIndex ) ) ; } } else { - snippetId = isVaslTemplatesLabel( fields, GamePieceLabelFields.FIELD_INDEX_LABEL2 ) ; - if ( snippetId != null ) { - logger.debug( "- Found label (2): {}", snippetId ) ; - ourLabels.put( snippetId, - new GamePieceLabelFields( target, separators, fields, GamePieceLabelFields.FIELD_INDEX_LABEL2 ) - ) ; - } else { - otherLabels.add( - new GamePieceLabelFields( target, separators, fields, -1 ) - ) ; - } + otherLabels.add( + new GamePieceLabelFields( target, separators, fields, -1 ) + ) ; } } }