Repository navigation
HellPad v1.1.3 - Loadout Grid Reader
Automatically detect your equipped stratagems directly from the mission screen!
How to use:
- Press Option+0 while at the mission "READY UP" screen
- HellPad captures your screen, finds the READY UP button, and identifies the 4 mission stratagems above it
- Detected stratagems are automatically assigned to slots 3-6 in your current loadout
Technical Details:
- Uses Apple's Vision framework for accurate icon recognition
- Multi-signal scoring algorithm combines four matching methods:
- IoU Shape Matching (40%) - Intersection over Union with local alignment search
- Vision Feature Print (40%) - Neural network-based perceptual similarity
- dHash Perceptual Hash (15%) - Difference hash for shape comparison
- Color Histogram (5%) - Brightness distribution matching
- Pre-crops reference icons to content bounds for more accurate comparison
- OCR detection finds "READY UP" text to locate the stratagem grid
- Works with all 100+ stratagems in the game
Voice Announcement for Detected Loadout
Hear your detected stratagems spoken aloud when using the Loadout Grid Reader.
- Announces "loadout: [stratagem1], [stratagem2], ..." when detection succeeds
- Uses your configured voice and volume from Settings → Controls
- Leverages the new speak and short fields in stratagem data for natural pronunciation
- Example: "loadout: Orbital Laser, Railgun, Shield Pack, Resupply"
Code Quality Improvements
Based on extensive code review:
- Separated Debug UI - Debug views moved to dedicated LoadoutGridDebugViews.swift (excluded from Release builds)
- Optimized Vision Requests - Lazy initialization of Vision framework requests to avoid repeated allocations
- Thread Safety - Improved lock management with defer pattern; changed availableVoices from lazy var to let
- Centralized Configuration - Match weight defaults moved to HBConstants for easy tuning
- Shared Detection Pipeline - Extracted bottomLeftQuarterRect() helper to prevent logic drift between debug and production paths
- Safe Image Cropping - All cropping now uses ScreenCapture.cropClamped() to prevent out-of-bounds errors
Debug Mode (Development Builds Only)
When built in Debug configuration, Option+0 opens a debug window showing:
- Full screen capture and analysis quadrant with overlay rectangles
- Extracted icon tiles with match results
- Top 5 candidates per slot with feature print distances
- Weight Tuning Sliders - Adjust IoU, Color, Hash, and FP weights in real-time to optimize matching
- OCR candidates with confidence scores and bounding boxes
Full Changelog: v1.1.2...v1.1.3