diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -40,7 +40,7 @@ static bool CalcGRFMD5Sum(GRFConfig *con size_t len; /* open the file */ - f = FioFOpenFile(config->full_path); + f = FioFOpenFile(config->filename); if (f == NULL) return false; /* calculate md5sum */ @@ -59,16 +59,11 @@ static bool CalcGRFMD5Sum(GRFConfig *con /* Find the GRFID and calculate the md5sum */ bool FillGRFDetails(GRFConfig *config, bool is_static) { - if (!FioCheckFileExists(config->full_path)) { + if (!FioCheckFileExists(config->filename)) { config->status = GCS_NOT_FOUND; return false; } - if (config->filename == NULL) { - const char *t = strrchr(config->full_path, PATHSEPCHAR); - config->filename = strdup(t != NULL ? t + 1 : config->full_path); - } - /* Find and load the Action 8 information */ /* 62 is the last file slot before sample.cat. * Should perhaps be some "don't care" value */ @@ -94,7 +89,6 @@ void ClearGRFConfig(GRFConfig **config) /* GCF_COPY as in NOT strdupped/alloced the filename, name and info */ if (!HASBIT((*config)->flags, GCF_COPY)) { free((*config)->filename); - free((*config)->full_path); free((*config)->name); free((*config)->info); @@ -134,7 +128,6 @@ GRFConfig **CopyGRFConfigList(GRFConfig GRFConfig *c = CallocT(1); *c = *src; if (src->filename != NULL) c->filename = strdup(src->filename); - if (src->full_path != NULL) c->full_path = strdup(src->full_path); if (src->name != NULL) c->name = strdup(src->name); if (src->info != NULL) c->info = strdup(src->info); if (src->error != NULL) { @@ -265,9 +258,7 @@ compatible_grf: * already a local one, so there is no need to replace it. */ if (!HASBIT(c->flags, GCF_COPY)) { free(c->filename); - free(c->full_path); c->filename = strdup(f->filename); - c->full_path = strdup(f->full_path); memcpy(c->md5sum, f->md5sum, sizeof(c->md5sum)); if (c->name == NULL && f->name != NULL) c->name = strdup(f->name); if (c->info == NULL && f->info != NULL) c->info = strdup(f->info); @@ -314,7 +305,7 @@ static uint ScanPath(const char *path, i if (strcasecmp(ext, ".grf") != 0) continue; GRFConfig *c = CallocT(1); - c->full_path = strdup(filename + basepath_length); + c->filename = strdup(filename + basepath_length); bool added = true; if (FillGRFDetails(c, false)) { @@ -341,7 +332,6 @@ static uint ScanPath(const char *path, i /* File couldn't be opened, or is either not a NewGRF or is a * 'system' NewGRF or it's already known, so forget about it. */ free(c->filename); - free(c->full_path); free(c->name); free(c->info); free(c);