private void promoteAvatarToDrawable(List<DrawableAvatar> drawables,
    	int x, int y, int width, int height, int offset) {

        double spacing = offset * avatarSpacing;
        double avatarPosition = this.avatarPosition + spacing;

        if (avatarIndex + offset < 0 ||
            avatarIndex + offset >= avatars.size()) {
            return;
        }

        int avatarWidth = displayWidth;
        int avatarHeight = displayHeight;

        double result = computeModifier(avatarPosition);
        int newWidth = (int)(avatarWidth * result);
        if(newWidth == 0)
            return;
        int newHeight = (int)(avatarHeight * result);
        if(newHeight == 0)
            return;

        double avatar_x = x + (width - newWidth) / 2.0;
        double avatar_y = y + (height - newHeight / 2.0) / 2.0;

        double semiWidth = width / 2.0;
        avatar_x += avatarPosition * semiWidth;

        if (avatar_x >= width || avatar_x < -newWidth) {
            return;
        }

        drawables.add(new DrawableAvatar(avatarIndex + offset,
        	avatar_x, avatar_y,  newWidth, newHeight, avatarPosition, result));
    }