fix les gros polyos

This commit is contained in:
2025-03-31 11:25:23 +02:00
parent f4b58fb67e
commit 6bff555cbc
2 changed files with 31 additions and 5 deletions

View File

@@ -82,12 +82,25 @@ void Settings::loadSettingsFromFile() {
// selected pieces
char pieceType;
char pieceValue;
char lowByte;
char midByte;
char highByte;
this->selectedPieces.clear();
while (settingsFile.get(pieceType)) {
if (settingsFile.eof()) break;
settingsFile.get(pieceValue);
this->selectedPieces.push_back({PiecesType(pieceType), pieceValue});
if (getSizeOfPieces(PiecesType(pieceType)) == 0) {
settingsFile.get(pieceValue);
this->selectedPieces.emplace_back(PiecesType(pieceType), pieceValue);
}
else {
settingsFile.get(lowByte);
settingsFile.get(midByte);
settingsFile.get(highByte);
int pieceNumber = ((unsigned char) lowByte) + ((unsigned char) midByte << 8) + ((unsigned char) highByte << 16);
this->selectedPieces.emplace_back(PiecesType(pieceType), pieceNumber);
}
}
this->confirmSelectedPieces();
}
@@ -147,8 +160,18 @@ void Settings::saveSettingsToFile() const {
for (const auto& [type, value] : this->selectedPieces) {
byte = type;
settingsFile.write(&byte, 1);
byte = value;
settingsFile.write(&byte, 1);
if (getSizeOfPieces(type) == 0) {
byte = value;
settingsFile.write(&byte, 1);
}
else {
int number = value;
for (int i = 0; i < 3; i++) {
byte = (number % 256);
settingsFile.write(&byte, 1);
number = (number >> 8);
}
}
}
}