From 0bc78d57a860789efa2c5af1fd2600f09332e78e Mon Sep 17 00:00:00 2001 From: Thog Date: Sun, 14 Aug 2016 15:58:58 +0200 Subject: Add F5 hotkey to reload class + use a ugly hack to avoid rename issues with generics... --- src/main/java/cuchaz/enigma/Deobfuscator.java | 14 +++++++++++++- src/main/java/cuchaz/enigma/Main.java | 3 ++- src/main/java/cuchaz/enigma/gui/GuiController.java | 4 ++-- 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 { } public boolean isObfuscatedIdentifier(Entry obfEntry) { + return isObfuscatedIdentifier(obfEntry, false); + } + + public boolean isObfuscatedIdentifier(Entry obfEntry, boolean hack) { if (obfEntry instanceof MethodEntry) { @@ -405,13 +409,21 @@ public class Deobfuscator { } else if (name.equals("wait") && sig.equals("(JI)V")) { return false; } + + // FIXME: HACK EVEN MORE HACK! + if (hack) + return true; } return this.jarIndex.containsObfEntry(obfEntry); } + public boolean isRenameable(EntryReference obfReference, boolean activeHack) { + return obfReference.isNamed() && isObfuscatedIdentifier(obfReference.getNameableEntry(), activeHack); + } + public boolean isRenameable(EntryReference obfReference) { - return obfReference.isNamed() && isObfuscatedIdentifier(obfReference.getNameableEntry()); + return isRenameable(obfReference, false); } // 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; import javax.swing.UIManager; import cuchaz.enigma.gui.Gui; +import cuchaz.enigma.mapping.ClassEntry; public class Main { @@ -32,7 +33,7 @@ public class Main { } // DEBUG - //gui.getController().openDeclaration(new ClassEntry("none/bxq")); + gui.getController().openDeclaration(new ClassEntry("none/asj")); } 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 { } public boolean referenceIsRenameable(EntryReference deobfReference) { - return this.deobfuscator.isRenameable(this.deobfuscator.obfuscateReference(deobfReference)); + return this.deobfuscator.isRenameable(this.deobfuscator.obfuscateReference(deobfReference), true); } public ClassInheritanceTreeNode getClassInheritance(ClassEntry deobfClassEntry) { @@ -275,7 +275,7 @@ public class GuiController { this.gui.setDeobfClasses(deobfClasses); } - private void refreshCurrentClass() { + public void refreshCurrentClass() { refreshCurrentClass(null); } 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 { case KeyEvent.VK_T: gui.popupMenu.toggleMappingMenu.doClick(); break; + case KeyEvent.VK_F5: + gui.getController().refreshCurrentClass(); default: break; } -- cgit v1.2.3