1 /** Handle chat as a panel (#12) */
4 if(!autocvar__hud_configure)
6 if (!autocvar_hud_panel_chat)
8 if (!autocvar_con_chatrect)
9 cvar_set("con_chatrect", "0");
12 if(autocvar__con_chat_maximized)
14 if(!hud_draw_maximized) return;
16 else if(chat_panel_modified)
18 panel.update_time = time; // forces reload of panel attributes
19 chat_panel_modified = false;
23 HUD_Panel_UpdateCvars();
27 // reserve some more space to the mapvote panel
28 // by resizing and moving chat panel to the bottom
29 panel_size.y = min(panel_size.y, vid_conheight * 0.2);
30 panel_pos.y = vid_conheight - panel_size.y - panel_bg_border * 2;
31 chat_posy = panel_pos.y;
32 chat_sizey = panel_size.y;
34 if(autocvar__con_chat_maximized && !autocvar__hud_configure) // draw at full screen height if maximized
36 panel_pos.y = panel_bg_border;
37 panel_size.y = vid_conheight - panel_bg_border * 2;
38 if(panel.current_panel_bg == "0") // force a border when maximized
41 panel_bg = strcat(hud_skin_path, "/border_default");
42 if(precache_pic(panel_bg) == "")
43 panel_bg = "gfx/hud/default/border_default";
44 if(panel.current_panel_bg)
45 strunzone(panel.current_panel_bg);
46 panel.current_panel_bg = strzone(panel_bg);
47 chat_panel_modified = true;
49 panel_bg_alpha = max(0.75, panel_bg_alpha); // force an theAlpha of at least 0.75
60 pos += '1 1 0' * panel_bg_padding;
61 mySize -= '2 2 0' * panel_bg_padding;
64 if (!autocvar_con_chatrect)
65 cvar_set("con_chatrect", "1");
67 cvar_set("con_chatrect_x", ftos(pos.x/vid_conwidth));
68 cvar_set("con_chatrect_y", ftos(pos.y/vid_conheight));
70 cvar_set("con_chatwidth", ftos(mySize.x/vid_conwidth));
71 cvar_set("con_chat", ftos(floor(mySize.y/autocvar_con_chatsize - 0.5)));
73 if(autocvar__hud_configure)
76 chatsize = '1 1 0' * autocvar_con_chatsize;
77 cvar_set("con_chatrect_x", "9001"); // over 9000, we'll fake it instead for more control over theAlpha and such
79 for(i = 0; i < autocvar_con_chat; ++i)
81 if(i == autocvar_con_chat - 1)
84 a = panel_fg_alpha * floor(((i + 1) * 7 + autocvar_con_chattime)/45);
85 drawcolorcodedstring(pos, textShortenToWidth(_("^3Player^7: This is the chat area."), mySize.x, chatsize, stringwidth_colors), chatsize, a, DRAWFLAG_NORMAL);