Files
Dec2017-Script-Dump/Assembly-CSharp/RecRoom/Persistence/RoomPersistenceManager.cs
T
2026-06-04 11:42:34 +02:00

1960 lines
63 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using Google.Protobuf;
using Google.Protobuf.WellKnownTypes;
using RecNet;
using RecRoom.Protobuf;
using RecRoom.Sandbox;
using RecRoom.Tools;
using UnityEngine;
namespace RecRoom.Persistence
{
// Token: 0x02000BE0 RID: 3040
public class RoomPersistenceManager : NetworkedSingletonMonoBehaviour<RoomPersistenceManager>
{
// Token: 0x060174D3 RID: 95443 RVA: 0x00686A10 File Offset: 0x00684C10
private void LFLCHIGHIIA(bool GENGJBCDOGB)
{
this.AFMBNIGJAMG();
this.NIKLDPBCPHO = base.StartCoroutine(this.LMIJNNKPKJA(GENGJBCDOGB));
}
// Token: 0x060174D4 RID: 95444 RVA: 0x00686A2C File Offset: 0x00684C2C
private void DNIINPBHABB(string NOBAPCOKFIL)
{
this.NLHOMHODEKH.MEAINJPIECA(NOBAPCOKFIL);
}
// Token: 0x060174D5 RID: 95445 RVA: 0x00686A3C File Offset: 0x00684C3C
private void AFMBNIGJAMG()
{
if (this.MIFJNJPJNOP())
{
base.StopCoroutine(this.NIKLDPBCPHO);
this.NIKLDPBCPHO = null;
}
}
// Token: 0x060174D6 RID: 95446 RVA: 0x00686A5C File Offset: 0x00684C5C
private void Update()
{
this.BABIFJDNLFC.KHJKJGDBPMF();
this.FCEKOOFDJGM.DLBPEOILIFL();
}
// Token: 0x060174D7 RID: 95447 RVA: 0x00686A74 File Offset: 0x00684C74
private void EHJGEGEENMB()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(0);
}
}
// Token: 0x060174D8 RID: 95448 RVA: 0x00686A8C File Offset: 0x00684C8C
private IEnumerator MJGGJLHKBPL(bool GENGJBCDOGB, RoomPersistenceManager.BMPMAAMNNPJ JOINLHEALDL)
{
RoomPersistenceManager.EDGCHPHLBFA.MCPDFKAIGEN mcpdfkaigen = new RoomPersistenceManager.EDGCHPHLBFA.MCPDFKAIGEN();
mcpdfkaigen.PNDHCMIJLFP = this;
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, null, null, "Only the Master Client may save room data.");
yield break;
}
mcpdfkaigen.NNOPJFIPCLO = new DIEJEGFOIBF();
mcpdfkaigen.NNOPJFIPCLO.ALCFGFGJCHI = 1;
EHLBEFKJLHJ ehlbefkjlhj = PEDNLMAHGBP.KGKNIMECEKH;
mcpdfkaigen.NNOPJFIPCLO.MNDEJIOKCJK = LMBEHMFIOEN.OOCOFDALHOG(ehlbefkjlhj.KAPOBAEMBKL, ehlbefkjlhj.OOAECNOOFID);
mcpdfkaigen.NNOPJFIPCLO.BLMPACLLEPB = DateTime.UtcNow.ToTimestamp();
this.MEKJGLMJCGE.Clear();
mcpdfkaigen.MPLGGAAMDKL = global::UnityEngine.Object.FindObjectsOfType<PersistenceView>();
mcpdfkaigen.HHHBHKENMBJ = 0;
for (int i = 0; i < mcpdfkaigen.MPLGGAAMDKL.Length; i++)
{
if (mcpdfkaigen.MPLGGAAMDKL[i].AADHHMOLEOL)
{
mcpdfkaigen.HHHBHKENMBJ++;
base.StartCoroutine(mcpdfkaigen.MPLGGAAMDKL[i].PreSerialize(new Action(mcpdfkaigen.OJKNBNGGBEC)));
}
}
float realtimeSinceStartup = Time.realtimeSinceStartup;
while (mcpdfkaigen.HHHBHKENMBJ > 0)
{
yield return null;
}
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat("Preserialization complete in {0} seconds", new object[] { Time.realtimeSinceStartup - realtimeSinceStartup });
}
int num = 0;
RoomPersistenceManager.EDGCHPHLBFA.KMMCMJLHCNA kmmcmjlhcna = new RoomPersistenceManager.EDGCHPHLBFA.KMMCMJLHCNA();
kmmcmjlhcna.PNDHCMIJLFP = this;
kmmcmjlhcna.DOCPCEJLLAL = mcpdfkaigen;
kmmcmjlhcna.CIMNKHDEFOH = 0;
while (kmmcmjlhcna.CIMNKHDEFOH < mcpdfkaigen.MPLGGAAMDKL.Length)
{
if (mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].AADHHMOLEOL)
{
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat(mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH], "Serializing PersistanceView {0}", new object[] { mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].gameObject });
}
mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].Serialize(new PersistenceView.LJOBLBKHDAH(kmmcmjlhcna.OJKNBNGGBEC));
num++;
if (num >= 10)
{
yield return null;
num = 0;
}
}
kmmcmjlhcna.CIMNKHDEFOH++;
}
List<string> list = new List<string>(this.MEKJGLMJCGE);
JOINLHEALDL(true, mcpdfkaigen.NNOPJFIPCLO, list, null);
yield break;
}
// Token: 0x060174D9 RID: 95449 RVA: 0x00686AB8 File Offset: 0x00684CB8
public void HLIOPPACHBF(Action<string> NOBAPCOKFIL)
{
Action<string> action = this.MKCMFFPFOAH;
Action<string> action2;
do
{
action2 = action;
action = Interlocked.CompareExchange<Action<string>>(ref this.MKCMFFPFOAH, (Action<string>)Delegate.Remove(action2, NOBAPCOKFIL), action);
}
while (action != action2);
}
// Token: 0x060174DA RID: 95450 RVA: 0x00686AF0 File Offset: 0x00684CF0
public void RequestReloadRoomData()
{
if (this.PKGJCPJMABF())
{
base.OMNGGJICBBI.RPC("RpcMasterRequestReloadRoomData", IHFKMIAHBFP.HGDJAAMBDNH, new object[0]);
}
}
// Token: 0x060174DB RID: 95451 RVA: 0x00686B18 File Offset: 0x00684D18
private IEnumerator PIPDEKANCNB(bool GENGJBCDOGB, RoomPersistenceManager.HADOPFJNNAO JOINLHEALDL)
{
RoomPersistenceManager.LKPFDEODJCN.JFLFBCHGDPO jflfbchgdpo = new RoomPersistenceManager.LKPFDEODJCN.JFLFBCHGDPO();
jflfbchgdpo.FJOCEKIKKOA = this;
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, null, "Only Master Client is allowed to get room data.");
yield break;
}
float num = 0f;
while (HNIFBBFIBBG.OINDBDDCICD == null)
{
if (num >= 10f)
{
JOINLHEALDL(false, null, "Timed out waiting for current session room id to become valid.");
yield break;
}
num += Time.deltaTime;
yield return null;
}
if (string.IsNullOrEmpty(HNIFBBFIBBG.OINDBDDCICD.OCDDOBNGFEF))
{
JOINLHEALDL(true, null, null);
yield break;
}
jflfbchgdpo.FGAPLMNIFEA = string.Empty;
jflfbchgdpo.KGIJJBKHLGC = null;
yield return base.StartCoroutine(HNIFBBFIBBG.FDEPBLCNFAC(new HEMCJJJMLKI.JMICPMCJMJF<byte[]>(jflfbchgdpo.OJKNBNGGBEC)));
if (!string.IsNullOrEmpty(jflfbchgdpo.FGAPLMNIFEA))
{
JOINLHEALDL(false, null, "Failed to get room data : " + jflfbchgdpo.FGAPLMNIFEA);
yield break;
}
if (jflfbchgdpo.KGIJJBKHLGC == null || jflfbchgdpo.KGIJJBKHLGC.Length == 0)
{
JOINLHEALDL(false, null, "No room data to load.");
yield break;
}
DIEJEGFOIBF diejegfoibf = new DIEJEGFOIBF();
diejegfoibf.MergeFrom(jflfbchgdpo.KGIJJBKHLGC);
JOINLHEALDL(true, diejegfoibf, null);
yield break;
}
// Token: 0x060174DC RID: 95452 RVA: 0x00686B3C File Offset: 0x00684D3C
private IEnumerator GEKPKKNHCPB(bool GENGJBCDOGB, RoomPersistenceManager.PEGADEADMOL JOINLHEALDL)
{
RoomPersistenceManager.MAMJCCLOPOH.KBBMAABNPCF kbbmaabnpcf = new RoomPersistenceManager.MAMJCCLOPOH.KBBMAABNPCF();
kbbmaabnpcf.BDJGJLDFHIE = this;
if (PEDNLMAHGBP.KGKNIMECEKH.ODIPLBJJBLB == null)
{
JOINLHEALDL(true, null);
yield break;
}
kbbmaabnpcf.NAGEKJMLHDE = false;
kbbmaabnpcf.BKCEILIJPEP = null;
yield return base.StartCoroutine(this.KAONDDNBHOO(GENGJBCDOGB, new RoomPersistenceManager.PEGADEADMOL(kbbmaabnpcf.OJKNBNGGBEC)));
if (!kbbmaabnpcf.NAGEKJMLHDE)
{
JOINLHEALDL(false, kbbmaabnpcf.BKCEILIJPEP);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x060174DD RID: 95453 RVA: 0x00686B68 File Offset: 0x00684D68
private void AEDIJDKIEAN()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.BABIFJDNLFC.CGELFKLLMBA)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(6, 1);
}
}
// Token: 0x060174DE RID: 95454 RVA: 0x00686B94 File Offset: 0x00684D94
private bool CKACFFNNJFP()
{
return this.KJCGGKEBBOP != null;
}
// Token: 0x060174DF RID: 95455 RVA: 0x00686BA4 File Offset: 0x00684DA4
private bool HKBDAJDBPFH()
{
return this.AOMJICBPLLO != null;
}
// Token: 0x060174E0 RID: 95456 RVA: 0x00686BB4 File Offset: 0x00684DB4
public void FHPIFBGCHEM(Action<string> NOBAPCOKFIL)
{
Action<string> action = this.NBDCGEKLCDM;
Action<string> action2;
do
{
action2 = action;
action = Interlocked.CompareExchange<Action<string>>(ref this.NBDCGEKLCDM, (Action<string>)Delegate.Remove(action2, NOBAPCOKFIL), action);
}
while (action != action2);
}
// Token: 0x060174E1 RID: 95457 RVA: 0x00686BEC File Offset: 0x00684DEC
private IEnumerator KGLPKEDEBHD(bool GENGJBCDOGB)
{
RoomPersistenceManager.HPLJFNNMFLK.JOIAKDADLBK joiakdadlbk = new RoomPersistenceManager.HPLJFNNMFLK.JOIAKDADLBK();
joiakdadlbk.KCBDIJPPCNF = this;
joiakdadlbk.LLENADHIHDP = false;
joiakdadlbk.OIFBPEJHDOD = null;
yield return base.StartCoroutine(this.KAONDDNBHOO(GENGJBCDOGB, new RoomPersistenceManager.PEGADEADMOL(joiakdadlbk.OJKNBNGGBEC)));
if (joiakdadlbk.LLENADHIHDP)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(7);
}
else
{
this.HELCLDHMMOJ = joiakdadlbk.OIFBPEJHDOD;
this.FCEKOOFDJGM.BKBFIGCPIMI(8);
}
this.KJCGGKEBBOP = null;
yield break;
}
// Token: 0x060174E2 RID: 95458 RVA: 0x00686C10 File Offset: 0x00684E10
private IEnumerator LHICJABCPLF(DIEJEGFOIBF NNOPJFIPCLO, List<string> DONBDBHJGJP, bool GENGJBCDOGB, RoomPersistenceManager.CNCJIGIGKME JOINLHEALDL)
{
RoomPersistenceManager.ACCJNJPBLCH.DCBJEBFKPKF dcbjebfkpkf = new RoomPersistenceManager.ACCJNJPBLCH.DCBJEBFKPKF();
dcbjebfkpkf.EMLIIAMBDJA = this;
if (NNOPJFIPCLO == null)
{
JOINLHEALDL(false, "No persisted Room Data created.");
yield break;
}
byte[] array = NNOPJFIPCLO.ToByteArray();
if (array == null || array.Length == 0)
{
JOINLHEALDL(false, "No room data to save.");
yield break;
}
float num = 0f;
while (HNIFBBFIBBG.OINDBDDCICD == null)
{
if (num >= 10f)
{
JOINLHEALDL(false, "Timed out waiting for current session room id to become valid.");
yield break;
}
num += Time.deltaTime;
yield return null;
}
dcbjebfkpkf.FEENBKMGNHM = string.Empty;
yield return base.StartCoroutine(HNIFBBFIBBG.OEOEHMBKFBP(array, DONBDBHJGJP, new HEMCJJJMLKI.JMICPMCJMJF<string>(dcbjebfkpkf.OJKNBNGGBEC)));
if (!string.IsNullOrEmpty(dcbjebfkpkf.FEENBKMGNHM))
{
JOINLHEALDL(false, dcbjebfkpkf.FEENBKMGNHM);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x060174E3 RID: 95459 RVA: 0x00686C44 File Offset: 0x00684E44
private void CHFENEJAPDD(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.BABIFJDNLFC.BJOJLPHBGMN(Player.FCEGFOFFLJJ + 0.25f);
}
}
// Token: 0x060174E4 RID: 95460 RVA: 0x00686C68 File Offset: 0x00684E68
private void OLLBEHJLKHI()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && !this.HKBDAJDBPFH())
{
bool flag = false;
this.KMEEIPGNKEH(flag);
}
}
// Token: 0x060174E5 RID: 95461 RVA: 0x00686C94 File Offset: 0x00684E94
private IEnumerator IKKAPBDFIEM(bool GENGJBCDOGB, RoomPersistenceManager.PEGADEADMOL JOINLHEALDL)
{
kbbmaabnpcf = new RoomPersistenceManager.MAMJCCLOPOH.KBBMAABNPCF();
kbbmaabnpcf.BDJGJLDFHIE = this;
if (PEDNLMAHGBP.KGKNIMECEKH.ODIPLBJJBLB == null)
{
JOINLHEALDL(true, null);
yield break;
}
kbbmaabnpcf.NAGEKJMLHDE = false;
kbbmaabnpcf.BKCEILIJPEP = null;
yield return base.StartCoroutine(this.KAONDDNBHOO(GENGJBCDOGB, new RoomPersistenceManager.PEGADEADMOL(kbbmaabnpcf.OJKNBNGGBEC)));
if (!kbbmaabnpcf.NAGEKJMLHDE)
{
JOINLHEALDL(false, kbbmaabnpcf.BKCEILIJPEP);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x060174E6 RID: 95462 RVA: 0x00686CC0 File Offset: 0x00684EC0
private void NBLOHNHIECF()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.BABIFJDNLFC.CGELFKLLMBA)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(1, 1);
}
}
// Token: 0x060174E7 RID: 95463 RVA: 0x00686CEC File Offset: 0x00684EEC
private bool ANPBBPKHGBJ()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.HMFEPMPJGLE())
{
this.FCEKOOFDJGM.BKBFIGCPIMI(3);
return true;
}
return false;
}
// Token: 0x060174E8 RID: 95464 RVA: 0x00686D14 File Offset: 0x00684F14
protected override void Awake()
{
base.Awake();
IHFKMIAHBFP.ENIGMACDFMJ += new Action<LNJFBGIBLHA>(this.OnMasterClientSwitched);
this.NLHOMHODEKH = new LHLLJPPCDKA<string>(this, "ERROR", string.Empty, IKCAJLLAFML.MASTER, null);
this.BABIFJDNLFC = new AONMNAEOJAL(this, "TIMER", IKCAJLLAFML.MASTER);
this.FCEKOOFDJGM = new PNONBEAIBHA("RSM", IKCAJLLAFML.MASTER);
this.FCEKOOFDJGM.AGLMMKOFICI(0, null, null, new ANMJLCILKDJ.PLBLFEEANOO(this.JPNAFHBKFIA));
this.FCEKOOFDJGM.AGLMMKOFICI(1, null, null, null);
this.FCEKOOFDJGM.AGLMMKOFICI(2, null, null, null);
this.FCEKOOFDJGM.AGLMMKOFICI(3, null, null, new ANMJLCILKDJ.PLBLFEEANOO(this.OLLBEHJLKHI));
this.FCEKOOFDJGM.AGLMMKOFICI(4, new ANMJLCILKDJ.NCMAEMHOHDG(this.LKINCELIOGF), null, new ANMJLCILKDJ.PLBLFEEANOO(this.DBPNEBFFGLB));
this.FCEKOOFDJGM.AGLMMKOFICI(5, new ANMJLCILKDJ.NCMAEMHOHDG(this.NCEHDOMIIFK), null, new ANMJLCILKDJ.PLBLFEEANOO(this.AKIIEMDFNEE));
this.FCEKOOFDJGM.AGLMMKOFICI(6, new ANMJLCILKDJ.NCMAEMHOHDG(this.LENGOCDLANO), new ANMJLCILKDJ.NCMAEMHOHDG(this.PIMMODECHHA), null);
this.FCEKOOFDJGM.AGLMMKOFICI(6, 0, new ANMJLCILKDJ.NCMAEMHOHDG(this.CHFENEJAPDD), null, new ANMJLCILKDJ.PLBLFEEANOO(this.AEDIJDKIEAN));
this.FCEKOOFDJGM.AGLMMKOFICI(6, 1, null, null, new ANMJLCILKDJ.PLBLFEEANOO(this.LOBBNPFHAJL));
this.FCEKOOFDJGM.AGLMMKOFICI(7, new ANMJLCILKDJ.NCMAEMHOHDG(this.KFGBOLAJHNJ), null, new ANMJLCILKDJ.PLBLFEEANOO(this.LAAEPEJLALK));
this.FCEKOOFDJGM.AGLMMKOFICI(8, new ANMJLCILKDJ.NCMAEMHOHDG(this.PFBLKJEDHOA), null, new ANMJLCILKDJ.PLBLFEEANOO(this.KDJEJEEJLJJ));
}
// Token: 0x060174E9 RID: 95465 RVA: 0x00686ECC File Offset: 0x006850CC
private void NPAMLKPJMAA()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && !this.CKACFFNNJFP())
{
bool flag = false;
this.JCLHEGNDJLE(flag);
}
}
// Token: 0x060174EA RID: 95466 RVA: 0x00686EF8 File Offset: 0x006850F8
private IEnumerator ICIGNFHMNHK(bool GENGJBCDOGB, RoomPersistenceManager.BMPMAAMNNPJ JOINLHEALDL)
{
mcpdfkaigen = new RoomPersistenceManager.EDGCHPHLBFA.MCPDFKAIGEN();
mcpdfkaigen.PNDHCMIJLFP = this;
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, null, null, "Only the Master Client may save room data.");
yield break;
}
mcpdfkaigen.NNOPJFIPCLO = new DIEJEGFOIBF();
mcpdfkaigen.NNOPJFIPCLO.ALCFGFGJCHI = 1;
ehlbefkjlhj = PEDNLMAHGBP.KGKNIMECEKH;
mcpdfkaigen.NNOPJFIPCLO.MNDEJIOKCJK = LMBEHMFIOEN.OOCOFDALHOG(ehlbefkjlhj.KAPOBAEMBKL, ehlbefkjlhj.OOAECNOOFID);
mcpdfkaigen.NNOPJFIPCLO.BLMPACLLEPB = DateTime.UtcNow.ToTimestamp();
this.MEKJGLMJCGE.Clear();
mcpdfkaigen.MPLGGAAMDKL = global::UnityEngine.Object.FindObjectsOfType<PersistenceView>();
mcpdfkaigen.HHHBHKENMBJ = 0;
for (int i = 0; i < mcpdfkaigen.MPLGGAAMDKL.Length; i++)
{
if (mcpdfkaigen.MPLGGAAMDKL[i].AADHHMOLEOL)
{
mcpdfkaigen.HHHBHKENMBJ++;
base.StartCoroutine(mcpdfkaigen.MPLGGAAMDKL[i].PreSerialize(new Action(mcpdfkaigen.OJKNBNGGBEC)));
}
}
realtimeSinceStartup = Time.realtimeSinceStartup;
while (mcpdfkaigen.HHHBHKENMBJ > 0)
{
yield return null;
}
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat("Preserialization complete in {0} seconds", new object[] { Time.realtimeSinceStartup - realtimeSinceStartup });
}
num = 0;
kmmcmjlhcna = new RoomPersistenceManager.EDGCHPHLBFA.KMMCMJLHCNA();
kmmcmjlhcna.PNDHCMIJLFP = this;
kmmcmjlhcna.DOCPCEJLLAL = mcpdfkaigen;
kmmcmjlhcna.CIMNKHDEFOH = 0;
while (kmmcmjlhcna.CIMNKHDEFOH < mcpdfkaigen.MPLGGAAMDKL.Length)
{
if (mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].AADHHMOLEOL)
{
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat(mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH], "Serializing PersistanceView {0}", new object[] { mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].gameObject });
}
mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].Serialize(new PersistenceView.LJOBLBKHDAH(kmmcmjlhcna.OJKNBNGGBEC));
num++;
if (num >= 10)
{
yield return null;
num = 0;
}
}
kmmcmjlhcna.CIMNKHDEFOH++;
}
list = new List<string>(this.MEKJGLMJCGE);
JOINLHEALDL(true, mcpdfkaigen.NNOPJFIPCLO, list, null);
yield break;
}
// Token: 0x060174EB RID: 95467 RVA: 0x00686F24 File Offset: 0x00685124
private void PIMMODECHHA(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
if (Player.LocalPlayerExists)
{
RecRoomSceneManager.NCKMBFBMBFM.HDNIEJJBLGI.CAHIBCONCCH(true);
}
}
// Token: 0x060174EC RID: 95468 RVA: 0x00686F40 File Offset: 0x00685140
private void PKMIODLNHHO(LNJFBGIBLHA BLEEFGJBALL)
{
this.AFMBNIGJAMG();
this.NHOBCGGKGBE();
this.COLGNEBNKHM();
}
// Token: 0x060174ED RID: 95469 RVA: 0x00686F54 File Offset: 0x00685154
private IEnumerator PDFMNMEGOGM(DIEJEGFOIBF NNOPJFIPCLO, List<string> DONBDBHJGJP, bool GENGJBCDOGB, RoomPersistenceManager.CNCJIGIGKME JOINLHEALDL)
{
dcbjebfkpkf = new RoomPersistenceManager.ACCJNJPBLCH.DCBJEBFKPKF();
dcbjebfkpkf.EMLIIAMBDJA = this;
if (NNOPJFIPCLO == null)
{
JOINLHEALDL(false, "No persisted Room Data created.");
yield break;
}
array = NNOPJFIPCLO.ToByteArray();
if (array == null || array.Length == 0)
{
JOINLHEALDL(false, "No room data to save.");
yield break;
}
num = 0f;
while (HNIFBBFIBBG.OINDBDDCICD == null)
{
if (num >= 10f)
{
JOINLHEALDL(false, "Timed out waiting for current session room id to become valid.");
yield break;
}
num += Time.deltaTime;
yield return null;
}
dcbjebfkpkf.FEENBKMGNHM = string.Empty;
yield return base.StartCoroutine(HNIFBBFIBBG.OEOEHMBKFBP(array, DONBDBHJGJP, new HEMCJJJMLKI.JMICPMCJMJF<string>(dcbjebfkpkf.OJKNBNGGBEC)));
if (!string.IsNullOrEmpty(dcbjebfkpkf.FEENBKMGNHM))
{
JOINLHEALDL(false, dcbjebfkpkf.FEENBKMGNHM);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x060174EE RID: 95470 RVA: 0x00686F88 File Offset: 0x00685188
private bool JHAOJJGFFPN()
{
return this.FCEKOOFDJGM != null && this.FCEKOOFDJGM.BHMLLHLEAFF == 4;
}
// Token: 0x060174EF RID: 95471 RVA: 0x00686FA8 File Offset: 0x006851A8
private void LHDEGPKAADF()
{
this.BABIFJDNLFC.JNDAEJOHPHO();
this.FCEKOOFDJGM.DLBPEOILIFL();
}
// Token: 0x060174F0 RID: 95472 RVA: 0x00686FC0 File Offset: 0x006851C0
public IEnumerator WaitForInitialLoad(RoomPersistenceManager.PEGADEADMOL JOINLHEALDL)
{
while (!this.FCEKOOFDJGM.BOCFJBNNEFP)
{
yield return null;
}
while (this.OOMFOBGPNKH)
{
yield return null;
}
if (this.FCEKOOFDJGM.BHMLLHLEAFF == 1)
{
JOINLHEALDL(false, "Unable to complete initial room load.");
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x060174F1 RID: 95473 RVA: 0x00686FE4 File Offset: 0x006851E4
private void OnMasterClientSwitched(LNJFBGIBLHA BLEEFGJBALL)
{
this.AFMBNIGJAMG();
this.EBNFNKCKOKL();
this.COLGNEBNKHM();
}
// Token: 0x060174F2 RID: 95474 RVA: 0x00686FF8 File Offset: 0x006851F8
private void LENGOCDLANO(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (Player.LocalPlayerExists)
{
Player.LocalPlayer.DespawnLocal(false, true);
}
}
// Token: 0x140000CA RID: 202
// (add) Token: 0x06017519 RID: 95513 RVA: 0x0068771C File Offset: 0x0068591C
// (remove) Token: 0x060174F3 RID: 95475 RVA: 0x00687014 File Offset: 0x00685214
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event Action DEOKOGDFDLC;
// Token: 0x060174F4 RID: 95476 RVA: 0x0068704C File Offset: 0x0068524C
private void JCLHEGNDJLE(bool GENGJBCDOGB)
{
this.EBNFNKCKOKL();
this.KJCGGKEBBOP = base.StartCoroutine(this.KGLPKEDEBHD(GENGJBCDOGB));
}
// Token: 0x140000CB RID: 203
// (add) Token: 0x060174F5 RID: 95477 RVA: 0x00687068 File Offset: 0x00685268
// (remove) Token: 0x06017538 RID: 95544 RVA: 0x00687D38 File Offset: 0x00685F38
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event Action<string> NBDCGEKLCDM;
// Token: 0x060174F6 RID: 95478 RVA: 0x006870A0 File Offset: 0x006852A0
private void CIEBNDBBIPB()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(4);
}
}
// Token: 0x17000A29 RID: 2601
// (get) Token: 0x06017508 RID: 95496 RVA: 0x0068748C File Offset: 0x0068568C
// (set) Token: 0x060174F7 RID: 95479 RVA: 0x006870B8 File Offset: 0x006852B8
private string HELCLDHMMOJ
{
get
{
return this.NLHOMHODEKH.CPIBGJLHLBL();
}
set
{
this.NLHOMHODEKH.MEAINJPIECA(value);
}
}
// Token: 0x060174F8 RID: 95480 RVA: 0x006870C8 File Offset: 0x006852C8
private void JINNBGDAPLD()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(6);
}
}
// Token: 0x060174F9 RID: 95481 RVA: 0x006870E0 File Offset: 0x006852E0
private void GNNNGKONMJG()
{
if (this.AOAMHAKFCIP())
{
base.StopCoroutine(this.KJCGGKEBBOP);
this.KJCGGKEBBOP = null;
}
}
// Token: 0x060174FA RID: 95482 RVA: 0x00687100 File Offset: 0x00685300
public void BCCILELAGHI(Action<string> NOBAPCOKFIL)
{
Action<string> action = this.NBDCGEKLCDM;
Action<string> action2;
do
{
action2 = action;
action = Interlocked.CompareExchange<Action<string>>(ref this.NBDCGEKLCDM, (Action<string>)Delegate.Remove(action2, NOBAPCOKFIL), action);
}
while (action != action2);
}
// Token: 0x060174FB RID: 95483 RVA: 0x00687138 File Offset: 0x00685338
private GameObject ILAMDHOLFKB(JENDPFGMLME LJPJGMJDIKB, Guid JAGNIKELELP, Vector3 CIGPHKLAAOD, Quaternion IJGPPOIJDKO, bool GENGJBCDOGB)
{
Extrusion extrusion = NetworkedSingletonMonoBehaviour<SandboxSpawnableManager>.NCKMBFBMBFM.OJLKBFKKIFA(CIGPHKLAAOD, IJGPPOIJDKO, 1);
if (extrusion == null)
{
global::UnityEngine.Debug.LogErrorFormat(" joined the game", new object[] { JAGNIKELELP });
return null;
}
GameObject gameObject = extrusion.gameObject;
if (GENGJBCDOGB)
{
string text = "PhotonView with ID ";
object[] array = new object[0];
array[1] = JAGNIKELELP;
global::UnityEngine.Debug.LogFormat(text, array);
}
return gameObject;
}
// Token: 0x060174FC RID: 95484 RVA: 0x006871A4 File Offset: 0x006853A4
public void PersistTransientImage(string GPMCNJMPFMN)
{
this.MEKJGLMJCGE.Add(GPMCNJMPFMN);
}
// Token: 0x060174FD RID: 95485 RVA: 0x006871B4 File Offset: 0x006853B4
private void NHOBCGGKGBE()
{
if (this.HKBDAJDBPFH())
{
base.StopCoroutine(this.AOMJICBPLLO);
this.AOMJICBPLLO = null;
}
}
// Token: 0x060174FE RID: 95486 RVA: 0x006871D4 File Offset: 0x006853D4
private bool GAJDMIBNMCM()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.HMFEPMPJGLE())
{
this.FCEKOOFDJGM.BKBFIGCPIMI(7);
return true;
}
return true;
}
// Token: 0x060174FF RID: 95487 RVA: 0x006871FC File Offset: 0x006853FC
private void EBNFNKCKOKL()
{
if (this.HKBDAJDBPFH())
{
base.StopCoroutine(this.AOMJICBPLLO);
this.AOMJICBPLLO = null;
}
}
// Token: 0x17000A28 RID: 2600
// (get) Token: 0x06017500 RID: 95488 RVA: 0x0068721C File Offset: 0x0068541C
public bool OOMFOBGPNKH
{
get
{
return this.FCEKOOFDJGM.BHMLLHLEAFF == 6 || this.FCEKOOFDJGM.BHMLLHLEAFF == 0;
}
}
// Token: 0x06017501 RID: 95489 RVA: 0x00687240 File Offset: 0x00685440
private IEnumerator DHJDEMBANJF(bool GENGJBCDOGB, RoomPersistenceManager.PEGADEADMOL JOINLHEALDL)
{
RoomPersistenceManager.CFAHOAIIEGO.LNPCBGEBNIG lnpcbgebnig = new RoomPersistenceManager.CFAHOAIIEGO.LNPCBGEBNIG();
lnpcbgebnig.NJPHDNAAJHF = this;
lnpcbgebnig.NNOPJFIPCLO = null;
lnpcbgebnig.CPKPDBJBPEL = false;
lnpcbgebnig.IGKNKHHNJNI = null;
yield return base.StartCoroutine(this.PIPDEKANCNB(GENGJBCDOGB, new RoomPersistenceManager.HADOPFJNNAO(lnpcbgebnig.OJKNBNGGBEC)));
if (!lnpcbgebnig.CPKPDBJBPEL)
{
JOINLHEALDL(false, lnpcbgebnig.IGKNKHHNJNI);
yield break;
}
if (lnpcbgebnig.NNOPJFIPCLO == null)
{
JOINLHEALDL(true, null);
yield break;
}
lnpcbgebnig.APIPJOMAGJI = false;
lnpcbgebnig.DKGPJBCMBNG = null;
yield return base.StartCoroutine(this.CLPFGKALHGE(lnpcbgebnig.NNOPJFIPCLO, GENGJBCDOGB, new RoomPersistenceManager.CDBPIEBHLGP(lnpcbgebnig.JAFGLCBFOHM)));
if (!lnpcbgebnig.APIPJOMAGJI)
{
JOINLHEALDL(false, lnpcbgebnig.DKGPJBCMBNG);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x06017502 RID: 95490 RVA: 0x0068726C File Offset: 0x0068546C
private void Start()
{
this.FCEKOOFDJGM.FLHFCMCNLEK(this, 0);
}
// Token: 0x06017503 RID: 95491 RVA: 0x0068727C File Offset: 0x0068547C
private void OLDPFLEBGBA(DIEJEGFOIBF NNOPJFIPCLO, bool OJNLGNFPHMH)
{
HashSet<Guid> hashSet = new HashSet<Guid>();
foreach (JENDPFGMLME jendpfgmlme in NNOPJFIPCLO.IHNIMBMNOPE)
{
if (jendpfgmlme.MMDLCJMOPEL == null)
{
Guid guid = jendpfgmlme.PKJFPDJKJAH.KLNKHLCMIMD();
if (!(guid == Guid.Empty))
{
hashSet.Add(guid);
}
}
}
List<PersistenceView> list = PersistenceView.AllViews.Values.ToList<PersistenceView>();
foreach (PersistenceView persistenceView in list)
{
if (!hashSet.Contains(persistenceView.PKJFPDJKJAH) && persistenceView.AADHHMOLEOL)
{
if (OJNLGNFPHMH)
{
global::UnityEngine.Debug.LogFormat("Destroying unused PersistenceView {0} with ID {1}", new object[] { persistenceView.gameObject, persistenceView.PKJFPDJKJAH });
}
PersistenceView.AllViews.Remove(persistenceView.PKJFPDJKJAH);
IHFKMIAHBFP.NJMGEDPOHED(persistenceView.gameObject);
}
}
}
// Token: 0x06017504 RID: 95492 RVA: 0x006873CC File Offset: 0x006855CC
public void NGNGCOFKPAL(Action NOBAPCOKFIL)
{
Action action = this.BJPKKMHPMKI;
Action action2;
do
{
action2 = action;
action = Interlocked.CompareExchange<Action>(ref this.BJPKKMHPMKI, (Action)Delegate.Combine(action2, NOBAPCOKFIL), action);
}
while (action != action2);
}
// Token: 0x06017505 RID: 95493 RVA: 0x00687404 File Offset: 0x00685604
private void AKIIEMDFNEE()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(2);
}
}
// Token: 0x06017506 RID: 95494 RVA: 0x0068741C File Offset: 0x0068561C
public void GGHMAGALPIJ(Action NOBAPCOKFIL)
{
Action action = this.DEOKOGDFDLC;
Action action2;
do
{
action2 = action;
action = Interlocked.CompareExchange<Action>(ref this.DEOKOGDFDLC, (Action)Delegate.Remove(action2, NOBAPCOKFIL), action);
}
while (action != action2);
}
// Token: 0x06017507 RID: 95495 RVA: 0x00687454 File Offset: 0x00685654
public void HPBKLBEEFAI(Action NOBAPCOKFIL)
{
Action action = this.BJPKKMHPMKI;
Action action2;
do
{
action2 = action;
action = Interlocked.CompareExchange<Action>(ref this.BJPKKMHPMKI, (Action)Delegate.Combine(action2, NOBAPCOKFIL), action);
}
while (action != action2);
}
// Token: 0x06017509 RID: 95497 RVA: 0x0068749C File Offset: 0x0068569C
private void PFBLKJEDHOA(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (this.MKCMFFPFOAH != null)
{
this.MKCMFFPFOAH(this.HELCLDHMMOJ);
}
SingletonMonoBehaviour<ScreenSpaceNotificationManager>.NCKMBFBMBFM.Play(ScreenSpaceNotificationManager.DBNGPDFKLEK.Vital, "Room Restore Failed", 3f, null, false);
NECCOFKHCAA.GILMEMNHBJC(PEDNLMAHGBP.KGKNIMECEKH.ODIPLBJJBLB, false);
}
// Token: 0x0601750A RID: 95498 RVA: 0x006874EC File Offset: 0x006856EC
private IEnumerator GFBOAEKNGAO(bool GENGJBCDOGB, RoomPersistenceManager.PEGADEADMOL JOINLHEALDL)
{
RoomPersistenceManager.BBFFDFLHBAJ.DEMMHJFBCBA demmhjfbcba = new RoomPersistenceManager.BBFFDFLHBAJ.DEMMHJFBCBA();
demmhjfbcba.LPKHEOPCJLN = this;
demmhjfbcba.GAALMKDADFF = null;
demmhjfbcba.MFPJBNKALCA = null;
demmhjfbcba.FPHFJIKEGIA = false;
demmhjfbcba.BKIBFKJPHEF = null;
yield return base.StartCoroutine(this.MNNLEPAPNLM(GENGJBCDOGB, new RoomPersistenceManager.BMPMAAMNNPJ(demmhjfbcba.OJKNBNGGBEC)));
if (!demmhjfbcba.FPHFJIKEGIA || demmhjfbcba.GAALMKDADFF == null || demmhjfbcba.MFPJBNKALCA == null)
{
JOINLHEALDL(false, demmhjfbcba.BKIBFKJPHEF);
yield break;
}
demmhjfbcba.HDOLOEDBMBJ = false;
demmhjfbcba.GAEPNMAFDDC = null;
yield return base.StartCoroutine(this.JOIJAICAGKH(demmhjfbcba.GAALMKDADFF, demmhjfbcba.MFPJBNKALCA, GENGJBCDOGB, new RoomPersistenceManager.CNCJIGIGKME(demmhjfbcba.JAFGLCBFOHM)));
if (!demmhjfbcba.HDOLOEDBMBJ)
{
JOINLHEALDL(false, demmhjfbcba.GAEPNMAFDDC);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x0601750B RID: 95499 RVA: 0x00687518 File Offset: 0x00685718
private void BOMACAAIEKE()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.BABIFJDNLFC.HFOKKCOENOF())
{
this.FCEKOOFDJGM.BKBFIGCPIMI(0, 1);
}
}
// Token: 0x0601750C RID: 95500 RVA: 0x00687544 File Offset: 0x00685744
private bool CCODEGFCJKP(JENDPFGMLME LJPJGMJDIKB)
{
return LJPJGMJDIKB == null || (LJPJGMJDIKB.DHABAPACNIN == null && LJPJGMJDIKB.OOAEHEBLAEK() == null);
}
// Token: 0x140000CD RID: 205
// (add) Token: 0x0601753D RID: 95549 RVA: 0x00687E20 File Offset: 0x00686020
// (remove) Token: 0x0601750D RID: 95501 RVA: 0x0068756C File Offset: 0x0068576C
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event Action<string> MKCMFFPFOAH;
// Token: 0x0601750E RID: 95502 RVA: 0x006875A4 File Offset: 0x006857A4
private bool CFACCINIMAM()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.JHAOJJGFFPN())
{
this.FCEKOOFDJGM.BKBFIGCPIMI(6);
return true;
}
return true;
}
// Token: 0x0601750F RID: 95503 RVA: 0x006875CC File Offset: 0x006857CC
private IEnumerator CLPFGKALHGE(DIEJEGFOIBF NNOPJFIPCLO, bool GENGJBCDOGB, RoomPersistenceManager.CDBPIEBHLGP JOINLHEALDL)
{
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, "Only master client is allowed to deserialize room data.");
yield break;
}
if (NNOPJFIPCLO == null)
{
JOINLHEALDL(false, "Room data is null.");
yield break;
}
this.OLDPFLEBGBA(NNOPJFIPCLO, GENGJBCDOGB);
yield return null;
if (GENGJBCDOGB)
{
int num = NNOPJFIPCLO.ALCFGFGJCHI;
global::UnityEngine.Debug.LogFormat("Deserializing room data version {0} with {1} persisted views.", new object[]
{
num,
NNOPJFIPCLO.IHNIMBMNOPE.Count
});
}
foreach (JENDPFGMLME jendpfgmlme in NNOPJFIPCLO.IHNIMBMNOPE)
{
Guid guid = jendpfgmlme.PKJFPDJKJAH.KLNKHLCMIMD();
if (guid == Guid.Empty)
{
global::UnityEngine.Debug.LogErrorFormat("Data found with malformed or empty ID while deserializing room.", new object[0]);
}
else
{
PersistenceView persistenceView = null;
if (!PersistenceView.AllViews.TryGetValue(guid, out persistenceView))
{
Vector3 vector = jendpfgmlme.KOGMNNMACPG.GMOJLKHOBGG.ECHGEFCCABI();
Quaternion quaternion = Quaternion.Euler(jendpfgmlme.KOGMNNMACPG.HCDIECIBAKP.ECHGEFCCABI());
persistenceView = this.IDBLJNOCBEC(jendpfgmlme, guid, vector, quaternion, GENGJBCDOGB);
}
if (persistenceView == null)
{
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogErrorFormat("Unable to create or locate Persistence View with guid {0}.", new object[] { guid });
}
}
else
{
if (!persistenceView.BHCCHBHNHCG)
{
persistenceView.OMNGGJICBBI.TransferOwnership(IHFKMIAHBFP.JEFGMHBLLKI);
}
persistenceView.gameObject.SetActive(true);
persistenceView.Deserialize(jendpfgmlme);
}
}
}
foreach (PersistenceView persistenceView2 in PersistenceView.AllViews.Values)
{
persistenceView2.NotifyDeserializationComplete();
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x06017510 RID: 95504 RVA: 0x006875FC File Offset: 0x006857FC
private void CDICMKILDFF()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(3);
}
}
// Token: 0x06017511 RID: 95505 RVA: 0x00687614 File Offset: 0x00685814
private IEnumerator MNNLEPAPNLM(bool GENGJBCDOGB, RoomPersistenceManager.BMPMAAMNNPJ JOINLHEALDL)
{
mcpdfkaigen = new RoomPersistenceManager.EDGCHPHLBFA.MCPDFKAIGEN();
mcpdfkaigen.PNDHCMIJLFP = this;
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, null, null, "Only the Master Client may save room data.");
yield break;
}
mcpdfkaigen.NNOPJFIPCLO = new DIEJEGFOIBF();
mcpdfkaigen.NNOPJFIPCLO.ALCFGFGJCHI = 1;
ehlbefkjlhj = PEDNLMAHGBP.KGKNIMECEKH;
mcpdfkaigen.NNOPJFIPCLO.MNDEJIOKCJK = LMBEHMFIOEN.OOCOFDALHOG(ehlbefkjlhj.KAPOBAEMBKL, ehlbefkjlhj.OOAECNOOFID);
mcpdfkaigen.NNOPJFIPCLO.BLMPACLLEPB = DateTime.UtcNow.ToTimestamp();
this.MEKJGLMJCGE.Clear();
mcpdfkaigen.MPLGGAAMDKL = global::UnityEngine.Object.FindObjectsOfType<PersistenceView>();
mcpdfkaigen.HHHBHKENMBJ = 0;
for (int i = 0; i < mcpdfkaigen.MPLGGAAMDKL.Length; i++)
{
if (mcpdfkaigen.MPLGGAAMDKL[i].AADHHMOLEOL)
{
mcpdfkaigen.HHHBHKENMBJ++;
base.StartCoroutine(mcpdfkaigen.MPLGGAAMDKL[i].PreSerialize(new Action(mcpdfkaigen.OJKNBNGGBEC)));
}
}
realtimeSinceStartup = Time.realtimeSinceStartup;
while (mcpdfkaigen.HHHBHKENMBJ > 0)
{
yield return null;
}
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat("Preserialization complete in {0} seconds", new object[] { Time.realtimeSinceStartup - realtimeSinceStartup });
}
num = 0;
kmmcmjlhcna = new RoomPersistenceManager.EDGCHPHLBFA.KMMCMJLHCNA();
kmmcmjlhcna.PNDHCMIJLFP = this;
kmmcmjlhcna.DOCPCEJLLAL = mcpdfkaigen;
kmmcmjlhcna.CIMNKHDEFOH = 0;
while (kmmcmjlhcna.CIMNKHDEFOH < mcpdfkaigen.MPLGGAAMDKL.Length)
{
if (mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].AADHHMOLEOL)
{
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat(mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH], "Serializing PersistanceView {0}", new object[] { mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].gameObject });
}
mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].Serialize(new PersistenceView.LJOBLBKHDAH(kmmcmjlhcna.OJKNBNGGBEC));
num++;
if (num >= 10)
{
yield return null;
num = 0;
}
}
kmmcmjlhcna.CIMNKHDEFOH++;
}
list = new List<string>(this.MEKJGLMJCGE);
JOINLHEALDL(true, mcpdfkaigen.NNOPJFIPCLO, list, null);
yield break;
}
// Token: 0x06017512 RID: 95506 RVA: 0x00687640 File Offset: 0x00685840
private void FFLHJNKCMFA(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.BABIFJDNLFC.KLIANKEOBGC(Player.FCEGFOFFLJJ + 846f);
}
}
// Token: 0x06017513 RID: 95507 RVA: 0x00687664 File Offset: 0x00685864
private void KJGPIGGOFGM(ushort OIMHGOONBEB, ushort LPFGCCKCIEB)
{
if (Player.LocalPlayerExists)
{
RecRoomSceneManager.LEILGOOHEOI().HDNIEJJBLGI.HJBGJIBPCLO(true);
}
}
// Token: 0x06017514 RID: 95508 RVA: 0x00687680 File Offset: 0x00685880
private string CIFLHLHHHCO()
{
return this.NLHOMHODEKH.CPIBGJLHLBL();
}
// Token: 0x06017515 RID: 95509 RVA: 0x00687690 File Offset: 0x00685890
private IEnumerator EBPNJBDALAN(DIEJEGFOIBF NNOPJFIPCLO, bool GENGJBCDOGB, RoomPersistenceManager.CDBPIEBHLGP JOINLHEALDL)
{
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, "Only master client is allowed to deserialize room data.");
yield break;
}
if (NNOPJFIPCLO == null)
{
JOINLHEALDL(false, "Room data is null.");
yield break;
}
this.OLDPFLEBGBA(NNOPJFIPCLO, GENGJBCDOGB);
yield return null;
if (GENGJBCDOGB)
{
int num = NNOPJFIPCLO.ALCFGFGJCHI;
global::UnityEngine.Debug.LogFormat("Deserializing room data version {0} with {1} persisted views.", new object[]
{
num,
NNOPJFIPCLO.IHNIMBMNOPE.Count
});
}
enumerator = NNOPJFIPCLO.IHNIMBMNOPE.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
JENDPFGMLME jendpfgmlme = enumerator.Current;
Guid guid = jendpfgmlme.PKJFPDJKJAH.KLNKHLCMIMD();
if (guid == Guid.Empty)
{
global::UnityEngine.Debug.LogErrorFormat("Data found with malformed or empty ID while deserializing room.", new object[0]);
}
else
{
PersistenceView persistenceView = null;
if (!PersistenceView.AllViews.TryGetValue(guid, out persistenceView))
{
Vector3 vector = jendpfgmlme.KOGMNNMACPG.GMOJLKHOBGG.ECHGEFCCABI();
Quaternion quaternion = Quaternion.Euler(jendpfgmlme.KOGMNNMACPG.HCDIECIBAKP.ECHGEFCCABI());
persistenceView = this.IDBLJNOCBEC(jendpfgmlme, guid, vector, quaternion, GENGJBCDOGB);
}
if (persistenceView == null)
{
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogErrorFormat("Unable to create or locate Persistence View with guid {0}.", new object[] { guid });
}
}
else
{
if (!persistenceView.BHCCHBHNHCG)
{
persistenceView.OMNGGJICBBI.TransferOwnership(IHFKMIAHBFP.JEFGMHBLLKI);
}
persistenceView.gameObject.SetActive(true);
persistenceView.Deserialize(jendpfgmlme);
}
}
}
}
finally
{
if (enumerator != null)
{
enumerator.Dispose();
}
}
enumerator2 = PersistenceView.AllViews.Values.GetEnumerator();
try
{
while (enumerator2.MoveNext())
{
PersistenceView persistenceView2 = enumerator2.Current;
persistenceView2.NotifyDeserializationComplete();
}
}
finally
{
((IDisposable)enumerator2).Dispose();
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x06017516 RID: 95510 RVA: 0x006876C0 File Offset: 0x006858C0
private IEnumerator OCGAOJMCCDF(bool GENGJBCDOGB, RoomPersistenceManager.PEGADEADMOL JOINLHEALDL)
{
demmhjfbcba = new RoomPersistenceManager.BBFFDFLHBAJ.DEMMHJFBCBA();
demmhjfbcba.LPKHEOPCJLN = this;
demmhjfbcba.GAALMKDADFF = null;
demmhjfbcba.MFPJBNKALCA = null;
demmhjfbcba.FPHFJIKEGIA = false;
demmhjfbcba.BKIBFKJPHEF = null;
yield return base.StartCoroutine(this.MNNLEPAPNLM(GENGJBCDOGB, new RoomPersistenceManager.BMPMAAMNNPJ(demmhjfbcba.OJKNBNGGBEC)));
if (!demmhjfbcba.FPHFJIKEGIA || demmhjfbcba.GAALMKDADFF == null || demmhjfbcba.MFPJBNKALCA == null)
{
JOINLHEALDL(false, demmhjfbcba.BKIBFKJPHEF);
yield break;
}
demmhjfbcba.HDOLOEDBMBJ = false;
demmhjfbcba.GAEPNMAFDDC = null;
yield return base.StartCoroutine(this.JOIJAICAGKH(demmhjfbcba.GAALMKDADFF, demmhjfbcba.MFPJBNKALCA, GENGJBCDOGB, new RoomPersistenceManager.CNCJIGIGKME(demmhjfbcba.JAFGLCBFOHM)));
if (!demmhjfbcba.HDOLOEDBMBJ)
{
JOINLHEALDL(false, demmhjfbcba.GAEPNMAFDDC);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x06017517 RID: 95511 RVA: 0x006876EC File Offset: 0x006858EC
[BCENPNOIAOM]
private void RpcMasterRequestReloadRoomData()
{
this.KDEJHEPKFMK();
}
// Token: 0x06017518 RID: 95512 RVA: 0x006876F8 File Offset: 0x006858F8
private IEnumerator IDPGEIGDFKO(bool GENGJBCDOGB)
{
RoomPersistenceManager.HECEDEJMDKJ.EOENHMIMAKA eoenhmimaka = new RoomPersistenceManager.HECEDEJMDKJ.EOENHMIMAKA();
eoenhmimaka.JMDBCBACLEI = this;
eoenhmimaka.FAJMJGIDENN = false;
eoenhmimaka.OIFBPEJHDOD = null;
yield return base.StartCoroutine(this.OCGAOJMCCDF(GENGJBCDOGB, new RoomPersistenceManager.PEGADEADMOL(eoenhmimaka.OJKNBNGGBEC)));
if (eoenhmimaka.FAJMJGIDENN)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(4);
}
else
{
this.HELCLDHMMOJ = eoenhmimaka.OIFBPEJHDOD;
this.FCEKOOFDJGM.BKBFIGCPIMI(5);
}
this.AOMJICBPLLO = null;
yield break;
}
// Token: 0x0601751A RID: 95514 RVA: 0x00687754 File Offset: 0x00685954
private void DBPNEBFFGLB()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(2);
}
}
// Token: 0x0601751B RID: 95515 RVA: 0x0068776C File Offset: 0x0068596C
private GameObject LKAECEBMMCP(JENDPFGMLME LJPJGMJDIKB, Guid JAGNIKELELP, Vector3 CIGPHKLAAOD, Quaternion IJGPPOIJDKO, bool GENGJBCDOGB)
{
Guid guid = LJPJGMJDIKB.DHABAPACNIN.FDJFFDEFEBD().KLNKHLCMIMD();
if (guid == Guid.Empty)
{
global::UnityEngine.Debug.LogErrorFormat(". Client is not the MasterClient in this room.", new object[] { JAGNIKELELP });
return null;
}
Tool tool = NetworkedSingletonMonoBehaviour<SandboxSpawnableManager>.NCKMBFBMBFM.LKIECHDIPEB(guid, CIGPHKLAAOD, IJGPPOIJDKO);
if (tool == null)
{
string text = "SBM_TL";
object[] array = new object[4];
array[0] = JAGNIKELELP;
array[0] = guid;
global::UnityEngine.Debug.LogErrorFormat(text, array);
return null;
}
GameObject gameObject = tool.gameObject;
if (GENGJBCDOGB)
{
string text2 = "content-encoding";
object[] array2 = new object[] { null, gameObject };
array2[1] = JAGNIKELELP;
global::UnityEngine.Debug.LogFormat(text2, array2);
}
return gameObject;
}
// Token: 0x0601751C RID: 95516 RVA: 0x00687820 File Offset: 0x00685A20
private void LOBBNPFHAJL()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && !this.CKACFFNNJFP())
{
bool flag = false;
this.JCLHEGNDJLE(flag);
}
}
// Token: 0x0601751D RID: 95517 RVA: 0x0068784C File Offset: 0x00685A4C
private bool KDEJHEPKFMK()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.PKGJCPJMABF())
{
this.FCEKOOFDJGM.BKBFIGCPIMI(6, 0);
return true;
}
return false;
}
// Token: 0x0601751E RID: 95518 RVA: 0x00687874 File Offset: 0x00685A74
private PersistenceView IDBLJNOCBEC(JENDPFGMLME LJPJGMJDIKB, Guid JAGNIKELELP, Vector3 CIGPHKLAAOD, Quaternion IJGPPOIJDKO, bool GENGJBCDOGB)
{
GameObject gameObject = null;
if (LJPJGMJDIKB.DHABAPACNIN != null)
{
gameObject = this.NIOJIGFCBJO(LJPJGMJDIKB, JAGNIKELELP, CIGPHKLAAOD, IJGPPOIJDKO, GENGJBCDOGB);
}
else if (LJPJGMJDIKB.JFFOKKEADDA != null)
{
gameObject = this.CDKPBNIHJOF(LJPJGMJDIKB, JAGNIKELELP, CIGPHKLAAOD, IJGPPOIJDKO, GENGJBCDOGB);
}
else if (LJPJGMJDIKB.LIKIIPEKBAK)
{
global::UnityEngine.Debug.LogFormat("Attempting to deserialize scene object with ID {0}, but no corresponding PersistenceView was found in the scene.", new object[] { JAGNIKELELP });
}
else
{
global::UnityEngine.Debug.LogErrorFormat("Cannot deserialize runtime object with ID {0} without equipment or extrusion data.", new object[] { JAGNIKELELP });
}
if (gameObject == null)
{
return null;
}
PersistenceView componentInChildren = gameObject.GetComponentInChildren<PersistenceView>();
if (componentInChildren == null)
{
global::UnityEngine.Debug.LogErrorFormat("Cannot deserialize object {0} with no PersistenceView on it or its children. Destroying...", new object[] { gameObject });
IHFKMIAHBFP.JFCIOOHPLFJ(gameObject);
return null;
}
return componentInChildren;
}
// Token: 0x0601751F RID: 95519 RVA: 0x00687940 File Offset: 0x00685B40
private void COLGNEBNKHM()
{
if (this.CKACFFNNJFP())
{
base.StopCoroutine(this.KJCGGKEBBOP);
this.KJCGGKEBBOP = null;
}
}
// Token: 0x06017520 RID: 95520 RVA: 0x00687960 File Offset: 0x00685B60
private void MIBIJLIBPGJ()
{
this.BABIFJDNLFC.JNDAEJOHPHO();
this.FCEKOOFDJGM.DLBPEOILIFL();
}
// Token: 0x06017521 RID: 95521 RVA: 0x00687978 File Offset: 0x00685B78
private IEnumerator JOIJAICAGKH(DIEJEGFOIBF NNOPJFIPCLO, List<string> DONBDBHJGJP, bool GENGJBCDOGB, RoomPersistenceManager.CNCJIGIGKME JOINLHEALDL)
{
dcbjebfkpkf = new RoomPersistenceManager.ACCJNJPBLCH.DCBJEBFKPKF();
dcbjebfkpkf.EMLIIAMBDJA = this;
if (NNOPJFIPCLO == null)
{
JOINLHEALDL(false, "No persisted Room Data created.");
yield break;
}
array = NNOPJFIPCLO.ToByteArray();
if (array == null || array.Length == 0)
{
JOINLHEALDL(false, "No room data to save.");
yield break;
}
num = 0f;
while (HNIFBBFIBBG.OINDBDDCICD == null)
{
if (num >= 10f)
{
JOINLHEALDL(false, "Timed out waiting for current session room id to become valid.");
yield break;
}
num += Time.deltaTime;
yield return null;
}
dcbjebfkpkf.FEENBKMGNHM = string.Empty;
yield return base.StartCoroutine(HNIFBBFIBBG.OEOEHMBKFBP(array, DONBDBHJGJP, new HEMCJJJMLKI.JMICPMCJMJF<string>(dcbjebfkpkf.OJKNBNGGBEC)));
if (!string.IsNullOrEmpty(dcbjebfkpkf.FEENBKMGNHM))
{
JOINLHEALDL(false, dcbjebfkpkf.FEENBKMGNHM);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x06017522 RID: 95522 RVA: 0x006879AC File Offset: 0x00685BAC
private bool AFDDEFOAJOE(JENDPFGMLME LJPJGMJDIKB)
{
return LJPJGMJDIKB != null && (LJPJGMJDIKB.DHABAPACNIN != null || LJPJGMJDIKB.JFFOKKEADDA != null);
}
// Token: 0x06017523 RID: 95523 RVA: 0x006879D4 File Offset: 0x00685BD4
protected override void OnDestroy()
{
base.OnDestroy();
IHFKMIAHBFP.ENIGMACDFMJ -= new Action<LNJFBGIBLHA>(this.OnMasterClientSwitched);
}
// Token: 0x06017524 RID: 95524 RVA: 0x006879F8 File Offset: 0x00685BF8
private void AILOFOCPEMP(string NOBAPCOKFIL)
{
this.NLHOMHODEKH.MEAINJPIECA(NOBAPCOKFIL);
}
// Token: 0x06017525 RID: 95525 RVA: 0x00687A08 File Offset: 0x00685C08
private GameObject NIOJIGFCBJO(JENDPFGMLME LJPJGMJDIKB, Guid JAGNIKELELP, Vector3 CIGPHKLAAOD, Quaternion IJGPPOIJDKO, bool GENGJBCDOGB)
{
Guid guid = LJPJGMJDIKB.DHABAPACNIN.NAILJMCCJKN.KLNKHLCMIMD();
if (guid == Guid.Empty)
{
global::UnityEngine.Debug.LogErrorFormat("Failed to spawn instance with ID {0} that has an empty prefab ID.", new object[] { JAGNIKELELP });
return null;
}
Tool tool = NetworkedSingletonMonoBehaviour<SandboxSpawnableManager>.NCKMBFBMBFM.MasterSpawnSandboxEquipment(guid, CIGPHKLAAOD, IJGPPOIJDKO);
if (tool == null)
{
global::UnityEngine.Debug.LogErrorFormat("Failed to spawn instance of equipment with ID {0} and prefab ID {1}", new object[] { JAGNIKELELP, guid });
return null;
}
GameObject gameObject = tool.gameObject;
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat("Spawning new instance of deserialized equipment {0} with ID {1}", new object[] { gameObject, JAGNIKELELP });
}
return gameObject;
}
// Token: 0x06017526 RID: 95526 RVA: 0x00687ABC File Offset: 0x00685CBC
public void PLNEAJGEGOP(Action NOBAPCOKFIL)
{
Action action = this.DEOKOGDFDLC;
Action action2;
do
{
action2 = action;
action = Interlocked.CompareExchange<Action>(ref this.DEOKOGDFDLC, (Action)Delegate.Combine(action2, NOBAPCOKFIL), action);
}
while (action != action2);
}
// Token: 0x06017527 RID: 95527 RVA: 0x00687AF4 File Offset: 0x00685CF4
private void HMPEEIOEBKK(bool GENGJBCDOGB)
{
this.EBNFNKCKOKL();
this.AOMJICBPLLO = base.StartCoroutine(this.IDPGEIGDFKO(GENGJBCDOGB));
}
// Token: 0x06017528 RID: 95528 RVA: 0x00687B10 File Offset: 0x00685D10
private IEnumerator JDCDBANHLJP(DIEJEGFOIBF NNOPJFIPCLO, bool GENGJBCDOGB, RoomPersistenceManager.CDBPIEBHLGP JOINLHEALDL)
{
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, "Only master client is allowed to deserialize room data.");
yield break;
}
if (NNOPJFIPCLO == null)
{
JOINLHEALDL(false, "Room data is null.");
yield break;
}
this.OLDPFLEBGBA(NNOPJFIPCLO, GENGJBCDOGB);
yield return null;
if (GENGJBCDOGB)
{
int num = NNOPJFIPCLO.ALCFGFGJCHI;
global::UnityEngine.Debug.LogFormat("Deserializing room data version {0} with {1} persisted views.", new object[]
{
num,
NNOPJFIPCLO.IHNIMBMNOPE.Count
});
}
enumerator = NNOPJFIPCLO.IHNIMBMNOPE.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
JENDPFGMLME jendpfgmlme = enumerator.Current;
Guid guid = jendpfgmlme.PKJFPDJKJAH.KLNKHLCMIMD();
if (guid == Guid.Empty)
{
global::UnityEngine.Debug.LogErrorFormat("Data found with malformed or empty ID while deserializing room.", new object[0]);
}
else
{
PersistenceView persistenceView = null;
if (!PersistenceView.AllViews.TryGetValue(guid, out persistenceView))
{
Vector3 vector = jendpfgmlme.KOGMNNMACPG.GMOJLKHOBGG.ECHGEFCCABI();
Quaternion quaternion = Quaternion.Euler(jendpfgmlme.KOGMNNMACPG.HCDIECIBAKP.ECHGEFCCABI());
persistenceView = this.IDBLJNOCBEC(jendpfgmlme, guid, vector, quaternion, GENGJBCDOGB);
}
if (persistenceView == null)
{
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogErrorFormat("Unable to create or locate Persistence View with guid {0}.", new object[] { guid });
}
}
else
{
if (!persistenceView.BHCCHBHNHCG)
{
persistenceView.OMNGGJICBBI.TransferOwnership(IHFKMIAHBFP.JEFGMHBLLKI);
}
persistenceView.gameObject.SetActive(true);
persistenceView.Deserialize(jendpfgmlme);
}
}
}
}
finally
{
if (enumerator != null)
{
enumerator.Dispose();
}
}
enumerator2 = PersistenceView.AllViews.Values.GetEnumerator();
try
{
while (enumerator2.MoveNext())
{
PersistenceView persistenceView2 = enumerator2.Current;
persistenceView2.NotifyDeserializationComplete();
}
}
finally
{
((IDisposable)enumerator2).Dispose();
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x0601752A RID: 95530 RVA: 0x00687B54 File Offset: 0x00685D54
public void RequestSaveRoomData()
{
if (this.HMFEPMPJGLE())
{
base.OMNGGJICBBI.RPC("RpcMasterRequestSaveRoomData", IHCPDNLJMMD.MasterClient, new object[0]);
}
}
// Token: 0x0601752B RID: 95531 RVA: 0x00687B78 File Offset: 0x00685D78
private void KDPENCEGHJD()
{
this.KDEJHEPKFMK();
}
// Token: 0x0601752C RID: 95532 RVA: 0x00687B84 File Offset: 0x00685D84
private bool MIFJNJPJNOP()
{
return this.NIKLDPBCPHO != null;
}
// Token: 0x140000CC RID: 204
// (add) Token: 0x0601752D RID: 95533 RVA: 0x00687B94 File Offset: 0x00685D94
// (remove) Token: 0x06017543 RID: 95555 RVA: 0x00687F70 File Offset: 0x00686170
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event Action BJPKKMHPMKI;
// Token: 0x0601752E RID: 95534 RVA: 0x00687BCC File Offset: 0x00685DCC
private void OJKMMGLJFFB()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && this.BABIFJDNLFC.ALEKFIMMFPH())
{
this.FCEKOOFDJGM.BKBFIGCPIMI(2, 0);
}
}
// Token: 0x0601752F RID: 95535 RVA: 0x00687BF8 File Offset: 0x00685DF8
private IEnumerator LMIJNNKPKJA(bool GENGJBCDOGB)
{
RoomPersistenceManager.PIBKEONKLPK.GJNBLIEFCAH gjnbliefcah = new RoomPersistenceManager.PIBKEONKLPK.GJNBLIEFCAH();
gjnbliefcah.AOHNJFNCJKD = this;
gjnbliefcah.LLENADHIHDP = false;
yield return base.StartCoroutine(this.IKKAPBDFIEM(GENGJBCDOGB, new RoomPersistenceManager.PEGADEADMOL(gjnbliefcah.OJKNBNGGBEC)));
if (gjnbliefcah.LLENADHIHDP)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(2);
}
else
{
this.FCEKOOFDJGM.BKBFIGCPIMI(1);
}
this.NIKLDPBCPHO = null;
yield break;
}
// Token: 0x06017530 RID: 95536 RVA: 0x00687C1C File Offset: 0x00685E1C
private void BKLLOKKBMMN(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.BABIFJDNLFC.PBDGDJIFMOK(Player.FCEGFOFFLJJ + 1494f);
}
}
// Token: 0x06017531 RID: 95537 RVA: 0x00687C40 File Offset: 0x00685E40
private IEnumerator BHIEOCFFAEK(bool GENGJBCDOGB, RoomPersistenceManager.BMPMAAMNNPJ JOINLHEALDL)
{
mcpdfkaigen = new RoomPersistenceManager.EDGCHPHLBFA.MCPDFKAIGEN();
mcpdfkaigen.PNDHCMIJLFP = this;
if (!IHFKMIAHBFP.HCHIDMOLLAD)
{
JOINLHEALDL(false, null, null, "Only the Master Client may save room data.");
yield break;
}
mcpdfkaigen.NNOPJFIPCLO = new DIEJEGFOIBF();
mcpdfkaigen.NNOPJFIPCLO.ALCFGFGJCHI = 1;
ehlbefkjlhj = PEDNLMAHGBP.KGKNIMECEKH;
mcpdfkaigen.NNOPJFIPCLO.MNDEJIOKCJK = LMBEHMFIOEN.OOCOFDALHOG(ehlbefkjlhj.KAPOBAEMBKL, ehlbefkjlhj.OOAECNOOFID);
mcpdfkaigen.NNOPJFIPCLO.BLMPACLLEPB = DateTime.UtcNow.ToTimestamp();
this.MEKJGLMJCGE.Clear();
mcpdfkaigen.MPLGGAAMDKL = global::UnityEngine.Object.FindObjectsOfType<PersistenceView>();
mcpdfkaigen.HHHBHKENMBJ = 0;
for (int i = 0; i < mcpdfkaigen.MPLGGAAMDKL.Length; i++)
{
if (mcpdfkaigen.MPLGGAAMDKL[i].AADHHMOLEOL)
{
mcpdfkaigen.HHHBHKENMBJ++;
base.StartCoroutine(mcpdfkaigen.MPLGGAAMDKL[i].PreSerialize(new Action(mcpdfkaigen.OJKNBNGGBEC)));
}
}
realtimeSinceStartup = Time.realtimeSinceStartup;
while (mcpdfkaigen.HHHBHKENMBJ > 0)
{
yield return null;
}
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat("Preserialization complete in {0} seconds", new object[] { Time.realtimeSinceStartup - realtimeSinceStartup });
}
num = 0;
kmmcmjlhcna = new RoomPersistenceManager.EDGCHPHLBFA.KMMCMJLHCNA();
kmmcmjlhcna.PNDHCMIJLFP = this;
kmmcmjlhcna.DOCPCEJLLAL = mcpdfkaigen;
kmmcmjlhcna.CIMNKHDEFOH = 0;
while (kmmcmjlhcna.CIMNKHDEFOH < mcpdfkaigen.MPLGGAAMDKL.Length)
{
if (mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].AADHHMOLEOL)
{
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat(mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH], "Serializing PersistanceView {0}", new object[] { mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].gameObject });
}
mcpdfkaigen.MPLGGAAMDKL[kmmcmjlhcna.CIMNKHDEFOH].Serialize(new PersistenceView.LJOBLBKHDAH(kmmcmjlhcna.OJKNBNGGBEC));
num++;
if (num >= 10)
{
yield return null;
num = 0;
}
}
kmmcmjlhcna.CIMNKHDEFOH++;
}
list = new List<string>(this.MEKJGLMJCGE);
JOINLHEALDL(true, mcpdfkaigen.NNOPJFIPCLO, list, null);
yield break;
}
// Token: 0x06017532 RID: 95538 RVA: 0x00687C6C File Offset: 0x00685E6C
private IEnumerator HAIFFLOHKGC(bool GENGJBCDOGB)
{
joiakdadlbk = new RoomPersistenceManager.HPLJFNNMFLK.JOIAKDADLBK();
joiakdadlbk.KCBDIJPPCNF = this;
joiakdadlbk.LLENADHIHDP = false;
joiakdadlbk.OIFBPEJHDOD = null;
yield return base.StartCoroutine(this.KAONDDNBHOO(GENGJBCDOGB, new RoomPersistenceManager.PEGADEADMOL(joiakdadlbk.OJKNBNGGBEC)));
if (joiakdadlbk.LLENADHIHDP)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(7);
}
else
{
this.HELCLDHMMOJ = joiakdadlbk.OIFBPEJHDOD;
this.FCEKOOFDJGM.BKBFIGCPIMI(8);
}
this.KJCGGKEBBOP = null;
yield break;
}
// Token: 0x06017533 RID: 95539 RVA: 0x00687C90 File Offset: 0x00685E90
private bool AOAMHAKFCIP()
{
return this.KJCGGKEBBOP == null;
}
// Token: 0x06017534 RID: 95540 RVA: 0x00687CA0 File Offset: 0x00685EA0
private bool HMFEPMPJGLE()
{
return this.FCEKOOFDJGM != null && this.FCEKOOFDJGM.BHMLLHLEAFF == 2;
}
// Token: 0x06017535 RID: 95541 RVA: 0x00687CC0 File Offset: 0x00685EC0
private IEnumerator KAONDDNBHOO(bool GENGJBCDOGB, RoomPersistenceManager.PEGADEADMOL JOINLHEALDL)
{
lnpcbgebnig = new RoomPersistenceManager.CFAHOAIIEGO.LNPCBGEBNIG();
lnpcbgebnig.NJPHDNAAJHF = this;
lnpcbgebnig.NNOPJFIPCLO = null;
lnpcbgebnig.CPKPDBJBPEL = false;
lnpcbgebnig.IGKNKHHNJNI = null;
yield return base.StartCoroutine(this.PIPDEKANCNB(GENGJBCDOGB, new RoomPersistenceManager.HADOPFJNNAO(lnpcbgebnig.OJKNBNGGBEC)));
if (!lnpcbgebnig.CPKPDBJBPEL)
{
JOINLHEALDL(false, lnpcbgebnig.IGKNKHHNJNI);
yield break;
}
if (lnpcbgebnig.NNOPJFIPCLO == null)
{
JOINLHEALDL(true, null);
yield break;
}
lnpcbgebnig.APIPJOMAGJI = false;
lnpcbgebnig.DKGPJBCMBNG = null;
yield return base.StartCoroutine(this.CLPFGKALHGE(lnpcbgebnig.NNOPJFIPCLO, GENGJBCDOGB, new RoomPersistenceManager.CDBPIEBHLGP(lnpcbgebnig.JAFGLCBFOHM)));
if (!lnpcbgebnig.APIPJOMAGJI)
{
JOINLHEALDL(false, lnpcbgebnig.DKGPJBCMBNG);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x06017536 RID: 95542 RVA: 0x00687CEC File Offset: 0x00685EEC
private IEnumerator IHELFIFJGFM(DIEJEGFOIBF NNOPJFIPCLO, List<string> DONBDBHJGJP, bool GENGJBCDOGB, RoomPersistenceManager.CNCJIGIGKME JOINLHEALDL)
{
dcbjebfkpkf = new RoomPersistenceManager.ACCJNJPBLCH.DCBJEBFKPKF();
dcbjebfkpkf.EMLIIAMBDJA = this;
if (NNOPJFIPCLO == null)
{
JOINLHEALDL(false, "No persisted Room Data created.");
yield break;
}
array = NNOPJFIPCLO.ToByteArray();
if (array == null || array.Length == 0)
{
JOINLHEALDL(false, "No room data to save.");
yield break;
}
num = 0f;
while (HNIFBBFIBBG.OINDBDDCICD == null)
{
if (num >= 10f)
{
JOINLHEALDL(false, "Timed out waiting for current session room id to become valid.");
yield break;
}
num += Time.deltaTime;
yield return null;
}
dcbjebfkpkf.FEENBKMGNHM = string.Empty;
yield return base.StartCoroutine(HNIFBBFIBBG.OEOEHMBKFBP(array, DONBDBHJGJP, new HEMCJJJMLKI.JMICPMCJMJF<string>(dcbjebfkpkf.OJKNBNGGBEC)));
if (!string.IsNullOrEmpty(dcbjebfkpkf.FEENBKMGNHM))
{
JOINLHEALDL(false, dcbjebfkpkf.FEENBKMGNHM);
yield break;
}
JOINLHEALDL(true, null);
yield break;
}
// Token: 0x06017537 RID: 95543 RVA: 0x00687D20 File Offset: 0x00685F20
private void KDJEJEEJLJJ()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(2);
}
}
// Token: 0x06017539 RID: 95545 RVA: 0x00687D70 File Offset: 0x00685F70
private IEnumerator MMCCAFMBLBP(bool GENGJBCDOGB)
{
gjnbliefcah = new RoomPersistenceManager.PIBKEONKLPK.GJNBLIEFCAH();
gjnbliefcah.AOHNJFNCJKD = this;
gjnbliefcah.LLENADHIHDP = false;
yield return base.StartCoroutine(this.IKKAPBDFIEM(GENGJBCDOGB, new RoomPersistenceManager.PEGADEADMOL(gjnbliefcah.OJKNBNGGBEC)));
if (gjnbliefcah.LLENADHIHDP)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(2);
}
else
{
this.FCEKOOFDJGM.BKBFIGCPIMI(1);
}
this.NIKLDPBCPHO = null;
yield break;
}
// Token: 0x0601753A RID: 95546 RVA: 0x00687D94 File Offset: 0x00685F94
protected virtual void LFEBHHFENDK()
{
base.OnDestroy();
IHFKMIAHBFP.ENIGMACDFMJ -= new Action<LNJFBGIBLHA>(this.PKMIODLNHHO);
}
// Token: 0x0601753B RID: 95547 RVA: 0x00687DB8 File Offset: 0x00685FB8
private void LAAEPEJLALK()
{
if (IHFKMIAHBFP.HCHIDMOLLAD)
{
this.FCEKOOFDJGM.BKBFIGCPIMI(2);
}
}
// Token: 0x0601753C RID: 95548 RVA: 0x00687DD0 File Offset: 0x00685FD0
private void NCEHDOMIIFK(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (this.NBDCGEKLCDM != null)
{
this.NBDCGEKLCDM(this.HELCLDHMMOJ);
}
SingletonMonoBehaviour<ScreenSpaceNotificationManager>.NCKMBFBMBFM.Play(ScreenSpaceNotificationManager.DBNGPDFKLEK.Vital, "Room Saving Failed", 3f, null, false);
NECCOFKHCAA.FLELJAKONEE(PEDNLMAHGBP.KGKNIMECEKH.ODIPLBJJBLB, false);
}
// Token: 0x0601753E RID: 95550 RVA: 0x00687E58 File Offset: 0x00686058
private void OEBIDNFIAKA(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (this.DEOKOGDFDLC != null)
{
this.DEOKOGDFDLC();
}
SingletonMonoBehaviour<ScreenSpaceNotificationManager>.NCKMBFBMBFM.PAHKOCPEDMB(ScreenSpaceNotificationManager.DBNGPDFKLEK.Vital, "Start", 1541f, null, false);
NECCOFKHCAA.FLELJAKONEE(PEDNLMAHGBP.NNAHPOJLAHM().ODIPLBJJBLB, true);
}
// Token: 0x0601753F RID: 95551 RVA: 0x00687E98 File Offset: 0x00686098
private bool PKGJCPJMABF()
{
return this.FCEKOOFDJGM != null && this.FCEKOOFDJGM.BHMLLHLEAFF == 2;
}
// Token: 0x06017540 RID: 95552 RVA: 0x00687EB8 File Offset: 0x006860B8
[BCENPNOIAOM]
private void RpcMasterRequestSaveRoomData()
{
this.ANPBBPKHGBJ();
}
// Token: 0x06017541 RID: 95553 RVA: 0x00687EC4 File Offset: 0x006860C4
private GameObject CDKPBNIHJOF(JENDPFGMLME LJPJGMJDIKB, Guid JAGNIKELELP, Vector3 CIGPHKLAAOD, Quaternion IJGPPOIJDKO, bool GENGJBCDOGB)
{
Extrusion extrusion = NetworkedSingletonMonoBehaviour<SandboxSpawnableManager>.NCKMBFBMBFM.MasterSpawnExtrusion(CIGPHKLAAOD, IJGPPOIJDKO, 0);
if (extrusion == null)
{
global::UnityEngine.Debug.LogErrorFormat("Failed to spawn extrusion instance with ID {0}", new object[] { JAGNIKELELP });
return null;
}
GameObject gameObject = extrusion.gameObject;
if (GENGJBCDOGB)
{
global::UnityEngine.Debug.LogFormat("Spawning new extrusion instance with ID {0}", new object[] { JAGNIKELELP });
}
return gameObject;
}
// Token: 0x06017542 RID: 95554 RVA: 0x00687F30 File Offset: 0x00686130
private void LKINCELIOGF(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (this.DEOKOGDFDLC != null)
{
this.DEOKOGDFDLC();
}
SingletonMonoBehaviour<ScreenSpaceNotificationManager>.NCKMBFBMBFM.Play(ScreenSpaceNotificationManager.DBNGPDFKLEK.Vital, "Room Saved!", 3f, null, false);
NECCOFKHCAA.FLELJAKONEE(PEDNLMAHGBP.KGKNIMECEKH.ODIPLBJJBLB, true);
}
// Token: 0x06017544 RID: 95556 RVA: 0x00687FA8 File Offset: 0x006861A8
private void BPNENDANHJC()
{
if (this.HKBDAJDBPFH())
{
base.StopCoroutine(this.AOMJICBPLLO);
this.AOMJICBPLLO = null;
}
}
// Token: 0x06017545 RID: 95557 RVA: 0x00687FC8 File Offset: 0x006861C8
private void KFGBOLAJHNJ(ushort CHJBIHILBFO, ushort BNCBHHCPCLE)
{
if (this.BJPKKMHPMKI != null)
{
this.BJPKKMHPMKI();
}
SingletonMonoBehaviour<ScreenSpaceNotificationManager>.NCKMBFBMBFM.Play(ScreenSpaceNotificationManager.DBNGPDFKLEK.Vital, "Room Restored!", 3f, null, false);
NECCOFKHCAA.GILMEMNHBJC(PEDNLMAHGBP.KGKNIMECEKH.ODIPLBJJBLB, true);
}
// Token: 0x06017546 RID: 95558 RVA: 0x00688008 File Offset: 0x00686208
private void KMEEIPGNKEH(bool GENGJBCDOGB)
{
this.EBNFNKCKOKL();
this.AOMJICBPLLO = base.StartCoroutine(this.IDPGEIGDFKO(GENGJBCDOGB));
}
// Token: 0x06017547 RID: 95559 RVA: 0x00688024 File Offset: 0x00686224
private void JPNAFHBKFIA()
{
if (IHFKMIAHBFP.HCHIDMOLLAD && !this.MIFJNJPJNOP())
{
bool flag = false;
this.LFLCHIGHIIA(flag);
}
}
// Token: 0x04004137 RID: 16695
private const int POKBCHGNBCN = 1;
// Token: 0x04004138 RID: 16696
private const int ENKKGNEFHKI = 10;
// Token: 0x04004139 RID: 16697
private const int HLAIIPPKGGI = 10;
// Token: 0x0400413A RID: 16698
private const float NELJCGAPCCN = 0.25f;
// Token: 0x0400413B RID: 16699
private const float FLJCCELDHEP = 10f;
// Token: 0x04004140 RID: 16704
private PNONBEAIBHA FCEKOOFDJGM;
// Token: 0x04004141 RID: 16705
private AONMNAEOJAL BABIFJDNLFC;
// Token: 0x04004142 RID: 16706
private LHLLJPPCDKA<string> NLHOMHODEKH;
// Token: 0x04004143 RID: 16707
private Coroutine NIKLDPBCPHO;
// Token: 0x04004144 RID: 16708
private Coroutine AOMJICBPLLO;
// Token: 0x04004145 RID: 16709
private Coroutine KJCGGKEBBOP;
// Token: 0x04004146 RID: 16710
private List<string> MEKJGLMJCGE = new List<string>();
// Token: 0x02000BE1 RID: 3041
// (Invoke) Token: 0x06017549 RID: 95561
public delegate void PEGADEADMOL(bool LOJMICCBPII, string OIFBPEJHDOD);
// Token: 0x02000BE2 RID: 3042
// (Invoke) Token: 0x0601754D RID: 95565
private delegate void OAPOBCDABGG(bool LOJMICCBPII, global::RecNet.PLOPPLAOICD HJPIBHDNGOC, string OIFBPEJHDOD);
// Token: 0x02000BE3 RID: 3043
// (Invoke) Token: 0x06017551 RID: 95569
private delegate void BMPMAAMNNPJ(bool LOJMICCBPII, DIEJEGFOIBF HFDMAMAGILP, List<string> GEDACPBKDIG, string OIFBPEJHDOD);
// Token: 0x02000BE4 RID: 3044
// (Invoke) Token: 0x06017555 RID: 95573
private delegate void CNCJIGIGKME(bool LOJMICCBPII, string OIFBPEJHDOD);
// Token: 0x02000BE5 RID: 3045
// (Invoke) Token: 0x06017559 RID: 95577
private delegate void HADOPFJNNAO(bool LOJMICCBPII, DIEJEGFOIBF GFHBJBPJCLF, string OIFBPEJHDOD);
// Token: 0x02000BE6 RID: 3046
// (Invoke) Token: 0x0601755D RID: 95581
private delegate void CDBPIEBHLGP(bool LOJMICCBPII, string OIFBPEJHDOD);
// Token: 0x02000BE7 RID: 3047
private enum JECCIECOEID
{
// Token: 0x04004148 RID: 16712
INITIAL_LOADING,
// Token: 0x04004149 RID: 16713
INITIAL_LOAD_FAILURE,
// Token: 0x0400414A RID: 16714
IDLE,
// Token: 0x0400414B RID: 16715
SAVING,
// Token: 0x0400414C RID: 16716
SAVING_SUCCESS,
// Token: 0x0400414D RID: 16717
SAVING_FAILURE,
// Token: 0x0400414E RID: 16718
RELOADING,
// Token: 0x0400414F RID: 16719
RELOADING_SUCCESS,
// Token: 0x04004150 RID: 16720
RELOADING_FAILURE
}
// Token: 0x02000BE8 RID: 3048
private enum AKFAIMAIKGA
{
// Token: 0x04004152 RID: 16722
WAIT_FOR_PLAYER_DESPAWN,
// Token: 0x04004153 RID: 16723
RELOAD_ROOM
}
}
}