public void Load(string LEVname) { _lev = Asset.LoadCached<LEV>(LEVname + ".LEV"); _pal = Asset.LoadCached<PAL>(_lev.Palette.ToUpper()); _cmp = Asset.LoadCached<CMP>(LEVname + ".CMP"); _game.SolidCMP.SetTexture("_PAL", _pal.Texture); _game.SolidCMP.SetTexture("_CMP", _cmp.Texture); BM.CreateArgs bmCreateArgs = new BM.CreateArgs(); bmCreateArgs.Pal = _pal; if (_game.EmulateCMPShading) { bmCreateArgs.TextureFormat = TextureFormat.Alpha8; bmCreateArgs.AnisoLevel = 0; bmCreateArgs.FilterMode = FilterMode.Point; bmCreateArgs.bMipmap = false; } else { bmCreateArgs.TextureFormat = TextureFormat.RGBA32; bmCreateArgs.AnisoLevel = 9; bmCreateArgs.FilterMode = FilterMode.Trilinear; bmCreateArgs.bMipmap = true; } foreach (var texName in _lev.Textures) { try { BM bm = Asset.LoadCached<BM>(texName.ToUpper(), bmCreateArgs); _textures.Add(bm); if (_defaultTexture == null) { _defaultTexture = bm; } } catch (System.IO.FileNotFoundException) { _textures.Add(null); } } GenerateSectors(); }
void OnEnable() { _files = new Files(); _views = new List<GOBResourceViewer>(); _files.Initialize(); // PAL to use using (PAL pal = Asset.New("RAMSHED.PAL", _files.Load("RAMSHED.PAL"), Asset.Type.PAL, null) as PAL) { BM.CreateArgs bmCreateArgs = new BM.CreateArgs(); bmCreateArgs.FilterMode = FilterMode.Point; bmCreateArgs.bMipmap = false; bmCreateArgs.AnisoLevel = 0; bmCreateArgs.Pal = pal; foreach (var gob in _files.GOBs) { foreach (var file in gob.Files) { switch (Asset.TypeForName(file.Name)) { case Asset.Type.BM: _views.Add(new GOBBMViewer(Asset.Load(file, bmCreateArgs) as BM)); break; case Asset.Type.FME: _views.Add(new GOBFMEViewer(Asset.Load(file, bmCreateArgs) as FME)); break; } } } } }