////////////////////////////GRAPHIC MODE//////////////////////////////////////// void graphic(int *gd, int *gm,conj * A,conj * B) { int left=100,top=100,right=200,bottom=200; //x= 300,y=150,radius=50; int i,j,k=0,l=0,p1,p2; int Xpos[2][8]={{3,45,135,90,178,152,255,300}, {45,140,97,38,17,142,105,200}}; int** Pos=malloc(sizeof(int*)); int ** rel=nrel(A,B,0); char cont='y'; for(i=0;i<2;i++) Pos[i]=malloc(7*sizeof(int)); for(k=0;k<TAM;k++) { if(A->Xc[k]) { Pos[0][l]=k; Pos[1][l]=l; l++; } } //pbiarray(rel,rel[0][0]); //pbiarray(Pos,l); k=0; do { initgraph(gd,gm,sst); setcolor(0x1); for (i=0;i<TAM;i++) { if(A->Xc[i]) { outtextxy(left + Xpos[0][k], top + Xpos[1][k], intostr(A->X[i])); k++; } } l=k=0; l++; for (i=1;i<rel[0][0];i++) { for (j=0;j<8;j++) { if( rel[0][i] == Pos[0][j]) { p1=Pos[1][j]; } if( rel[1][i] == Pos[0][j]) { p2=Pos[1][j]; } } //printf("n: %d->%d\n",Xpos[0][p1],Xpos[0][p2]); if (!(rel[0][i]==rel[1][i])) { setcolor(l); line(left+Xpos[0][p1]-5,top+ Xpos[1][p1]+2,left+Xpos[0][p2]-5,top+ Xpos[1][p2]+2); if(l!=10) l++; else l=1; setcolor(0xE); triangle(left+Xpos[0][p2]-5,top+ Xpos[1][p2],0); } else { setcolor(l); circle(left+Xpos[0][p1]+5,top+Xpos[1][p1]+5,20); if(l!=10) l++; else l=1; } } for (i=0;i<TAM;i++) { if(A->Xc[i]) { outtextxy(left + Xpos[0][k], top + Xpos[1][k], intostr(A->X[i])); k++; } } cont=getch(); closegraph(); } while(cont == 'y'); //printf("DETECT: 0x%x\n",&gd); }
void db_putprop(FILE * f, const char *dir, PropPtr p) { char buf[BUFFER_LEN * 2]; char fbuf[BUFFER_LEN]; char num[16]; char *ptr; const char *ptr2; if (PropType(p) == PROP_DIRTYP) return; for (ptr = buf, ptr2 = dir + 1; *ptr2;) *ptr++ = *ptr2++; for (ptr2 = PropName(p); *ptr2;) *ptr++ = *ptr2++; *ptr++ = PROP_DELIMITER; ptr2 = intostr(num, PropFlagsRaw(p) & ~(PROP_TOUCHED | PROP_ISUNLOADED | PROP_NOASCIICHK)); while (*ptr2) *ptr++ = *ptr2++; *ptr++ = PROP_DELIMITER; ptr2 = ""; switch (PropType(p)) { case PROP_INTTYP: if (!PropDataVal(p)) return; ptr2 = intostr(num, PropDataVal(p)); break; case PROP_FLTTYP: if (!PropDataFVal(p)) return; ptr2 = fltostr(fbuf, PropDataFVal(p)); break; case PROP_REFTYP: if (PropDataRef(p) == NOTHING) return; ptr2 = intostr(num, (int) PropDataRef(p)); break; case PROP_STRTYP: if (!*PropDataStr(p)) return; if (db_decompression_flag) { ptr2 = PropDataUNCStr(p); } else { ptr2 = PropDataStr(p); } break; case PROP_LOKTYP: if (PropFlags(p) & PROP_ISUNLOADED) return; if (PropDataLok(p) == TRUE_BOOLEXP) return; ptr2 = unparse_boolexp((dbref) 1, PropDataLok(p), 0); break; } while (*ptr2) if (*ptr2 != '\n') *ptr++ = *ptr2++; else { *ptr++ = '\\'; *ptr++ = 'n'; ptr2++; } *ptr++ = '\n'; *ptr++ = '\0'; if (fputs(buf, f) == EOF) { fprintf(stderr, "PANIC: Unable to write to db to write prop.\n"); abort(); } }