/* * Drawing-related functions */ void Creature::draw(WINDOW *w, int player_x, int player_y, bool inverted) { int draw_x = getmaxx(w) / 2 + xpos() - player_x; int draw_y = getmaxy(w) / 2 + ypos() - player_y; if(inverted) { mvwputch_inv(w, draw_y, draw_x, basic_symbol_color(), symbol()); } else if(is_symbol_highlighted()) { mvwputch_hi(w, draw_y, draw_x, basic_symbol_color(), symbol()); } else { mvwputch(w, draw_y, draw_x, symbol_color(), symbol() ); } }
void Creature::draw( WINDOW *w, const tripoint &p, bool inverted ) const { int draw_x = getmaxx(w) / 2 + posx() - p.x; int draw_y = getmaxy(w) / 2 + posy() - p.y; if(inverted) { mvwputch_inv(w, draw_y, draw_x, basic_symbol_color(), symbol()); } else if(is_symbol_highlighted()) { mvwputch_hi(w, draw_y, draw_x, basic_symbol_color(), symbol()); } else { mvwputch(w, draw_y, draw_x, symbol_color(), symbol() ); } }
void monster::draw(WINDOW *w, int plx, int ply, bool inv) { int x = SEEX + posx - plx; int y = SEEY + posy - ply; nc_color color = type->color; if (friendly != 0 && !inv) mvwputch_hi(w, y, x, color, type->sym); else if (inv) mvwputch_inv(w, y, x, color, type->sym); else { color = color_with_effects(); mvwputch(w, y, x, color, type->sym); } }
void Creature::draw( const catacurses::window &w, const tripoint &p, bool inverted ) const { if (is_draw_tiles_mode()) { return; } int draw_x = getmaxx(w) / 2 + posx() - p.x; int draw_y = getmaxy(w) / 2 + posy() - p.y; if(inverted) { mvwputch_inv(w, draw_y, draw_x, basic_symbol_color(), symbol()); } else if(is_symbol_highlighted()) { mvwputch_hi(w, draw_y, draw_x, basic_symbol_color(), symbol()); } else { mvwputch(w, draw_y, draw_x, symbol_color(), symbol() ); } }
void monster::draw(WINDOW *w, int plx, int ply, bool inv) { int x = SEEX + posx - plx; int y = SEEY + posy - ply; nc_color color = type->color; // see if it's possible to draw a graphical sprite if(type->sprite) { if(draw_object(w, x, y, type->sprite)) return; } if (friendly != 0 && !inv) mvwputch_hi(w, y, x, color, type->sym); else if (inv) mvwputch_inv(w, y, x, color, type->sym); else { color = color_with_effects(); mvwputch(w, y, x, color, type->sym); } }
void map::drawsq(WINDOW* w, player &u, int x, int y, bool invert, bool show_items) { if (!inbounds(x, y)) return; // Out of bounds int k = x + SEEX - u.posx; int j = y + SEEY - u.posy; nc_color tercol; char sym = terlist[ter(x, y)].sym; bool hi = false; if (u.has_disease(DI_BOOMERED)) tercol = c_magenta; else if ((u.is_wearing(itm_goggles_nv) && u.has_active_item(itm_UPS_on)) || u.has_active_bionic(bio_night_vision)) tercol = c_ltgreen; else tercol = terlist[ter(x, y)].color; if (move_cost(x, y) == 0 && has_flag(swimmable, x, y) && !u.underwater) show_items = false; // Can only see underwater items if WE are underwater // If there's a trap here, and we have sufficient perception, draw that instead if (tr_at(x, y) != tr_null && u.per_cur - u.encumb(bp_eyes) >= (*traps)[tr_at(x, y)]->visibility) { tercol = (*traps)[tr_at(x, y)]->color; if ((*traps)[tr_at(x, y)]->sym == '%') { switch(rng(1, 5)) { case 1: sym = '*'; break; case 2: sym = '0'; break; case 3: sym = '8'; break; case 4: sym = '&'; break; case 5: sym = '+'; break; } } else sym = (*traps)[tr_at(x, y)]->sym; } // If there's a field here, draw that instead (unless its symbol is %) if (field_at(x, y).type != fd_null) { tercol = fieldlist[field_at(x, y).type].color[field_at(x, y).density - 1]; if (fieldlist[field_at(x, y).type].sym == '*') { switch (rng(1, 5)) { case 1: sym = '*'; break; case 2: sym = '0'; break; case 3: sym = '8'; break; case 4: sym = '&'; break; case 5: sym = '+'; break; } } else if (fieldlist[field_at(x, y).type].sym != '%') sym = fieldlist[field_at(x, y).type].sym; } // If there's items here, draw those instead if (show_items && i_at(x, y).size() > 0 && field_at(x, y).is_null()) { if ((terlist[ter(x, y)].sym != '.')) hi = true; else { tercol = i_at(x, y)[i_at(x, y).size() - 1].color(); if (i_at(x, y).size() > 1) invert = !invert; sym = i_at(x, y)[i_at(x, y).size() - 1].symbol(); } } if (invert) mvwputch_inv(w, j, k, tercol, sym); else if (hi) mvwputch_hi (w, j, k, tercol, sym); else mvwputch (w, j, k, tercol, sym); }