/************************************************************************** * * AESFAST PD utilties. * * Rectangle utilities 5... * rc_gadjust (formerly objclg_adjust) * rc_vadjust (formerly objclv_adjust) * * 02/28/89 v1.3 * Added code to prevent any returned structure element from * being negative, since negative screen indicies do bad things * on a blit, and tend to leave sleeping crashes lurking in the * system if used as the clipping rectangle for objc_draw. *************************************************************************/ #include /*------------------------------------------------------------------------- * rc_gadjust - Adjust a GRECT-type rectangle in the x and/or y coordinate. *-----------------------------------------------------------------------*/ void rc_gadjust(prect, xadjust, yadjust) register GRECT *prect; int xadjust; int yadjust; { prect->g_x -= xadjust; prect->g_y -= yadjust; prect->g_w += xadjust * 2; prect->g_h += yadjust * 2; if (prect->g_x < 0) { prect->g_x = 0; } if (prect->g_y < 0) { prect->g_y = 0; } if (prect->g_w < 0) { prect->g_w = 0; } if (prect->g_h < 0) { prect->g_h = 0; } } /*------------------------------------------------------------------------- * rc_vadjust - Adjust a VRECT-type rectangle in the x and/or y coordinate. *-----------------------------------------------------------------------*/ void rc_vadjust(prect, xadjust, yadjust) register VRECT *prect; int xadjust; int yadjust; { prect->v_x1 -= xadjust; prect->v_y1 -= yadjust; prect->v_x2 += xadjust; prect->v_y2 += yadjust; if (prect->v_x1 < 0) { prect->v_x1 = 0; } if (prect->v_y1 < 0) { prect->v_y1 = 0; } if (prect->v_x2 < 0) { prect->v_x2 = 0; } if (prect->v_y2 < 0) { prect->v_y2 = 0; } }