示例#1
0
////////////////////////////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);
}
示例#2
0
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();
    }
}