There are uboat mos working locally and working perfectly after passing via Claude Opus 4.7 .
All modes are working fine on my Uboat from GOG.
There are uboat mos working locally and working perfectly after passing via Claude Opus 4.7 .
All modes are working fine on my Uboat from GOG.
Dynamic Distance Labels
https://steamcommunity.com/sharedfiles/filedetails/?id=3405289645
Opus 4.7 recap
Details
Recap of Improvements
π§Ή Code Quality
(units == Nautical) ^ altPressed)Constantsinto its own file (Constants.cs)KilometersToPreferredUnitsPatch.csβUnitsUtilityPatch.csconstinstead ofstatic readonlyfor true constantsHARMONY_IDconstantβ‘ Performance
FieldInfoforUnitsUtility.localeonce, instead ofTraverse.Create(...).Field(...)on every callTraverse...SetValuewrite-backs forcache_*fieldsref ___fieldalready writes back automaticallycacheM ?? (cacheM = locale["m"])π‘οΈ Correctness & Safety
ConditionalWeakTable<MapLineUI, β¦>replacesDictionaryinMapLineUIPatchesMapLineUIinstances are now GC'd automaticallysqrMagnitude > 1e-6finstead ofdiff != Vector2.zeroLocaletype alias (using Locale = UBOAT.Game.Core.Data.Locale;)Localetypes in the namespace treeπ Final File Layout
π Notable items left alone (intentionally)
SetCursorPosY coordinate β Win32 and Unity use different Y-origins; flagged it but didn't change it since your original worked. Switch toScreen.height - yif cursor placement drifts.ProcessMetricUnitsβAppendMetricto reflect what they actually do (append to aStringBuilder, not "process").Constantsif you want them user-configurable later.π Possible future improvements (not done)
LeftAlt/RightAlt.Camera.mainlookup inMapLineUIPatcheswith a cached reference (Camera.mainis aFindObjectWithTagcall internally).[HarmonyPatch]guard viaPrepare()that logs and skips ifUnitsUtility.localefield is missing (future-proofing against game updates)./Bundles- no changesConstants.csDetails
DynamicDistanceHelper.csDetails
MapLineUIPatches.csDetails
ModLoader.csDetails
UnitsUtilityPatch.csDetails