public void Deserialize(DataSerializer s)
            {
                Singleton <LoadingManager> .instance.m_loadingProfilerSimulation.BeginDeserialize(s, "GameAreaManager");

                GameAreaManager instance = Singleton <GameAreaManager> .instance;

                //begin mod
                instance.m_areaGrid = new int[AREAGRID_RESOLUTION * AREAGRID_RESOLUTION];
                //end mod
                int[] numArray = instance.m_areaGrid;
                int   length   = numArray.Length;

                instance.m_areaCount = (int)s.ReadUInt8();
                //begin mod
                instance.m_maxAreaCount = AREAGRID_RESOLUTION * AREAGRID_RESOLUTION;
                //end mod
                _startTileField.SetValue(instance, s.version < 137U ? 12 : (int)s.ReadUInt8());
                EncodedArray.Byte @byte = EncodedArray.Byte.BeginRead(s);
                for (int index = 0; index < length; ++index)
                {
                    numArray[index] = (int)@byte.Read();
                }
                @byte.EndRead();
                instance.m_areaNotUnlocked = s.version < 87U ? (GenericGuide)null : s.ReadObject <GenericGuide>();
                if (s.version >= 199U)
                {
                    _fieldInfo1.SetValue(instance, s.ReadFloat());
                    _fieldInfo2.SetValue(instance, s.ReadFloat());
                    _fieldInfo3.SetValue(instance, s.ReadFloat());
                    _fieldInfo4.SetValue(instance, s.ReadFloat());
                }
                else
                {
                    _fieldInfo1.SetValue(instance, -1f);
                    _fieldInfo2.SetValue(instance, -1f);
                    _fieldInfo3.SetValue(instance, -1f);
                    _fieldInfo4.SetValue(instance, -1f);
                }
                if (s.version >= 112032U && !RecoveryMode)
                {
                    var instanceSavedCameraView = (CameraController.SavedCameraView)_fieldInfo5.GetValue(instance);
                    instanceSavedCameraView.Deserialize(s);
                }
                else
                {
                    RecoveryMode = false;
                    var instanceSavedCameraView = new CameraController.SavedCameraView();
                    instanceSavedCameraView.m_mode = -1;
                    _fieldInfo5.SetValue(instance, instanceSavedCameraView);
                }
                Singleton <LoadingManager> .instance.m_loadingProfilerSimulation.EndDeserialize(s, "GameAreaManager");
            }
            public void Serialize(DataSerializer s)
            {
                Singleton <LoadingManager> .instance.m_loadingProfilerSimulation.BeginSerialize(s, "GameAreaManager");

                GameAreaManager instance = Singleton <GameAreaManager> .instance;

                //begin mod
                int[] numArray  = new int[AREAGRID_RESOLUTION * AREAGRID_RESOLUTION];
                int   length    = numArray.Length;
                int   areaCount = 0;

                for (var i = 0; i < 5; i += 1)
                {
                    for (var j = 0; j < 5; j += 1)
                    {
                        var grid = GameAreaManager.instance.m_areaGrid[(j + 2) * GRID + (i + 2)];
                        numArray[j * AREAGRID_RESOLUTION + i] = grid;
                        if (grid != 0)
                        {
                            areaCount += 1;
                        }
                    }
                }
                s.WriteUInt8((uint)areaCount);
                //end mod
                s.WriteUInt8((uint)(int)_startTileField.GetValue(instance));
                EncodedArray.Byte @byte = EncodedArray.Byte.BeginWrite(s);
                for (int index = 0; index < length; ++index)
                {
                    @byte.Write((byte)numArray[index]);
                }
                @byte.EndWrite();

                s.WriteObject <GenericGuide>(instance.m_areaNotUnlocked);
                s.WriteFloat((float)_fieldInfo1.GetValue(instance));
                s.WriteFloat((float)_fieldInfo2.GetValue(instance));
                s.WriteFloat((float)_fieldInfo3.GetValue(instance));
                s.WriteFloat((float)_fieldInfo4.GetValue(instance));
                var instanceSavedCameraView = new CameraController.SavedCameraView((CameraController)_fieldInfo6.GetValue(instance));

                _fieldInfo5.SetValue(instance, instanceSavedCameraView);
                instanceSavedCameraView.Serialize(s);
                Singleton <LoadingManager> .instance.m_loadingProfilerSimulation.EndSerialize(s, "GameAreaManager");
            }