/// <summary> /// Mod_LoadBrushModel /// </summary> public void LoadBrushModel(BrushModelData mod, Byte[] buffer) { mod.Load(mod.Name, buffer, (tx) => { if (tx.name != null && tx.name.StartsWith("sky")) // !Q_strncmp(mt->name,"sky",3)) { Host.RenderContext.WarpableTextures.InitSky(tx); } else { tx.texture = BaseTexture.FromBuffer(Host.Video.Device, tx.name, new ByteArraySegment(tx.pixels), ( Int32 )tx.width, ( Int32 )tx.height, true, true); } }, (textureFile) => { var lowerName = textureFile.ToLower( ); if (Host.WadTextures.ContainsKey(lowerName)) { var wadFile = Host.WadTextures[lowerName]; var wad = Host.WadFiles[wadFile]; return(wad.GetLumpBuffer(textureFile)); } return(null); }); // // set up the submodels (FIXME: this is confusing) // for (var i = 0; i < mod.NumSubModels; i++) { mod.SetupSubModel(ref mod.SubModels[i]); if (i < mod.NumSubModels - 1) { // duplicate the basic information var name = "*" + (i + 1).ToString( ); CurrentModel = FindName(name, ModelType.mod_brush); CurrentModel.CopyFrom(mod); // *loadmodel = *mod; CurrentModel.Name = name; //strcpy (loadmodel->name, name); mod = ( BrushModelData )CurrentModel; //mod = loadmodel; } } }