EGD
while((fcbeg = EGD->fcbeg) < EGD->fcend) {
fcx = EGD->fakecorr[fcbeg].fx;
fcy = EGD->fakecorr[fcbeg].fy;
crm->typ = EGD->fakecorr[fcbeg].ftyp;
EGD->fcbeg++;
for(fci = EGD->fcbeg; fci < EGD->fcend; fci++)
if(g_at(EGD->fakecorr[fci].fx, EGD->fakecorr[fci].fy))
EGD->gddone = 0;
EGD->gdx = gx;
EGD->gdy = gy;
EGD->fcbeg = 0;
EGD->fakecorr[0].fx = x;
EGD->fakecorr[0].fy = y;
EGD->fakecorr[0].ftyp = levl[x][y].typ;
EGD->fcend = 1;
if(dist(guard->mx,guard->my) > 1 || EGD->gddone) {
for(i = EGD->fcbeg; i < EGD->fcend; i++)
if(EGD->fakecorr[i].fx == nx &&
EGD->fakecorr[i].fy == ny)
EGD->gddone = 1;
gx = EGD->gdx;
gy = EGD->gdy;
fcp = &(EGD->fakecorr[EGD->fcend]);
if(EGD->fcend++ == FCSIZ) panic("fakecorr overflow");
if(EGD->gddone) nx = ny = 0;