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); }
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(); }
// 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(); }
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(); }
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; } }
// 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(); }
// 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(); }
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(); }
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(); }
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(); }