diff options
-rw-r--r-- | saga/console.cpp | 4 | ||||
-rw-r--r-- | saga/gfx.cpp | 100 | ||||
-rw-r--r-- | saga/interface.cpp | 11 | ||||
-rw-r--r-- | saga/isomap.cpp | 2 | ||||
-rw-r--r-- | saga/sprite.cpp | 6 |
5 files changed, 61 insertions, 62 deletions
diff --git a/saga/console.cpp b/saga/console.cpp index 3e3b040957..8b4626e9d9 100644 --- a/saga/console.cpp +++ b/saga/console.cpp @@ -205,8 +205,8 @@ int Console::draw(R_SURFACE *ds) { fill_rect.top = 0; fill_rect.left = 0; - fill_rect.bottom = _yPos; - fill_rect.right = ds->buf_w - 1; + fill_rect.bottom = _yPos + 1; + fill_rect.right = ds->buf_w; _vm->_gfx->drawRect(ds, &fill_rect, _vm->_gfx->matchColor(R_CONSOLE_BGCOLOR)); txt_fgcolor = _vm->_gfx->matchColor(R_CONSOLE_TXTCOLOR); diff --git a/saga/gfx.cpp b/saga/gfx.cpp index ac97424a59..3c82d9068b 100644 --- a/saga/gfx.cpp +++ b/saga/gfx.cpp @@ -50,8 +50,8 @@ Gfx::Gfx(OSystem *system, int width, int height) { r_back_buf.clip_rect.left = 0; r_back_buf.clip_rect.top = 0; - r_back_buf.clip_rect.right = width - 1; - r_back_buf.clip_rect.bottom = height - 1; + r_back_buf.clip_rect.right = width; + r_back_buf.clip_rect.bottom = height; // Set module data _back_buf = r_back_buf; @@ -148,19 +148,19 @@ int Gfx::bufToSurface(R_SURFACE *ds, const byte *src, int src_w, int src_h, // Clamp source rectangle to source buffer if (src_rect != NULL) { - src_rect->clip(src_w - 1, src_h - 1); + src_rect->clip(src_w, src_h); s = *src_rect; - - if ((s.left >= s.right) || (s.top >= s.bottom)) { - // Empty or negative region - return R_FAILURE; - } } else { s.left = 0; s.top = 0; - s.right = src_w - 1; - s.bottom = src_h - 1; + s.right = src_w; + s.bottom = src_h; + } + + if (s.width() <= 0 || s.height() <= 0) { + // Empty or negative region + return R_FAILURE; } // Get destination origin and clip rectangle @@ -176,12 +176,12 @@ int Gfx::bufToSurface(R_SURFACE *ds, const byte *src, int src_w, int src_h, if (clip.left == clip.right) { clip.left = 0; - clip.right = ds->buf_w - 1; + clip.right = ds->buf_w; } if (clip.top == clip.bottom) { clip.top = 0; - clip.bottom = ds->buf_h - 1; + clip.bottom = ds->buf_h; } // Clip source rectangle to destination surface @@ -189,8 +189,8 @@ int Gfx::bufToSurface(R_SURFACE *ds, const byte *src, int src_w, int src_h, dst_off_y = d_y; src_off_x = s.left; src_off_y = s.top; - src_draw_w = (s.right - s.left) + 1; - src_draw_h = (s.bottom - s.top) + 1; + src_draw_w = s.width(); + src_draw_h = s.height(); // Clip to left edge @@ -222,13 +222,13 @@ int Gfx::bufToSurface(R_SURFACE *ds, const byte *src, int src_w, int src_h, // Clip to right edge - if (d_x > clip.right) { + if (d_x >= clip.right) { // dst rect completely off right edge return R_SUCCESS; } - if ((d_x + src_draw_w - 1) > clip.right) { - src_draw_w = clip.right - d_x + 1; + if ((d_x + src_draw_w) > clip.right) { + src_draw_w = clip.right - d_x; } // Clip to bottom edge @@ -238,8 +238,8 @@ int Gfx::bufToSurface(R_SURFACE *ds, const byte *src, int src_w, int src_h, return R_SUCCESS; } - if ((d_y + src_draw_h - 1) > clip.bottom) { - src_draw_h = clip.bottom - d_y + 1; + if ((d_y + src_draw_h) > clip.bottom) { + src_draw_h = clip.bottom - d_y; } // Transfer buffer data to surface @@ -272,22 +272,22 @@ int Gfx::bufToBuffer(byte *dst_buf, int dst_w, int dst_h, const byte *src, // Clamp source rectangle to source buffer if (src_rect != NULL) { - src_rect->clip(src_w - 1, src_h - 1); + src_rect->clip(src_w, src_h); s.left = src_rect->left; s.top = src_rect->top; s.right = src_rect->right; s.bottom = src_rect->bottom; - - if ((s.left >= s.right) || (s.top >= s.bottom)) { - // Empty or negative region - return R_FAILURE; - } } else { s.left = 0; s.top = 0; - s.right = src_w - 1; - s.bottom = src_h - 1; + s.right = src_w; + s.bottom = src_h; + } + + if (s.width() <= 0 || s.height() <= 0) { + // Empty or negative region + return R_FAILURE; } // Get destination origin and clip rectangle @@ -301,16 +301,16 @@ int Gfx::bufToBuffer(byte *dst_buf, int dst_w, int dst_h, const byte *src, clip.left = 0; clip.top = 0; - clip.right = dst_w - 1; - clip.bottom = dst_h - 1; + clip.right = dst_w; + clip.bottom = dst_h; // Clip source rectangle to destination surface dst_off_x = d_x; dst_off_y = d_y; src_off_x = s.left; src_off_y = s.top; - src_draw_w = (s.right - s.left) + 1; - src_draw_h = (s.bottom - s.top) + 1; + src_draw_w = s.width(); + src_draw_h = s.height(); // Clip to left edge @@ -342,24 +342,24 @@ int Gfx::bufToBuffer(byte *dst_buf, int dst_w, int dst_h, const byte *src, // Clip to right edge - if (d_x > clip.right) { + if (d_x >= clip.right) { // dst rect completely off right edge return R_SUCCESS; } - if ((d_x + src_draw_w - 1) > clip.right) { - src_draw_w -= (clip.right - (d_x + src_draw_w - 1)); + if ((d_x + src_draw_w) > clip.right) { + src_draw_w = clip.right - d_x; } // Clip to bottom edge - if (d_y > clip.bottom) { + if (d_y >= clip.bottom) { // dst rect completely off bottom edge return R_SUCCESS; } - if ((d_y + src_draw_h - 1) > clip.bottom) { - src_draw_h -= (clip.bottom - (d_y + src_draw_h - 1)); + if ((d_y + src_draw_h) > clip.bottom) { + src_draw_h = clip.bottom - d_y; } // Transfer buffer data to surface @@ -387,7 +387,7 @@ int Gfx::drawRect(R_SURFACE *ds, Rect *dst_rect, int color) { int left, top, right, bottom; if (dst_rect != NULL) { - dst_rect->clip(ds->buf_w - 1, ds->buf_h - 1); + dst_rect->clip(ds->buf_w, ds->buf_h); left = dst_rect->left; top = dst_rect->top; @@ -401,12 +401,12 @@ int Gfx::drawRect(R_SURFACE *ds, Rect *dst_rect, int color) { } else { left = 0; top = 0; - right = ds->buf_w - 1; - bottom = ds->buf_h - 1; + right = ds->buf_w; + bottom = ds->buf_h; } - w = (right - left) + 1; - h = (bottom - top) + 1; + w = right - left; + h = bottom - top; write_p = ds->buf + (ds->buf_pitch * top) + left; @@ -508,8 +508,8 @@ int Gfx::getClipInfo(R_CLIPINFO *clipinfo) { clipinfo->dst_draw_y = d_y; clipinfo->src_draw_x = s.left; clipinfo->src_draw_y = s.top; - clipinfo->draw_w = (s.right - s.left) + 1; - clipinfo->draw_h = (s.bottom - s.top) + 1; + clipinfo->draw_w = s.right - s.left; + clipinfo->draw_h = s.bottom - s.top; clipinfo->nodraw = 0; @@ -541,25 +541,25 @@ int Gfx::getClipInfo(R_CLIPINFO *clipinfo) { } // Clip to right edge - if (d_x > clip.right) { + if (d_x >= clip.right) { // dst rect completely off right edge clipinfo->nodraw = 1; return R_SUCCESS; } - if ((d_x + clipinfo->draw_w - 1) > clip.right) { - clipinfo->draw_w += (clip.right - (d_x + clipinfo->draw_w - 1)); + if ((d_x + clipinfo->draw_w) > clip.right) { + clipinfo->draw_w = clip.right - d_x; } // Clip to bottom edge - if (d_y > clip.bottom) { + if (d_y >= clip.bottom) { // dst rect completely off bottom edge clipinfo->nodraw = 1; return R_SUCCESS; } - if ((d_y + clipinfo->draw_h - 1) > clip.bottom) { - clipinfo->draw_h += (clip.bottom - (d_y + clipinfo->draw_h - 1)); + if ((d_y + clipinfo->draw_h) > clip.bottom) { + clipinfo->draw_h = clip.bottom - d_y; } return R_SUCCESS; diff --git a/saga/interface.cpp b/saga/interface.cpp index fc633353c5..56def3b38e 100644 --- a/saga/interface.cpp +++ b/saga/interface.cpp @@ -304,10 +304,9 @@ int Interface::draw() { // Erase background of status bar rect.left = 0; - rect.top = _iDesc.status_h - 1; - - rect.right = g_di.logical_w - 1; - rect.bottom = _iDesc.status_y; + rect.top = _iDesc.status_y; + rect.right = g_di.logical_w; + rect.bottom = _iDesc.status_y + _iDesc.status_h; _vm->_gfx->drawRect(back_buf, &rect, _iDesc.status_bgcol); @@ -403,8 +402,8 @@ int Interface::drawStatusBar(R_SURFACE *ds) { // Erase background of status bar rect.left = 0; rect.top = _iDesc.status_y; - rect.right = g_di.logical_w - 1; - rect.bottom = _iDesc.status_y + _iDesc.status_h - 1; + rect.right = g_di.logical_w; + rect.bottom = _iDesc.status_y + _iDesc.status_h; _vm->_gfx->drawRect(ds, &rect, _iDesc.status_bgcol); diff --git a/saga/isomap.cpp b/saga/isomap.cpp index bf8a6ef2b2..5d004133b2 100644 --- a/saga/isomap.cpp +++ b/saga/isomap.cpp @@ -134,7 +134,7 @@ int IsoMap::loadMetamap(const byte *mm_res_p, size_t mm_res_len) { int IsoMap::draw(R_SURFACE *dst_s) { R_GAME_DISPLAYINFO disp_info; GAME_GetDisplayInfo(&disp_info); - Rect iso_rect(disp_info.logical_w - 1, disp_info.scene_h - 1); + Rect iso_rect(disp_info.logical_w, disp_info.scene_h); _gfx->drawRect(dst_s, &iso_rect, 0); drawMetamap(dst_s, -1000, -500); diff --git a/saga/sprite.cpp b/saga/sprite.cpp index 497f7c2205..e9a136c214 100644 --- a/saga/sprite.cpp +++ b/saga/sprite.cpp @@ -331,13 +331,13 @@ int Sprite::drawOccluded(R_SURFACE *ds, R_SPRITELIST *sprite_list, int sprite_nu spr_src_rect.left = 0; spr_src_rect.top = 0; - spr_src_rect.right = s_width - 1; - spr_src_rect.bottom = s_height - 1; + spr_src_rect.right = s_width; + spr_src_rect.bottom = s_height; spr_dst_rect.left = 0; spr_dst_rect.top = 0; spr_dst_rect.right = ds->clip_rect.right; - spr_dst_rect.bottom = MIN(ds->clip_rect.bottom, (int16)(mask_h - 1)); + spr_dst_rect.bottom = MIN(ds->clip_rect.bottom, (int16)mask_h); spr_pt.x = spr_x + x_align; spr_pt.y = spr_y + y_align; |