void draw() { glColor4f(1,1,1,1); glClear(GL_COLOR_BUFFER_BIT); switch(appState) { case APPSTATE_INTRO: drawImage(&images[IMG_INTRO], SCRW/2-images[IMG_INTRO].w/2, SCRH/2-images[IMG_INTRO].h/2, NULL); break; case APPSTATE_MENU: menuDraw(); break; case APPSTATE_GAME: levelDrawAllTheRest(); itemsDraw(); portalDraw(); bulletDraw(1); /* bullets shot by player */ playerDraw(); idiotDraw(); drunkenbotDraw(); bulletDraw(0); /* all the rest */ turretDraw(); bossDraw(); levelDrawForeground(); /* Darkness layer here */ if(currentLevel.flags & IS_DARK_LEVEL) drawImage(&images[IMG_DARKNESS], player.posX-(SCRW+STEP/2), player.posY-(SCRH+STEP/2), NULL); /* Boss' HP bar */ bossDrawHPBar(); break; case APPSTATE_GAMEOVER: gameoverDraw(); break; } /* Text line */ textDraw(); SDL_GL_SwapBuffers(); }
void do_drawing(cairo_t *cairoDrawPlace, GtkWidget *darea, field_t *field) { cairo_set_source_rgb(cairoDrawPlace, 0.26, 0.07, 0.69); cairo_paint(cairoDrawPlace); cairo_set_line_width(cairoDrawPlace, 2); cairo_set_line_cap(cairoDrawPlace, CAIRO_LINE_CAP_ROUND); cairo_translate(cairoDrawPlace, 5, 5); switch (field->gameStatus) { case START_MENU: startMenuDraw(cairoDrawPlace, field); break; case GAME_IN_PROCESS: fieldDraw(cairoDrawPlace, field); break; case GAMEOVER: gameoverDraw(cairoDrawPlace, field); break; } rightMenuDraw(cairoDrawPlace, field); //cairo_stroke(cairoDrawPlace); }