internal void Mod_MirrorLevel(NSF nsf, NSD nsd, Random rand, bool isRandom) { //unfinished foreach (Chunk chunk in nsf.Chunks) { if (chunk is NormalChunk zonechunk) { foreach (Entry entry in zonechunk.Entries) { if (entry is ZoneEntry zone) { } else if (entry is SceneryEntry scen) { for (int i = 0; i < scen.Vertices.Count; i++) { SceneryVertex vertex = scen.Vertices[i]; int x = -vertex.X; int y = vertex.Y; int z = vertex.Z; int unknownx = vertex.UnknownX; int unknowny = vertex.UnknownY; int unknownz = vertex.UnknownZ; int color = vertex.Color; scen.Vertices[i] = new SceneryVertex(x, y, z, unknownx, unknowny, unknownz); } } } } } nsd.Spawns[0].SpawnX = -nsd.Spawns[0].SpawnX; }
private void RenderVertex(SceneryEntry entry, SceneryVertex vertex) { if (vertex.Color < entry.Colors.Count) { SceneryColor color = entry.Colors[vertex.Color]; GL.Color3(color.Red, color.Green, color.Blue); } else { GL.Color3(Color.Fuchsia); } GL.Vertex3(entry.XOffset + vertex.X * 16, entry.YOffset + vertex.Y * 16, entry.ZOffset + vertex.Z * 16); }