void change_basemap(int map_index, float rx, float rz, float x_size, float z_size, float min_a, float max_a, int dir, int x_cont)
{//Basemap
//White Dragon - 6/3/2015
//int map_index = What basemap?
//float rx = X position
//float rz = Z position
//float x_size = X size
//float z_size = Z size
//float min_a = Minimum Height
//float max_a = Maximum Height
//int dir = Direction
//Usage: change_basemap(0, -100, 500, 400.0+100.0, 240.0+100.0, 0.0, 50.0, 0);
float x,z;
float delta,a;
changelevelproperty("basemap", map_index, "x", rx);
changelevelproperty("basemap", map_index, "xsize", x_size+2);
changelevelproperty("basemap", map_index, "z", rz);
changelevelproperty("basemap", map_index, "zsize", z_size+2);
delta = (max_a-min_a)/x_size;
for( x = 0; x <= x_size; x++) {
if ( dir == NULL() || dir > 0 ) a = x*delta + min_a;
else a = max_a - (x*delta + min_a);
if ( x_cont != NULL() ) {
if ( dir == NULL() || dir > 0 ) {
if ( x+rx > x_cont ) a = max_a; // connect with the wall more smoothly
} else {
if ( x < x_cont ) a = max_a;
}
}
for ( z = 0; z <= z_size; z++) {
changelevelproperty("basemap", map_index, "map", x, z, a);
}
}
}