|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to Ultimate Camera Mod are documented here. |
| 4 | + |
| 5 | +Format based on [Keep a Changelog](https://keepachangelog.com/). Versioning follows [Semantic Versioning](https://semver.org/). |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## [v3.1] - 2026-04-05 |
| 10 | + |
| 11 | +### Camera |
| 12 | +- **Lock-on auto-rotate toggle** - New checkbox in UCM Quick to disable camera snap-to-target when locking on. Prevents the camera from whipping around to face a target behind you. Discovered by [sillib1980](https://github.com/sillib1980). Sets `IsAutoRotate` and `IsTargetFixed` on lock-on camera sections. |
| 13 | + |
| 14 | +### God Mode |
| 15 | +- **Sacred God Mode overrides** - Values you edit in God Mode are now permanently protected from Quick/Fine Tune rebuilds. The camera rule engine skips any field you've explicitly touched. Your values stay exactly where you put them, no matter what happens in Quick or Fine Tune. Addresses issues #18, #20. |
| 16 | +- **Green sacred indicators** - Sacred values show in green in the God Mode grid (white = vanilla, gold = rules-modified, green = sacred/protected). Row count shows sacred count. |
| 17 | +- **"Sacred only" filter** - New filter option in God Mode dropdown to show only your protected values. |
| 18 | +- **Fine Tune slider locking** - Fine Tune sliders that control sacred God Mode values are greyed out with a green label and tooltip "Sacred -- controlled by God Mode". |
| 19 | +- **One-time sacred toast** - First God Mode edit on a managed preset shows a status message explaining the value is protected. |
| 20 | + |
| 21 | +### UI |
| 22 | +- **Version-aware upgrade overlay** - Existing users upgrading between versions (e.g. v3.0.2 to v3.1) now see a "What's new" overlay on first launch. Previously only triggered for users without tutorial_done.flag. |
| 23 | + |
| 24 | +### Bug Fixes |
| 25 | +- **Full Manual Control presets not installing edits** - Install was using the original vanilla XML from preset creation instead of rebuilding from current God Mode edits. God Mode changes on Full Manual Control presets now work correctly. |
| 26 | +- **God Mode overrides file polluted with CameraRules values** - `advanced_overrides.json` previously saved ALL values that differed from vanilla, including values set by CameraRules (not the user). Now only saves values the user explicitly edited. |
| 27 | +- **Fresh install showing upgrade overlay** - Startup created files (backups, preset dirs) before the fresh-install check ran, so it always detected "existing data". Detection now runs before any file creation. |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## [v3.0.2] - 2026-04-04 |
| 32 | + |
| 33 | +### UI |
| 34 | +- **In-app overlay dialogs** - All dialogs converted from Windows popups to themed in-app overlays (gold-bordered dark cards). X close button on all overlays (except fatal errors). No more Windows-style popups anywhere. |
| 35 | +- **Preset type selection** - New preset dialog with "Managed by UCM" and "Full Manual Control" cards. Feature tags show what's enabled (green ticks/red crosses). OR divider between options. |
| 36 | +- **Import type picker** - Cards with hover highlight instead of plain buttons. |
| 37 | +- **Import metadata dialog** - Textboxes enlarged (54px, 18px font, white text on dark background) for readability. |
| 38 | +- **Export dialog** - Removed redundant description under header. Auto-populates name, author, description, URL from active preset. |
| 39 | +- **Browse catalog cards** - Description/tags on left, Download/Nexus buttons on right. |
| 40 | +- **Game Default sidebar group** - Vanilla preset separated from UCM presets. |
| 41 | +- **Height slider** range extended to -1.6/1.5. |
| 42 | +- **Preset author text** enlarged in the active preset header. |
| 43 | +- **God Mode columns** - Fixed squished columns on first load with double-bind workaround. |
| 44 | +- **Camera preview** - Now updates immediately when switching presets. |
| 45 | +- **Error messages** - All major errors rewritten with clear, actionable guidance as overlay popups. |
| 46 | +- **First-run welcome overlay** - Verification prompt before tutorial. "No, close UCM" shuts down app. |
| 47 | +- **Game update warning** - Shows as overlay with Snooze/Dismiss instead of bottom strip. |
| 48 | +- **Fatal error overlay** - Unclosable overlay with "Close UCM" for critical errors (tainted backup, etc.). |
| 49 | + |
| 50 | +### Presets |
| 51 | +- **God Mode overrides persist across tabs** - Edits saved to `advanced_overrides.json` and re-applied when Quick/Fine Tune rebuilds. No more losing God Mode tweaks. |
| 52 | +- **Duplicate God Mode conversion** - When duplicating a God Mode preset, choose "Keep God Mode" or "Convert to UCM Managed" with warning about value changes. |
| 53 | +- **Raw XML import separation** - Imported XML/PAZ/mod manager presets are standalone with no UCM rules. Only God Mode editing available. |
| 54 | +- **Export writes `preset_mode`** - Exported .ucmpreset files preserve whether they're UCM managed or God Mode only. |
| 55 | +- **UCM presets can be deleted locally** - Re-download from catalog anytime. Rename still blocked. |
| 56 | +- **Community preset duplicates go to My Presets** - Instead of staying in the community_presets folder. |
| 57 | + |
| 58 | +### Catalog |
| 59 | +- **Community presets moved to main repo** - From separate `ucm-community-presets` repo to `community_presets/` folder. Single unified GitHub Actions workflow for both catalogs. |
| 60 | +- **New community presets** - Shoulder Camera (latranchedepain), Proper 3rd Person Camera (orangeees). |
| 61 | +- **All catalog URLs point to main branch** - Long-term stability. |
| 62 | +- **Workflow preserves existing SHAs** - Adding a new preset no longer changes SHAs of unchanged presets. No more false update icons. |
| 63 | +- **Raw byte downloads** - Both Browse and Update write raw bytes to preserve SHA hash for update detection. |
| 64 | + |
| 65 | +### Camera |
| 66 | +- **Game crash fix** - Removed Player_Interaction_LockOn and Interaction_LookAt from LockOnSections (modifying these NPC dialogue sections crashed the game). |
| 67 | +- **Game crash fix** - Removed unsafe byte-replacement fallback in ArchiveWriter that produced invalid XML. |
| 68 | +- **Vanilla validation relaxed** - June 2026 game patch added MaxZoomDistance=30 and XML comments to vanilla. Checks updated to only flag UCM-specific signatures. |
| 69 | +- **Auto-fix tainted backups** - Automatically deletes tainted backup AND 0.paz when validation fails. Steam verify alone doesn't restore modded files. |
| 70 | +- **God Mode attribute tooltips** - 54 attributes documented (up from 29). Covers interaction, blend, zoom, damping, and targeting. |
| 71 | + |
| 72 | +### Documentation |
| 73 | +- **Wiki** - 21 pages (11 user guide + 10 developer) published to GitHub Wiki tab with sidebar navigation. |
| 74 | + |
| 75 | +### Bug Fixes |
| 76 | +- **HShift slider staying gold on locked presets** - `ApplyCenteredLock` was re-enabling after lock. |
| 77 | +- **Community preset "View on Nexus" link not showing** - URL field past 4KB header. Fixed by ordering metadata before session_xml. |
| 78 | +- **Community preset update SHA mismatch** - Updates write raw bytes instead of re-serializing. |
| 79 | +- **False update icons after downloading** - Raw byte downloads preserve SHA hash. |
| 80 | +- **PAZ import from different game version** - Shows helpful overlay explaining PAMT version mismatch. |
| 81 | +- **Export missing `preset_mode`** - Exported files now include the correct mode tag. |
| 82 | +- **Vanilla validation false positive after game patch** - Relaxed checks for new vanilla values. |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## [v3.0.1] - 2026-04-03 |
| 87 | + |
| 88 | +### Added |
| 89 | +- **UCM preset catalog browser** - UCM style presets downloaded on demand via Browse button. Official presets hosted on v3-dev branch with auto-generated `catalog.json`. |
| 90 | +- **Preset update detection** - Background catalog check compares revision numbers. Outdated presets show update icon in sidebar. Update prompt offers to duplicate old version before downloading. |
| 91 | +- **Game Default sidebar group** - Vanilla preset separated into its own group. |
| 92 | +- **Community and UCM update detection** - SHA256 comparison against GitHub catalogs with pulsating update icons. |
| 93 | +- **Browse catalog redesign** - Cleaner card layout with description/tags on the left, Download and Nexus link buttons on the right. |
| 94 | + |
| 95 | +### Changed |
| 96 | +- **Style IDs renamed** - Old cryptic IDs (`western`, `cinematic`, `immersive`, `lowcam`, `vlowcam`, `ulowcam`, `re2`) replaced with self-documenting names (`heroic`, `panoramic`, `close-up`, `low-rider`, `knee-cam`, `dirt-cam`, `survival`). |
| 97 | +- **Definition-based UCM presets** - Presets stored as style definitions (style_id + settings), session XML baked locally from game files + current CameraRules. |
| 98 | +- **UCM Quick layout** - Custom Offsets and Global Settings side-by-side at top, camera previews side-by-side below. |
| 99 | +- **God Mode SECTION column** - Auto-stretches to fit window width. |
| 100 | +- **Live camera preview** - Shows selected preset name. |
| 101 | +- **Height slider** - Range extended to -1.6/1.5. |
| 102 | + |
| 103 | +### Fixed |
| 104 | +- **Game crash on load** - Removed `Player_Interaction_LockOn` and `Interaction_LookAt` from LockOnSections (modifying NPC dialogue camera sections caused crash). |
| 105 | +- **Game crash on load** - Removed unsafe byte-replacement fallback in ArchiveWriter that produced invalid XML. |
| 106 | +- **Session XML corruption** - Removed `JavaScriptEncoder.UnsafeRelaxedJsonEscaping` from preset serialization. |
| 107 | +- **Camera preview and FoV** - Now update immediately when switching presets. |
| 108 | +- **Community preset "View on Nexus" link** - No longer disappears after update. |
| 109 | +- **False update icons** - No longer show on all presets after download. |
| 110 | +- **Locked preset toast** - Now appears on Fine Tune and God Mode tabs. |
| 111 | +- **Steadycam tooltip** - Now shows on disabled sliders. |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +## [v3.0.0] - 2026-04-03 |
| 116 | + |
| 117 | +### Added |
| 118 | +- **Export-first workflow** - Tune camera in-app, export as JSON patch for mod managers. Direct PAZ install still available as secondary option. |
| 119 | +- **Three-tier editor** - UCM Quick (fast sliders), Fine Tune (curated deep control), God Mode (full raw XML editor with vanilla comparison). |
| 120 | +- **`.ucmpreset` file format** - Dedicated shareable preset files. |
| 121 | +- **Sidebar preset manager** - Collapsible grouped sections: Game Default, UCM Presets, Community Presets, My Presets, Imported. |
| 122 | +- **Multi-format export** - JSON (Mod Manager), XML, 0.paz, .ucmpreset with metadata fields. |
| 123 | +- **Community preset catalog** - Browse and download presets from GitHub directly in-app. |
| 124 | +- **Preset lock system** - UCM presets permanently locked, user presets toggleable via padlock icon. |
| 125 | +- **True Vanilla preset** - Decoded directly from game backup with no modifications. |
| 126 | +- **Lock-on zoom slider** - Replaces combat camera dropdown (-60% to +60%). |
| 127 | +- **Steadycam expanded** - 30+ camera states smoothed, individually tunable in Fine Tune. |
| 128 | +- **Lock-on distance scaling** - ZoomDistance values scale dynamically with chosen camera distance. |
| 129 | +- **Live camera + FoV preview** - Distance-aware top-down view with FoV cone. |
| 130 | +- **Game patch awareness** - Tracks install metadata, warns when game may have updated. |
| 131 | +- **Auto-save** - Changes to unlocked presets write back to file automatically. |
| 132 | +- **Auto-migration** - Legacy `.json` presets migrated to `.ucmpreset` on first launch. |
| 133 | + |
| 134 | +### Changed |
| 135 | +- **Value-edits only** - Removed structural XML injection from v2 (extra zoom levels, horse first-person, horse camera overhaul). Modifies only existing values for safer sharing across game patches. |
| 136 | + |
| 137 | +--- |
| 138 | + |
| 139 | +## [v2.5] - 2026-03-31 |
| 140 | + |
| 141 | +### Fixed |
| 142 | +- **European locale camera values** - `InvariantCulture` forced for all number formatting so decimal separators are always periods regardless of Windows locale. |
| 143 | + |
| 144 | +--- |
| 145 | + |
| 146 | +## [v2.4] - 2026-03-31 |
| 147 | + |
| 148 | +Incremental improvements and tuning. |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +## [v2.3] - 2026-03-31 |
| 153 | + |
| 154 | +Incremental improvements and tuning. |
| 155 | + |
| 156 | +--- |
| 157 | + |
| 158 | +## [v2.2] - 2026-03-31 |
| 159 | + |
| 160 | +### Added |
| 161 | +- Steadycam system |
| 162 | +- Extra zoom levels |
| 163 | +- Horse first person mode |
| 164 | +- Horizontal shift control |
| 165 | +- Universal FoV |
| 166 | +- Skill aiming consistency |
| 167 | +- Import XML support |
| 168 | +- Preset sharing |
| 169 | +- Update notifications |
| 170 | + |
| 171 | +--- |
| 172 | + |
| 173 | +## [v2.1] - 2026-03-30 |
| 174 | + |
| 175 | +### Added |
| 176 | +- Advanced editor with full XML parameter control |
| 177 | +- Export/import preset strings (`UCM:` and `UCM_ADV:` formats) |
| 178 | + |
| 179 | +--- |
| 180 | + |
| 181 | +## [v2.0] - 2026-03-30 |
| 182 | + |
| 183 | +### Changed |
| 184 | +- Complete rewrite from Python to C# WPF application |
| 185 | +- Single-file `.exe`, no installer required |
| 186 | + |
| 187 | +--- |
| 188 | + |
| 189 | +## [v1.5] - 2026-03-30 |
| 190 | + |
| 191 | +Initial public release (Python version). |
0 commit comments