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()); } } }