goatcorp / XIVLauncher.Core

Cross-platform version of XIVLauncher, optimized for Steam Deck
GNU General Public License v3.0
130 stars 41 forks source link

Implement Integrity Check button #73

Open reiichi001 opened 1 year ago

reiichi001 commented 1 year ago

Implement the Integrity Check button from WPF app onto xlcore.

I had a botched PR for this back when we were monorepo, but the imgui modals weren't working with me, so I couldn't appropriately show the user that the task was in progress. It did generate the file if you waited the 5-10 minutes though. The only actually important part from it would be to handle path separators, but that will be in XIVLauncher.Common.

https://github.com/goatcorp/FFXIVQuickLauncher/pull/1055/files

Blooym commented 4 months ago

We've got this fully implemented now, right?

reiichi001 commented 3 months ago

No, xlcore does not have Integrity (non-destructive / reporting only) functionality, which differs from Repair (destructive / makes changes to the game install and files contained).

While repair has to include a file check of its own to function, it does that through CRC hashes. Integrity uses SHA256. They should always be in line with each other, but it's sometimes useful for a user to know if their install is tampered with without actively repairing it (ex: Textools usage, other file modifications, disk failure, etc).

This PR though is likely stale and needs to be redone. Part of the issue is that I'm not well-versed in imgui and making a modal or progress bar is a bit outside of my know-how. We should have some of the integrity functions already, as we check index hashes on launch. My old PR was to add an explicitly button and report like in WPF.