static void render_mouse_look(struct engine *engine) { if (!is_in_fov(engine->map, engine->mouse.cx, engine->mouse.cy)) /* if mouse is out of fov, nothing to render */ return; char buf[128] = {'\0'}; bool first = true; struct actor **iterator; for (iterator = (struct actor **) TCOD_list_begin(engine->actors); iterator != (struct actor **) TCOD_list_end(engine->actors); iterator++) { struct actor *actor = *iterator; /* Find actors under the mouse cursor */ if (actor->x == engine->mouse.cx && actor->y == engine->mouse.cy) { if (!first) strcat(buf, ", "); else first = false; strcat(buf, actor->name); } } /* display the list of actors under the mouse cursor */ TCOD_console_set_default_foreground(engine->gui->con, TCOD_light_grey); TCOD_console_print(engine->gui->con, 1, 0, buf); }
int TCODConsole::getHeightCenterRect(int x, int y, int w, int h,const char *fmt, ...) { va_list ap; va_start(ap,fmt); int ret = TCOD_console_print(data,x,y,w,h,TCOD_BKGND_NONE,CENTER,TCOD_console_vsprint(fmt,ap),true,true); va_end(ap); return ret; }
int TCODConsole::printCenterRect(int x, int y, int w, int h, TCOD_bkgnd_flag_t flag, const char *fmt, ...) { va_list ap; va_start(ap,fmt); int ret = TCOD_console_print(data,x,y,w,h,flag,CENTER,TCOD_console_vsprint(fmt,ap),true,false); va_end(ap); return ret; }
void building_draw(building *b) { TCOD_color_t old_color = TCOD_console_get_default_foreground(NULL); TCOD_console_set_default_foreground(NULL, b->model->color); TCOD_console_print_frame(NULL, b->p.x, b->p.y, b->model->width, b->model->height, false, TCOD_BKGND_NONE, NULL); TCOD_console_print(NULL, b->p.x + 1, b->p.y, b->model->code); TCOD_console_set_default_foreground(NULL, old_color); }
static void render_log(struct engine *engine, int start_x, int start_y) { /* draw the message log */ double color_coef = 0.4f; int y = start_y; TCOD_list_t log = engine->gui->log; struct message **iter; for (iter = (struct message **) TCOD_list_begin(log); iter != (struct message **) TCOD_list_end(log); iter++) { struct message *message = *iter; // TCOD_color_t col = TCOD_color_multiply_scalar(message->col, color_coef); TCOD_console_set_default_foreground(engine->gui->con, message->col); TCOD_console_print(engine->gui->con, start_x, y, message->text); y++; if (color_coef < 1.0f) color_coef += 0.3f; } }
void _drawMenu() { int i, fadeValue; TCOD_color_t cursorColor; if (!MENU_CALLBACK) { return; } fadeValue = abs(getAnimateFrame() - 30) * 2; cursorColor = TCOD_color_RGB(120 + fadeValue, 120 + fadeValue, 120 + fadeValue); TCOD_console_set_default_background(UI_CONSOLE, TCOD_color_RGB(15, 10, 10)); TCOD_console_set_default_foreground(UI_CONSOLE, TCOD_color_RGB(200, 200, 200)); for (i = 0; i < MENU_ITEM_COUNT; i ++) { if (MENU_ITEM_INDEX == i) { drawChar(UI_CONSOLE, 1, 2 + i, '>', cursorColor, TCOD_color_RGB(1, 1, 1)); } TCOD_console_print(UI_CONSOLE, 3, 2 + i, MENU_ITEMS[i]); } TCOD_console_set_default_background(UI_CONSOLE, TCOD_color_RGB(0, 0, 0)); }
void TCODConsole::printCenter(int x, int y, TCOD_bkgnd_flag_t flag, const char *fmt, ...) { va_list ap; va_start(ap,fmt); TCOD_console_print(data,x,y,getWidth(),getHeight()-y,flag,CENTER,TCOD_console_vsprint(fmt,ap),false,false); va_end(ap); }
void TCODConsole::printRight(int x, int y, TCOD_bkgnd_flag_t flag, const char *fmt, ...) { va_list ap; va_start(ap,fmt); TCOD_console_print(data,x,y,x+1,getHeight()-y,flag,RIGHT,TCOD_console_vsprint(fmt,ap),false,false); va_end(ap); }