diff options
author | rubidium <rubidium@openttd.org> | 2009-08-26 20:26:40 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-08-26 20:26:40 +0000 |
commit | 984efae368da7a7a7e5090820ef31c9c3a678670 (patch) | |
tree | 11323bd20267db20ec28f3fca8fdb49033ced626 /src/base_media_func.h | |
parent | 57a05d693314c816220b47e9a79974192d919fc2 (diff) | |
download | openttd-984efae368da7a7a7e5090820ef31c9c3a678670.tar.xz |
(svn r17291) -Fix [FS#3147]: crash after upgrading base graphics/sound set when opening the game options menu and you were using the upgraded set
Diffstat (limited to 'src/base_media_func.h')
-rw-r--r-- | src/base_media_func.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/base_media_func.h b/src/base_media_func.h index 2117d7ff9..40d154d65 100644 --- a/src/base_media_func.h +++ b/src/base_media_func.h @@ -159,6 +159,11 @@ bool BaseMedia<Tbase_set>::AddFile(const char *filename, size_t basepath_length) /* 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; |