void progressbar_render(progress_bar *bar) { video_render_sprite(&bar->background, bar->x, bar->y, BLEND_ALPHA_FULL); if(bar->block.w > 0) { video_render_sprite( &bar->block, bar->x + (bar->orientation == PROGRESSBAR_LEFT ? 0 : bar->w - bar->block.w + 1), bar->y, BLEND_ALPHA_FULL); } }
static void textinput_render(component *c) { textinput *tb = widget_get_obj(c); int chars = strlen(tb->buf); video_render_sprite(&tb->sur, c->x + (c->w - tb->sur.w)/2, c->y - 2, BLEND_ALPHA, 0); if(component_is_selected(c)) { if(chars > 0) { tb->tconf.cforeground = color_create(80, 220, 80, 255); tb->buf[chars] = '\x7F'; tb->buf[chars+1] = 0; text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf); tb->buf[chars] = 0; } } else if(component_is_disabled(c)) { if(chars > 0) { tb->tconf.cforeground = color_create(121, 121, 121, 255); text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf); } } else { if(chars > 0) { tb->tconf.cforeground = color_create(0, 121, 0, 255); text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf); } } if(chars == 0) { tb->tconf.cforeground = color_create(121, 121, 121, 255); text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf); } }
void menu_render(menu *menu) { iterator it; component **tmp; video_render_sprite(&menu->sur, menu->x, menu->y, BLEND_ALPHA, 0); vector_iter_begin(&menu->objs, &it); while((tmp = iter_next(&it)) != NULL) { (*tmp)->render(*tmp); } }
static void spritebutton_render(component *c) { spritebutton *sb = widget_get_obj(c); sizer *s = component_get_obj(c->parent); if(sb->active > 0) { video_render_sprite(sb->img, c->x, c->y, BLEND_ALPHA, 0); } if(sb->text) { sb->tconf.opacity = clamp(s->opacity * 255, 0, 255); text_render(&sb->tconf, c->x, c->y, c->w, c->h, sb->text); } }
void textbutton_render(component *c) { textbutton *tb = c->obj; int chars = strlen(tb->text); int width = chars*tb->font->w; int xoff = (c->w - width)/2; if(c->selected) { int t = tb->ticks / 2; font_render(tb->font, tb->text, c->x + xoff, c->y, color_create(80 - t, 220 - t*2, 80 - t, 255)); } else if (c->disabled) { font_render(tb->font, tb->text, c->x + xoff, c->y, color_create(121, 121, 121, 255)); } else { font_render(tb->font, tb->text, c->x + xoff, c->y, color_create(0, 121, 0, 255)); } if(tb->border_enabled) { video_render_sprite(&tb->border, c->x + xoff-4, c->y-2, BLEND_ALPHA, 0); } }
static void textbutton_render(component *c) { textbutton *tb = widget_get_obj(c); // Select color and render if(component_is_selected(c)) { int t = tb->ticks / 2; tb->tconf.cforeground = color_create(80 - t, 220 - t*2, 80 - t, 255); } else if (component_is_disabled(c)) { tb->tconf.cforeground = color_create(121, 121, 121, 255); } else { tb->tconf.cforeground = color_create(0, 121, 0, 255); } text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->text); // Border if(tb->border_enabled) { video_render_sprite(&tb->border, c->x-2, c->y-2, BLEND_ALPHA, 0); } }
void vs_render(scene *scene) { vs_local *local = scene_get_userdata(scene); game_player *player1 = game_state_get_player(scene->gs, 0); game_player *player2 = game_state_get_player(scene->gs, 1); // player 1 HAR object_render(&local->player1_har); // player 2 HAR object_render(&local->player2_har); // player 1 portrait object_render(&local->player1_portrait); // player 2 portrait object_render(&local->player2_portrait); font_render_shadowed(&font_small, local->vs_str, 160-((strlen(local->vs_str)*font_small.w)/2), 0, COLOR_YELLOW, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); if (player2->selectable) { // arena selection video_render_sprite(&local->arena_select_bg, 55, 150, BLEND_ALPHA, 0); object_render(&local->arena_select); // arena name font_render_wrapped(&font_small, lang_get(56+local->arena), 56+72, 153, (211-72)-4, COLOR_GREEN); // arena description font_render_wrapped(&font_small, lang_get(66+local->arena), 56+72, 160, (211-72)-4, COLOR_GREEN); } else if (player2->pilot_id == 10 && settings_get()->gameplay.difficulty < 2) { // kriessack, but not on Veteran or higher font_render_wrapped(&font_small, lang_get(747), 59, 160, 200, COLOR_YELLOW); } else { font_render_wrapped(&font_small, lang_get(749+(11*player1->pilot_id)+player2->pilot_id), 59, 160, 150, COLOR_YELLOW); font_render_wrapped(&font_small, lang_get(870+(11*player2->pilot_id)+player1->pilot_id), 320-(59+150), 180, 150, COLOR_YELLOW); } }
void newsroom_overlay_render(scene *scene) { newsroom_local *local = scene_get_userdata(scene); // Render screencapture har_screencaps *caps = &(game_state_get_player(scene->gs, (local->won ? 0 : 1))->screencaps); if(local->screen == 0) { if(caps->ok[SCREENCAP_POSE]) video_render_sprite_size(&caps->cap[SCREENCAP_POSE], 165, 15, SCREENCAP_W, SCREENCAP_H); } else { if(caps->ok[SCREENCAP_BLOW]) video_render_sprite_size(&caps->cap[SCREENCAP_BLOW], 165, 15, SCREENCAP_W, SCREENCAP_H); } // Render text if(str_size(&local->news_str) > 0) { video_render_sprite(&local->news_bg, 20, 140, BLEND_ALPHA, 0); font_render_wrapped(&font_small, str_c(&local->news_str), 30, 150, 250, COLOR_YELLOW); } // Dialog if(dialog_is_visible(&local->continue_dialog)) { dialog_render(&local->continue_dialog); } }
void melee_render(scene *scene) { melee_local *local = scene_get_userdata(scene); game_player *player2 = game_state_get_player(scene->gs, 1); int current_a = 5*local->row_a + local->column_a; int current_b = 5*local->row_b + local->column_b; if (local->selection == 0) { video_render_sprite(&local->feh, 70, 0, BLEND_ALPHA, 0); video_render_sprite(&local->bleh, 0, 62, BLEND_ALPHA, 0); // player bio font_render_wrapped_shadowed(&font_small, lang_get(135+current_a), 4, 66, 152, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); // player stats font_render_shadowed(&font_small, lang_get(216), 74+27, 4, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); font_render_shadowed(&font_small, lang_get(217), 74+19, 22, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); font_render_shadowed(&font_small, lang_get(218), 74+12, 40, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); component_render(local->bar_power[0]); component_render(local->bar_agility[0]); component_render(local->bar_endurance[0]); if (player2->selectable) { video_render_sprite(&local->feh, 320-70-local->feh.w, 0, BLEND_ALPHA, 0); video_render_sprite(&local->bleh, 320-local->bleh.w, 62, BLEND_ALPHA, 0); // player bio font_render_wrapped_shadowed(&font_small, lang_get(135+current_b), 320-local->bleh.w+4, 66, 152, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); // player stats font_render_shadowed(&font_small, lang_get(216), 320-66-local->feh.w+27, 4, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); font_render_shadowed(&font_small, lang_get(217), 320-66-local->feh.w+19, 22, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); font_render_shadowed(&font_small, lang_get(218), 320-66-local->feh.w+12, 40, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); component_render(local->bar_power[1]); component_render(local->bar_agility[1]); component_render(local->bar_endurance[1]); } else { // 'choose your pilot' font_render_wrapped_shadowed(&font_small, lang_get(187), 160, 97, 160, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); } } object_render(&local->player2_placeholder); if (local->selection == 0) { // player 1 name font_render_wrapped_shadowed(&font_small, lang_get(20+current_a), 0, 52, 66, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); if (player2->selectable) { // player 2 name font_render_wrapped_shadowed(&font_small, lang_get(20+current_b), 320-66, 52, 66, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); } render_highlights(scene); for(int i = 0; i < 10; i++) { object_render(&local->pilots[i]); } object_render(&local->bigportrait1); if (player2->selectable) { object_render(&local->bigportrait2); } } else { // render the stupid unselected HAR portraits before anything // so we can render anything else on top of them object_render(&local->unselected_har_portraits); render_highlights(scene); // currently selected player object_render(&local->bigportrait1); //currently selected HAR object_render(&local->harportraits_player1[5*local->row_a + local->column_a]); object_render(&local->har_player1[5*local->row_a + local->column_a]); // player 1 name font_render_wrapped_shadowed(&font_small, lang_get(20+local->pilot_id_a), 0, 52, 66, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); if (player2->selectable) { // player 2 name font_render_wrapped_shadowed(&font_small, lang_get(20+local->pilot_id_b), 320-66, 52, 66, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); // currently selected player object_render(&local->bigportrait2); // currently selected HAR object_render(&local->harportraits_player2[5*local->row_b + local->column_b]); object_render(&local->har_player2[5*local->row_b + local->column_b]); // render HAR name (Har1 VS. Har2) char vstext[48]; strcpy(vstext, har_get_name(5*local->row_a + local->column_a)); strcat(vstext, " VS. "); strcat(vstext, har_get_name(5*local->row_b + local->column_b)); font_render_wrapped_shadowed(&font_small, vstext, 80, 107, 150, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); } else { // 'choose your HAR' font_render_wrapped_shadowed(&font_small, lang_get(186), 160, 97, 160, COLOR_GREEN, TEXT_SHADOW_RIGHT|TEXT_SHADOW_BOTTOM); // render HAR name font_render_wrapped_shadowed(&font_small, har_get_name(5*local->row_a + local->column_a), 130, 107, 66, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); } } if (player2->selectable) { chr_score *s1 = game_player_get_score(game_state_get_player(scene->gs, 0)); chr_score *s2 = game_player_get_score(game_state_get_player(scene->gs, 1)); char winstext[48]; snprintf(winstext, 48, "Wins: %d", s1->wins); font_render_shadowed(&font_small, winstext, 8, 107, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); snprintf(winstext, 48, "Wins: %d", s2->wins); font_render_shadowed(&font_small, winstext, 312-(strlen(winstext)*font_small.w), 107, COLOR_BLACK, TEXT_SHADOW_TOP|TEXT_SHADOW_LEFT); } }