Beispiel #1
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Spawns/Vehicles.dat", false);

            river.writeByte(LevelVehicles.SAVEDATA_VERSION);
            river.writeByte((byte)LevelVehicles.tables.Count);
            byte b = 0;

            while ((int)b < LevelVehicles.tables.Count)
            {
                VehicleTable vehicleTable = LevelVehicles.tables[(int)b];
                river.writeColor(vehicleTable.color);
                river.writeString(vehicleTable.name);
                river.writeUInt16(vehicleTable.tableID);
                river.writeByte((byte)vehicleTable.tiers.Count);
                byte b2 = 0;
                while ((int)b2 < vehicleTable.tiers.Count)
                {
                    VehicleTier vehicleTier = vehicleTable.tiers[(int)b2];
                    river.writeString(vehicleTier.name);
                    river.writeSingle(vehicleTier.chance);
                    river.writeByte((byte)vehicleTier.table.Count);
                    byte b3 = 0;
                    while ((int)b3 < vehicleTier.table.Count)
                    {
                        VehicleSpawn vehicleSpawn = vehicleTier.table[(int)b3];
                        river.writeUInt16(vehicleSpawn.vehicle);
                        b3 += 1;
                    }
                    b2 += 1;
                }
                b += 1;
            }
            river.writeUInt16((ushort)LevelVehicles.spawns.Count);
            for (int i = 0; i < LevelVehicles.spawns.Count; i++)
            {
                VehicleSpawnpoint vehicleSpawnpoint = LevelVehicles.spawns[i];
                river.writeByte(vehicleSpawnpoint.type);
                river.writeSingleVector3(vehicleSpawnpoint.point);
                river.writeByte(MeasurementTool.angleToByte(vehicleSpawnpoint.angle));
            }
            river.closeRiver();
        }
Beispiel #2
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Spawns/Fauna.dat", false);

            river.writeByte(LevelAnimals.SAVEDATA_VERSION);
            river.writeByte((byte)LevelAnimals.tables.Count);
            byte b = 0;

            while ((int)b < LevelAnimals.tables.Count)
            {
                AnimalTable animalTable = LevelAnimals.tables[(int)b];
                river.writeColor(animalTable.color);
                river.writeString(animalTable.name);
                river.writeUInt16(animalTable.tableID);
                river.writeByte((byte)animalTable.tiers.Count);
                byte b2 = 0;
                while ((int)b2 < animalTable.tiers.Count)
                {
                    AnimalTier animalTier = animalTable.tiers[(int)b2];
                    river.writeString(animalTier.name);
                    river.writeSingle(animalTier.chance);
                    river.writeByte((byte)animalTier.table.Count);
                    byte b3 = 0;
                    while ((int)b3 < animalTier.table.Count)
                    {
                        AnimalSpawn animalSpawn = animalTier.table[(int)b3];
                        river.writeUInt16(animalSpawn.animal);
                        b3 += 1;
                    }
                    b2 += 1;
                }
                b += 1;
            }
            river.writeUInt16((ushort)LevelAnimals.spawns.Count);
            for (int i = 0; i < LevelAnimals.spawns.Count; i++)
            {
                AnimalSpawnpoint animalSpawnpoint = LevelAnimals.spawns[i];
                river.writeByte(animalSpawnpoint.type);
                river.writeSingleVector3(animalSpawnpoint.point);
            }
            river.closeRiver();
        }
Beispiel #3
0
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Groups.dat", false);

            river.writeByte(GroupManager.SAVEDATA_VERSION);
            river.writeSteamID(GroupManager.availableGroupID);
            Dictionary <CSteamID, GroupInfo> .ValueCollection values = GroupManager.knownGroups.Values;
            river.writeInt32(values.Count);
            foreach (GroupInfo groupInfo in values)
            {
                river.writeSteamID(groupInfo.groupID);
                river.writeString(groupInfo.name);
                river.writeUInt32(groupInfo.members);
            }
        }
Beispiel #4
0
        // Token: 0x060030A7 RID: 12455 RVA: 0x0013F260 File Offset: 0x0013D660
        public static void save()
        {
            River river = ServerSavedata.openRiver("/Server/Whitelist.dat", false);

            river.writeByte(SteamWhitelist.SAVEDATA_VERSION);
            river.writeUInt16((ushort)SteamWhitelist.list.Count);
            ushort num = 0;

            while ((int)num < SteamWhitelist.list.Count)
            {
                SteamWhitelistID steamWhitelistID = SteamWhitelist.list[(int)num];
                river.writeSteamID(steamWhitelistID.steamID);
                river.writeString(steamWhitelistID.tag);
                river.writeSteamID(steamWhitelistID.judgeID);
                num += 1;
            }
            river.closeRiver();
        }
Beispiel #5
0
        // Token: 0x06002FB0 RID: 12208 RVA: 0x0013BA70 File Offset: 0x00139E70
        public static void save()
        {
            River river = ServerSavedata.openRiver("/Server/Blacklist.dat", false);

            river.writeByte(SteamBlacklist.SAVEDATA_VERSION);
            river.writeUInt16((ushort)SteamBlacklist.list.Count);
            ushort num = 0;

            while ((int)num < SteamBlacklist.list.Count)
            {
                SteamBlacklistID steamBlacklistID = SteamBlacklist.list[(int)num];
                river.writeSteamID(steamBlacklistID.playerID);
                river.writeUInt32(steamBlacklistID.ip);
                river.writeSteamID(steamBlacklistID.judgeID);
                river.writeString(steamBlacklistID.reason);
                river.writeUInt32(steamBlacklistID.duration);
                river.writeUInt32(steamBlacklistID.banned);
                num += 1;
            }
            river.closeRiver();
        }
Beispiel #6
0
        // Token: 0x06002825 RID: 10277 RVA: 0x000F3410 File Offset: 0x000F1810
        public static void save()
        {
            River river = LevelSavedata.openRiver("/Groups.dat", false);

            river.writeByte(GroupManager.SAVEDATA_VERSION);
            river.writeSteamID(GroupManager.availableGroupID);
            Dictionary <CSteamID, GroupInfo> .ValueCollection values = GroupManager.knownGroups.Values;
            List <GroupInfo> list = new List <GroupInfo>();

            foreach (GroupInfo groupInfo in values)
            {
                if (groupInfo.members >= 1u && !string.IsNullOrEmpty(groupInfo.name))
                {
                    list.Add(groupInfo);
                }
            }
            river.writeInt32(list.Count);
            foreach (GroupInfo groupInfo2 in list)
            {
                river.writeSteamID(groupInfo2.groupID);
                river.writeString(groupInfo2.name);
                river.writeUInt32(groupInfo2.members);
            }
        }
Beispiel #7
0
        public static void save()
        {
            River river = new River(Level.info.path + "/Environment/Bounds.dat", false);

            river.writeByte(LevelNavigation.SAVEDATA_BOUNDS_VERSION);
            river.writeByte((byte)LevelNavigation.bounds.Count);
            byte b = 0;

            while ((int)b < LevelNavigation.bounds.Count)
            {
                river.writeSingleVector3(LevelNavigation.bounds[(int)b].center);
                river.writeSingleVector3(LevelNavigation.bounds[(int)b].size);
                b += 1;
            }
            river.closeRiver();
            River river2 = new River(Level.info.path + "/Environment/Flags_Data.dat", false);

            river2.writeByte(LevelNavigation.SAVEDATA_FLAG_DATA_VERSION);
            river2.writeByte((byte)LevelNavigation.flagData.Count);
            byte b2 = 0;

            while ((int)b2 < LevelNavigation.flagData.Count)
            {
                river2.writeString(LevelNavigation.flagData[(int)b2].difficultyGUID);
                river2.writeByte(LevelNavigation.flagData[(int)b2].maxZombies);
                river2.writeBoolean(LevelNavigation.flagData[(int)b2].spawnZombies);
                b2 += 1;
            }
            river2.closeRiver();
            River river3 = new River(Level.info.path + "/Environment/Flags.dat", false);

            river3.writeByte(LevelNavigation.SAVEDATA_FLAGS_VERSION);
            int num = LevelNavigation.flags.Count;

            while (ReadWrite.fileExists(string.Concat(new object[]
            {
                Level.info.path,
                "/Environment/Navigation_",
                num,
                ".dat"
            }), false, false))
            {
                ReadWrite.deleteFile(string.Concat(new object[]
                {
                    Level.info.path,
                    "/Environment/Navigation_",
                    num,
                    ".dat"
                }), false, false);
                num++;
            }
            river3.writeByte((byte)LevelNavigation.flags.Count);
            byte b3 = 0;

            while ((int)b3 < LevelNavigation.flags.Count)
            {
                Flag flag = LevelNavigation.flags[(int)b3];
                river3.writeSingleVector3(flag.point);
                river3.writeSingle(flag.width);
                river3.writeSingle(flag.height);
                if (flag.needsNavigationSave)
                {
                    River river4 = new River(string.Concat(new object[]
                    {
                        Level.info.path,
                        "/Environment/Navigation_",
                        b3,
                        ".dat"
                    }), false);
                    river4.writeByte(LevelNavigation.SAVEDATA_NAVIGATION_VERSION);
                    RecastGraph graph = flag.graph;
                    river4.writeSingleVector3(graph.forcedBoundsCenter);
                    river4.writeSingleVector3(graph.forcedBoundsSize);
                    river4.writeByte((byte)graph.tileXCount);
                    river4.writeByte((byte)graph.tileZCount);
                    RecastGraph.NavmeshTile[] tiles = graph.GetTiles();
                    for (int i = 0; i < graph.tileZCount; i++)
                    {
                        for (int j = 0; j < graph.tileXCount; j++)
                        {
                            RecastGraph.NavmeshTile navmeshTile = tiles[j + i * graph.tileXCount];
                            river4.writeUInt16((ushort)navmeshTile.tris.Length);
                            for (int k = 0; k < navmeshTile.tris.Length; k++)
                            {
                                river4.writeUInt16((ushort)navmeshTile.tris[k]);
                            }
                            river4.writeUInt16((ushort)navmeshTile.verts.Length);
                            for (int l = 0; l < navmeshTile.verts.Length; l++)
                            {
                                Int3 @int = navmeshTile.verts[l];
                                river4.writeInt32(@int.x);
                                river4.writeInt32(@int.y);
                                river4.writeInt32(@int.z);
                            }
                        }
                    }
                    river4.closeRiver();
                    flag.needsNavigationSave = false;
                }
                b3 += 1;
            }
            river3.closeRiver();
        }
        // Token: 0x06002561 RID: 9569 RVA: 0x000D93E4 File Offset: 0x000D77E4
        public static void save()
        {
            River river = new River(Level.info.path + "/Environment/Nodes.dat", false);

            river.writeByte(LevelNodes.SAVEDATA_VERSION);
            byte   b   = 0;
            ushort num = 0;

            while ((int)num < LevelNodes.nodes.Count)
            {
                if (LevelNodes.nodes[(int)num].type != ENodeType.LOCATION || ((LocationNode)LevelNodes.nodes[(int)num]).name.Length > 0)
                {
                    b += 1;
                }
                num += 1;
            }
            river.writeByte(b);
            byte b2 = 0;

            while ((int)b2 < LevelNodes.nodes.Count)
            {
                if (LevelNodes.nodes[(int)b2].type != ENodeType.LOCATION || ((LocationNode)LevelNodes.nodes[(int)b2]).name.Length > 0)
                {
                    river.writeSingleVector3(LevelNodes.nodes[(int)b2].point);
                    river.writeByte((byte)LevelNodes.nodes[(int)b2].type);
                    if (LevelNodes.nodes[(int)b2].type == ENodeType.LOCATION)
                    {
                        river.writeString(((LocationNode)LevelNodes.nodes[(int)b2]).name);
                    }
                    else if (LevelNodes.nodes[(int)b2].type == ENodeType.SAFEZONE)
                    {
                        river.writeSingle(((SafezoneNode)LevelNodes.nodes[(int)b2]).radius);
                        river.writeBoolean(((SafezoneNode)LevelNodes.nodes[(int)b2]).isHeight);
                        river.writeBoolean(((SafezoneNode)LevelNodes.nodes[(int)b2]).noWeapons);
                        river.writeBoolean(((SafezoneNode)LevelNodes.nodes[(int)b2]).noBuildables);
                    }
                    else if (LevelNodes.nodes[(int)b2].type == ENodeType.PURCHASE)
                    {
                        river.writeSingle(((PurchaseNode)LevelNodes.nodes[(int)b2]).radius);
                        river.writeUInt16(((PurchaseNode)LevelNodes.nodes[(int)b2]).id);
                        river.writeUInt32(((PurchaseNode)LevelNodes.nodes[(int)b2]).cost);
                    }
                    else if (LevelNodes.nodes[(int)b2].type == ENodeType.ARENA)
                    {
                        river.writeSingle(((ArenaNode)LevelNodes.nodes[(int)b2]).radius);
                    }
                    else if (LevelNodes.nodes[(int)b2].type == ENodeType.DEADZONE)
                    {
                        river.writeSingle(((DeadzoneNode)LevelNodes.nodes[(int)b2]).radius);
                    }
                    else if (LevelNodes.nodes[(int)b2].type == ENodeType.AIRDROP)
                    {
                        river.writeUInt16(((AirdropNode)LevelNodes.nodes[(int)b2]).id);
                    }
                    else if (LevelNodes.nodes[(int)b2].type == ENodeType.EFFECT)
                    {
                        river.writeByte((byte)((EffectNode)LevelNodes.nodes[(int)b2]).shape);
                        river.writeSingle(((EffectNode)LevelNodes.nodes[(int)b2]).radius);
                        river.writeSingleVector3(((EffectNode)LevelNodes.nodes[(int)b2]).bounds);
                        river.writeUInt16(((EffectNode)LevelNodes.nodes[(int)b2]).id);
                        river.writeBoolean(((EffectNode)LevelNodes.nodes[(int)b2]).noWater);
                        river.writeBoolean(((EffectNode)LevelNodes.nodes[(int)b2]).noLighting);
                    }
                }
                b2 += 1;
            }
            river.closeRiver();
        }
Beispiel #9
0
        public static void save()
        {
            if (Level.info.configData.Use_Legacy_Objects)
            {
                River river = new River(Level.info.path + "/Level/Objects.dat", false);
                river.writeByte(LevelObjects.SAVEDATA_VERSION);
                river.writeUInt32(LevelObjects.availableInstanceID);
                for (byte b = 0; b < Regions.WORLD_SIZE; b += 1)
                {
                    for (byte b2 = 0; b2 < Regions.WORLD_SIZE; b2 += 1)
                    {
                        List <LevelObject> list = LevelObjects.objects[(int)b, (int)b2];
                        river.writeUInt16((ushort)list.Count);
                        ushort num = 0;
                        while ((int)num < list.Count)
                        {
                            LevelObject levelObject = list[(int)num];
                            if (levelObject != null && levelObject.transform != null && levelObject.id != 0)
                            {
                                river.writeSingleVector3(levelObject.transform.position);
                                river.writeSingleQuaternion(levelObject.transform.rotation);
                                river.writeSingleVector3(levelObject.transform.localScale);
                                river.writeUInt16(levelObject.id);
                                river.writeString(levelObject.name);
                                river.writeGUID(levelObject.GUID);
                                river.writeByte((byte)levelObject.placementOrigin);
                                river.writeUInt32(levelObject.instanceID);
                            }
                            else
                            {
                                river.writeSingleVector3(Vector3.zero);
                                river.writeSingleQuaternion(Quaternion.identity);
                                river.writeSingleVector3(Vector3.one);
                                river.writeUInt16(0);
                                river.writeString(string.Empty);
                                river.writeGUID(Guid.Empty);
                                river.writeByte(0);
                                river.writeUInt32(0u);
                                Debug.LogError(string.Concat(new object[]
                                {
                                    "Found invalid object at ",
                                    b,
                                    ", ",
                                    b2,
                                    " with model: ",
                                    levelObject.transform,
                                    " and ID: ",
                                    levelObject.id
                                }));
                            }
                            num += 1;
                        }
                    }
                }
                river.closeRiver();
            }
            River river2 = new River(Level.info.path + "/Level/Buildables.dat", false);

            river2.writeByte(LevelObjects.SAVEDATA_VERSION);
            for (byte b3 = 0; b3 < Regions.WORLD_SIZE; b3 += 1)
            {
                for (byte b4 = 0; b4 < Regions.WORLD_SIZE; b4 += 1)
                {
                    List <LevelBuildableObject> list2 = LevelObjects.buildables[(int)b3, (int)b4];
                    river2.writeUInt16((ushort)list2.Count);
                    ushort num2 = 0;
                    while ((int)num2 < list2.Count)
                    {
                        LevelBuildableObject levelBuildableObject = list2[(int)num2];
                        if (levelBuildableObject != null && levelBuildableObject.transform != null && levelBuildableObject.id != 0)
                        {
                            river2.writeSingleVector3(levelBuildableObject.transform.position);
                            river2.writeSingleQuaternion(levelBuildableObject.transform.rotation);
                            river2.writeUInt16(levelBuildableObject.id);
                        }
                        else
                        {
                            river2.writeSingleVector3(Vector3.zero);
                            river2.writeSingleQuaternion(Quaternion.identity);
                            river2.writeUInt16(0);
                            Debug.LogError(string.Concat(new object[]
                            {
                                "Found invalid object at ",
                                b3,
                                ", ",
                                b4,
                                " with model: ",
                                levelBuildableObject.transform,
                                " and ID: ",
                                levelBuildableObject.id
                            }));
                        }
                        num2 += 1;
                    }
                }
            }
            river2.closeRiver();
        }