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