(svn r20066) -Fix: When rescanning NewGRFs resp. after content download also check whether compatible grfs are available now.

pull/155/head
frosch 14 years ago
parent 2105d5e187
commit df14436b7b

@ -713,20 +713,20 @@ struct NewGRFWindow : public QueryStringBaseWindow {
case 1:
/* Search the list for items that are now found and mark them as such. */
for (GRFConfig *c = this->actives; c != NULL; c = c->next) {
if (c->status != GCS_NOT_FOUND) continue;
for (GRFConfig **l = &this->actives; *l != NULL; l = &(*l)->next) {
GRFConfig *c = *l;
bool compatible = HasBit(c->flags, GCF_COMPATIBLE);
if (c->status != GCS_NOT_FOUND && !compatible) continue;
const GRFConfig *f = FindGRFConfig(c->ident.grfid, c->ident.md5sum);
const GRFConfig *f = FindGRFConfig(c->ident.grfid, compatible ? c->original_md5sum : c->ident.md5sum);
if (f == NULL) continue;
free(c->filename);
free(c->name);
free(c->info);
*l = DuplicateGRFConfig(f);
(*l)->next = c->next;
c->filename = f->filename == NULL ? NULL : strdup(f->filename);
c->name = f->name == NULL ? NULL : strdup(f->name);
c->info = f->info == NULL ? NULL : strdup(f->info);
c->status = GCS_UNKNOWN;
if (active_sel == c) active_sel = *l;
delete c;
}
/* Fall through. */
case 4:

Loading…
Cancel
Save