diff options
author | peter1138 <peter1138@openttd.org> | 2008-01-22 07:27:06 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2008-01-22 07:27:06 +0000 |
commit | ffec79bbcf36028bc676310c71a40b0b033e85c5 (patch) | |
tree | aa8442d483b420571317c63234db3640f7e6df7b /src/spritecache.cpp | |
parent | 9444eb4484e5691a52ddc458bd8b401c6e19571d (diff) | |
download | openttd-ffec79bbcf36028bc676310c71a40b0b033e85c5.tar.xz |
(svn r11940) -Codechange: Store short filename once per open file instead of once per sprite cache entry. Not all file types need this, but most of the time no sprite cache entry needed it either.
Diffstat (limited to 'src/spritecache.cpp')
-rw-r--r-- | src/spritecache.cpp | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 48c4d67e2..0db889946 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -24,7 +24,6 @@ uint _sprite_cache_size = 4; struct SpriteCache { void *ptr; - const char *grf_name; uint32 id; uint32 file_pos; uint16 file_slot; @@ -143,7 +142,7 @@ static void* ReadSprite(SpriteCache *sc, SpriteID id, bool real_sprite) SpriteLoaderPNG sprite_loader; SpriteLoader::Sprite sprite; - if (sprite_loader.LoadSprite(&sprite, sc->grf_name, 0, sc->id)) { + if (sprite_loader.LoadSprite(&sprite, file_slot, sc->id)) { sc->ptr = BlitterFactoryBase::GetCurrentBlitter()->Encode(&sprite, &AllocSprite); free(sprite.data); @@ -230,7 +229,7 @@ static void* ReadSprite(SpriteCache *sc, SpriteID id, bool real_sprite) SpriteLoaderGrf sprite_loader; SpriteLoader::Sprite sprite; - if (!sprite_loader.LoadSprite(&sprite, sc->grf_name, file_slot, file_pos)) return NULL; + if (!sprite_loader.LoadSprite(&sprite, file_slot, file_pos)) return NULL; if (id == 142) sprite.height = 10; // Compensate for a TTD bug sc->ptr = BlitterFactoryBase::GetCurrentBlitter()->Encode(&sprite, &AllocSprite); free(sprite.data); @@ -257,19 +256,6 @@ bool LoadNextSprite(int load_index, byte file_slot, uint file_sprite_id) sc->lru = 0; sc->id = file_sprite_id; - const char *fio_grf_name = FioGetFilename(); - const char *t = strrchr(fio_grf_name, PATHSEPCHAR); - char *grf_name; - if (t == NULL) grf_name = strdup(fio_grf_name); - else grf_name = strdup(t); - /* Make the string lowercase and strip extension */ - char *t2 = strrchr(grf_name, '.'); - if (t2 != NULL) *t2 = '\0'; - strtolower(grf_name); - - free((char *)sc->grf_name); - sc->grf_name = grf_name; - return true; } @@ -283,8 +269,6 @@ void DupSprite(SpriteID old_spr, SpriteID new_spr) scnew->file_pos = scold->file_pos; scnew->ptr = NULL; scnew->id = scold->id; - free((char *)scnew->grf_name); - scnew->grf_name = strdup(scold->grf_name); } @@ -493,7 +477,6 @@ void GfxInitSpriteMem() NextBlock(_spritecache_ptr)->size = 0; /* Reset the spritecache 'pool' */ - for (uint i = 0; i < _spritecache_items; i++) free((char *)_spritecache[i].grf_name); free(_spritecache); _spritecache_items = 0; _spritecache = NULL; |