OSDN Git Service

Weighted Rankins for Colum Counters,
[automap/automap.git] / Automap / Renderers / StandardRenderer.cs
index 740623d..09a551f 100644 (file)
@@ -56,30 +56,35 @@ namespace Automap
                var west = new Vec2i(chunkPos.X - 1, chunkPos.Y);
                var south = new Vec2i(chunkPos.X, chunkPos.Y - 1);
 
+               bool nullSouthWest = false, nullSouth = false, nullWest = false;
+
                /* 
                For missing corners / cardinal heightmaps...
                make fake heightmap dummy
                */
 
                if (allCols.Contains(south_west)) {
-               mapCornerChunks.Add(allCols[south_west]);
+               mapCornerChunks.Add(allCols[south_west]);               
                }
-               else {                  
-               mapCornerChunks.Add(targetColMeta);//TODO: Make mirror image - heightmap
+               else {
+               nullSouthWest = true;
+               mapCornerChunks.Add(targetColMeta);//Temporary!
                }
 
                if (allCols.Contains(south)) {
                mapCornerChunks.Add(allCols[south]);
                }
                else {
-               mapCornerChunks.Add(targetColMeta);//TODO: Make mirror image - heightmap
+               nullSouth = true;
+               mapCornerChunks.Add(targetColMeta);//Temporary!
                }
 
                if (allCols.Contains(west)) {
                mapCornerChunks.Add(allCols[west]);
                }
                else {
-               mapCornerChunks.Add(targetColMeta);//TODO: Make mirror image - heightmap
+               nullWest = true;
+               mapCornerChunks.Add(targetColMeta);//Temporary!
                }
 
 
@@ -128,9 +133,9 @@ namespace Automap
                topX = GameMath.Mod(topX, chunkSize);
                leftZ = GameMath.Mod(leftZ, chunkSize);
                
-               leftTop = Math.Sign(localY - leftTopMapChunk.HeightMap[topX, leftZ]);
-               rightTop = Math.Sign(localY - rightTopMapChunk.HeightMap[topX, rightZ]);
-               leftBot = Math.Sign(localY - leftBotMapChunk.HeightMap[botX, leftZ]);
+               leftTop = nullSouthWest ? 0 : Math.Sign(localY - leftTopMapChunk.HeightMap[topX, leftZ]);
+               rightTop = nullSouth ? 0 : Math.Sign(localY - rightTopMapChunk.HeightMap[topX, rightZ]);
+               leftBot = nullWest ? 0 : Math.Sign(localY - leftBotMapChunk.HeightMap[botX, leftZ]);
 
                float slopeness = (leftTop + rightTop + leftBot);