void HudGaugeEscort::render(float frametime) { int i = 0; if ( !Show_escort_view ) { return; } if ( !Num_escort_ships ) { return; } // hud_set_default_color(); setGaugeColor(); // draw the top of the escort view renderBitmap(Escort_gauges[0].first_frame, position[0], position[1]); renderString(position[0] + header_text_offsets[0], position[1] + header_text_offsets[1], header_text); int x = position[0] + list_start_offsets[0]; int y = position[1] + list_start_offsets[1]; //This is temporary Num_escort_ships--; i=0; if(Num_escort_ships) { for(; i < Num_escort_ships; i++) { if(i != 0) { x += entry_stagger_w; y += entry_h; } renderBitmap(Escort_gauges[1].first_frame, x, y); //Now we just show the ships info renderIcon(x, y, i); } //Increment for last entry x += entry_stagger_w; y += entry_h; } //Back to right # Num_escort_ships++; //Show the last escort entry renderBitmap(Escort_gauges[2].first_frame, x, y + bottom_bg_offset); renderIcon(x, y, i); }
void MenuManager::render() { for (unsigned int i=0; i<menus.size(); i++) { menus[i]->render(); } TooltipData tip_new; // Find tooltips depending on mouse position if (chr->visible && isWithin(chr->window_area,inpt->mouse)) { tip_new = chr->checkTooltip(); } if (vendor->visible && isWithin(vendor->window_area,inpt->mouse)) { tip_new = vendor->checkTooltip(inpt->mouse); } if (stash->visible && isWithin(stash->window_area,inpt->mouse)) { tip_new = stash->checkTooltip(inpt->mouse); } if (pow->visible && isWithin(pow->window_area,inpt->mouse)) { tip_new = pow->checkTooltip(inpt->mouse); } if (inv->visible && !dragging && isWithin(inv->window_area,inpt->mouse)) { tip_new = inv->checkTooltip(inpt->mouse); } if (isWithin(act->window_area,inpt->mouse)) { tip_new = act->checkTooltip(inpt->mouse); } if (tip_new.num_lines > 0) { // when we render a tooltip it buffers the rasterized text for performance. // If this new tooltip is the same as the existing one, reuse. for (int i=0; i<TOOLTIP_MAX_LINES; i++) { // if both lines are empty, we can assume the tooltip has no more content if (tip_new.lines[i] == "" && tip_buf.lines[i] == "") break; if (tip_new.lines[i] != tip_buf.lines[i]) { tip_buf.clear(); tip_buf = tip_new; break; } } tip->render(tip_buf, inpt->mouse, STYLE_FLOAT); } // draw icon under cursor if dragging if (dragging) { if (drag_src == DRAG_SRC_INVENTORY || drag_src == DRAG_SRC_VENDOR || drag_src == DRAG_SRC_STASH) items->renderIcon(drag_stack, inpt->mouse.x - ICON_SIZE_SMALL/2, inpt->mouse.y - ICON_SIZE_SMALL/2, ICON_SIZE_SMALL); else if (drag_src == DRAG_SRC_POWERS || drag_src == DRAG_SRC_ACTIONBAR) renderIcon(powers->powers[drag_power].icon, inpt->mouse.x-ICON_SIZE_SMALL/2, inpt->mouse.y-ICON_SIZE_SMALL/2); } }
void MenuManager::render() { hpmp->render(stats, inp->mouse); xp->render(stats, inp->mouse); act->render(); inv->render(); pow->render(); chr->render(); log->render(); vendor->render(); talker->render(); talker->render(); enemy->render(); if (exit->visible) exit->render(); TooltipData tooltip; int offset_x = (VIEW_W - 320); int offset_y = (VIEW_H - 416)/2; // Find tooltips depending on mouse position if (inp->mouse.x < 320 && inp->mouse.y >= offset_y && inp->mouse.y <= offset_y+416) { if (chr->visible) { tooltip = chr->checkTooltip(inp->mouse); } else if (vendor->visible) { tooltip = vendor->checkTooltip(inp->mouse); } } else if (inp->mouse.x >= offset_x && inp->mouse.y >= offset_y && inp->mouse.y <= offset_y+416) { if (pow->visible) { tooltip = pow->checkTooltip(inp->mouse); } else if (inv->visible && !dragging) { tooltip = inv->checkTooltip(inp->mouse); } } else if (inp->mouse.y >= VIEW_H-32) { tooltip = act->checkTooltip(inp->mouse); } if (tooltip.num_lines > 0) { tip->render(tooltip, inp->mouse, STYLE_FLOAT); } // draw icon under cursor if dragging if (dragging) { if (drag_src == DRAG_SRC_INVENTORY || drag_src == DRAG_SRC_VENDOR) items->renderIcon(drag_stack, inp->mouse.x - 16, inp->mouse.y - 16, ICON_SIZE_32); else if (drag_src == DRAG_SRC_POWERS || drag_src == DRAG_SRC_ACTIONBAR) renderIcon(powers->powers[drag_power].icon, inp->mouse.x-16, inp->mouse.y-16); } }
void MenuActiveEffects::render() { int count=-1; // Step through the list of effects and render those that are active for (unsigned int i=0; i<stats->effects.effect_list.size(); i++) { int type = stats->effects.effect_list[i].type; int icon = stats->effects.effect_list[i].icon; int ticks = stats->effects.effect_list[i].ticks; int duration = stats->effects.effect_list[i].duration; int magnitude = stats->effects.effect_list[i].magnitude; int magnitude_max = stats->effects.effect_list[i].magnitude_max; if (icon >= 0) count++; if (type == EFFECT_SHIELD) renderIcon(icon,count,magnitude,magnitude_max); else if (type == EFFECT_HEAL) renderIcon(icon,count,0,0); else if (ticks >= 0 && duration >= 0) renderIcon(icon,count,ticks,duration); } }
void MenuManager::render() { for (unsigned int i=0; i<menus.size(); i++) { menus[i]->render(); } TooltipData tip_new; // Find tooltips depending on mouse position if (chr->visible && isWithin(chr->window_area,inpt->mouse)) { tip_new = chr->checkTooltip(); } if (vendor->visible && isWithin(vendor->window_area,inpt->mouse)) { tip_new = vendor->checkTooltip(inpt->mouse); } if (stash->visible && isWithin(stash->window_area,inpt->mouse)) { tip_new = stash->checkTooltip(inpt->mouse); } if (pow->visible && isWithin(pow->window_area,inpt->mouse)) { tip_new = pow->checkTooltip(inpt->mouse); } if (inv->visible && !dragging && isWithin(inv->window_area,inpt->mouse)) { tip_new = inv->checkTooltip(inpt->mouse); } if (isWithin(act->window_area,inpt->mouse)) { tip_new = act->checkTooltip(inpt->mouse); } if (!tip_new.isEmpty()) { // when we render a tooltip it buffers the rasterized text for performance. // If this new tooltip is the same as the existing one, reuse. if (!tip_new.compare(&tip_buf)) { tip_buf.clear(); tip_buf = tip_new; } tip->render(tip_buf, inpt->mouse, STYLE_FLOAT); } // draw icon under cursor if dragging if (dragging) { if (drag_src == DRAG_SRC_INVENTORY || drag_src == DRAG_SRC_VENDOR || drag_src == DRAG_SRC_STASH) items->renderIcon(drag_stack, inpt->mouse.x - ICON_SIZE/2, inpt->mouse.y - ICON_SIZE/2, ICON_SIZE); else if (drag_src == DRAG_SRC_POWERS || drag_src == DRAG_SRC_ACTIONBAR) renderIcon(powers->powers[drag_power].icon, inpt->mouse.x-ICON_SIZE/2, inpt->mouse.y-ICON_SIZE/2); } }
void MenuActionBar::render() { SDL_Rect dest; SDL_Rect trimsrc; int offset_x = (VIEW_W - 640)/2; dest.x = offset_x; dest.y = VIEW_H-35; dest.w = 640; dest.h = 35; trimsrc.x = 0; trimsrc.y = 0; trimsrc.w = 640; trimsrc.h = 35; SDL_BlitSurface(background, &trimsrc, screen, &dest); // draw hotkeyed icons src.x = src.y = 0; src.w = src.h = dest.w = dest.h = 32; dest.y = VIEW_H-32; for (int i=0; i<12; i++) { if (i<=9) dest.x = offset_x + (i * 32) + 32; else dest.x = offset_x + (i * 32) + 64; if (hotkeys[i] != -1) renderIcon(powers->powers[hotkeys[i]].icon, dest.x, dest.y); else SDL_BlitSurface(emptyslot, &src, screen, &dest); } renderItemCounts(); // draw hotkey labels // TODO: keybindings dest.x = offset_x; dest.y = VIEW_H-10; dest.w = 640; dest.h = 10; SDL_BlitSurface(labels, &label_src, screen, &dest); }
void renderIcons(cocos2d::Texture2D *tex, const Map<String, String> *source, uint16_t numCols, uint16_t numRows, Map<String, Icon> &icons) { _canvas->begin(tex, Color4B(0, 0, 0, 0)); _canvas->scale((float)_canvasWidth / (float)_originalWidth, (float)_canvasHeight / (float)_originalHeight); uint16_t c, r, i = 0; for (auto &it : (*source)) { c = i % numCols; r = i / numCols; icons.emplace(it.first, Icon(i, c * _canvasWidth, r * _canvasHeight, _canvasWidth, _canvasHeight, _density, tex)); renderIcon(it.second, c, r); i++; } _canvas->end(); }
void MenuManager::render() { hpmp->render(stats, inpt->mouse); xp->render(stats, inpt->mouse); act->render(); inv->render(); pow->render(); chr->render(); log->render(); vendor->render(); talker->render(); talker->render(); enemy->render(); if (exit->visible) exit->render(); TooltipData tip_new; int offset_x = (VIEW_W - 320); int offset_y = (VIEW_H - 416)/2; // Find tooltips depending on mouse position if (inpt->mouse.x < 320 && inpt->mouse.y >= offset_y && inpt->mouse.y <= offset_y+416) { if (chr->visible) { tip_new = chr->checkTooltip(); } else if (vendor->visible) { tip_new = vendor->checkTooltip(inpt->mouse); } } else if (inpt->mouse.x >= offset_x && inpt->mouse.y >= offset_y && inpt->mouse.y <= offset_y+416) { if (pow->visible) { tip_new = pow->checkTooltip(inpt->mouse); } else if (inv->visible && !dragging) { tip_new = inv->checkTooltip(inpt->mouse); } } else if (inpt->mouse.y >= VIEW_H-32) { tip_new = act->checkTooltip(inpt->mouse); } if (tip_new.num_lines > 0) { // when we render a tooltip it buffers the rasterized text for performance. // If this new tooltip is the same as the existing one, reuse. // TODO: comparing the first line of a tooltip works in all existing cases, // but may not hold true in the future. if (tip_new.lines[0] != tip_buf.lines[0]) { tip->clear(tip_buf); tip_buf = tip_new; } tip->render(tip_buf, inpt->mouse, STYLE_FLOAT); } // draw icon under cursor if dragging if (dragging) { if (drag_src == DRAG_SRC_INVENTORY || drag_src == DRAG_SRC_VENDOR) items->renderIcon(drag_stack, inpt->mouse.x - 16, inpt->mouse.y - 16, ICON_SIZE_32); else if (drag_src == DRAG_SRC_POWERS || drag_src == DRAG_SRC_ACTIONBAR) renderIcon(powers->powers[drag_power].icon, inpt->mouse.x-16, inpt->mouse.y-16); } }
void MenuManager::render() { for (unsigned int i=0; i<menus.size(); i++) { menus[i]->render(); } TooltipData tip_new; // Find tooltips depending on mouse position if (!book->visible) { if (chr->visible && isWithin(chr->window_area,inpt->mouse)) { tip_new = chr->checkTooltip(); } if (vendor->visible && isWithin(vendor->window_area,inpt->mouse)) { tip_new = vendor->checkTooltip(inpt->mouse); } if (stash->visible && isWithin(stash->window_area,inpt->mouse)) { tip_new = stash->checkTooltip(inpt->mouse); } if (pow->visible && isWithin(pow->window_area,inpt->mouse)) { tip_new = pow->checkTooltip(inpt->mouse); } if (inv->visible && !mouse_dragging && isWithin(inv->window_area,inpt->mouse)) { tip_new = inv->checkTooltip(inpt->mouse); } } if (isWithin(act->window_area,inpt->mouse)) { tip_new = act->checkTooltip(inpt->mouse); } if (!tip_new.isEmpty()) { // when we render a tooltip it buffers the rasterized text for performance. // If this new tooltip is the same as the existing one, reuse. if (!tip_new.compare(&tip_buf)) { tip_buf.clear(); tip_buf = tip_new; } tip->render(tip_buf, inpt->mouse, STYLE_FLOAT); TOOLTIP_CONTEXT = TOOLTIP_MENU; } else if (TOOLTIP_CONTEXT != TOOLTIP_MAP) { TOOLTIP_CONTEXT = TOOLTIP_NONE; } if (NO_MOUSE) handleKeyboardTooltips(); // draw icon under cursor if dragging if (mouse_dragging) { if (drag_src == DRAG_SRC_INVENTORY || drag_src == DRAG_SRC_VENDOR || drag_src == DRAG_SRC_STASH) setDragIconItem(drag_stack); else if (drag_src == DRAG_SRC_POWERS || drag_src == DRAG_SRC_ACTIONBAR) setDragIcon(powers->powers[drag_power].icon); renderIcon(inpt->mouse.x - ICON_SIZE/2, inpt->mouse.y - ICON_SIZE/2); } else if (keyboard_dragging) { if (drag_src == DRAG_SRC_INVENTORY || drag_src == DRAG_SRC_VENDOR || drag_src == DRAG_SRC_STASH) setDragIconItem(drag_stack); else if (drag_src == DRAG_SRC_POWERS || drag_src == DRAG_SRC_ACTIONBAR) setDragIcon(powers->powers[drag_power].icon); renderIcon(keydrag_pos.x - ICON_SIZE/2, keydrag_pos.y - ICON_SIZE/2); } }