@@ -156,12 +156,17 @@ bool BaseMedia<Tbase_set>::AddFile(const
*prev = set;
set->next = duplicate->next;
/* don't allow recursive delete of all remaining items */
duplicate->next = NULL;
/* If the duplicate set is currently used (due to rescanning this can happen)
* update the currently used set to the new one. This will 'lie' about the
* version number until a new game is started which isn't a big problem */
if (BaseMedia<Tbase_set>::used_set == duplicate) BaseMedia<Tbase_set>::used_set = set;
DEBUG(grf, 1, "Removing %s (%i) as base " SET_TYPE " set (duplicate)", duplicate->name, duplicate->version);
delete duplicate;
ret = true;
}
} else {
Tbase_set **last = &BaseMedia<Tbase_set>::available_sets;
@@ -97,16 +97,18 @@ public:
AI::Rescan();
InvalidateWindowClasses(WC_AI_DEBUG);
break;
case CONTENT_TYPE_BASE_GRAPHICS:
BaseGraphics::FindSets();
InvalidateWindow(WC_GAME_OPTIONS, 0);
case CONTENT_TYPE_BASE_SOUNDS:
BaseSounds::FindSets();
case CONTENT_TYPE_NEWGRF:
ScanNewGRFFiles();
/* Yes... these are the NewGRF windows */
InvalidateWindowClasses(WC_SAVELOAD);
Status change: