void display2(Albero a,int k) { if(a != NULL) { display2(a->right, k+1); int i = 0; for(;i < k; i++){ printf(" "); printf("%i",a->element); display2(a->left,k+1); } } }
void cTtyStatus::OsdTextItem(const char *Text, bool Scroll) { // dsyslog("%s: '%s' scroll %d", __FUNCTION__, Text, Scroll); if (Text) { set_color(CYAN_BLACK); display2(Text); display2("\n\n"); refresh(); } else { set_pos(2, 0); } }
static void display_inv(void) { t_npc *npc; char *str; npc = &g_env->npc[g_env->curr_npc]; if (npc->lvl == 0) return ; str = ft_itoa(npc->id); display_words(-30, 30, "ID"); display_words(-20, 30, str); free(str); str = ft_itoa(npc->lvl); display_words(-30, 29, "Lvl"); display_words(-20, 29, str); free(str); display_words(-30, 28, "Team"); display_words(-20, 28, npc->team); str = ft_itoa(npc->inv[_food]); display_words(-30, 26, "Food"); display_words(-20, 26, str); free(str); str = ft_itoa(npc->inv[_linemate]); display_words(-30, 25, "Linemate"); display_words(-20, 25, str); free(str); display2(npc); }
int Avancer2(char table[][MAZE_MAX_SIZE], unsigned int X, unsigned int Y, unsigned int sens) { int i; int tourner = 0; int avancer = 0; table[Y][X] = table[Y][X] | 16; // Interrogation des capteurs pour déterminer si il y a un mur devant/droite/gauche // GetPosition(X, Y, sens, table); display2(table, 20, sens); // est-on sur la case de fin if (table[Y][X] == 0x10) { tabsens[increment + 1] = sens; return (increment + 1); // On est en dehors de l'initialisation du tableau donc hors du labyrinthe } if (!trouve2) { // On n'a pas encore trouvé l'arrivée char porte; unsigned char tmpX, tmpY; for (i = 0; i <= 3; i++) { if (!trouve2) { porte = (table[Y][X] & _porte2[i]); // Test N, E, S, W if (porte == 0) { //0= pas de mur! tmpX = (X + dx2[i]); // Calcul de la prochaine position tmpY = (Y + dy2[i]); porte = (table[tmpY][tmpX]) & 0x10; // Pour tester si on est déjà passé par là if (porte == 0) { // c'est bon on est pas encore passé par là increment++; tabsens[increment] = i; // Enregistrer la nouvelle position tourner = tabsens[increment] - tabsens[increment - 1]; // calcul de la rotation à envoyer avancer = 1; //commande( tourner,avancer); trouve2 = Avancer2(table, tmpX, tmpY, i); } } } } // Si on ne veut pas que le robot retourne au depart tout en marche arriere depuis l'arrivee tourner = tabsens[increment] - tabsens[increment - 1]; increment--; avancer = 1; // table[Y][X] = table[Y][X]-16; // on efface la trace de notre passage commande(tourner, avancer); } return trouve2; }
//change pose void Robot::move(){ if (dMode == 1) { display1(); } else if (dMode == 2){ display2(); } else if (dMode == 3){ display3(); } }
int main() { union student var; strcpy(var.name, "sample"); display(var); union person var2; strcpy(var2.color, "there"); display2(&var2); getch(); return 0; }
//主页 void MainPage(){ setcliprgn(NULL); int choose = 0; choose = MainMenu(); switch (choose){ case 1: display1(); break; case 2: display2(); break; case 3: settings(); break; case 4: closemusic(); closegraph(); exit(1); default:; } _getch(); }
void main() { init(); init_24c02(); ET0=1; //计时器0开启 TR0=1; //计时器打开 while(1) { keyscan(); if(flag==1) { display2(); } } }
void InternalOpenGL2RenderCallbacks::render(sth_texture* texture) { display2(); GLuint* texId = (GLuint*) texture->m_userData; assert(glGetError()==GL_NO_ERROR); glActiveTexture(GL_TEXTURE0); assert(glGetError()==GL_NO_ERROR); glBindTexture(GL_TEXTURE_2D, *texId); bool useFiltering = false; if (useFiltering) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); } else { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); } assert(glGetError()==GL_NO_ERROR); glBindBuffer(GL_ARRAY_BUFFER, s_vertexBuffer); glBindVertexArray(s_vertexArrayObject); glBufferData(GL_ARRAY_BUFFER, texture->nverts * sizeof(Vertex), &texture->newverts[0].position.p[0], GL_DYNAMIC_DRAW); assert(glGetError()==GL_NO_ERROR); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, s_indexBuffer); //glDrawArrays(GL_TRIANGLE_FAN, 0, 4); int indexCount = texture->nverts; assert(glGetError()==GL_NO_ERROR); glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_INT, 0); assert(glGetError()==GL_NO_ERROR); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); // glDisableVertexAttribArray(m_textureAttribute); glUseProgram(0); }
void main() { init_1602(); init_24c02(); init(); readtemp(); EA=1; ET0=1; TR0=0; while(1) { keyscan(); if(second==0) { if(ahour==hour&&amin==minute) { display3(); alarmflag=1; beep=0; while(alarmflag==1) { if(k1==0||k2==0||k3==0||k4==0) { alarmflag=0; write_com(0x01); beep=1; while(k1==0||k2==0||k3==0||k4==0); } } } } if(flag==0&&k3==0) { display4(); } if(flag==0&&alarmflag==0) { display1(); } if(flag==1&&alarmflag==0) { display2(); } } }
int main() { char ch; int i,choice,position; struct node *head=NULL; push(&head,1); push(&head,2); push(&head,3); push(&head,4); push(&head,5); printf("Printing the list\n"); display2(head); printf("Printing using recursive\n"); display(head); printf("\n"); count(head); }
void food(int matrix[][50],int f[]) // places the food { display2(); srand(time(NULL)); f[0] = rand()%23 + 1; f[1] = rand()%48 + 1; while(matrix[f[0]][f[1]]!=0) { srand(time(NULL)); f[0] = rand()%24; f[1] = rand()%49; } matrix[f[0]][f[1]]=6; fruit(15+10*f[1],15+10*f[0]); if(t>44) { t -= 1; } else if(t<44) { t += 1; } }
int main() { int n = 1; setlocale(LC_CTYPE, ""); initscr();//Initialize the screen start_color(); cbreak(); display1(stdscr); while(1) { n = display2(stdscr); switch(n) { case 1: n = p_vs_p_mode(stdscr); break; case 2: n = comp_vs_p_mode(stdscr, n);//Player white and computer black break; case 3: n = comp_vs_p_mode(stdscr, n);//Player black and computer white break; case 4: case 5: if(n == 4) { n = display_help_about(stdscr, "help"); } else { n = display_help_about(stdscr, "about"); } break; case 6: break; default: printf("Please enter a valid number\n"); } if(n == 6) { break; } } endwin(); return 0; }
int display2(WINDOW *win) { int x, y, n = -1; wclear(win);//Clear screen init_pair(1, COLOR_WHITE, COLOR_RED); wbkgd(win, COLOR_PAIR(1)); attron(A_BOLD); mvwaddstr(win, LINES/4, COLS/2 - 4, "CHESS"); attroff(A_BOLD); init_pair(2, COLOR_WHITE, COLOR_RED); attron(COLOR_PAIR(2)); getyx(win, y, x); mvwprintw(win, y + 4, COLS/2 - 12, "1. Player vs Player"); mvwprintw(win, y + 6, COLS/2 - 12, "2. Computer vs Player"); mvwprintw(win, y + 8, COLS/2 - 12, "3. Player vs Computer"); mvwprintw(win, y + 10, COLS/2 - 12, "4. HELP"); mvwprintw(win, y + 12, COLS/2 - 12, "5. About"); mvwprintw(win, y + 14, COLS/2 - 12, "6. Exit"); curs_set(1); echo(); while(n == -1) { mvwprintw(win, y + 17, COLS/2 - 12, "Enter your command : "); wrefresh(win); scanw("%d", &n); wrefresh(win); // wdelch(win); if(n > 0 && n < 7) { return n; } else { mvwprintw(win, y + 16, COLS/2 - 12, "Please enter a valid choice"); display2(win); } } sleep(1); return n; }
void display(void) { glClear(GL_COLOR_BUFFER_BIT); if(flag==0) { glRasterPos3f(58,58,0); for(i=0;s[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s[i]); glRasterPos3f(45,450,0); for(i=0;s1[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s1[i]); glRasterPos3f(90,358,0); for(i=0;s2[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s2[i]); glRasterPos3f(70,338,0); for(i=0;s3[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s3[i]); glRasterPos3f(218,218,0); for(i=0;s4[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s4[i]); glRasterPos3f(350,218,0); for(i=0;s5[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s5[i]); glRasterPos3f(250,150,0); for(i=0;s6[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s6[i]); glColor3f(1.0,1.0,0.0); glRasterPos3f(250,130,0); for(i=0;s7[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s7[i]); glRasterPos3f(250,100,0); for(i=0;s8[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s8[i]); glRasterPos3f(58,28,0); for(i=0;s9[i]!='\0';i++) glutBitmapCharacter( GLUT_BITMAP_TIMES_ROMAN_24,s9[i]); } else { road(); mountain(); //green glBegin(GL_POLYGON); glColor3f(0.0,1.0,0.0); glVertex2i(-10,300); glVertex2i(645,310); glVertex2i(940,100); glVertex2i(-10,100); glEnd(); trees(); //plane construction glPushMatrix(); glTranslated(a,c,0.0); glColor3f(1,1,1); glBegin(GL_POLYGON);//rectangular body glVertex2f(0.0,30.0); glVertex2f(0.0,55.0); glVertex2f(135.0,55.0); glVertex2f(135.0,30.0); glEnd(); glPopMatrix(); glPushMatrix(); glTranslated(a,c,0.0); glColor3f(1.0,1.0,1.0); glBegin(GL_POLYGON);//upper triangle construction plane glVertex2f(135.0,55.0); glVertex2f(150.0,50.0); glVertex2f(155.0,45.0); glVertex2f(160.0,40.0); glVertex2f(135.0,40.0); glEnd(); glPopMatrix(); glPushMatrix(); glTranslated(a,c,0.0); glColor3f(0.0,0.0,0.0); glBegin(GL_LINE_LOOP);//outline of upper triangle plane glVertex2f(135.0,55.0); glVertex2f(150.0,50.0); glVertex2f(155.0,45.0); glVertex2f(160.0,40.0); glVertex2f(135.0,40.0); glEnd(); glPopMatrix(); glPushMatrix(); glTranslated(a,c,0.0); glColor3f(1.0,0.0,0.0); glBegin(GL_POLYGON);//lower triangle glVertex2f(135.0,40.0); glVertex2f(160.0,40.0); glVertex2f(160.0,37.0); glVertex2f(145.0,30.0); glVertex2f(135.0,30.0); glEnd(); glPopMatrix(); glPushMatrix(); glTranslated(a,c,0.0); glColor3f(1.0,0.0,0.0); glBegin(GL_POLYGON);//back wing glVertex2f(0.0,55.0); glVertex2f(0.0,80.0); glVertex2f(10.0,80.0); glVertex2f(40.0,55.0); glEnd(); glPopMatrix(); glPushMatrix(); glTranslated(a,c,0.0); glColor3f(1.0,0.0,0.0); glBegin(GL_POLYGON);//left side wing glVertex2f(65.0,55.0); glVertex2f(50.0,70.0); glVertex2f(75.0,70.0); glVertex2f(90.0,55.0); glEnd(); glPopMatrix(); glPushMatrix(); glTranslated(a,c,0.0); glColor3f(1.0,0.0,0.0); glBegin(GL_POLYGON);//rightside wing glVertex2f(70.0,40.0); glVertex2f(100.0,40.0); glVertex2f(80.0,15.0); glVertex2f(50.0,15.0); glEnd(); glPopMatrix(); if(c>390) //timer to jump to next display { display2(); d+=5;//plane takeoff on x in 2nd display } if(a>500.0)//window position during take off { a=0.0; b=0.0; } if(c>800)//timer to jump to 3rd display { display3(); e+=5;//plane takeoff on x in 3rd display if(e>250)//timer to call blast function { blast(); e=250; } } } glFlush(); glutSwapBuffers(); }
int test_maze_construc(void) { char tableau[MAZE_MAX_SIZE][MAZE_MAX_SIZE] = {("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000955530"), ("0000A95560"), ("0000AA9150"), ("0000AEAAB0"), ("0000C56C60")}; /* {("9555300000"), ("C395600000"), ("96C1300000"), ("C3FAC00000"), ("D454700000"), ("0000000000")}; */ /* {("0000955530"), ("00008393A0"), ("0000EC6AA0"), ("0000B93A80"), ("0000C6C6E0"), ("0000000000")}; */ /* {("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000B93F90"), ("0000AAC160"), ("0000AAD2B0"), ("0000AA9460"), ("0000C6C570"), ("0000000000")}; { ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000951530"), ("0000A943E0"), ("000082F810"), ("0000AC16A0"), ("0000ED4560"), ("0000000000")}; { ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000D53930"), ("0000916AA0"), ("0000E87AA0"), ("0000943AA0"), ("00006FC6E0"), ("0000000000")}; */ /* {("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000"), ("0000000000")}; */ ConvertBinaire(tableau); // unsigned char mur[3]; // unsigned char i; unsigned char x = 4; unsigned char y = 4; unsigned int sens = NORD; init(); hal_serial_write(handle, "Commencement du test\n", 23); display2(tableau, 20, sens); hal_serial_write(handle, "Rotation 180\n", 13); GetPosition2(x, y, sens, tableau); //commande( SUD, 0); display2(tableau, 20, SUD); int ret = 0; ret = Avancer2(tableau, x, y, SUD); hal_serial_write(handle, "Le test est termine\n", 20); Convertcharacter(tabsens, ret + 1); hal_serial_write(handle, "trajectoire a envoyer\n", 22); hal_serial_write(handle, tabsens, ret + 1); return ret + 1; }
void keyscan() { if(k1==0&&flag2!=0) { delay(5); if(k1==0&&flag2!=0) { flag=0; flag2=0; write_com(0x0c); init(); if(num!=0&&TR0==0) ET0=0; } while(k1==0); } if(k1==0) { delay(5); if(k1==0) { flag++; if(flag==1) { init2(); } switch(flag) { case 6 : write_com(0x80+0x40+0x04); break; case 7 : write_com(0x80+0x40+0x07); break; case 8 : write_com(0x80+0x40+0x0a); break; case 2 : init(); write_com(0x80+0x01); write_com(0x0f); break; case 3 : write_com(0x80+0x06); break; case 4 : write_com(0x80+0x09); break; case 5 : write_com(0x80+0x0d); break; case 9 : init3(); break; case 10: write_com(0x80+0x09); break; case 11: flag=0; write_com(0x01); write_com(0x0c); break; } } while(k1==0); } if(k2==0) { delay(5); if(k2==0) { if(flag==1) { if(ET0==0) { min2=0;sec2=0;num=0;secp=0; for(i=0;i<max;i++) { mins[i]=0;secs[i]=0;secps[i]=0; } max=0;ET0=1;flag2++; while(k2==0); } if(TR0==1) { num++; mins[num]=min2; secs[num]=sec2; secps[num]=secp; TR0=0; ET0=0; max=num; flag2++; while(k2==0); } } switch(flag) { case 6 : if(hour<23) hour++; else hour=0; writehour; delay(5); displayhour; write_com(0x80+0x40+0x04); break; case 7 : if(minute<59) minute++; else minute=0;writeminute; delay(5); displayminute; write_com(0x80+0x40+0x07); break; case 8 : if(second<59) second++; else second=0;writesecond; delay(5); displaysecond; write_com(0x80+0x40+0x0a); break; case 2 : year++; writeyear; delay(5); displayyear;write_com(0x80+0x01); break; case 3 : if(month<12) month++; else month=1;writemonth;delay(5); displaymonth; write_com(0x80+0x06); break; case 4 : if(day<31) day++; else day=1; writeday; delay(5); displayday; write_com(0x80+0x09); break; case 5 : if(week<8) week++; else week=2; writeweek;delay(5); displayweek; write_com(0x80+0x0d); break; case 9 : if(ahour<23) ahour++; else ahour=0; displaytwo(6,ahour); write_add(1,ahour); write_com(0x80+0x06); break; case 10: if(amin<59) amin++; else amin=0; displaytwo(9,amin); write_add(2,amin); write_com(0x80+0x09); break; } } while(k2==0); } if(k3==0&flag!=0) { delay(5); if(k3==0&flag!=0) { if(flag==1) { if(ET0==1&&TR0==1) { num++; flag2++; mins[num]=min2; secs[num]=sec2; secps[num]=secp; while(k3==0) { display2(); } } if(ET0==1&&TR0==0) { TR0=1; flag2++; } if(ET0==0) { if(num>1) num--; min2=mins[num]; sec2=secs[num]; secp=secps[num]; flag2++; } } switch(flag) { case 6 : if(hour>0) hour--; else hour=23; writehour;delay(5); displayhour; write_com(0x80+0x40+0x04); break; case 7 : if(minute>0) minute--; else minute=59; writeminute; delay(5); displayminute; write_com(0x80+0x40+0x07); break; case 8 : if(second>0) second--; else second=59; writesecond; delay(5); displaysecond; write_com(0x80+0x40+0x0a); break; case 2 : year--; writeyear; delay(5); displayyear; write_com(0x80+0x01); break; case 3 : if(month>1) month--; else month=12; writemonth; delay(5); displaymonth; write_com(0x80+0x06); break; case 4 : if(day>1) day--; else day=31;writeday; delay(5); displayday; write_com(0x80+0x09); break; case 5 : if(week>1) week--; else week=7;writeweek; delay(5); displayweek; write_com(0x80+0x0d); break; case 9 : if(ahour>0) ahour--; else ahour=23; displaytwo(6,ahour); write_add(1,ahour); write_com(0x80+0x06); break; case 10: if(amin>0) amin--; else amin=59; displaytwo(9,amin); write_add(2,amin); write_com(0x80+0x09); break; } } while(k3==0); } if(k4==0) { delay(5); if(k4==0&&ET1==0&&flag!=0) { if(num<max) num++; min2=mins[num]; sec2=secs[num]; secp=secps[num]; flag2++; } if(k4==0&&flag==0) { write_com(0x01); displaytemp(readtemp()); } } while(k4==0); }
void display(Albero alb) { display2(alb,0); }
int main() { //m = num_of_constraints //n = num_of_variables int i, j, k, l=0, m, n, count_surp=0, count_art=0, c=0, dummy=0, res=0; float **A, **S, *obj_fun, *type, sum=0; // char *c1, *c2, c; printf("enter the number of constraints: "); scanf("%d", &m); printf("enter the number of variables: "); scanf("%d", &n); printf("\n"); //forming the constraint matrix A = (float **)malloc(m * sizeof(float *)); for(i=0; i<m; i++) { printf("constraint #%d: ",i+1); A[i] = (float *)malloc((n+1) * sizeof(float)); for(j=0; j<(n+1) ; j++) scanf("%f",&A[i][j]); } printf("\n"); //forming the objective function array obj_fun = (float *)malloc(n * sizeof(float)); printf("enter the coefficients of the objective function: "); for(i=0; i<n; i++) scanf("%f", &obj_fun[i]); printf("\n"); //forming the type array type = (float *)malloc(m * sizeof(float)); printf("1 -> less than equal to\n2 -> greater than equal to\n3 -> equal to\n"); for(i=0; i<m; i++) { printf("type for constraint #%d: ",i+1); scanf("%f", &type[i]); if(type[i]==2) count_surp++; } printf("\n"); //forming the first simplex tableau S = (float **)calloc((m+1), sizeof(float *)); for(i=0; i<m+1; i++) { k=0; l=0; S[i] = (float *)calloc((n+count_surp+1), sizeof(float)); for(j=0; j<(n+count_surp+1) ; j++) { sum=0; if(i<m && j<n) S[i][j] = A[i][j]; if(i<m && k==0 && j>=n && j<count_surp+n && type[i]==2) { k=1; S[i][j+c] = -1; c++; } if(i<m && j==n+count_surp) S[i][j] = A[i][n]; if(i==m) { for(k=0; k<m; k++) sum += S[k][l]; if(j<n) S[i][j] = -(sum*M) - obj_fun[j]; if(j>=n && j<=count_surp+n) S[i][j] = -(sum*M); } l++; } } //forming title matrices /* c1 = (char **)malloc((m+1) * sizeof(char*)); for(i=0; i<m+1; i++) { c1[i] = (char *)malloc(sizeof(char)); for(j=0; j<2; j++) { c = (char)(i+1); c1[i][ } } */ printf("Coefficient matrix:\n"); display2(A, m, n+1); printf("type array:\n"); display1(type, m); printf("objective function\n"); display1(obj_fun, n); printf("Simplex matirx\n"); display2(S, m+1, n+count_surp+1); while(res==0) { res = find_pivot(S, m+1, n+count_surp+1); display2(S, m+1,n+count_surp+1); } return 0; }
void display() { glClearColor(0.6, 0.75, 0.85, 1); // sky color is light blue glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* Clear The Screen And The Depth Buffer */ if(view==0) { display1(); } else if (view==1) { display2(); } else if(view==2) { // Erase the window and the depth buffer glClearColor(0.6, 0.75, 0.85, 1); // sky color is light blue glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); // Enable Z-buffering in OpenGL glEnable(GL_DEPTH_TEST); glCullFace(GL_BACK); glLoadIdentity(); // Set the look at position for perspective projection gluLookAt( Ex, Ey, Ez, Ex + lx, Ey, Ez+lz, 0.0, 1, 0.0); glShadeModel(GL_SMOOTH); glDisable(GL_DEPTH_TEST); glDepthMask(GL_FALSE); glPushMatrix(); glTranslatef( Ex + lx, 0, Ez+lz-4); Sky(1000); glPopMatrix(); glDepthMask(GL_TRUE); glEnable(GL_DEPTH_TEST); // Light switch if (light) { // Translate intensity to color vectors float Ambient[] = {0.01*ambient ,0.01*ambient ,0.01*ambient ,1.0}; float Diffuse[] = {0.01*diffuse ,0.01*diffuse ,0.01*diffuse ,1.0}; float Specular[] = {0.01*specular,0.01*specular,0.01*specular,1.0}; // Light position float Position[]={0,1000,5000}; // Draw light position as ball (still no lighting here) glColor3f(1,1,1); ball(Position[0],Position[1],Position[2] , 0.2); // OpenGL should normalize normal vectors glEnable(GL_NORMALIZE); // Enable lighting glEnable(GL_LIGHTING); // glColor sets ambient and diffuse color materials glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE); glEnable(GL_COLOR_MATERIAL); // Enable light 0 glEnable(GL_LIGHT0); // Set ambient, diffuse, specular components and position of light 0 glLightfv(GL_LIGHT0,GL_AMBIENT ,Ambient); glLightfv(GL_LIGHT0,GL_DIFFUSE ,Diffuse); glLightfv(GL_LIGHT0,GL_SPECULAR,Specular); glLightfv(GL_LIGHT0,GL_POSITION,Position); } else glDisable(GL_LIGHTING); if(opt==1) { glPushMatrix(); glTranslatef( Ex + lx,0, Ez+lz-4); glRotatef(90, 1, 0, 0); glRotatef(180, 0, 1, 0); glColor3f(1,1,1); glCallList(car1); glPopMatrix(); int E=Ez+lz-4; if(E<=40) { Ex=0; Ez=1000; lx=0; lz=-1; } } else if(opt==2) { glPushMatrix(); glTranslatef( Ex + lx, 0, Ez+lz-4); glRotatef(90, 1, 0, 0); glRotatef(180, 0, 1, 0); glColor3f(1,1,1); glCallList(car2); glPopMatrix(); int E=Ez+lz-4; if(E<=40) { Ex=0; Ez=1000; lx=0; lz=-1; } } cylinder(); Road(); for(i=0; i<=1000; i+=40) { glPushMatrix(); glTranslated(-50,10,i); glScaled(50,50,50); Tree(); glPopMatrix(); } for(i=0; i<=1000; i+=40) { glPushMatrix(); glTranslated(170,10,i); glScaled(50,50,50); Tree(); glPopMatrix(); } for(i=0; i<=1000; i+=60) { glPushMatrix(); glTranslated(-70,-10,i); glScaled(2,10,10); Lamp(); glPopMatrix(); } for(i=0; i<=1000; i+=60) { glPushMatrix(); glTranslated(70,-10,i); glRotated(90,0,1,0); glScaled(2,10,10); Lamp(); glPopMatrix(); } for(i=-60; i<=1000; i+=60) { glPushMatrix(); glTranslated(-38,86.5,i+43); glScaled(5,5,5); lights(); glPopMatrix(); } for(i=-60; i<=1000; i+=60) { glPushMatrix(); glTranslated(55,87,i+30); glScaled(5,5,5); lights(); glPopMatrix(); } for(i=0; i<=1000; i+=400) { glPushMatrix(); glTranslated(-50,-10,i); glScaled(10,10,10); trafficsignal(); glPopMatrix(); } for(i=0; i<=1000; i+=400) { glPushMatrix(); glTranslated(0,0,i+40); zebracrossing(); glPopMatrix(); } for(i=-60; i<=1000; i+=100) { glPushMatrix(); glTranslated(200,-15,i+30); glScaled(10,15,10); buildings(); glPopMatrix(); } for(i=-60; i<=1000; i+=100) { glPushMatrix(); glTranslated(-250,-15,i+30); glScaled(10,15,10); buildings(); glPopMatrix(); } for(i=-60; i<=1000; i+=100) { glPushMatrix(); glTranslated(350,-15,i+30); glScaled(10,30,10); buildings(); glPopMatrix(); } for(i=-60; i<=1000; i+=100) { glPushMatrix(); glTranslated(-400,-15,i+30); glScaled(10,30,10); buildings(); glPopMatrix(); } for(e=0; e<=1000; e+=155) { if(e%2==0) { glPushMatrix(); glTranslated(-16,-10,e); glScaled(6,6,6); roadpylon(); glPopMatrix(); } else { glPushMatrix(); glTranslated(16,-10,e); glScaled(6,6,6); roadpylon(); glPopMatrix(); } } for(i=0; i<=1000; i+=400) { glPushMatrix(); glTranslated(65,0,i); glScaled(10,10,10); roadsign(); glPopMatrix(); } xpos = xpos + xvel; if(xpos >= 30) { xvel = -xvel; } if( xpos <2) { xvel = -xvel; } glPushMatrix(); glTranslated(0,xpos,900); glRotated(-90,0,0,1); glRotated(-90,0,1,0); glScaled(2,2,2); glColor3f(1,1,1); glCallList(dragon); glPopMatrix(); glWindowPos2i(5,5); glColor3f(1,1,1); Print("Speed=%f",1,jump); } // Render the scene and make it visible ErrCheck("display"); glFlush(); glutSwapBuffers(); }
bool ServerWindow::ParseEvents (const char *data) { BString firstWord = GetWord(data, 1).ToUpper(); BString secondWord = GetWord(data, 2).ToUpper(); if(firstWord == "PING") { BString tempString, theServer (GetWord(data, 2)); theServer.RemoveFirst(":"); tempString << "PONG " << myNick << " " << theServer; SendData (tempString.String()); tempString = ""; tempString << "PONG " << theServer; // fix for some noncompliant servers SendData (tempString.String()); return true; } if (secondWord == "JOIN") { BString nick (GetNick (data)); BString channel (GetWord (data, 3)); channel.RemoveFirst (":"); ClientWindow *client (Client (channel.String())); if (nick == myNick) { if (!client) { client = new ChannelWindow ( channel.String(), sid, serverName.String(), sMsgr, myNick.String()); clients.AddItem (client); client->Show(); } BString tempString ("MODE "); tempString << channel; SendData (tempString.String()); } else if (client) { // someone else BString ident (GetIdent (data)); BString address (GetAddress (data)); const char *expansions[3]; BString tempString, addy; expansions[0] = nick.String(); expansions[1] = ident.String(); expansions[2] = address.String(); tempString = ExpandKeyed (events[E_JOIN], "NIA", expansions); BMessage display (M_DISPLAY); PackDisplay ( &display, tempString.String(), &joinColor, 0, true); addy << ident << "@" << address; BMessage aMsg (M_IS_IGNORED), reply; bool ignored; aMsg.AddString ("server", serverName.String()); aMsg.AddString ("nick", nick.String()); aMsg.AddString ("address", addy.String()); be_app_messenger.SendMessage (&aMsg, &reply); reply.FindBool ("ignored", &ignored); BMessage msg (M_USER_ADD); msg.AddString ("nick", nick.String()); msg.AddBool ("ignore", ignored); msg.AddMessage ("display", &display); client->PostMessage (&msg); } return true; } if (secondWord == "PART") { BString nick (GetNick (data)); BString channel (GetWord (data, 3)); ClientWindow *client; if ((client = Client (channel.String())) != 0) { BString ident (GetIdent (data)); BString address (GetAddress (data)); const char *expansions[3]; BString buffer; expansions[0] = nick.String(); expansions[1] = ident.String(); expansions[2] = address.String(); buffer = ExpandKeyed (events[E_PART], "NIA", expansions); BMessage display (M_DISPLAY); PackDisplay (&display, buffer.String(), &joinColor, 0, true); BMessage msg (M_USER_QUIT); msg.AddString ("nick", nick.String()); msg.AddMessage ("display", &display); client->PostMessage (&msg); } return true; } if(secondWord == "PRIVMSG") { BString theNick (GetNick (data)), ident (GetIdent (data)), address (GetAddress (data)), addy; addy << ident << "@" << address; BMessage aMsg (M_IS_IGNORED), reply; bool ignored; aMsg.AddString ("server", serverName.String()); aMsg.AddString ("nick", theNick.String()); aMsg.AddString ("address", addy.String()); be_app_messenger.SendMessage (&aMsg, &reply); reply.FindBool ("ignored", &ignored); if (ignored) { BMessage msg (M_IGNORED_PRIVMSG); const char *rule; reply.FindString ("rule", &rule); msg.AddString ("nick", theNick.String()); msg.AddString ("address", addy.String()); msg.AddString ("rule", rule); Broadcast (&msg); return true; } BString theTarget (GetWord (data, 3).ToUpper()), theTargetOrig (GetWord (data, 3)), theMsg (RestOfString (data, 4)); ClientWindow *client (0); theMsg.RemoveFirst(":"); if(theMsg[0] == '\1' && GetWord(theMsg.String(), 1) != "\1ACTION") // CTCP { ParseCTCP (theNick, theTargetOrig, theMsg); return true; } if (theTarget[0] == '#') client = Client (theTarget.String()); else if (!(client = Client (theNick.String()))) { BString ident = GetIdent(data); BString address = GetAddress(data); BString addyString; addyString << ident << "@" << address; client = new MessageWindow ( theNick.String(), sid, serverName.String(), sMsgr, myNick.String(), addyString.String(), false, // not a dcc chat true); // initated by server clients.AddItem (client); client->Show(); } if (client) client->ChannelMessage ( theMsg.String(), theNick.String(), ident.String(), address.String()); return true; } if (secondWord == "NICK") { BString oldNick (GetNick (data)), ident (GetIdent (data)), address (GetAddress (data)), newNick (GetWord (data, 3)), buffer; const char *expansions[4]; newNick.RemoveFirst (":"); expansions[0] = oldNick.String(); expansions[1] = newNick.String(); expansions[2] = ident.String(); expansions[3] = address.String(); buffer = ExpandKeyed (events[E_NICK], "NnIA", expansions); BMessage display (M_DISPLAY); PackDisplay (&display, buffer.String(), &nickColor, 0, bowser_app->GetStampState()); BMessage msg (M_CHANGE_NICK); msg.AddString ("oldnick", oldNick.String()); msg.AddString ("newnick", newNick.String()); msg.AddString ("ident", ident.String()); msg.AddString ("address", address.String()); msg.AddMessage ("display", &display); Broadcast (&msg); // Gotta change the server as well! if (myNick.ICompare (oldNick) == 0) { myNick = newNick; status->SetItemValue (STATUS_NICK, newNick.String()); } bowser_app->PostMessage (&msg); // for ignores return true; } if (secondWord == "QUIT") { BString theNick (GetNick (data).String()), theRest (RestOfString (data, 3)), ident (GetIdent (data)), address (GetAddress (data)), theMsg, firstNick; const char *expansions[4]; theRest.RemoveFirst (":"); expansions[0] = theNick.String(); expansions[1] = theRest.String(); expansions[2] = ident.String(); expansions[3] = address.String(); theMsg = ExpandKeyed (events[E_QUIT], "NRIA", expansions); BMessage display (M_DISPLAY); PackDisplay (&display, theMsg.String(), &quitColor, 0, true); BMessage msg (M_USER_QUIT); msg.AddMessage ("display", &display); msg.AddString ("nick", theNick.String()); Broadcast (&msg); // see if it was our first nickname. if so, change firstNick = (const char *)lnicks->ItemAt (0); if (theNick == firstNick) { BString tempCmd ("/nick "); tempCmd << firstNick; ParseCmd (tempCmd.String()); } return true; } if (secondWord == "KICK") { BString kicker (GetNick (data)), kickee (GetWord (data, 4)), rest (RestOfString (data, 5)), channel (GetWord (data, 3)); ClientWindow *client (Client (channel.String())); rest.RemoveFirst (":"); if ((client = Client (channel.String())) != 0 && kickee == myNick) { BMessage display (M_DISPLAY); // "you were kicked" BString buffer; buffer << "*** You have been kicked from " << channel << " by " << kicker << " (" << rest << ")\n"; PackDisplay (&display, buffer.String(), &quitColor, 0, true); BMessage display2 (M_DISPLAY); // "attempting auto rejoin" buffer = "*** Attempting to automagically rejoin "; buffer << channel << "...\n"; PackDisplay (&display2, buffer.String(), &quitColor, 0, true); BMessage msg (M_CHANNEL_GOT_KICKED); msg.AddString ("channel", channel.String()); msg.AddMessage ("display", &display); // "you were kicked" msg.AddMessage ("display2", &display2); // "attempting auto rejoin" client->PostMessage (&msg); } if (client && kickee != myNick) { BMessage display (M_DISPLAY); const char *expansions[4]; BString buffer; expansions[0] = kickee.String(); expansions[1] = channel.String(); expansions[2] = kicker.String(); expansions[3] = rest.String(); buffer = ExpandKeyed (events[E_KICK], "NCnR", expansions); PackDisplay (&display, buffer.String(), &quitColor, 0, true); BMessage msg (M_USER_QUIT); msg.AddString ("nick", kickee.String()); msg.AddMessage ("display", &display); client->PostMessage (&msg); } return true; } if(secondWord == "TOPIC") { BString theNick (GetNick (data)), theChannel (GetWord (data, 3)), theTopic (RestOfString (data, 4)); ClientWindow *client (Client (theChannel.String())); theTopic.RemoveFirst (":"); if (client && client->Lock()) { BString ident (GetIdent (data)); BString address (GetAddress (data)); const char *expansions[5]; BString buffer; expansions[0] = theNick.String(); expansions[1] = theTopic.String(); expansions[2] = client->Id().String(); expansions[3] = ident.String(); expansions[4] = address.String(); if(bowser_app->GetShowTopicState()) { buffer << client->Id() << " : " << theTopic; client->SetTitle (buffer.String()); client->Unlock(); } else { buffer << client->Id(); client->SetTitle (buffer.String()); client->Unlock(); } BMessage topic (M_CHANNEL_TOPIC); topic.AddString("topic", theTopic.String()); BMessage display (M_DISPLAY); buffer = ExpandKeyed (events[E_TOPIC], "NTCIA", expansions); PackDisplay (&display, buffer.String(), &whoisColor, 0, true); topic.AddMessage("display", &display); client->PostMessage (&topic); } return true; } if (secondWord == "MODE") { BString theNick (GetNick (data)), theChannel (GetWord (data, 3)), theMode (GetWord (data, 4)), theTarget (RestOfString (data, 5)); ClientWindow *client (Client (theChannel.String())); if (client) { BMessage msg (M_CHANNEL_MODE); msg.AddString("nick", theNick.String()); msg.AddString("mode", theMode.String()); msg.AddString("target", theTarget.String()); client->PostMessage (&msg); } else { BMessage msg (M_DISPLAY); BString buffer; theMode.RemoveFirst(":"); buffer << "*** User mode changed: " << theMode << "\n"; PackDisplay (&msg, buffer.String(), 0, 0, true); PostActive (&msg); } return true; } if(firstWord == "NOTICE") // _server_ notice { BString theNotice (RestOfString(data, 3)); const char *expansions[1]; theNotice.RemoveFirst(":"); expansions[0] = theNotice.String(); theNotice = ExpandKeyed (events[E_SNOTICE], "R", expansions); Display (theNotice.String(), 0, 0, true); return true; } if (firstWord == "ERROR") // server error (on connect?) { BString theError (RestOfString (data, 2)); theError.RemoveAll (":"); theError.Append ("\n"); Display (theError.String(), &quitColor); isConnecting = false; return true; } if(secondWord == "NOTICE") // _user_ notice { BString theNick (GetNick (data)), ident (GetIdent (data)), address (GetAddress (data)), addy; addy << theNick << "@" << address; BMessage aMsg (M_IS_IGNORED), reply; bool ignored; aMsg.AddString ("server", serverName.String()); aMsg.AddString ("nick", theNick.String()); aMsg.AddString ("address", addy.String()); be_app_messenger.SendMessage (&aMsg, &reply); reply.FindBool ("ignored", &ignored); if (ignored) return true; BString theNotice = RestOfString(data, 4); theNotice.RemoveFirst(":"); if(theNotice[0] == '\1') { ParseCTCPResponse(theNick, theNotice); return true; } const char *expansions[4]; BString tempString; expansions[0] = theNick.String(); expansions[1] = theNotice.String(); expansions[2] = ident.String(); expansions[3] = address.String(); tempString = ExpandKeyed (events[E_UNOTICE], "NRIA", expansions); BMessage display (M_DISPLAY); PackDisplay (&display, tempString.String(), ¬iceColor, 0, true); PostActive (&display); return true; } return ParseENums (data, secondWord.String()); }