diff --git a/deob-bytecode/src/main/kotlin/org/openrs2/deob/bytecode/remap/StaticFieldUnscrambler.kt b/deob-bytecode/src/main/kotlin/org/openrs2/deob/bytecode/remap/StaticFieldUnscrambler.kt index a5c58f0d..df226d7e 100644 --- a/deob-bytecode/src/main/kotlin/org/openrs2/deob/bytecode/remap/StaticFieldUnscrambler.kt +++ b/deob-bytecode/src/main/kotlin/org/openrs2/deob/bytecode/remap/StaticFieldUnscrambler.kt @@ -117,6 +117,19 @@ public class StaticFieldUnscrambler( } } + val overlappingInitializers = mutableSetOf() + + for ((field1, initializer1) in simpleInitializers) { + for ((field2, initializer2) in simpleInitializers) { + if (field1 != field2 && initializer1.any { it in initializer2 }) { + overlappingInitializers += field1 + } + } + } + + simpleInitializers -= overlappingInitializers + complexInitializers += overlappingInitializers + return Pair(simpleInitializers, complexInitializers) } }