you could use "mouse_spot.x" and "mouse_spot.y" to set the hotspot of the mouse in the middle of your crosshair.
BMAP* arrow_pcx = "arrow.pcx";
...
mouse_map = arrow_pcx;
mouse_spot.x = bmap_width(arrow_pcx)/2; // hot spot in the bmap center
mouse_spot.y = bmap_height(arrow_pcx)/2;
If that is not exact enough, you could check it like this:
while(1)
{
if(mouse_pos.x > (screen_size.x-bmap_width(arrow_pcx)/2))
{
mouse_pos.x = screen_size.x-bmap_width(arrow_pcx)/2);
}
//same with y
wait(1);
}
last example is made by me -> untested and maybe buggy :-D
first example is out of the manual -> mouse_spot
edit: Uhrwerk was quicker xD