Skip to content

v1.2.0 - Code refactoring

Choose a tag to compare

@seikenxa seikenxa released this 26 May 03:46
· 13 commits to main since this release

v1.2.0 - Refactoring: improved code structure and readability

No functional changes. This release improves maintainability and readability of the codebase.

Phase 1 — Constants & cleanup

  • Extracted ResetSessionState() to eliminate ~25 lines of duplicate reset logic shared between Startup() and StartSession()
  • Added named constants replacing bare magic numbers:
    • kNoLapTime (2147483640.0) — sentinel for no valid lap time
    • kNoLapLimit (2147483640) — sentinel for time-based race (no lap limit)
    • kCamTrackside (4) — trackside camera type index
  • Moved environmentAlreadySet from public to private

Phase 2 — UpdateScoring() split

  • Broke 390-line UpdateScoring() into focused private methods:
Method Lines Responsibility
ScanVehicles() 28 Prelist pass: leader, best lap, allfinished
SelectCameraQualifying() 38 Practice / qualifying camera logic
SelectCameraRace() 124 Race camera logic (SBS, pit, last lap)
DetectIncidents() 60 mResultsStream incident detection
ResolveTargetVehicle() 38 needpos → needveh + camera type
WriteSessionOutputs() 69 Time string, file writes, debug log
  • UpdateScoring() reduced from ~390 to 73 lines (orchestration only)

Verified on

  • rF2 (via WantsToViewVehicle)
  • LMU (via REST API)