service: nfc: Don't tag amiibos as corrupted if they are loaded as read only

This commit is contained in:
Narr the Reg 2023-12-01 14:21:55 -06:00
parent 9dc9aaf4af
commit e40a2d2fd2

View file

@ -438,16 +438,16 @@ Result NfcDevice::Mount(NFP::ModelType model_type, NFP::MountTarget mount_target
is_corrupted = true; is_corrupted = true;
} }
if (!is_corrupted) { device_state = DeviceState::TagMounted;
mount_target = mount_target_;
if (!is_corrupted && mount_target != NFP::MountTarget::Rom) {
std::vector<u8> data(sizeof(NFP::EncryptedNTAG215File)); std::vector<u8> data(sizeof(NFP::EncryptedNTAG215File));
memcpy(data.data(), &encrypted_tag_data, sizeof(encrypted_tag_data)); memcpy(data.data(), &encrypted_tag_data, sizeof(encrypted_tag_data));
WriteBackupData(encrypted_tag_data.uuid, data); WriteBackupData(encrypted_tag_data.uuid, data);
} }
device_state = DeviceState::TagMounted; if (is_corrupted && mount_target != NFP::MountTarget::Rom) {
mount_target = mount_target_;
if (is_corrupted) {
bool has_backup = HasBackup(encrypted_tag_data.uuid).IsSuccess(); bool has_backup = HasBackup(encrypted_tag_data.uuid).IsSuccess();
return has_backup ? ResultCorruptedDataWithBackup : ResultCorruptedData; return has_backup ? ResultCorruptedDataWithBackup : ResultCorruptedData;
} }