startgrid = bound(0, startgrid, size);
- amplitude = 32767;
- noisebuf = qmalloc(size*size*sizeof(int));
+ amplitude = 0xFFFF; // this gets halved before use
+ noisebuf = Mem_Alloc(tempmempool, size*size*sizeof(int));
memset(noisebuf, 0, size*size*sizeof(int));
for (g2 = startgrid;g2;g2 >>= 1)
if (n(x,y) > max) max = n(x,y);
}
max -= min;
+ max++;
// normalize noise and copy to output
for (y = 0;y < size;y++)
for (x = 0;x < size;x++)
- *noise++ = (n(x,y) - min) * 255 / max;
- qfree(noisebuf);
+ *noise++ = (byte) (((n(x,y) - min) * 256) / max);
+ Mem_Free(noisebuf);
#undef n
}