Skip to content

Commit

Permalink
do param prefixes in mapping generation
Browse files Browse the repository at this point in the history
  • Loading branch information
MiniDigger committed Jul 10, 2023
1 parent d8ef117 commit a1acc70
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,15 @@ class ParamsMergeHandler : MappingSetMergerHandler {
throw IllegalStateException("Unexpectedly merged method: ${left.fullObfuscatedName}")
}

override fun addRightParameterMapping(
right: MethodParameterMapping,
target: MethodMapping,
context: MergeContext?
): MethodParameterMapping {
// prefix params with _ to avoid conflicts
return target.createParameterMapping(right.index, "_" + right.deobfuscatedName)
}

// Don't take anything from yarn
override fun addRightTopLevelClassMapping(
right: TopLevelClassMapping?,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,40 +35,6 @@ abstract class GenerateSrgCsv : ControllableOutputTask() {

val srgToOurs = mutableMapOf<String, String>()
val classes = mutableListOf<ClassMapping<*, *>>()
//classes.addAll(obfToOurs.topLevelClassMappings)
//while (classes.isNotEmpty()) {
// val namedClass = classes[0]
// classes.removeAt(0)
//
// val srgClass = if (namedClass is InnerClassMapping) {
// val namedParentClass = namedClass.parent
// val namedSrgClass = obfToSrg.getClassMapping(namedParentClass.obfuscatedName).orElseThrow()
// namedSrgClass.getInnerClassMapping(namedClass.obfuscatedName).orElseThrow()
// } else {
// classes.addAll(namedClass.innerClassMappings)
// obfToSrg.getClassMapping(namedClass.obfuscatedName).orElseThrow()
// }
//
// if (namedClass.deobfuscatedName.contains("LootDataType")) {
// println(namedClass)
// println(srgClass)
// }
//
// namedClass.fieldMappings.forEach { namedField ->
// val srgField = srgClass.getFieldMapping(namedField.obfuscatedName).orElseThrow()
// srgToOurs[srgField.deobfuscatedName] = namedField.deobfuscatedName
// }
//
// namedClass.methodMappings.forEach { namedMethod ->
// val srgMethod = srgClass.getMethodMapping(namedMethod.obfuscatedName, namedMethod.obfuscatedDescriptor).orElseThrow()
// srgToOurs[srgMethod.deobfuscatedName] = namedMethod.deobfuscatedName
//
// namedMethod.parameterMappings.forEachIndexed { index, namedParam ->
// val srgParam = srgMethod.getParameterMapping(index).orElseThrow()
// srgToOurs[srgParam.deobfuscatedName] = namedParam.deobfuscatedName
// }
// }
//}

classes.addAll(obfToSrg.topLevelClassMappings)
while (classes.isNotEmpty()) {
Expand Down Expand Up @@ -117,7 +83,7 @@ abstract class GenerateSrgCsv : ControllableOutputTask() {
}
val namedParam = if (srgMethod.obfuscatedName == "<init>") {
// ctors aren't synthetic, no need for fuckery
namedMethod.get().getParameterMapping(srgParam.index)
namedMethod.get().getParameterMapping(srgParam.index + 1)
} else if (params.size > index) {
Optional.of(params[index])
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -212,11 +212,7 @@ abstract class PrepareBase : ControllableOutputTask() {
content = regex.replace(content) { res ->
val mapping = srgToMojang[res.groupValues[0]]
if (mapping != null) {
if (res.groupValues[0].startsWith("p")) {
return@replace "_$mapping"
} else {
return@replace mapping
}
return@replace mapping
} else {
missedMappings.add(res.groupValues[0])
return@replace res.groupValues[0]
Expand Down

0 comments on commit a1acc70

Please sign in to comment.