unsigned int YCTextureIDUtil::encode(E_TEXTURE_TYPE type, const char* filename)
{
	SMART_ASSERT(filename != NULL);

	if      (type == TEXTURE_MAP)       return encodeTilesMapId(filename);
	else if (type == TEXTURE_SHAREDMAP) return encodeSharedMapId(filename);
	else if (type == TEXTURE_OBSTACLE)  return encodeObstacleId(filename);
	else if (type == TEXTURE_NPC)       return encodeNPCId(filename);
	else if (type == TEXTURE_PLAYER)    return encodePlayerId(filename);
	else if (type == TEXTURE_MONSTER)   return encodeMonsterId(filename);
	else if (type == TEXTURE_EFFECT)    return encodeEffectId(filename);
	else if (type == TEXTURE_UI)        return encodeUIId(filename);
	else                                throw YCException(2002, "未知纹理编号!"); 

	return 0;
}
dtObstacleRef dtTileCache::getObstacleRef(const dtTileCacheObstacle* ob) const
{
	if (!ob) return 0;
	const unsigned int idx = ob - m_obstacles;
	return encodeObstacleId(ob->salt, idx);
}