Migrate 11 client files to Kotlin, rename obfuscated fields, fix wilderness text
Java→Kotlin: Skins, TiledUtils, Animation, Actor, Npc, Player,
ProducingGraphicsBuffer, GameFrame, BufferTests, Rasterizer, GameShell.
78 Kotlin / 3 Java remaining (Game, MapRegion, CollisionMap).
Renamed obfuscated fields using rs-deob usage analysis:
- Animation: anInt431→delay, aBooleanArray438→noAlpha
- Actor: anInt1596→healthRatio, anInt1597→healthScale
- Player: anInt1743→objectX, anInt1745→objectY,
anInt1768-1771→objectMinTileX/Y, objectMaxTileX/Y
Fixed TypeFace.getDisplayedWidth @xxx@ color code skip — the for-in
loop made idx immutable so the shadowed variable hack never advanced
the loop counter, overcounting width and clipping centered text (e.g.
wilderness "Level: 1" rendered as "evel: 1").
Migrate 11 client files to Kotlin, rename obfuscated fields, fix wilderness text
Java→Kotlin: Skins, TiledUtils, Animation, Actor, Npc, Player,
ProducingGraphicsBuffer, GameFrame, BufferTests, Rasterizer, GameShell.
78 Kotlin / 3 Java remaining (Game, MapRegion, CollisionMap).
Renamed obfuscated fields using rs-deob usage analysis:
- Animation: anInt431→delay, aBooleanArray438→noAlpha
- Actor: anInt1596→healthRatio, anInt1597→healthScale
- Player: anInt1743→objectX, anInt1745→objectY,
anInt1768-1771→objectMinTileX/Y, objectMaxTileX/Y
Fixed TypeFace.getDisplayedWidth @xxx@ color code skip — the for-in
loop made idx immutable so the shadowed variable hack never advanced
the loop counter, overcounting width and clipping centered text (e.g.
wilderness "Level: 1" rendered as "evel: 1").