コード例 #1
0
ファイル: VMapManager.cs プロジェクト: uvbs/CypherCore
        public WorldModel AcquireModelInstance(string filename, uint flags = 0)
        {
            lock (LoadedModelFilesLock)
            {
                filename = filename.TrimEnd('\0');
                var model = iLoadedModelFiles.LookupByKey(filename);
                if (model == null)
                {
                    WorldModel worldmodel = new WorldModel();
                    if (!worldmodel.ReadFile(VMapPath + filename))
                    {
                        Log.outError(LogFilter.Server, "VMapManager: could not load '{0}'", filename);
                        return(null);
                    }

                    Log.outDebug(LogFilter.Maps, "VMapManager: loading file '{0}'", filename);

                    worldmodel.Flags = flags;

                    model = new ManagedModel();
                    model.SetModel(worldmodel);

                    iLoadedModelFiles.Add(filename, model);
                }
                model.IncRefCount();
                return(model.GetModel());
            }
        }