TextureContainer * TextureContainer::Load(const res::path & name, TCFlags flags) { // Check first to see if the texture is already loaded TextureContainer * newTexture = Find(name); if(newTexture) { // TODO don't we need to check the texture's systemflags? return newTexture; } // Allocate and add the texture to the linked list of textures; newTexture = new TextureContainer(name, flags); if(!newTexture) { return NULL; } newTexture->systemflags = flags; if(GLOBAL_EERIETEXTUREFLAG_LOADSCENE_RELEASE == -1) { newTexture->systemflags &= ~Level; } // Create a bitmap and load the texture file into it, if(!newTexture->LoadFile(name)) { delete newTexture; return NULL; } MakeUserFlag(newTexture); return newTexture; }