/// <summary>
        /// Loads a Daggerfall texture as a billboard.
        /// </summary>
        /// <param name="archive">Texture archive.</param>
        /// <param name="record">Texture record.</param>
        /// <param name="flat">Flat data.</param>
        public void LoadBillboard(DaggerfallBlockComponent.BlockFlat flat)
        {
            // Get path to texture file
            string path = Path.Combine(
                core.MaterialManager.Arena2Path,
                TextureFile.IndexToFileName(flat.Archive));

            // Get size and scale of this texture
            System.Drawing.Size size  = TextureFile.QuickSize(path, flat.Record);
            System.Drawing.Size scale = TextureFile.QuickScale(path, flat.Record);

            // Set start size
            Vector2 startSize;

            startSize.X = size.Width;
            startSize.Y = size.Height;

            // Apply scale
            Vector2 finalSize;
            int     xChange = (int)(size.Width * (scale.Width / BlocksFile.ScaleDivisor));
            int     yChange = (int)(size.Height * (scale.Height / BlocksFile.ScaleDivisor));

            finalSize.X = (size.Width + xChange);
            finalSize.Y = (size.Height + yChange);
            finalSize  *= ModelManager.GlobalScale;

            // Load material
            this.material = core.MaterialManager.CreateDaggerfallMaterialEffect(
                flat.Archive,
                flat.Record,
                null,
                MaterialManager.DefaultBillboardFlags);

            // Save settings
            this.size = finalSize;

            // Calcuate offset for correct positioning in scene
            if (flat.Dungeon)
            {
                this.offset = Vector3.Zero;
            }
            else
            {
                this.offset = new Vector3(0, (finalSize.Y / 2) - (4 * ModelManager.GlobalScale), 0);
            }

            // Set bounding sphere
            BoundingSphere sphere;

            sphere.Center = Vector3.Zero;
            if (finalSize.X > finalSize.Y)
            {
                sphere.Radius = finalSize.X / 2;
            }
            else
            {
                sphere.Radius = finalSize.Y / 2;
            }
            this.BoundingSphere = sphere;
        }
 /// <summary>
 /// Constructor to load billboard texture.
 /// </summary>
 /// <param name="core">Engine core.</param>
 /// <param name="archive">Texture archive index.</param>
 /// <param name="record">Texture record index.</param>
 /// <param name="flat">Flat data.</param>
 public DaggerfallBillboardComponent(DeepCore core, DaggerfallBlockComponent.BlockFlat flat)
     : base(core)
 {
     LoadBillboard(flat);
 }