about summary refs log tree commit diff
path: root/generator
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2014-12-15 04:29:00 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2014-12-15 04:29:00 +0000
commit9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f (patch)
tree3f408ec87a50685a09d63559d449ca5930b278a6 /generator
parenta28e3729f7c63a6f507e2f3418f29b1e902942ca (diff)
downloadnetpbm-mirror-9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f.tar.gz
netpbm-mirror-9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f.tar.xz
netpbm-mirror-9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f.zip
Clip elevation to maxval
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@2338 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'generator')
-rw-r--r--generator/pamcrater.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/generator/pamcrater.c b/generator/pamcrater.c
index 3acc4966..50745501 100644
--- a/generator/pamcrater.c
+++ b/generator/pamcrater.c
@@ -240,6 +240,18 @@ terrainMod(struct pam * const pamP,
 
 
 static void
+setElev(struct pam * const pamP,
+        tuple **     const terrain,
+        int          const cx,
+        int          const cy,
+        unsigned int const elevation) {
+
+    *terrainModP(pamP, terrain, cx, cy) = MIN(pamP->maxval, elevation);
+}
+
+
+
+static void
 smallCrater(struct pam * const pamP,
             tuple **     const terrain,
             int          const cx,
@@ -278,7 +290,7 @@ smallCrater(struct pam * const pamP,
 
         assert(axelev > 0);
 
-        *terrainModP(pamP, terrain, cx, cy) = axelev + x;
+        setElev(pamP, terrain, cx, cy, axelev + x);
     }
 }
 
@@ -324,7 +336,7 @@ normalCrater(struct pam * const pamP,
    Generate a regular (not tiny) crater.
 
    Generate an impact feature of the correct size and shape.
------------------------------------------------------------------------------*/
+----------------------------------------------------------------------------*/
     int    const impactRadius = (int) MAX(2, (radius / 3));
     int    const craterRadius = (int) radius;
     double const rollmin      = 0.9;
@@ -363,7 +375,7 @@ normalCrater(struct pam * const pamP,
                     (terrainMod(pamP, terrain, x, y) + cz) * roll;
                 av = MAX(1000, MIN(64000, av));
                 
-                *terrainModP(pamP, terrain, x, y) = av;
+                setElev(pamP, terrain, x, y, av);
             }
         }
     }