Afegits uns overrides pa agafar parametres per linea de comandos

This commit is contained in:
2024-10-21 17:46:05 +02:00
parent 2cb22ed013
commit 84238032e0
6 changed files with 61 additions and 22 deletions
+9 -13
View File
@@ -60,19 +60,19 @@ void ManageHiScoreTable::sort()
bool ManageHiScoreTable::loadFromFile(const std::string &file_path)
{
clear();
auto success = true;
auto file = SDL_RWFromFile(file_path.c_str(), "r+b");
if (file)
{
const std::string file_name = file_path.substr(file_path.find_last_of("\\/") + 1);
std::cout << "Reading file: " << file_name.c_str() << std::endl;
for (int i = 0; i < (int)table_->size(); ++i)
std::cout << "Reading file: " << file_name << std::endl;
for (auto &entry : *table_)
{
int nameSize = 0;
if (SDL_RWread(file, &table_->at(i).score, sizeof(int), 1) == 0)
if (SDL_RWread(file, &entry.score, sizeof(int), 1) == 0)
{
success = false;
break;
@@ -84,19 +84,15 @@ bool ManageHiScoreTable::loadFromFile(const std::string &file_path)
break;
}
char *name = static_cast<char *>(malloc(nameSize + 1));
if (SDL_RWread(file, name, sizeof(char) * nameSize, 1) == 0)
std::vector<char> nameBuffer(nameSize + 1);
if (SDL_RWread(file, nameBuffer.data(), sizeof(char) * nameSize, 1) == 0)
{
success = false;
free(name);
break;
}
else
{
name[nameSize] = 0;
table_->at(i).name = name;
free(name);
}
nameBuffer[nameSize] = '\0';
entry.name = std::string(nameBuffer.data());
}
SDL_RWclose(file);