while (mouse_left && HIT_TARGET && you && ent_type(you) == 4) // fire onto terrain
{
// create a mole-hill by elevating the closest terrain vertex
var vertex_num = ent_nextvertex(you,hit.x);
var vertex_num_vert_1 = ent_nextvertex(you, vector(hit.x+1, hit.y+1, hit.z+1));
var vertex_num_vert_2 = ent_nextvertex(you, vector(hit.x+2, hit.y+2, hit.z+2));
var vertex_num_vert_3 = ent_nextvertex(you, vector(hit.x+3, hit.y+3, hit.z+3));
var vertex_num_vert_4 = ent_nextvertex(you, vector(hit.x+4, hit.y+4, hit.z+4));
var vertex_num_vert_5 = ent_nextvertex(you, vector(hit.x+5, hit.y+5, hit.z+5));
var vertex_num_vert_6 = ent_nextvertex(you, vector(hit.x+6, hit.y+6, hit.z+6));
var vertex_num_vert_7 = ent_nextvertex(you, vector(hit.x+7, hit.y+7, hit.z+7));
var vertex_num_vert_8 = ent_nextvertex(you, vector(hit.x+8, hit.y+8, hit.z+8));
CONTACT* contact = ent_getvertex(you,NULL,vertex_num);
hit.z += 5 * time_step; // increase the vertex height
hit.v = NULL; // c.x,y,z was changed, instead of c.v
ent_setvertex(you,hit,vertex_num); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_1); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_2); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_3); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_4); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_5); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_6); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_7); // update the mesh
ent_setvertex(you,hit,vertex_num_vert_8); // update the mesh
//bmap_blit(bmap_for_entity(terrain_basic,0),terrain_paint_grass,hit.u1,NULL);
wait(1); // reload
}