void huddraw_info_health(int r) { char text[256]; fg_color = B0(COLOR_BLACK); bg_color = B3(COLOR_GRASS_GREEN); draw_rect(0,r,128,12,1); bg_color = COLOR_TRANSPARENT; fg_color = B3(COLOR_REDSTONE_RED); draw_blit(fonts, FONTS_ICON_HEART, 8, 8, 2, r+2); fg_color = B0(COLOR_BLACK); sprintf(text, "%.1f", gs.own.health); draw_text(12, r+3, text); fg_color = B2(COLOR_ORANGE); draw_blit(fonts, FONTS_ICON_FOOD, 8, 8, 33, r+2); fg_color = B0(COLOR_BLACK); sprintf(text, "%d (%.1f)", gs.own.food, gs.own.saturation); draw_text(43, r+3, text); }
void huddraw_compass(int center_c, int center_r, int color_dial, int color_needle) { int old_color = fg_color; fg_color = color_dial; draw_blit(fonts, FONTS_DIAL, FONTS_DIAL_SZ, FONTS_DIAL_SZ, center_c-FONTS_DIAL_SZ/2, center_r-FONTS_DIAL_SZ/2); fg_color = color_needle; double yaw = gs.own.yaw/180*M_PI; int x1 = -sin(yaw)*13; int y1 = cos(yaw)*13; int x2 = -sin(yaw-M_PI/2)*1.5; int y2 = cos(yaw-M_PI/2)*1.5; int x3 = -sin(yaw+M_PI/2)*1.5; int y3 = cos(yaw+M_PI/2)*1.5; draw_line(center_c, center_r, center_c+x1, center_r+y1); draw_line(center_c+x2, center_r+y2, center_c+x1, center_r+y1); draw_line(center_c+x3, center_r+y3, center_c+x1, center_r+y1); fg_color = old_color; }
void huddraw_info_inv_item(int id, float damage, int r) { int col = 4+31*(id%4); int row = r+2+10*(id/4); int fcol = FONTS_ICON_EQ_C+8*(id%4); int frow = FONTS_ICON_EQ_R+8*(id/4); bg_color = COLOR_TRANSPARENT; fg_color = (damage<0) ? B0(COLOR_CLAY_GRAY) : B3(COLOR_DIAMOND_BLUE); draw_blit(fonts, fcol, frow, 8, 8, col, row); fg_color = B2(COLOR_CLAY_GRAY); draw_rect(col+10, row+1, 16, 6, 1); if (damage >= 0) { fg_color = B3(COLOR_LAPIS_BLUE); if (damage < 1.0) fg_color = B3(COLOR_EMERALD_GREEN); if (damage < 0.5) fg_color = B3(COLOR_GOLD_YELLOW); if (damage < 0.25) fg_color = B3(COLOR_ORANGE); if (damage < 0.1) fg_color = B3(COLOR_REDSTONE_RED); draw_rect(col+10, row+1, 16*damage, 6, 0); } }
void draw (void) { double now, dt; struct unit *up; struct pathblock *pp; now = get_secs (); if (destimg.drawing) { dt = floor (10 * (now - destimg.lasttime)); if (dt < 8) { switch ((int) dt) { case 0: draw_blit (destimg.frames[0], destimg.x, destimg.y); break; case 1: draw_blit (destimg.frames[1], destimg.x, destimg.y); break; case 2: draw_blit (destimg.frames[2], destimg.x, destimg.y); break; case 3: draw_blit (destimg.frames[3], destimg.x, destimg.y); break; case 4: draw_blit (destimg.frames[4], destimg.x, destimg.y); break; case 5: draw_blit (destimg.frames[5], destimg.x, destimg.y); break; case 6: draw_blit (destimg.frames[6], destimg.x, destimg.y); break; case 7: draw_blit (destimg.frames[7], destimg.x, destimg.y); break; } } else { destimg.drawing = 0; } } for (pp = first_pathblock; pp; pp = pp->next) { boxColor (screen, pp->left, pp->top, pp->right, pp->bottom, pp->color); } for (up = first_unit; up; up = up->next) { boxColor (screen, up->left, up->top, up->right, up->bottom, up->color); if (up->selected == 1) { circleColor (screen, up->center_x, up->center_y, hypot (up->h / 2, up->w / 2) + 3, 0x00ff00ff); aacircleColor (screen, up->center_x, up->center_y, hypot (up->h / 2, up->w / 2) + 3, 0x00ff00ff); } } if (selectbox.drawing) { rectangleColor (screen, selectbox.x1, selectbox.y1, selectbox.x2, selectbox.y2, selectbox.color); } }