using System; using XUtliPoolLib; namespace XMainClient { internal class XLoginStage : XStage { private EXStage _eOld = EXStage.Null; private bool _login_ready = false; private bool _ready = false; public XLoginStage() : base(EXStage.Login) { } public override void OnEnterStage(EXStage eOld) { base.OnEnterStage(eOld); CombineMeshTask.s_CombineMatType = ECombineMatType.EIndependent; XSingleton.singleton.DelayLoad = false; this._ready = false; XSingleton.singleton.LoadLoginUI(this._eStage); XSingleton.singleton.LoadAccount(); this._eOld = eOld; this._login_ready = false; XSingleton.singleton.Start("CutScene/first_slash_show", false, true); XLoginStep xloginStep = XSingleton.singleton.XLoginStep; if (xloginStep != XLoginStep.Begin) { if (xloginStep == XLoginStep.Login) { XSingleton.singleton.ShowLoginSelectServerUI(); } } else { XSingleton.singleton.ShowLoginUI(); } XSingleton.singleton.Uninit(); XQualitySetting.SetDofFade(0f); } public override void OnLeaveStage(EXStage eNew) { base.OnLeaveStage(eNew); XSingleton.singleton.UnloadLoginUI(); CombineMeshTask.s_CombineMatType = ECombineMatType.ECombined; XSingleton.singleton.DelayLoad = true; } public override void OnEnterScene(uint sceneid, bool transfer) { base.OnEnterScene(sceneid, transfer); CombineMeshTask.s_CombineMatType = ECombineMatType.EIndependent; XSingleton.singleton.DelayLoad = false; XSingleton.singleton.Start("CutScene/first_slash_show", false, true); } public override void Play() { this._ready = true; } public override void Update(float fDeltaT) { base.Update(fDeltaT); XSingleton.singleton.Update(); bool flag = (XSingleton.singleton.SDKSignOut || !this._login_ready) && XSingleton.singleton.SceneReady; if (flag) { bool sdksignOut = XSingleton.singleton.SDKSignOut; if (sdksignOut) { XSingleton.singleton.SetChannelByWakeUp(); } bool flag2 = XSingleton.singleton.Channel == XAuthorizationChannel.XAuthorization_Max; if (!flag2) { XSingleton.singleton.AutoAuthorization(true); } XSingleton.singleton.SDKSignOut = false; this._login_ready = true; } } public override void PostUpdate(float fDeltaT) { base.PostUpdate(fDeltaT); bool flag = this._ready && XSingleton.singleton.SceneReady; if (flag) { this._ready = false; XSingleton.singleton.SwitchTo(EXStage.SelectChar, 3u); } } } }