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

            river.writeByte(LevelRoads.SAVEDATA_ROADS_VERSION);
            river.writeByte((byte)LevelRoads.materials.Length);
            byte b = 0;

            while ((int)b < LevelRoads.materials.Length)
            {
                river.writeSingle(LevelRoads.materials[(int)b].width);
                river.writeSingle(LevelRoads.materials[(int)b].height);
                river.writeSingle(LevelRoads.materials[(int)b].depth);
                river.writeSingle(LevelRoads.materials[(int)b].offset);
                river.writeBoolean(LevelRoads.materials[(int)b].isConcrete);
                b += 1;
            }
            river.closeRiver();
            river = new River(Level.info.path + "/Environment/Paths.dat", false);
            river.writeByte(LevelRoads.SAVEDATA_PATHS_VERSION);
            ushort num  = 0;
            ushort num2 = 0;

            while ((int)num2 < LevelRoads.roads.Count)
            {
                if (LevelRoads.roads[(int)num2].joints.Count > 1)
                {
                    num += 1;
                }
                num2 += 1;
            }
            river.writeUInt16(num);
            byte b2 = 0;

            while ((int)b2 < LevelRoads.roads.Count)
            {
                List <RoadJoint> joints = LevelRoads.roads[(int)b2].joints;
                if (joints.Count > 1)
                {
                    river.writeUInt16((ushort)joints.Count);
                    river.writeByte(LevelRoads.roads[(int)b2].material);
                    river.writeBoolean(LevelRoads.roads[(int)b2].isLoop);
                    ushort num3 = 0;
                    while ((int)num3 < joints.Count)
                    {
                        RoadJoint roadJoint = joints[(int)num3];
                        river.writeSingleVector3(roadJoint.vertex);
                        river.writeSingleVector3(roadJoint.getTangent(0));
                        river.writeSingleVector3(roadJoint.getTangent(1));
                        river.writeByte((byte)roadJoint.mode);
                        river.writeSingle(roadJoint.offset);
                        river.writeBoolean(roadJoint.ignoreTerrain);
                        num3 += 1;
                    }
                }
                b2 += 1;
            }
            river.closeRiver();
        }
        // Token: 0x060028ED RID: 10477 RVA: 0x000F9B2C File Offset: 0x000F7F2C
        private static void saveRegion(River river, List <LevelObject> objects)
        {
            ushort num = 0;

            while ((int)num < objects.Count)
            {
                LevelObject levelObject = objects[(int)num];
                if (levelObject.state != null && levelObject.state.Length > 0)
                {
                    river.writeUInt16(num);
                    river.writeUInt16(levelObject.id);
                    river.writeBytes(levelObject.state);
                }
                num += 1;
            }
            river.writeUInt16(ushort.MaxValue);
        }
Example #3
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();
        }
Example #4
0
        // Token: 0x060024E7 RID: 9447 RVA: 0x000D38C0 File Offset: 0x000D1CC0
        public static void save()
        {
            Block block = new Block();

            block.writeByte(LevelItems.SAVEDATA_VERSION);
            block.writeByte((byte)LevelItems.tables.Count);
            byte b = 0;

            while ((int)b < LevelItems.tables.Count)
            {
                ItemTable itemTable = LevelItems.tables[(int)b];
                block.writeColor(itemTable.color);
                block.writeString(itemTable.name);
                block.writeUInt16(itemTable.tableID);
                block.write((byte)itemTable.tiers.Count);
                byte b2 = 0;
                while ((int)b2 < itemTable.tiers.Count)
                {
                    ItemTier itemTier = itemTable.tiers[(int)b2];
                    block.writeString(itemTier.name);
                    block.writeSingle(itemTier.chance);
                    block.writeByte((byte)itemTier.table.Count);
                    byte b3 = 0;
                    while ((int)b3 < itemTier.table.Count)
                    {
                        ItemSpawn itemSpawn = itemTier.table[(int)b3];
                        block.writeUInt16(itemSpawn.item);
                        b3 += 1;
                    }
                    b2 += 1;
                }
                b += 1;
            }
            ReadWrite.writeBlock(Level.info.path + "/Spawns/Items.dat", false, false, block);
            River river = new River(Level.info.path + "/Spawns/Jars.dat", false);

            river.writeByte(LevelItems.SAVEDATA_VERSION);
            for (byte b4 = 0; b4 < Regions.WORLD_SIZE; b4 += 1)
            {
                for (byte b5 = 0; b5 < Regions.WORLD_SIZE; b5 += 1)
                {
                    List <ItemSpawnpoint> list = LevelItems.spawns[(int)b4, (int)b5];
                    river.writeUInt16((ushort)list.Count);
                    ushort num = 0;
                    while ((int)num < list.Count)
                    {
                        ItemSpawnpoint itemSpawnpoint = list[(int)num];
                        river.writeByte(itemSpawnpoint.type);
                        river.writeSingleVector3(itemSpawnpoint.point);
                        num += 1;
                    }
                }
            }
            river.closeRiver();
        }
Example #5
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();
        }
Example #6
0
        private static void saveRegion(River river, StructureRegion region)
        {
            uint   time = Provider.time;
            ushort num  = 0;
            ushort num2 = 0;

            while ((int)num2 < region.structures.Count)
            {
                StructureData structureData = region.structures[(int)num2];
                if ((!Dedicator.isDedicated || Provider.modeConfigData.Structures.Decay_Time == 0u || time < structureData.objActiveDate || time - structureData.objActiveDate < Provider.modeConfigData.Structures.Decay_Time) && structureData.structure.asset.isSaveable)
                {
                    num += 1;
                }
                num2 += 1;
            }
            river.writeUInt16(num);
            ushort num3 = 0;

            while ((int)num3 < region.structures.Count)
            {
                StructureData structureData2 = region.structures[(int)num3];
                if ((!Dedicator.isDedicated || Provider.modeConfigData.Structures.Decay_Time == 0u || time < structureData2.objActiveDate || time - structureData2.objActiveDate < Provider.modeConfigData.Structures.Decay_Time) && structureData2.structure.asset.isSaveable)
                {
                    river.writeUInt16(structureData2.structure.id);
                    river.writeUInt16(structureData2.structure.health);
                    river.writeSingleVector3(structureData2.point);
                    river.writeByte(structureData2.angle_x);
                    river.writeByte(structureData2.angle_y);
                    river.writeByte(structureData2.angle_z);
                    river.writeUInt64(structureData2.owner);
                    river.writeUInt64(structureData2.group);
                    river.writeUInt32(structureData2.objActiveDate);
                }
                num3 += 1;
            }
        }
Example #7
0
        // Token: 0x06002FA6 RID: 12198 RVA: 0x0013B76C File Offset: 0x00139B6C
        public static void save()
        {
            River river = ServerSavedata.openRiver("/Server/Adminlist.dat", false);

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

            while ((int)num < SteamAdminlist.list.Count)
            {
                SteamAdminID steamAdminID = SteamAdminlist.list[(int)num];
                river.writeSteamID(steamAdminID.playerID);
                river.writeSteamID(steamAdminID.judgeID);
                num += 1;
            }
            river.closeRiver();
        }
Example #8
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();
        }
Example #9
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();
        }
Example #10
0
        public static void save()
        {
            Block block = new Block();

            block.writeByte(LevelZombies.SAVEDATA_TABLE_VERSION);
            block.writeByte((byte)LevelZombies.tables.Count);
            byte b = 0;

            while ((int)b < LevelZombies.tables.Count)
            {
                ZombieTable zombieTable = LevelZombies.tables[(int)b];
                block.writeColor(zombieTable.color);
                block.writeString(zombieTable.name);
                block.writeBoolean(zombieTable.isMega);
                block.writeUInt16(zombieTable.health);
                block.writeByte(zombieTable.damage);
                block.writeByte(zombieTable.lootIndex);
                block.writeUInt16(zombieTable.lootID);
                block.writeUInt32(zombieTable.xp);
                block.writeSingle(zombieTable.regen);
                block.writeString(zombieTable.difficultyGUID);
                block.write((byte)zombieTable.slots.Length);
                byte b2 = 0;
                while ((int)b2 < zombieTable.slots.Length)
                {
                    ZombieSlot zombieSlot = zombieTable.slots[(int)b2];
                    block.writeSingle(zombieSlot.chance);
                    block.writeByte((byte)zombieSlot.table.Count);
                    byte b3 = 0;
                    while ((int)b3 < zombieSlot.table.Count)
                    {
                        ZombieCloth zombieCloth = zombieSlot.table[(int)b3];
                        block.writeUInt16(zombieCloth.item);
                        b3 += 1;
                    }
                    b2 += 1;
                }
                b += 1;
            }
            ReadWrite.writeBlock(Level.info.path + "/Spawns/Zombies.dat", false, false, block);
            River river = new River(Level.info.path + "/Spawns/Animals.dat", false);

            river.writeByte(LevelZombies.SAVEDATA_SPAWN_VERSION);
            for (byte b4 = 0; b4 < Regions.WORLD_SIZE; b4 += 1)
            {
                for (byte b5 = 0; b5 < Regions.WORLD_SIZE; b5 += 1)
                {
                    List <ZombieSpawnpoint> list = LevelZombies.spawns[(int)b4, (int)b5];
                    river.writeUInt16((ushort)list.Count);
                    ushort num = 0;
                    while ((int)num < list.Count)
                    {
                        ZombieSpawnpoint zombieSpawnpoint = list[(int)num];
                        river.writeByte(zombieSpawnpoint.type);
                        river.writeSingleVector3(zombieSpawnpoint.point);
                        num += 1;
                    }
                }
            }
            river.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();
        }
Example #12
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();
        }