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;
        }
Exemple #2
0
 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);
 }