diff options
| author | 2016-08-14 15:58:58 +0200 | |
|---|---|---|
| committer | 2016-08-14 15:58:58 +0200 | |
| commit | 0bc78d57a860789efa2c5af1fd2600f09332e78e (patch) | |
| tree | 48cfd1e68a5cb7eb55b4ee0ae9a66b87af4b23c2 | |
| parent | Reverse scan of superclasses to find the first definition of method signature... (diff) | |
| download | enigma-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.java | 14 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/Main.java | 3 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/GuiController.java | 4 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/panels/PanelEditor.java | 2 |
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; | |||
| 16 | import javax.swing.UIManager; | 16 | import javax.swing.UIManager; |
| 17 | 17 | ||
| 18 | import cuchaz.enigma.gui.Gui; | 18 | import cuchaz.enigma.gui.Gui; |
| 19 | import cuchaz.enigma.mapping.ClassEntry; | ||
| 19 | 20 | ||
| 20 | public class Main { | 21 | public 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 | } |