summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java')
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java46
1 files changed, 38 insertions, 8 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java b/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java
index 93276a6..cdfed72 100644
--- a/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java
+++ b/src/main/java/cuchaz/enigma/mapping/MappingsEnigmaReader.java
@@ -135,21 +135,51 @@ public class MappingsEnigmaReader
135 private ClassMapping readClass(String[] parts, boolean makeSimple) { 135 private ClassMapping readClass(String[] parts, boolean makeSimple) {
136 if (parts.length == 2) { 136 if (parts.length == 2) {
137 return new ClassMapping(parts[1]); 137 return new ClassMapping(parts[1]);
138 } else { 138 } else if (parts.length == 3) {
139 return new ClassMapping(parts[1], parts[2]); 139 boolean access = parts[2].startsWith("ACC:");
140 } 140 ClassMapping mapping;
141 if (access)
142 mapping = new ClassMapping(parts[1], null, Mappings.EntryModifier.valueOf(parts[2].substring(4)));
143 else
144 mapping = new ClassMapping(parts[1], parts[2]);
145
146 return mapping;
147 } else if (parts.length == 4)
148 return new ClassMapping(parts[1], parts[2], Mappings.EntryModifier.valueOf(parts[3].substring(4)));
149 return null;
141 } 150 }
142 151
143 /* TEMP */ 152 /* TEMP */
144 protected FieldMapping readField(String[] parts) { 153 protected FieldMapping readField(String[] parts) {
145 return new FieldMapping(parts[1], new Type(parts[3]), parts[2]); 154 FieldMapping mapping = null;
155 if (parts.length == 4)
156 {
157 boolean access = parts[3].startsWith("ACC:");
158 if (access)
159 mapping = new FieldMapping(parts[1], new Type(parts[2]), null,
160 Mappings.EntryModifier.valueOf(parts[3].substring(4)));
161 else
162 mapping = new FieldMapping(parts[1], new Type(parts[3]), parts[2], Mappings.EntryModifier.UNCHANGED);
163 }
164 else if (parts.length == 5)
165 mapping = new FieldMapping(parts[1], new Type(parts[3]), parts[2], Mappings.EntryModifier.valueOf(parts[4].substring(4)));
166 return mapping;
146 } 167 }
147 168
148 private MethodMapping readMethod(String[] parts) { 169 private MethodMapping readMethod(String[] parts) {
149 if (parts.length == 3) { 170 MethodMapping mapping = null;
150 return new MethodMapping(parts[1], new Signature(parts[2])); 171 if (parts.length == 3)
151 } else { 172 mapping = new MethodMapping(parts[1], new Signature(parts[2]));
152 return new MethodMapping(parts[1], new Signature(parts[3]), parts[2]); 173 else if (parts.length == 4){
174 boolean access = parts[3].startsWith("ACC:");
175 if (access)
176 mapping = new MethodMapping(parts[1], new Signature(parts[2]), null, Mappings.EntryModifier.valueOf(parts[3].substring(4)));
177 else
178 mapping = new MethodMapping(parts[1], new Signature(parts[3]), parts[2]);
153 } 179 }
180 else if (parts.length == 5)
181 mapping = new MethodMapping(parts[1], new Signature(parts[3]), parts[2],
182 Mappings.EntryModifier.valueOf(parts[4].substring(4)));
183 return mapping;
154 } 184 }
155} 185}