Exemple #1
0
    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;
                        }
                    }
                }
            }
        }