diff --git a/plow/PlowMain.c b/plow/PlowMain.c index a2bca847..36980ae9 100644 --- a/plow/PlowMain.c +++ b/plow/PlowMain.c @@ -1043,7 +1043,7 @@ plowSelPaintPlow(rect, type, distance) plowAtomize(DBPlane(type), &plowLHS, plowSelPaintAdd, (ClientData) NULL); #endif /* notdef */ plowLHS.r_xbot--; - plowSrShadow(DBPlane(type), &plowLHS, DBZeroTypeBits, + plowSrShadow(DBPlane(type), &plowLHS, &DBZeroTypeBits, plowInitialPaint, INT2CD(plowLHS.r_xtop)); /* Queue the RHS */ @@ -1054,7 +1054,7 @@ plowSelPaintPlow(rect, type, distance) #endif /* notdef */ plowRHS.r_xbot--; TTMaskSetOnlyType(&mask, type); - plowSrShadow(DBPlane(type), &plowRHS, mask, + plowSrShadow(DBPlane(type), &plowRHS, &mask, plowInitialPaint, INT2CD(plowRHS.r_xtop)); return (0); diff --git a/plow/PlowRules1.c b/plow/PlowRules1.c index 17d96ae5..b9419f6f 100644 --- a/plow/PlowRules1.c +++ b/plow/PlowRules1.c @@ -87,7 +87,7 @@ prClearUmbra(edge) ar.ar_moving = edge; ar.ar_rule = (PlowRule *) NULL; (void) plowSrShadow(edge->e_pNum, &edge->e_rect, - rhsTypes, plowApplyRule, (ClientData) &ar); + &rhsTypes, plowApplyRule, (ClientData) &ar); } /* @@ -138,7 +138,7 @@ prUmbra(edge, rules) ar.ar_rule = pr; searchArea.r_xtop = edge->e_newx + pr->pr_dist; (void) plowSrShadow(pr->pr_pNum, &searchArea, - pr->pr_oktypes, plowApplyRule, (ClientData) &ar); + &pr->pr_oktypes, plowApplyRule, (ClientData) &ar); } } @@ -342,7 +342,7 @@ plowPenumbraTopProc(outline, ar) searchArea.r_ybot = outline->o_rect.r_ytop; searchArea.r_ytop = ar->ar_clip.p_y; (void) plowSrShadow(pr->pr_pNum, - &searchArea, pr->pr_oktypes, plowPenumbraRule, + &searchArea, &pr->pr_oktypes, plowPenumbraRule, (ClientData) ar); } return (1); @@ -350,7 +350,7 @@ plowPenumbraTopProc(outline, ar) /* Shadow search to right of this segment of the penumbra boundary */ (void) plowSrShadow(pr->pr_pNum, &searchArea, - pr->pr_oktypes, plowApplyRule, (ClientData) ar); + &pr->pr_oktypes, plowApplyRule, (ClientData) ar); return (ret); } @@ -396,7 +396,7 @@ plowPenumbraBotProc(outline, ar) searchArea.r_ybot = ar->ar_clip.p_y; searchArea.r_ytop = outline->o_rect.r_ybot; (void) plowSrShadow(pr->pr_pNum, - &searchArea, pr->pr_oktypes, plowPenumbraRule, + &searchArea, &pr->pr_oktypes, plowPenumbraRule, (ClientData) ar); } return (1); @@ -404,7 +404,7 @@ plowPenumbraBotProc(outline, ar) /* Shadow search to right of this segment of the penumbra boundary */ (void) plowSrShadow(pr->pr_pNum, &searchArea, - pr->pr_oktypes, plowApplyRule, (ClientData) ar); + &pr->pr_oktypes, plowApplyRule, (ClientData) ar); return (ret); } diff --git a/plow/PlowRules2.c b/plow/PlowRules2.c index b3b3f81e..c4b70b0f 100644 --- a/plow/PlowRules2.c +++ b/plow/PlowRules2.c @@ -231,7 +231,7 @@ prFixedPenumbraTop(edge) for ( ; pr; pr = pr->pr_next) { searchRect.r_ytop = edge->e_ytop + pr->pr_dist; - (void) plowSrShadow(pr->pr_pNum, &searchRect, pr->pr_oktypes, + (void) plowSrShadow(pr->pr_pNum, &searchRect, &pr->pr_oktypes, plowApplyRule, (ClientData) &ar); } } @@ -261,7 +261,7 @@ prFixedPenumbraBot(edge) for ( ; pr; pr = pr->pr_next) { searchRect.r_ybot = edge->e_ybot - pr->pr_dist; - (void) plowSrShadow(pr->pr_pNum, &searchRect, pr->pr_oktypes, + (void) plowSrShadow(pr->pr_pNum, &searchRect, &pr->pr_oktypes, plowApplyRule, (ClientData) &ar); } return 0; @@ -493,13 +493,13 @@ prCoverTop(edge) for (pr = plowWidthRulesTbl[ltype][rtype]; pr; pr = pr->pr_next) { searchArea.r_ytop = edge->e_ytop + pr->pr_dist; - (void) plowSrShadow(edge->e_pNum, &searchArea, pr->pr_oktypes, + (void) plowSrShadow(edge->e_pNum, &searchArea, &pr->pr_oktypes, plowApplyRule, (ClientData) &ar); } for (pr = plowSpacingRulesTbl[ltype][rtype]; pr; pr = pr->pr_next) { searchArea.r_ytop = edge->e_ytop + pr->pr_dist; - (void) plowSrShadow(edge->e_pNum, &searchArea, pr->pr_oktypes, + (void) plowSrShadow(edge->e_pNum, &searchArea, &pr->pr_oktypes, plowApplyRule, (ClientData) &ar); } } @@ -531,13 +531,13 @@ prCoverBot(edge) for (pr = plowWidthRulesTbl[ltype][rtype]; pr; pr = pr->pr_next) { searchArea.r_ybot = edge->e_ybot - pr->pr_dist; - (void) plowSrShadow(edge->e_pNum, &searchArea, pr->pr_oktypes, + (void) plowSrShadow(edge->e_pNum, &searchArea, &pr->pr_oktypes, plowApplyRule, (ClientData) &ar); } for (pr = plowSpacingRulesTbl[ltype][rtype]; pr; pr = pr->pr_next) { searchArea.r_ybot = edge->e_ybot - pr->pr_dist; - (void) plowSrShadow(edge->e_pNum, &searchArea, pr->pr_oktypes, + (void) plowSrShadow(edge->e_pNum, &searchArea, &pr->pr_oktypes, plowApplyRule, (ClientData) &ar); } return 0; @@ -919,7 +919,7 @@ prCell(edge) (void) DBSrPaintArea((Tile *) NULL, plowYankDef->cd_planes[pNum], &ar.ar_search, &DBAllTypeBits, plowCellDragPaint, (ClientData) &ar); - (void) plowSrShadow(pNum, &shadowArea, DBZeroTypeBits, + (void) plowSrShadow(pNum, &shadowArea, &DBZeroTypeBits, plowCellPushPaint, (ClientData) &ar); } diff --git a/plow/PlowRules3.c b/plow/PlowRules3.c index 0001171a..bd731553 100644 --- a/plow/PlowRules3.c +++ b/plow/PlowRules3.c @@ -248,7 +248,7 @@ scanDown(inarg, type, canMoveInargEdge) ar.ar_moving = movingEdge; ar.ar_rule = (PlowRule *) NULL; plowSrShadow(movingEdge->e_pNum, &shadowRect, - DBZeroTypeBits, plowApplyRule, (ClientData) &ar); + &DBZeroTypeBits, plowApplyRule, (ClientData) &ar); } #endif /* notdef */ return 0; @@ -343,7 +343,7 @@ scanUp(inarg, type, canMoveInargEdge) ar.ar_moving = movingEdge; ar.ar_rule = (PlowRule *) NULL; plowSrShadow(movingEdge->e_pNum, &shadowRect, - DBZeroTypeBits, plowApplyRule, (ClientData) &ar); + &DBZeroTypeBits, plowApplyRule, (ClientData) &ar); } #endif /* notdef */ return 0; diff --git a/plow/PlowSearch.c b/plow/PlowSearch.c index 199e2a1f..7105d7b4 100644 --- a/plow/PlowSearch.c +++ b/plow/PlowSearch.c @@ -203,16 +203,17 @@ switch ((o)->o_nextDir) \ */ int -plowSrShadow(pNum, area, okTypes, proc, cdata) - int pNum; /* Plane from plowYankDef to search */ - Rect *area; /* Area to search. Edges coincident with the +plowSrShadow( + int pNum, /* Plane from plowYankDef to search */ + Rect *area, /* Area to search. Edges coincident with the * right-hand side of this area are not seen; * they must lie to the left of area->r_xtop. */ - TileTypeBitMask okTypes; - int (*proc)(); /* Function to apply at each edge */ - ClientData cdata; /* Additional argument to pass to (*proc)() */ + const TileTypeBitMask *okTypesp, + int (*proc)(), /* Function to apply at each edge */ + ClientData cdata) /* Additional argument to pass to (*proc)() */ { + TileTypeBitMask okTypes = *okTypesp; /* TTMaskCopy(&okTypes, okTypesp) */ Plane *plane = plowYankDef->cd_planes[pNum]; struct shadow s; Tile *tp; diff --git a/plow/PlowTest.c b/plow/PlowTest.c index 999415df..75cf1bf1 100644 --- a/plow/PlowTest.c +++ b/plow/PlowTest.c @@ -240,7 +240,7 @@ PlowTest(w, cmd) saveDef = plowYankDef; plowYankDef = def; (void) plowSrShadow(PL_TECHDEPBASE, &editArea, - okTypes, plowShowShadow, (ClientData) def); + &okTypes, plowShowShadow, (ClientData) def); plowYankDef = saveDef; break; case PC_TECHSHOW: diff --git a/plow/plowInt.h b/plow/plowInt.h index 996491cb..ea0afde7 100644 --- a/plow/plowInt.h +++ b/plow/plowInt.h @@ -264,7 +264,7 @@ extern void plowQueueDone(); extern void plowQueueInit(); extern int plowSrFinalArea(); extern void plowSrOutline(int pNum, Point *startPoint, const TileTypeBitMask *insideTypesp, int initialDir, int dirMask, int (*proc)(), ClientData cdata); -extern int plowSrShadow(); +extern int plowSrShadow(int pNum, Rect *area, const TileTypeBitMask *okTypesp, int (*proc)(), ClientData cdata); extern int plowSrShadowBack(); extern int plowSrShadowInitial(); extern bool plowYankMore();