From: RĂ©mi Verschelde Date: Mon, 23 Jan 2017 17:38:57 +0000 (+0100) Subject: Devtools: Prevent clothes from saving invalid path X-Git-Url: https://git.jsancho.org/?p=lugaru.git;a=commitdiff_plain;h=666c244c84b8fc7d1bf08fbac3ba8463411532ea Devtools: Prevent clothes from saving invalid path Fixes #59. --- diff --git a/Source/Devtools/ConsoleCmds.cpp b/Source/Devtools/ConsoleCmds.cpp index cfb2efd..5183b43 100644 --- a/Source/Devtools/ConsoleCmds.cpp +++ b/Source/Devtools/ConsoleCmds.cpp @@ -141,6 +141,22 @@ static void set_clothes(int pnum, const char* args) char buf[64]; snprintf(buf, 63, "Textures/%s.png", args); + const std::string file_path = Folders::getResourcePath(buf); + FILE* tfile; + tfile = fopen(file_path.c_str(), "rb"); + if (tfile == NULL) { + perror((std::string("Couldn't find file ") + file_path + " to assign as clothes").c_str()); + + // FIXME: Reduce code duplication with GameTick (should come from a Console class) + for (int k = 14; k >= 1; k--) { + consoletext[k] = consoletext[k - 1]; + } + consoletext[0] = std::string("Could not load the requested texture '") + args + "', aborting."; + consoleselected = 0; + + return; + } + int id = Person::players[pnum]->numclothes; strncpy(Person::players[pnum]->clothes[id], buf, 64); Person::players[pnum]->clothestintr[id] = tintr;