Exemplo n.º 1
0
        public override void LoadFromSnapshot(LogicJSONObject jsonObject)
        {
            LogicLevel    level    = this.m_parent.GetLevel();
            LogicGameMode gameMode = level.GetGameMode();

            if (gameMode.GetVisitType() == 1 ||
                gameMode.GetVisitType() == 4 ||
                gameMode.GetVisitType() == 5)
            {
                int idx = 7;

                if (gameMode.GetVisitType() != 4 || !level.IsArrangedWar())
                {
                    int warLayout = level.GetWarLayout();

                    if (warLayout < 0 || !level.IsWarBase())
                    {
                        idx = level.GetActiveLayout();
                    }
                    else
                    {
                        idx = warLayout;
                    }
                }

                LogicJSONNumber xNumber = jsonObject.GetJSONNumber(this.GetLayoutVariableNameX(idx, false));
                LogicJSONNumber yNumber = jsonObject.GetJSONNumber(this.GetLayoutVariableNameY(idx, false));

                if (xNumber != null && yNumber != null)
                {
                    this.m_parent.SetInitialPosition(xNumber.GetIntValue() << 9, yNumber.GetIntValue() << 9);
                    Debugger.DoAssert(idx < 8, "Layout index out of bands");
                    this.m_layoutPosition[idx].Set(xNumber.GetIntValue(), yNumber.GetIntValue());
                }
            }
        }