Texture *TextureSet::get_texture(const char *name, TextureType type) const
{
- std::map<std::string, Texture*>::const_iterator iter = data.find(name);
+ char *fname;
+ int nsize = datamap_path_size(name);
+ if(nsize) {
+ fname = (char*)alloca(nsize);
+ datamap_lookup(name, fname, nsize);
+ } else {
+ fname = (char*)name;
+ }
+
+ std::map<std::string, Texture*>::const_iterator iter = data.find(fname);
if(iter != data.end()) {
return iter->second;
}
Texture *res = create();
- data[name] = res;
+ data[fname] = res;
res->create_default(type);
- resman_lookup(rman, name, res);
+ resman_lookup(rman, fname, res);
return res;
}
bool TextureSet::load_tex(Texture *tex, const char *fname)
{
- char *pathbuf;
- int nsize = datamap_path_size(fname);
- if(nsize) {
- pathbuf = (char*)alloca(nsize);
- datamap_lookup(fname, pathbuf, nsize);
- } else {
- pathbuf = (char*)fname;
- }
-
Image *img = new Image;
- if(!img->load(pathbuf)) {
+ if(!img->load(fname)) {
delete img;
return false;
}