better main
All checks were successful
Linux arm64 / Build (push) Successful in 12m32s

This commit is contained in:
2025-06-19 19:13:43 +02:00
parent b17a40fda5
commit 34d781fcfe
10 changed files with 227 additions and 150 deletions

View File

@@ -27,41 +27,41 @@ Settings::Settings(bool loadPieces) {
this->loadSettingsFromFile(loadPieces, {});
}
void Settings::loadPieces(int maximumPiecesSizeRequest) {
if (maximumPiecesSizeRequest < MINIMUM_PIECES_SIZE) {
maximumPiecesSizeRequest = MINIMUM_PIECES_SIZE;
void Settings::loadPieces(int loadablePiecesSizeRequest) {
if (loadablePiecesSizeRequest < MINIMUM_PIECES_SIZE) {
loadablePiecesSizeRequest = MINIMUM_PIECES_SIZE;
}
else if (maximumPiecesSizeRequest > MAXIMUM_PIECES_SIZE) {
maximumPiecesSizeRequest = MAXIMUM_PIECES_SIZE;
else if (loadablePiecesSizeRequest > MAXIMUM_PIECES_SIZE) {
loadablePiecesSizeRequest = MAXIMUM_PIECES_SIZE;
}
bool succeeded = true;
int i = 1;
while (succeeded && (i <= maximumPiecesSizeRequest)) {
while (succeeded && (i <= loadablePiecesSizeRequest)) {
succeeded = this->menu.getPiecesList().loadPieces(i);
i++;
}
if (succeeded) {
this->maximumPiecesSize = maximumPiecesSizeRequest;
this->loadablePiecesSize = loadablePiecesSizeRequest;
}
this->loadedPieces = succeeded;
}
void Settings::loadSettingsFromFile(bool loadPieces, std::optional<int> maximumPiecesSizeRequest) {
void Settings::loadSettingsFromFile(bool loadPieces, std::optional<int> loadablePiecesSizeRequest) {
std::ifstream settingsFile("data/config/settings.bin", std::ios::binary);
char byte;
// file format version
settingsFile.get(byte);
// maximum pieces size
// loadable pieces size
settingsFile.get(byte);
this->maximumPiecesSize = byte;
this->loadablePiecesSize = byte;
if (loadPieces) {
if (maximumPiecesSizeRequest.has_value()) {
this->loadPieces(maximumPiecesSizeRequest.value());
if (loadablePiecesSizeRequest.has_value()) {
this->loadPieces(loadablePiecesSizeRequest.value());
}
else {
this->loadPieces(byte);
@@ -165,8 +165,8 @@ void Settings::saveSettingsToFile() const {
byte = CURRENT_FILE_FORMAT_VERSION;
settingsFile.write(&byte, 1);
// maximum pieces size
byte = this->maximumPiecesSize;
// loadable pieces size
byte = this->loadablePiecesSize;
settingsFile.write(&byte, 1);
// keybind layout
@@ -321,7 +321,7 @@ void Settings::confirmSelectedPieces() {
int size = getSizeOfPieces(type);
if (size == 0) {
if (!(value > this->maximumPiecesSize)) {
if (!(value > this->loadablePiecesSize)) {
switch (type) {
case CONVEX_PIECES : {this->menu.getPiecesList().selectConvexPieces(value); break;}
case HOLELESS_PIECES : {this->menu.getPiecesList().selectHolelessPieces(value); break;}
@@ -332,7 +332,7 @@ void Settings::confirmSelectedPieces() {
}
}
else {
if (!(getSizeOfPieces(type) > this->maximumPiecesSize)) {
if (!(getSizeOfPieces(type) > this->loadablePiecesSize)) {
this->menu.getPiecesList().selectPiece(size, value);
selectedNone = false;
}
@@ -347,7 +347,7 @@ void Settings::confirmSelectedPieces() {
bool Settings::increaseDistribution(int size) {
if (!this->loadedPieces) return false;
if (size < 1 || size > this->maximumPiecesSize) return false;
if (size < 1 || size > this->loadablePiecesSize) return false;
if (this->distributions.at(size) < DISTRIBUTION_MAX) {
this->distributions.at(size)++;
@@ -358,7 +358,7 @@ bool Settings::increaseDistribution(int size) {
bool Settings::decreaseDistribution(int size) {
if (!this->loadedPieces) return false;
if (size < 1 || size > this->maximumPiecesSize) return false;
if (size < 1 || size > this->loadablePiecesSize) return false;
if (this->distributions.at(size) > 0) {
this->distributions.at(size)--;
@@ -383,8 +383,8 @@ Keybinds& Settings::getKeybinds() {
return this->keybinds.at(this->chosenKeybinds);
}
int Settings::getMaximumPiecesSize() const {
return this->maximumPiecesSize;
int Settings::getLoadablePiecesSize() const {
return this->loadablePiecesSize;
}
bool Settings::hasLoadedPieces() const {