public void LoadModel(string filename)
        {
            ready = false;
            GL.ActiveTexture(TextureUnit.Texture0);

            this.filename = filename;
            try
            {
                if (filename.EndsWith(".m2"))
                {
                    if (!cache.doodadBatches.ContainsKey(filename))
                    {
                        M2Loader.LoadM2(filename, cache, m2ShaderProgram);
                    }

                    if (!cache.doodadBatches.ContainsKey(filename))
                    {
                        return;
                    }

                    ActiveCamera.Pos = new Vector3((cache.doodadBatches[filename].boundingBox.max.Z) + 11.0f, 0.0f, 4.0f);
                    modelType        = "m2";

                    ready = true;
                }
                else if (filename.EndsWith(".wmo"))
                {
                    if (!cache.worldModels.ContainsKey(filename))
                    {
                        WMOLoader.LoadWMO(filename, cache, wmoShaderProgram);
                    }
                    modelType = "wmo";

                    ready = true;
                }
            }catch (Exception e)
            {
                Logger.WriteLine("Error occured when loading model " + filename + ": " + e.StackTrace);
            }

            ActiveCamera.ResetCamera();
        }
        public void LoadModel(string fileName)
        {
            GL.ActiveTexture(TextureUnit.Texture0);

            try
            {
                if (fileName.EndsWith(".m2"))
                {
                    var m2 = M2Loader.LoadM2(fileName, m2ShaderProgram);
                    activeObject     = new M2Container(m2, fileName);
                    ActiveCamera.Pos = new Vector3((m2.boundingBox.max.Z) + 11.0f, 0.0f, 4.0f);
                }
                else if (fileName.EndsWith(".wmo"))
                {
                    activeObject = new WMOContainer(WMOLoader.LoadWMO(fileName, wmoShaderProgram), fileName);
                }
            }
            catch (Exception e)
            {
                Logger.WriteLine("Error occured when loading model " + fileName + ": " + e.StackTrace);
            }

            ActiveCamera.ResetCamera();
        }