Beispiel #1
0
        public void Initialize(StateInitDesc initDesc)
        {
            Kernel          = initDesc.Kernel;
            _dataContent    = initDesc.DataContent;
            _archiveManager = initDesc.ArchiveManager;
            _graphics       = initDesc.GraphicsDevice;
            _input          = initDesc.InputManager;
            _stateChange    = initDesc.StateChange;
            _shader         = new KingdomShader(initDesc.ContentManager);
            _camera         = new Camera()
            {
                CameraPosition             = new Vector3(0, 100, 200),
                CameraRotationYawPitchRoll = new Vector3(90, 0, 10),
            };
            _menuState = new MenuState(this);

            Kernel.World    = initDesc.StateSettings.GetInt("WorldId", Kernel.World);
            Kernel.Area     = initDesc.StateSettings.GetInt("PlaceId", Kernel.Area);
            Kernel.Entrance = initDesc.StateSettings.GetInt("SpawnId", Kernel.Entrance);
            Field           = new Kh2Field(
                Kernel,
                _camera,
                initDesc.StateSettings,
                _graphics.GraphicsDevice,
                _shader,
                _input);

            BasicallyForceToReloadEverything();
            _menuState.Initialize(initDesc);
        }
Beispiel #2
0
        public void Initialize(StateInitDesc initDesc)
        {
            Kernel          = initDesc.Kernel;
            _dataContent    = initDesc.DataContent;
            _archiveManager = initDesc.ArchiveManager;
            _graphics       = initDesc.GraphicsDevice;
            _input          = initDesc.InputManager;
            _stateChange    = initDesc.StateChange;
            _shader         = new KingdomShader(initDesc.ContentManager);
            _camera         = new Camera()
            {
                CameraPosition             = new Vector3(0, 100, 200),
                CameraRotationYawPitchRoll = new Vector3(90, 0, 10),
            };
            _menuState      = new MenuState(this);
            _worldId        = initDesc.StateSettings.GetInt("WorldId", 2);
            _placeId        = initDesc.StateSettings.GetInt("PlaceId", 4);
            _spawnId        = initDesc.StateSettings.GetInt("SpawnId", 99);
            _spawnScriptMap = initDesc.StateSettings.GetInt("SpawnScriptMap", 0x06);
            _spawnScriptBtl = initDesc.StateSettings.GetInt("SpawnScriptBtl", 0x01);
            _spawnScriptEvt = initDesc.StateSettings.GetInt("SpawnScriptEvt", 0x16);

            BasicallyForceToReloadEverything();
            _menuState.Initialize(initDesc);
        }
Beispiel #3
0
        public void Initialize(StateInitDesc initDesc)
        {
            _kernel         = initDesc.Kernel;
            _dataContent    = initDesc.DataContent;
            _archiveManager = initDesc.ArchiveManager;
            _graphics       = initDesc.GraphicsDevice;
            _input          = initDesc.InputManager;
            _shader         = new KingdomShader(initDesc.ContentManager);
            _camera         = new Camera()
            {
                CameraPosition             = new Vector3(0, 100, 200),
                CameraRotationYawPitchRoll = new Vector3(90, 0, 10),
            };

            BasicallyForceToReloadEverything();
        }
Beispiel #4
0
        public void Initialize(StateInitDesc initDesc)
        {
            Kernel          = initDesc.Kernel;
            _archiveManager = initDesc.ArchiveManager;
            InputManager    = initDesc.InputManager;
            _stateChange    = initDesc.StateChange;

            var viewport = initDesc.GraphicsDevice.GraphicsDevice.Viewport;

            _shader = new KingdomShader(initDesc.ContentManager);
            drawing = new MonoSpriteDrawing(initDesc.GraphicsDevice.GraphicsDevice, _shader);
            drawing.SetProjection(
                viewport.Width,
                viewport.Height,
                Global.ResolutionWidth,
                Global.ResolutionHeight,
                1.0f);

            if (Kernel.IsReMix)
            {
                _archiveManager.LoadArchive($"menu/{Kernel.Region}/titlejf.2ld");
            }
            _archiveManager.LoadArchive($"menu/{Kernel.Region}/title.2ld");
            _archiveManager.LoadArchive($"menu/{Kernel.Region}/save.2ld");

            _isTheaterModeUnlocked = false;
            if (Kernel.IsReMix)
            {
                if (_isTheaterModeUnlocked)
                {
                    _titleLayoutDesc = ReMixTheaterTitleLayout;
                }
                else
                {
                    _titleLayoutDesc = ReMixTitleLayout;
                }
            }
            else if (Kernel.RegionId == Kh2.Constants.RegionFinalMix)
            {
                if (_isTheaterModeUnlocked)
                {
                    _titleLayoutDesc = FinalMixTheaterTitleLayout;
                }
                else
                {
                    _titleLayoutDesc = FinalMixTitleLayout;
                }
            }
            else
            {
                _titleLayoutDesc = VanillaTitleLayout;
            }

            var messageContext = Kernel.SystemMessageContext;

            _messageRenderer = new Kh2MessageRenderer(drawing, messageContext);

            IEnumerable <ISpriteTexture> images;

            (_titleLayout, images) = GetLayoutResources("titl", "titl");

            layoutRendererBg = new LayoutRenderer(_titleLayout, drawing, images);
            layoutRendererFg = new LayoutRenderer(_titleLayout, drawing, images);
            layoutRendererBg.SelectedSequenceGroupIndex = _titleLayoutDesc.Copyright;
            _sequenceRendererMenu = new SequenceRenderer(_titleLayout.SequenceItems[0], drawing, images.First());

            Log.Info($"Theater={_titleLayoutDesc.HasTheater}");
            if (_titleLayoutDesc.HasTheater)
            {
                (_theaterLayout, images) = GetLayoutResources("even", "even");
                layoutRendererTheater    = new LayoutRenderer(_theaterLayout, drawing, images);
            }


            SetOption(0);
        }
Beispiel #5
0
        public void Initialize(StateInitDesc initDesc)
        {
            _kernel         = initDesc.Kernel;
            _content        = initDesc.DataContent;
            _archiveManager = initDesc.ArchiveManager;
            Input           = initDesc.Input;

            var viewport = initDesc.GraphicsDevice.GraphicsDevice.Viewport;

            _shader  = new KingdomShader(initDesc.ContentManager);
            _drawing = new MonoSpriteDrawing(initDesc.GraphicsDevice.GraphicsDevice, _shader);
            _drawing.SetProjection(
                viewport.Width,
                viewport.Height,
                Global.ResolutionWidth,
                Global.ResolutionHeight,
                1.0f);
            initDesc.GraphicsDevice.GraphicsDevice.DepthStencilState = new Microsoft.Xna.Framework.Graphics.DepthStencilState
            {
                DepthBufferEnable = false,
                StencilEnable     = false,
            };

            var messageContext = _kernel.SystemMessageContext;

            _messageRenderer = new Kh2MessageRenderer(_drawing, messageContext);

            _archiveManager.LoadArchive($"menu/{_kernel.Region}/camp.2ld");
            (_campLayout, _textures) = GetLayoutResources("camp", "camp");
            _layoutRenderer          = new LayoutRenderer(_campLayout, _drawing, _textures)
            {
                SelectedSequenceGroupIndex = 0
            };

            SequenceFactory = new AnimatedSequenceFactory(
                _drawing,
                initDesc.Kernel.MessageProvider,
                _messageRenderer,
                _kernel.SystemMessageContext.Encoder,
                _campLayout.SequenceItems[1],
                _textures.First());

            _backgroundSeq = SequenceFactory.Create(new List <AnimatedSequenceDesc>
            {
                new AnimatedSequenceDesc
                {
                    SequenceIndexStart = 107,
                    SequenceIndexLoop  = 108,
                    SequenceIndexEnd   = 109,
                },
                new AnimatedSequenceDesc
                {
                    SequenceIndexStart = 110,
                    SequenceIndexLoop  = 111,
                    SequenceIndexEnd   = 112,
                },
                new AnimatedSequenceDesc
                {
                    SequenceIndexStart = 113,
                    SequenceIndexLoop  = 114,
                    SequenceIndexEnd   = 115,
                }
            });
            _subMenuDescriptionSeq = SequenceFactory.Create(new List <AnimatedSequenceDesc>());
        }
Beispiel #6
0
        public void Initialize(StateInitDesc initDesc)
        {
            _kernel         = initDesc.Kernel;
            _archiveManager = initDesc.ArchiveManager;
            _inputManager   = initDesc.InputManager;
            _stateChange    = initDesc.StateChange;

            drawing = new MonoDrawing(initDesc.GraphicsDevice.GraphicsDevice, initDesc.ContentManager);
            var viewport = initDesc.GraphicsDevice.GraphicsDevice.Viewport;

            drawing.SetProjection(
                viewport.Width,
                viewport.Height,
                Global.ResolutionWidth,
                Global.ResolutionHeight,
                1.0f);

            cachedSurfaces = new Dictionary <string, IEnumerable <ISurface> >();

            if (_kernel.IsReMix)
            {
                _archiveManager.LoadArchive($"menu/{_kernel.Region}/titlejf.2ld");
            }
            _archiveManager.LoadArchive($"menu/{_kernel.Region}/title.2ld");
            _archiveManager.LoadArchive($"menu/{_kernel.Region}/save.2ld");

            _isTheaterModeUnlocked = false;
            if (_kernel.IsReMix)
            {
                if (_isTheaterModeUnlocked)
                {
                    _titleLayout = ReMixTheaterTitleLayout;
                }
                else
                {
                    _titleLayout = ReMixTitleLayout;
                }
            }
            else if (_kernel.RegionId == Constants.RegionFinalMix)
            {
                if (_isTheaterModeUnlocked)
                {
                    _titleLayout = FinalMixTheaterTitleLayout;
                }
                else
                {
                    _titleLayout = FinalMixTitleLayout;
                }
            }
            else
            {
                _titleLayout = VanillaTitleLayout;
            }

            layoutRendererBg = CreateLayoutRenderer("titl");
            layoutRendererFg = CreateLayoutRenderer("titl");
            layoutRendererBg.SelectedSequenceGroupIndex = _titleLayout.Copyright;

            if (_titleLayout.HasTheater)
            {
                layoutRendererTheater = CreateLayoutRenderer("even");
            }

            SetOption(0);
        }