summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Thog2016-08-14 15:58:58 +0200
committerGravatar Thog2016-08-14 15:58:58 +0200
commit0bc78d57a860789efa2c5af1fd2600f09332e78e (patch)
tree48cfd1e68a5cb7eb55b4ee0ae9a66b87af4b23c2
parentReverse scan of superclasses to find the first definition of method signature... (diff)
downloadenigma-0bc78d57a860789efa2c5af1fd2600f09332e78e.tar.gz
enigma-0bc78d57a860789efa2c5af1fd2600f09332e78e.tar.xz
enigma-0bc78d57a860789efa2c5af1fd2600f09332e78e.zip
Add F5 hotkey to reload class + use a ugly hack to avoid rename issues with generics...
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java14
-rw-r--r--src/main/java/cuchaz/enigma/Main.java3
-rw-r--r--src/main/java/cuchaz/enigma/gui/GuiController.java4
-rw-r--r--src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java2
4 files changed, 19 insertions, 4 deletions
diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java
index 8cd80bef..32792c6b 100644
--- a/src/main/java/cuchaz/enigma/Deobfuscator.java
+++ b/src/main/java/cuchaz/enigma/Deobfuscator.java
@@ -375,6 +375,10 @@ public class Deobfuscator {
375 } 375 }
376 376
377 public boolean isObfuscatedIdentifier(Entry obfEntry) { 377 public boolean isObfuscatedIdentifier(Entry obfEntry) {
378 return isObfuscatedIdentifier(obfEntry, false);
379 }
380
381 public boolean isObfuscatedIdentifier(Entry obfEntry, boolean hack) {
378 382
379 if (obfEntry instanceof MethodEntry) { 383 if (obfEntry instanceof MethodEntry) {
380 384
@@ -405,13 +409,21 @@ public class Deobfuscator {
405 } else if (name.equals("wait") && sig.equals("(JI)V")) { 409 } else if (name.equals("wait") && sig.equals("(JI)V")) {
406 return false; 410 return false;
407 } 411 }
412
413 // FIXME: HACK EVEN MORE HACK!
414 if (hack)
415 return true;
408 } 416 }
409 417
410 return this.jarIndex.containsObfEntry(obfEntry); 418 return this.jarIndex.containsObfEntry(obfEntry);
411 } 419 }
412 420
421 public boolean isRenameable(EntryReference<Entry, Entry> obfReference, boolean activeHack) {
422 return obfReference.isNamed() && isObfuscatedIdentifier(obfReference.getNameableEntry(), activeHack);
423 }
424
413 public boolean isRenameable(EntryReference<Entry, Entry> obfReference) { 425 public boolean isRenameable(EntryReference<Entry, Entry> obfReference) {
414 return obfReference.isNamed() && isObfuscatedIdentifier(obfReference.getNameableEntry()); 426 return isRenameable(obfReference, false);
415 } 427 }
416 428
417 // NOTE: these methods are a bit messy... oh well 429 // NOTE: these methods are a bit messy... oh well
diff --git a/src/main/java/cuchaz/enigma/Main.java b/src/main/java/cuchaz/enigma/Main.java
index c1419823..89ba223c 100644
--- a/src/main/java/cuchaz/enigma/Main.java
+++ b/src/main/java/cuchaz/enigma/Main.java
@@ -16,6 +16,7 @@ import java.util.jar.JarFile;
16import javax.swing.UIManager; 16import javax.swing.UIManager;
17 17
18import cuchaz.enigma.gui.Gui; 18import cuchaz.enigma.gui.Gui;
19import cuchaz.enigma.mapping.ClassEntry;
19 20
20public class Main { 21public class Main {
21 22
@@ -32,7 +33,7 @@ public class Main {
32 } 33 }
33 34
34 // DEBUG 35 // DEBUG
35 //gui.getController().openDeclaration(new ClassEntry("none/bxq")); 36 gui.getController().openDeclaration(new ClassEntry("none/asj"));
36 } 37 }
37 38
38 private static File getFile(String path) { 39 private static File getFile(String path) {
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java
index 68f7c56a..cc645d8a 100644
--- a/src/main/java/cuchaz/enigma/gui/GuiController.java
+++ b/src/main/java/cuchaz/enigma/gui/GuiController.java
@@ -145,7 +145,7 @@ public class GuiController {
145 } 145 }
146 146
147 public boolean referenceIsRenameable(EntryReference<Entry, Entry> deobfReference) { 147 public boolean referenceIsRenameable(EntryReference<Entry, Entry> deobfReference) {
148 return this.deobfuscator.isRenameable(this.deobfuscator.obfuscateReference(deobfReference)); 148 return this.deobfuscator.isRenameable(this.deobfuscator.obfuscateReference(deobfReference), true);
149 } 149 }
150 150
151 public ClassInheritanceTreeNode getClassInheritance(ClassEntry deobfClassEntry) { 151 public ClassInheritanceTreeNode getClassInheritance(ClassEntry deobfClassEntry) {
@@ -275,7 +275,7 @@ public class GuiController {
275 this.gui.setDeobfClasses(deobfClasses); 275 this.gui.setDeobfClasses(deobfClasses);
276 } 276 }
277 277
278 private void refreshCurrentClass() { 278 public void refreshCurrentClass() {
279 refreshCurrentClass(null); 279 refreshCurrentClass(null);
280 } 280 }
281 281
diff --git a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
index 1c0ee9e5..8bf4ed66 100644
--- a/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
+++ b/src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java
@@ -50,6 +50,8 @@ public class PanelEditor extends JEditorPane {
50 case KeyEvent.VK_T: 50 case KeyEvent.VK_T:
51 gui.popupMenu.toggleMappingMenu.doClick(); 51 gui.popupMenu.toggleMappingMenu.doClick();
52 break; 52 break;
53 case KeyEvent.VK_F5:
54 gui.getController().refreshCurrentClass();
53 default: 55 default:
54 break; 56 break;
55 } 57 }