/** * @brief Renders the puffs. * * @param dt Current delta tick. * @param below_player Render the puffs below player or above player? */ static void nebu_renderPuffs( int below_player ) { int i; /* Main menu shouldn't have puffs */ if (menu_isOpen(MENU_MAIN)) return; for (i=0; i<nebu_npuffs; i++) { /* Separate by layers */ if ((below_player && (nebu_puffs[i].height < 1.)) || (!below_player && (nebu_puffs[i].height > 1.))) { /* calculate new position */ nebu_puffs[i].x += puff_x * nebu_puffs[i].height; nebu_puffs[i].y += puff_y * nebu_puffs[i].height; /* Check boundaries */ if (nebu_puffs[i].x > SCREEN_W + NEBULA_PUFF_BUFFER) nebu_puffs[i].x -= SCREEN_W + 2*NEBULA_PUFF_BUFFER; else if (nebu_puffs[i].y > SCREEN_H + NEBULA_PUFF_BUFFER) nebu_puffs[i].y -= SCREEN_H + 2*NEBULA_PUFF_BUFFER; else if (nebu_puffs[i].x < -NEBULA_PUFF_BUFFER) nebu_puffs[i].x += SCREEN_W + 2*NEBULA_PUFF_BUFFER; else if (nebu_puffs[i].y < -NEBULA_PUFF_BUFFER) nebu_puffs[i].y += SCREEN_H + 2*NEBULA_PUFF_BUFFER; /* Render */ gl_blitStatic( nebu_pufftexs[nebu_puffs[i].tex], nebu_puffs[i].x, nebu_puffs[i].y, &cLightBlue ); } } }
/** * @brief Renders a image widget. * * @param img Image widget to render. * @param bx Base X position. * @param by Base Y position. */ static void img_render( Widget* img, double bx, double by ) { double x,y; if (img->dat.img.image == NULL) return; x = bx + img->x; y = by + img->y; /* * image */ gl_blitStatic( img->dat.img.image, x + (double)SCREEN_W/2., y + (double)SCREEN_H/2., img->dat.img.colour ); if (img->dat.img.border) { /* inner outline (outwards) */ toolkit_drawOutline( x, y+1, img->dat.img.image->sw-1, img->dat.img.image->sh-1, 1., toolkit_colLight, toolkit_col ); /* outter outline */ toolkit_drawOutline( x, y+1, img->dat.img.image->sw-1, img->dat.img.image->sh-1, 2., toolkit_colDark, NULL ); } }