summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorGravatar modmuss502020-05-13 17:41:48 +0100
committerGravatar GitHub2020-05-13 17:41:48 +0100
commita8327b4f79fbfabb27a71b654fb357395ac0190a (patch)
treeeb555de3984baebfcfa659a226edd58ef085b4c1 /src/main
parentMultiplayer support (#221) (diff)
downloadenigma-a8327b4f79fbfabb27a71b654fb357395ac0190a.tar.gz
enigma-a8327b4f79fbfabb27a71b654fb357395ac0190a.tar.xz
enigma-a8327b4f79fbfabb27a71b654fb357395ac0190a.zip
A quick and dirty workaround for not being able to add javadoc to methods or fields without a mapping (mainly none obf names) (#240)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java6
-rw-r--r--src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java10
-rw-r--r--src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java8
3 files changed, 18 insertions, 6 deletions
diff --git a/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java b/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java
index 9ed7e8a5..5d39e3d2 100644
--- a/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java
+++ b/src/main/java/cuchaz/enigma/translation/mapping/MappingPair.java
@@ -6,7 +6,7 @@ import javax.annotation.Nullable;
6 6
7public class MappingPair<E extends Entry<?>, M> { 7public class MappingPair<E extends Entry<?>, M> {
8 private final E entry; 8 private final E entry;
9 private final M mapping; 9 private M mapping;
10 10
11 public MappingPair(E entry, @Nullable M mapping) { 11 public MappingPair(E entry, @Nullable M mapping) {
12 this.entry = entry; 12 this.entry = entry;
@@ -25,4 +25,8 @@ public class MappingPair<E extends Entry<?>, M> {
25 public M getMapping() { 25 public M getMapping() {
26 return mapping; 26 return mapping;
27 } 27 }
28
29 public void setMapping(M mapping) {
30 this.mapping = mapping;
31 }
28} 32}
diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java
index a1d5e01d..53bbaa3b 100644
--- a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java
+++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsReader.java
@@ -179,8 +179,9 @@ public enum EnigmaMappingsReader implements MappingsReader {
179 throw new IllegalStateException("Javadoc has no parent!"); 179 throw new IllegalStateException("Javadoc has no parent!");
180 // Empty string to concat 180 // Empty string to concat
181 String jdLine = tokens.length > 1 ? String.join(" ", Arrays.copyOfRange(tokens,1,tokens.length)) : ""; 181 String jdLine = tokens.length > 1 ? String.join(" ", Arrays.copyOfRange(tokens,1,tokens.length)) : "";
182 if (parent.getMapping() == null) 182 if (parent.getMapping() == null) {
183 throw new IllegalStateException("Javadoc requires a mapping!"); 183 parent.setMapping(new RawEntryMapping(parent.getEntry().getName(), AccessModifier.UNCHANGED));
184 }
184 parent.getMapping().addJavadocLine(MappingHelper.unescape(jdLine)); 185 parent.getMapping().addJavadocLine(MappingHelper.unescape(jdLine));
185 } 186 }
186 187
@@ -228,7 +229,10 @@ public enum EnigmaMappingsReader implements MappingsReader {
228 AccessModifier modifier = AccessModifier.UNCHANGED; 229 AccessModifier modifier = AccessModifier.UNCHANGED;
229 TypeDescriptor descriptor; 230 TypeDescriptor descriptor;
230 231
231 if (tokens.length == 4) { 232 if (tokens.length == 3) {
233 mapping = tokens[1];
234 descriptor = new TypeDescriptor(tokens[2]);
235 } else if (tokens.length == 4) {
232 AccessModifier parsedModifier = parseModifier(tokens[3]); 236 AccessModifier parsedModifier = parseModifier(tokens[3]);
233 if (parsedModifier != null) { 237 if (parsedModifier != null) {
234 descriptor = new TypeDescriptor(tokens[2]); 238 descriptor = new TypeDescriptor(tokens[2]);
diff --git a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java
index 2f6c7bc4..be0fceb5 100644
--- a/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java
+++ b/src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java
@@ -271,7 +271,9 @@ public enum EnigmaMappingsWriter implements MappingsWriter {
271 protected String writeMethod(MethodEntry entry, EntryMapping mapping) { 271 protected String writeMethod(MethodEntry entry, EntryMapping mapping) {
272 StringBuilder builder = new StringBuilder(EnigmaFormat.METHOD + " "); 272 StringBuilder builder = new StringBuilder(EnigmaFormat.METHOD + " ");
273 builder.append(entry.getName()).append(' '); 273 builder.append(entry.getName()).append(' ');
274 writeMapping(builder, mapping); 274 if (mapping != null && !mapping.getTargetName().equals(entry.getName())) {
275 writeMapping(builder, mapping);
276 }
275 277
276 builder.append(entry.getDesc().toString()); 278 builder.append(entry.getDesc().toString());
277 279
@@ -281,7 +283,9 @@ public enum EnigmaMappingsWriter implements MappingsWriter {
281 protected String writeField(FieldEntry entry, EntryMapping mapping) { 283 protected String writeField(FieldEntry entry, EntryMapping mapping) {
282 StringBuilder builder = new StringBuilder(EnigmaFormat.FIELD + " "); 284 StringBuilder builder = new StringBuilder(EnigmaFormat.FIELD + " ");
283 builder.append(entry.getName()).append(' '); 285 builder.append(entry.getName()).append(' ');
284 writeMapping(builder, mapping); 286 if (mapping != null && !mapping.getTargetName().equals(entry.getName())) {
287 writeMapping(builder, mapping);
288 }
285 289
286 builder.append(entry.getDesc().toString()); 290 builder.append(entry.getDesc().toString());
287 291