#include "defs.h" /* if (t=1) return(1) if chip c will not fit in socket b. * if (t=0) expand socket b to take chip c * if (t=2) shrink socket b down to original size */ expand(b, c, t) SKT b; CHP c; INT t; { INT hix, lox, hiy, loy, del, nudx, nudy; REG SKT s; hix = b->x + c->dx; lox = b->x; hiy = b->y + c->dy; loy = b->y; nudx = b->dx; nudy = b->dy; scanboard(s) { if (s == b) continue; if ((s->x >= lox) && (s->x < hix) && (s->y >= loy) && (s->y < hiy)) { if (t == 0) s->block = b; else if (t == 2) s->block = 0; else if (s->sktchp || (s->block && s->block != b)) return(1); del = s->dx + s->x - b->x; if (del > nudx) nudx = del; del = s->dy + s->y - b->y; if (del > nudy) nudy = del; } } /* if (t == 0) { b->dx = nudx; b->dy = nudy; } else if ((nudx < c->dx) || (nudy < c->dy)) return(1); */ return(0); }