seta hud_panel_infomessages_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
seta hud_panel_infomessages_flip "" "1 = align the items to the right"
++<<<<<<< HEAD
+seta hud_panel_physics "" "enable/disable this panel, 1 = show if not observing, 2 = show always"
+seta hud_panel_physics_pos "" "position of this base of the panel"
+seta hud_panel_physics_size "" "size of this panel"
+seta hud_panel_physics_bg "" "if set to something else than \"\" = override default background"
+seta hud_panel_physics_bg_color "" "if set to something else than \"\" = override default panel background color"
+seta hud_panel_physics_bg_color_team "" "override panel color with team color in team based games"
+seta hud_panel_physics_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
+seta hud_panel_physics_bg_border "" "if set to something else than \"\" = override default size of border around the background"
+seta hud_panel_physics_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
+seta hud_panel_physics_baralign "" "0 = align bars to the left, 1 = align bars to the right, 2 = align only left bar to the right, 3 = align only right bar to the right, 4 = align bars to the center"
+seta hud_panel_physics_flip "" "flip speed/acceleration positions"
+seta hud_panel_physics_progressbar "" "enable progressbar in panel (2 = only for speed; 3 = only for acceleration)"
+seta hud_panel_physics_acceleration_progressbar_mode "" "0 = progressbar increases from the center to the right if the acceleration is positive, to the left if it's negative; 1 = progressbar increases from the border in the same direction for both positive and negative accelerations"
+seta hud_panel_physics_text "" "show text in panel (2 = only for speed; 3 = only for acceleration)"
++=======
+ seta hud_panel_shownames "" "enable/disable this panel, 1 = teammates only, 2 = everyone"
+ seta hud_panel_shownames_pos "" "position of this base of the panel"
+ seta hud_panel_shownames_size "" "size of this panel"
+ seta hud_panel_shownames_bg "" "if set to something else than \"\" = override default background"
+ seta hud_panel_shownames_bg_color "" "if set to something else than \"\" = override default panel background color"
+ seta hud_panel_shownames_bg_color_team "" "override panel color with team color in team based games"
+ seta hud_panel_shownames_bg_alpha "" "if set to something else than \"\" = override default panel background alpha"
+ seta hud_panel_shownames_bg_border "" "if set to something else than \"\" = override default size of border around the background"
+ seta hud_panel_shownames_bg_padding "" "if set to something else than \"\" = override default padding of contents from border"
++>>>>>>> fruitiex/better_shownames
seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_new_weight 0.1 "weight of latest data point"
seta hud_panel_engineinfo_framecounter_exponentialmovingaverage_instantupdate_change_threshold 0.5 "threshold for fps change when to update instantly, to make big fps changes update faster"
-seta hud_showbinds 1 "the way to show the keys to press in HUD messages: 0 displays commands, 1 bound keys, 2 both"
+seta hud_panel_physics_speed_unit 3 "speed unit (1 = qu/s, 2 = m/s, 3 = km/h, 4 = mph, 5 = knots)"
+seta hud_panel_physics_speed_unit_show 1 "also show speed unit"
+seta hud_panel_physics_speed_max 1800 "speed progressbar gets filled up completely by this value (in qu/s)"
+seta hud_panel_physics_speed_vertical 0 "include the speed on the Z-axis"
+seta hud_panel_physics_topspeed 1 "also show top speed"
+seta hud_panel_physics_topspeed_time 4 "how many seconds the top speed takes to fade out"
+seta hud_panel_physics_acceleration_max 1.5 "acceleration progressbar gets completely filled up by this value (in g)"
+seta hud_panel_physics_acceleration_vertical 0 "include the acceleration on the Z-axis"
+
+ seta hud_panel_shownames_sustain 0.5 "seconds that shownames will sustain after not aiming at a player anymore"
+
+seta hud_showbinds 1 "what to show in the HUD to indicate certain keys to press: 0 display commands, 1 bound keys, 2 both"
seta hud_showbinds_limit 2 "maximum number of bound keys to show for a command. 0 for unlimited"
seta hud_colorflash_alpha 0.5 "starting alpha of the color flash"
seta hud_progressbar_armor_color "0 0.6 0"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
- seta _hud_panelorder "10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 15 "
+ seta _hud_panelorder "15 12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 "
seta hud_configure_grid "1"
seta hud_configure_grid_xsize "0.010000"
seta hud_panel_infomessages_bg_padding "0"
seta hud_panel_infomessages_flip "1"
+seta hud_panel_physics 0
+seta hud_panel_physics_pos "0.410000 0.590000"
+seta hud_panel_physics_size "0.180000 0.100000"
+seta hud_panel_physics_bg ""
+seta hud_panel_physics_bg_color ""
+seta hud_panel_physics_bg_color_team ""
+seta hud_panel_physics_bg_alpha ""
+seta hud_panel_physics_bg_border ""
+seta hud_panel_physics_bg_padding ""
+seta hud_panel_physics_flip "0"
+seta hud_panel_physics_baralign "0"
+seta hud_panel_physics_acceleration_progressbar_mode "0"
+seta hud_panel_physics_progressbar "1"
+seta hud_panel_physics_text "1"
+
+ seta hud_panel_shownames 1
+ seta hud_panel_shownames_pos "0.350000 0.700000"
+ seta hud_panel_shownames_size "0.300000 0.050000"
+ seta hud_panel_shownames_bg "0"
+ seta hud_panel_shownames_bg_color ""
+ seta hud_panel_shownames_bg_color_team ""
+ seta hud_panel_shownames_bg_alpha ""
+ seta hud_panel_shownames_bg_border ""
+ seta hud_panel_shownames_bg_padding "0"
+
menu_sync
seta hud_progressbar_armor_color "0 0.6 0"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "1 0.75 0"
+seta hud_progressbar_acceleration_color "0.5 0.75 1"
+seta hud_progressbar_acceleration_neg_color "0.125 0.25 0.5"
- seta _hud_panelorder "3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 15 "
+ seta _hud_panelorder "15 3 1 2 11 10 0 14 6 9 13 4 12 7 5 8 "
seta hud_configure_grid "1"
seta hud_configure_grid_xsize "0.010000"
seta hud_progressbar_armor_color "0 0.6 0"
seta hud_progressbar_fuel_color "0.6 0.6 0"
seta hud_progressbar_nexball_color "0.7 0.1 0"
+seta hud_progressbar_speed_color "0.25 0.25 1"
+seta hud_progressbar_acceleration_color "0.25 1 0.25"
+seta hud_progressbar_acceleration_neg_color "1 0.25 0.25"
- seta _hud_panelorder "0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 15 "
+ seta _hud_panelorder "15 0 11 8 5 6 14 9 13 7 2 3 1 10 12 4 "
seta hud_configure_grid "1"
seta hud_configure_grid_xsize "0.01"
float autocvar_hud_panel_radar_scale;
float autocvar_hud_panel_radar_zoommode;
float autocvar_hud_panel_score;
+float autocvar_hud_panel_score_rankings;
+ float autocvar_hud_panel_shownames;
+ float autocvar_hud_panel_shownames_sustain;
float autocvar_hud_panel_timer;
float autocvar_hud_panel_timer_increment;
float autocvar_hud_panel_vote;
}
}
- // Physics panel (#15)
+ // ShowNames (#15)
+ //
+ float shownames_alpha;
+ void HUD_ShowNames(void)
+ {
+ if(shownames_time < time && shownames_alpha == 0 && !autocvar__hud_configure)
+ return;
+
+ if(autocvar__hud_configure)
+ {
+ shownames_alpha = 1;
+ }
+ else
+ {
+ if(shownames_time < time)
+ shownames_alpha = bound(0, shownames_alpha - 2 * frametime, 1);
+ else
+ shownames_alpha = bound(0, shownames_alpha + 4 * frametime, 1);
+ }
+
+ if(!autocvar_hud_panel_shownames && !autocvar__hud_configure)
+ return;
+
- active_panel = HUD_PANEL_SHOWNAMES;
++ hud_configure_active_panel = HUD_PANEL_SHOWNAMES;
+ HUD_Panel_UpdateCvars(shownames);
+ panel_fg_alpha *= shownames_alpha;
+ vector myPos, mySize;
+ myPos = panel_pos;
+ mySize = panel_size;
+
+ HUD_Panel_DrawBg(shownames_alpha);
+ if(panel_bg_padding)
+ {
+ myPos += '1 1 0' * panel_bg_padding;
+ mySize -= '2 2 0' * panel_bg_padding;
+ }
+
+ vector iconpos, iconsize;
+ vector namepos, namesize;
+ if(mySize_x/mySize_y > 6)
+ {
+ iconpos = myPos;
+ iconsize = eX * 2 * mySize_y + eY * mySize_y;
+
+ namepos = myPos + eX * 2 * mySize_y;
+ namesize = eX * mySize_x - eX * 2 * mySize_y + eY * mySize_y;
+ }
+ else
+ {
+ iconpos = myPos + eX * 0.5 * mySize_x - eX * 0.5 * mySize_y;
+ iconsize = eX * mySize_y + eY * 0.5 * mySize_y;
+
+ namepos = myPos + eY * 0.5 * mySize_y;
+ namesize = eX * mySize_x + eY * 0.5 * mySize_y;
+ }
+
+ if(shownames_health > 0) // otherwise player is an enemy
+ {
+ // "ghost" backgrounds
+ drawpic_aspect_skin(iconpos, "health", '1 1 0' * iconsize_y, '0 0 0', panel_fg_alpha * 0.5, DRAWFLAG_NORMAL);
+ drawpic_aspect_skin(iconpos + '0.5 0 0' * iconsize_x, "armor", '1 1 0' * iconsize_y, '0 0 0', panel_fg_alpha * 0.5, DRAWFLAG_NORMAL);
+
+ drawsetcliparea(0, myPos_y + iconsize_y - iconsize_y * min(1, shownames_health/200), vid_conwidth, myPos_y + iconsize_y);
+ drawpic_aspect_skin(iconpos, "health", '1 1 0' * iconsize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+
+ drawsetcliparea(0, myPos_y + iconsize_y - iconsize_y * min(1, shownames_armor/200), vid_conwidth, myPos_y + iconsize_y);
+ drawpic_aspect_skin(iconpos + '0.5 0 0' * iconsize_x, "armor", '1 1 0' * iconsize_y, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawresetcliparea();
+ }
+ else
+ {
+ drawpic_aspect_skin(iconpos, "health_unknown", '1 1 0' * iconsize_y, '0 0 0', panel_fg_alpha, DRAWFLAG_NORMAL);
+ drawpic_aspect_skin(iconpos + '0.5 0 0' * iconsize_x, "armor_unknown", '1 1 0' * iconsize_y, '0 0 0', panel_fg_alpha, DRAWFLAG_NORMAL);
+ }
+
+ if(autocvar__hud_configure)
+ drawcolorcodedstring_aspect(namepos, "Player1234", namesize, panel_fg_alpha, DRAWFLAG_NORMAL);
+ else
+ drawcolorcodedstring_aspect(namepos, shownames_netname, namesize, panel_fg_alpha, DRAWFLAG_NORMAL);
+ }
+
-/*
-==================
-Main HUD system
-==================
-*/
-
-void HUD_ShowSpeed(void)
++// Physics panel (#16)
+//
+vector acc_prevspeed;
+float acc_prevtime, acc_avg, top_speed, top_speed_time;
-
+void HUD_Physics(void)
{
- vector numsize;
- float pos, conversion_factor;
- string speed, zspeed, unit;
+ if(!autocvar__hud_configure)
+ {
+ if(!autocvar_hud_panel_physics) return;
+ if(spectatee_status == -1 && autocvar_hud_panel_physics < 2) return;
+ }
+ else
+ hud_configure_active_panel = HUD_PANEL_PHYSICS;
+
+ HUD_Panel_UpdateCvars(physics);
+
+ HUD_Panel_DrawBg(1);
+ if(panel_bg_padding)
+ {
+ panel_pos += '1 1 0' * panel_bg_padding;
+ panel_size -= '2 2 0' * panel_bg_padding;
+ }
+
+ //compute speed
+ float speed, conversion_factor;
+ string unit;
- switch(autocvar_cl_showspeed_unit)
+ switch(autocvar_hud_panel_physics_speed_unit)
{
default:
- case 0:
- unit = "";
- conversion_factor = 1.0;
- break;
case 1:
unit = _(" qu/s");
conversion_factor = 1.0;
HUD_EngineInfo(); break;\
case (HUD_PANEL_INFOMESSAGES):\
HUD_InfoMessages(); break;\
+ case (HUD_PANEL_PHYSICS):\
+ HUD_Physics(); break;\
+ case (HUD_PANEL_SHOWNAMES):\
+ HUD_ShowNames(); break;\
} ENDS_WITH_CURLY_BRACE
void HUD_Main (void)
HUD_Panel_GetMenuPos()\
} ENDS_WITH_CURLY_BRACE
+ // FTEQCC I HATE YOU WHY DO YOU MAKE ME DO THIS??? :(
+ // max macro length is 1024 characters, I must split it up :(
+
// Update all common cvars of given panel id
-#define HUD_Panel_UpdateCvarsForId2(id) \
+#define HUD_Panel_UpdateCvarsForId_Part2(id) \
switch(id) { \
case HUD_PANEL_INFOMESSAGES: HUD_Panel_UpdateCvars(infomessages) break; \
+ case HUD_PANEL_PHYSICS: HUD_Panel_UpdateCvars(physics); break;\
+ case HUD_PANEL_SHOWNAMES: HUD_Panel_UpdateCvars(shownames) break; \
}
#define HUD_Panel_UpdateCvarsForId(id) \
HUD_Panel_GetBorder()
// Update pos and size of given panel id
-#define HUD_Panel_UpdatePosSizeForId2(id) \
+#define HUD_Panel_UpdatePosSizeForId_Part2(id) \
switch(id) { \
- case HUD_PANEL_INFOMESSAGES: HUD_Panel_UpdatePosSize(infomessages)\
+ case HUD_PANEL_INFOMESSAGES: HUD_Panel_UpdatePosSize(infomessages) break;\
+ case HUD_PANEL_PHYSICS: HUD_Panel_UpdatePosSize(physics); break;\
+ case HUD_PANEL_SHOWNAMES: HUD_Panel_UpdatePosSize(shownames)\
}
+
#define HUD_Panel_UpdatePosSizeForId(id) \
switch(id) { \
case HUD_PANEL_WEAPONS: HUD_Panel_UpdatePosSize(weapons) break;\
float WR_IMPACTEFFECT = 11; // (CSQC) impact effect
float WR_SWITCHABLE = 12; // (CSQC) impact effect
--
float HUD_PANEL_WEAPONS = 0;
float HUD_PANEL_AMMO = 1;
float HUD_PANEL_POWERUPS = 2;
float HUD_PANEL_CHAT = 12;
float HUD_PANEL_ENGINEINFO = 13;
float HUD_PANEL_INFOMESSAGES = 14;
-float HUD_PANEL_SHOWNAMES = 15;
-float HUD_PANEL_NUM = 16; // always last panel id + 1, please increment when adding a new panel
+float HUD_PANEL_PHYSICS = 15;
- float HUD_PANEL_NUM = 16; // always last panel id + 1, please increment when adding a new panel
++float HUD_PANEL_SHOWNAMES = 16;
++float HUD_PANEL_NUM = 17; // always last panel id + 1, please increment when adding a new panel
string HUD_PANELNAME_WEAPONS = "weapons";
string HUD_PANELNAME_AMMO = "ammo";
string HUD_PANELNAME_CHAT = "chat";
string HUD_PANELNAME_ENGINEINFO = "engineinfo";
string HUD_PANELNAME_INFOMESSAGES = "infomessages";
+string HUD_PANELNAME_PHYSICS = "physics";
+ string HUD_PANELNAME_SHOWNAMES = "shownames";
+
+ float HUD_MENU_ENABLE = 0;
#define SERVERFLAG_ALLOW_FULLBRIGHT 1
#define SERVERFLAG_TEAMPLAY 2
switch(id) {\
case HUD_PANEL_ENGINEINFO: panel_name = HUD_PANELNAME_ENGINEINFO; break; \
case HUD_PANEL_INFOMESSAGES: panel_name = HUD_PANELNAME_INFOMESSAGES; break; \
+ case HUD_PANEL_PHYSICS: panel_name = HUD_PANELNAME_PHYSICS; break; \
+ case HUD_PANEL_SHOWNAMES: panel_name = HUD_PANELNAME_SHOWNAMES; break; \
} ENDS_WITH_CURLY_BRACE
// Get name of specified panel id
case HUD_PANEL_MODICONS: panel_name = HUD_PANELNAME_MODICONS; break; \
case HUD_PANEL_PRESSEDKEYS: panel_name = HUD_PANELNAME_PRESSEDKEYS; break; \
case HUD_PANEL_CHAT: panel_name = HUD_PANELNAME_CHAT; break; \
--}\
--HUD_Panel_GetName_Part2(id)
++ default: HUD_Panel_GetName_Part2(id)\
++}
vector vec2(vector v);
#include "xonotic/dialog_hudpanel_chat.c"
#include "xonotic/dialog_hudpanel_engineinfo.c"
#include "xonotic/dialog_hudpanel_infomessages.c"
+ #include "xonotic/dialog_hudpanel_shownames.c"
#include "xonotic/dialog_hudpanel_weapons.c"
+#include "xonotic/dialog_hudpanel_physics.c"
#include "xonotic/slider_picmip.c"
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+ i = spawnXonoticHUDPhysicsDialog();
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
+ i = spawnXonoticHUDShownamesDialog();
+ i.configureDialog(i);
+ me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);
+
me.advancedDialog = i = spawnXonoticAdvancedDialog();
i.configureDialog(i);
me.addItemCentered(me, i, i.intendedWidth * eX + i.intendedHeight * eY, SKINALPHAS_MAINMENU_z);