function raster_scale(var* pos,var tile_size)
{
if(abs(fraction(pos[0]/tile_size)) > 0.5)
{pos[0] += (tile_size/2)*sign(pos[0]);}
if(abs(fraction(pos[1]/tile_size)) > 0.5)
{pos[1] += (tile_size/2)*sign(pos[1]);}
pos[0] = pos[0] * 1/tile_size;
pos[1] = pos[1] * 1/tile_size;
pos[0] = integer(pos[0]);
pos[1] = integer(pos[1]);
pos[0] = pos[0] * tile_size;
pos[1] = pos[1] * tile_size;
vec_to_angle(cursorblock.pan,vector(pos[0],pos[1],0));
c_move(cursorblock, vector(5*time_factor,0,0),nullvector, USE_BOX);
}
function tilemap()
{
while(1)
{
temp.x = mouse_pos.x;
temp.y = mouse_pos.y;
temp.z = camera.z;
vec_for_screen(temp,camera);
vec_set(mouse_click, mouse_dir3d);
vec_normalize(mouse_click, 10000);
vec_add(mouse_click, camera.x);
c_trace(camera.x, mouse_click, IGNORE_PASSABLE);
raster_scale(target.x,1);
wait(1);
}
}