X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud.qc;h=2aaa81bd512e48e56b4dadbc1e00d1244d8d52cc;hp=8463117dfd4c7c6f58ed9c5745e343c04573b968;hb=e921ae9f86a09d0a20cd4c72b44e6d71d25975ea;hpb=27f4e00ca11b085d476b17c1184938a58e7daf2b diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index 8463117dfd..2aaa81bd51 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -592,30 +592,26 @@ void HUD_Weapons(void) weapon_size.x = padded_panel_size.x / columns; weapon_size.y = padded_panel_size.y / rows; - // reduce table trying to keep the original table proportions as much as possible - vertical_order = (columns >= rows); - if(vertical_order) - { - rows = ceil(sqrt(weapon_count / (columns / rows))); - columns = ceil(weapon_count / rows); - } - else - { - columns = ceil(sqrt(weapon_count / (rows / columns))); - rows = ceil(weapon_count / columns); - } - // NOTE: although weapons should aways look the same even if onlyowned is enabled, // we enlarge them a bit when possible to better match the desired aspect ratio - if(padded_panel_size.y > padded_panel_size.x) + if(padded_panel_size.x / padded_panel_size.y < aspect) { + // maximum number of rows that allows to display items with the desired aspect ratio + float max_rows = floor(padded_panel_size.y / (weapon_size.x / aspect)); + columns = min(columns, ceil(weapon_count / max_rows)); + rows = ceil(weapon_count / columns); weapon_size.y = min(padded_panel_size.y / rows, weapon_size.x / aspect); weapon_size.x = min(padded_panel_size.x / columns, aspect * weapon_size.y); + vertical_order = false; } else { + float max_columns = floor(padded_panel_size.x / (weapon_size.y * aspect)); + rows = min(rows, ceil(weapon_count / max_columns)); + columns = ceil(weapon_count / rows); weapon_size.x = min(padded_panel_size.x / columns, aspect * weapon_size.y); weapon_size.y = min(padded_panel_size.y / rows, weapon_size.x / aspect); + vertical_order = true; } // reduce size of the panel @@ -758,7 +754,7 @@ void HUD_Weapons(void) rows = table_size.y; weapon_size.x = panel_size.x / columns; weapon_size.y = panel_size.y / rows; - vertical_order = (columns >= rows); + vertical_order = (panel_size.x / panel_size.y >= aspect); } // calculate position/size for visual bar displaying ammount of ammo status @@ -3837,6 +3833,25 @@ void HUD_InfoMessages(void) drawInfoMessage(s); } + if(autocvar_cl_showspectators) + if(num_spectators) + //if(spectatee_status != -1) + { + s = ((spectatee_status) ? _("^1Spectating this player:") : _("^1Spectating you:")); + //drawInfoMessage(s) + float limit = min(num_spectators, MAX_SPECTATORS); + float i; + for(i = 0; i < limit; ++i) + { + float slot = spectatorlist[i]; + if(i == 0) + s = strcat(s, " ^3", GetPlayerName(slot)); + else + s = strcat("^3", GetPlayerName(slot)); + drawInfoMessage(s); + } + } + string blinkcolor; if(time % 1 >= 0.5) blinkcolor = "^1"; @@ -4290,12 +4305,12 @@ void HUD_CenterPrint (void) { if(!autocvar_hud_panel_centerprint) return; - if (hud_configure_prev && hud_configure_prev != -1) + if(hud_configure_prev) reset_centerprint_messages(); } else { - if (!hud_configure_prev) + if(!hud_configure_prev) reset_centerprint_messages(); if (time > hud_configure_cp_generation_time) {