if (y >= native2amiga_line_map_height) {
y = native2amiga_line_map_height - 1;
}
- return native2amiga_line_map[y] - minfirstline;
+ return native2amiga_line_map[y];
}
void notice_screen_contents_lost(int monid)
w = diwlastword_total - diwfirstword_total;
dx = diwfirstword_total - visible_left_border;
- y2 = plflastline_total;
+ y2 = plflastline_total + 1;
y1 = plffirstline_total;
if (minfirstline > y1)
y1 = minfirstline;
getgfxoffset(monid, &fdx, &fdy, &fmx, &fmy);
- //write_log("%.2f*%.2f %.2f*%.2f\n", fdx, fdy, fmx, fmy);
+ //write_log("%d %d, %.2f*%.2f %.2f*%.2f\n", x, y, fdx, fdy, fmx, fmy);
#ifdef PICASSO96
if (ad->picasso_on) {
if (!ad->picasso_on) {
int aw = 0, ah = 0, dx, dy;
get_custom_mouse_limits(&aw, &ah, &dx, &dy, dimensioninfo_dbl);
- x += dx;
- y += dy;
float dx2, dy2, mx2, my2;
getgfxoffset(monid, &dx2, &dy2, &mx2, &my2);
if (mx2) {
if (my2) {
y = (int)(y / my2);
}
+ x += dx;
+ y += dy;
x += (int)dx2;
y += (int)dy2;
} else {
filteroffsetx = (float)-ds->xoffset / ds->scale;
filteroffsety = (float)-ds->yoffset / ds->scale;
+
+ diff = ds->outwidth;
+ filterxmult = ((float)ds->dstwidth * ds->scale) / diff;
+ diff = ds->outheight;
+ filterymult = ((float)ds->dstheight * ds->scale) / diff;
goto end;
}
filterxmult = xmult;
filterymult = ymult;
- filteroffsetx += (ds->dstwidth - ds->srcwidth * filterxmult) / 2;
- filteroffsety += (ds->dstheight - ds->srcheight * filterymult) / 2;
+
+ filteroffsetx = (float)-ds->xoffset / ds->scale;
+ filteroffsety = (float)-ds->yoffset / ds->scale;
end: