(this is assuming you're doing this in v3)
My advise to you: cheat.
Make an image object mirroring the full iso map in relation to it's absolute screen position. Let's call this image mouse_map. When you place the tiles, place a tile-shaped solid color area on your mouse_map with it's color set to the flat-indexing value of your coordinates.
That's be ((y*MAX_X)+x), IIRC. This'd make the [0,0] tile color 0, [1,0] color 1, [3,2] would be color 29, and [8,8] would be color 80.
So, after you've made your mirrored mouse_map, all you need to do to find the index that the mouse is on the screen, then figure out it's absolute position from there, and then
GetPixel( abs_x, abs_y, mouse_map);
Which will return the flat index of the tile, which you can then reverse engineer the iso coordinates from.
There could be better ways, but this is how I'd do it off the top of my head.
Implementing this method would require you to (these functions unchecked for accuracy):
int flatIdx(int x, int y, int yMax) {
return ((x*yMax)+y);
}
int x_from_flat( int flatval, int yMax ) {
return flatval%yMax;
}
int y_from_flat( int flatval, int yMax ) {
flatval = flatval - x_from_flat( flatval,yMax );
return flatval/yMax;
}
and then
void drawIsoShape( int x, int y, int color, int dest_im )
/*
this draws your iso shape at the apporopriate coordinates onto your destination image, the mouse_map. You would use it like:
drawIsoShape( abs_x, abs_y, flatIdx(iso_x, iso_y, iso_yMax) , mouse_map );
*/