From bba7c6a19c15bc82946176c79a4eba3612b25f17 Mon Sep 17 00:00:00 2001 From: jeff Date: Mon, 11 Aug 2014 00:02:00 -0400 Subject: added method inheritance browsing also finally fixed method renamer to rename all method implementations in the inheritance hierarchy. --- src/cuchaz/enigma/mapping/Renamer.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/cuchaz/enigma/mapping/Renamer.java') diff --git a/src/cuchaz/enigma/mapping/Renamer.java b/src/cuchaz/enigma/mapping/Renamer.java index b7aa35c..5a75c01 100644 --- a/src/cuchaz/enigma/mapping/Renamer.java +++ b/src/cuchaz/enigma/mapping/Renamer.java @@ -15,6 +15,9 @@ import java.io.ObjectOutputStream; import java.io.OutputStream; import java.util.zip.GZIPOutputStream; +import cuchaz.enigma.analysis.Ancestries; +import cuchaz.enigma.analysis.MethodInheritanceTreeNode; + public class Renamer { private Ancestries m_ancestries; @@ -54,6 +57,30 @@ public class Renamer classMapping.setFieldName( obf.getName(), deobfName ); } + public void setMethodTreeName( MethodEntry obf, String deobfName ) + { + // get the method tree + setMethodTreeName( + m_ancestries.getMethodInheritance( m_mappings.getTranslator( m_ancestries, TranslationDirection.Deobfuscating ), obf ), + deobfName + ); + } + + private void setMethodTreeName( MethodInheritanceTreeNode node, String deobfName ) + { + if( node.isImplemented() ) + { + // apply the name here + setMethodName( node.getMethodEntry(), deobfName ); + } + + // recurse + for( int i=0; i