// Token: 0x06002824 RID: 10276 RVA: 0x000F3350 File Offset: 0x000F1750 public static void load() { if (LevelSavedata.fileExists("/Groups.dat")) { River river = LevelSavedata.openRiver("/Groups.dat", true); byte b = river.readByte(); if (b > 0) { GroupManager.availableGroupID = river.readSteamID(); if (b > 1) { int num = river.readInt32(); for (int i = 0; i < num; i++) { CSteamID csteamID = river.readSteamID(); string text = river.readString(); uint num2 = river.readUInt32(); if (num2 >= 1u && !string.IsNullOrEmpty(text)) { if (!GroupManager.knownGroups.ContainsKey(csteamID)) { GroupManager.knownGroups.Add(csteamID, new GroupInfo(csteamID, text, num2)); } } } } } } }
public static void load() { if (LevelSavedata.fileExists("/Groups.dat")) { River river = LevelSavedata.openRiver("/Groups.dat", true); byte b = river.readByte(); if (b > 0) { GroupManager.availableGroupID = river.readSteamID(); if (b > 1) { int num = river.readInt32(); for (int i = 0; i < num; i++) { CSteamID csteamID = river.readSteamID(); string newName = river.readString(); uint num2 = river.readUInt32(); if (num2 > 0u) { GroupManager.knownGroups.Add(csteamID, new GroupInfo(csteamID, newName, num2)); } } } } } }
private static RecastGraph buildGraph(River river) { RecastGraph recastGraph = LevelNavigation.addGraph(); int graphIndex = AstarPath.active.astarData.GetGraphIndex(recastGraph); TriangleMeshNode.SetNavmeshHolder(graphIndex, recastGraph); recastGraph.forcedBoundsCenter = river.readSingleVector3(); recastGraph.forcedBoundsSize = river.readSingleVector3(); recastGraph.tileXCount = (int)river.readByte(); recastGraph.tileZCount = (int)river.readByte(); RecastGraph.NavmeshTile[] array = new RecastGraph.NavmeshTile[recastGraph.tileXCount * recastGraph.tileZCount]; recastGraph.SetTiles(array); for (int i = 0; i < recastGraph.tileZCount; i++) { for (int j = 0; j < recastGraph.tileXCount; j++) { RecastGraph.NavmeshTile navmeshTile = new RecastGraph.NavmeshTile(); navmeshTile.x = j; navmeshTile.z = i; navmeshTile.w = 1; navmeshTile.d = 1; navmeshTile.bbTree = new BBTree(navmeshTile); int num = j + i * recastGraph.tileXCount; array[num] = navmeshTile; navmeshTile.tris = new int[(int)river.readUInt16()]; for (int k = 0; k < navmeshTile.tris.Length; k++) { navmeshTile.tris[k] = (int)river.readUInt16(); } navmeshTile.verts = new Int3[(int)river.readUInt16()]; for (int l = 0; l < navmeshTile.verts.Length; l++) { navmeshTile.verts[l] = new Int3(river.readInt32(), river.readInt32(), river.readInt32()); } navmeshTile.nodes = new TriangleMeshNode[navmeshTile.tris.Length / 3]; num <<= 12; for (int m = 0; m < navmeshTile.nodes.Length; m++) { navmeshTile.nodes[m] = new TriangleMeshNode(AstarPath.active); TriangleMeshNode triangleMeshNode = navmeshTile.nodes[m]; triangleMeshNode.GraphIndex = (uint)graphIndex; triangleMeshNode.Penalty = 0u; triangleMeshNode.Walkable = true; triangleMeshNode.v0 = (navmeshTile.tris[m * 3] | num); triangleMeshNode.v1 = (navmeshTile.tris[m * 3 + 1] | num); triangleMeshNode.v2 = (navmeshTile.tris[m * 3 + 2] | num); triangleMeshNode.UpdatePositionFromVertices(); navmeshTile.bbTree.Insert(triangleMeshNode); } recastGraph.CreateNodeConnections(navmeshTile.nodes); } } for (int n = 0; n < recastGraph.tileZCount; n++) { for (int num2 = 0; num2 < recastGraph.tileXCount; num2++) { RecastGraph.NavmeshTile tile = array[num2 + n * recastGraph.tileXCount]; recastGraph.ConnectTileWithNeighbours(tile); } } return(recastGraph); }