mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-06 07:51:18 +00:00
auto-arange the hud if the screen is too small for hipnotic or rogue
This commit is contained in:
parent
63fda1c0d8
commit
aaba7260e9
1 changed files with 31 additions and 23 deletions
|
@ -115,9 +115,13 @@ cl_hudswap_f (cvar_t *var)
|
||||||
{
|
{
|
||||||
if (var->int_val) {
|
if (var->int_val) {
|
||||||
hud_armament_view->gravity = grav_southwest;
|
hud_armament_view->gravity = grav_southwest;
|
||||||
|
hud_armament_view->children[0]->gravity = grav_northwest;
|
||||||
|
hud_armament_view->children[1]->gravity = grav_southeast;
|
||||||
stuff_view->gravity = grav_southeast;
|
stuff_view->gravity = grav_southeast;
|
||||||
} else {
|
} else {
|
||||||
hud_armament_view->gravity = grav_southeast;
|
hud_armament_view->gravity = grav_southeast;
|
||||||
|
hud_armament_view->children[0]->gravity = grav_northeast;
|
||||||
|
hud_armament_view->children[1]->gravity = grav_southwest;
|
||||||
stuff_view->gravity = grav_southwest;
|
stuff_view->gravity = grav_southwest;
|
||||||
}
|
}
|
||||||
view_move (hud_armament_view, hud_armament_view->xpos,
|
view_move (hud_armament_view, hud_armament_view->xpos,
|
||||||
|
@ -486,15 +490,12 @@ draw_weapons_sbar (view_t *view)
|
||||||
static void
|
static void
|
||||||
draw_weapons_hud (view_t *view)
|
draw_weapons_hud (view_t *view)
|
||||||
{
|
{
|
||||||
int flashon, i, x = 0;
|
int flashon, i;
|
||||||
|
|
||||||
if (view->parent->gravity == grav_southeast)
|
|
||||||
x = view->xlen - 24;
|
|
||||||
|
|
||||||
for (i = 0; i < 7; i++) {
|
for (i = 0; i < 7; i++) {
|
||||||
if (cl.stats[STAT_ITEMS] & (IT_SHOTGUN << i)) {
|
if (cl.stats[STAT_ITEMS] & (IT_SHOTGUN << i)) {
|
||||||
flashon = calc_flashon (cl.item_gettime[i], IT_SHOTGUN << i);
|
flashon = calc_flashon (cl.item_gettime[i], IT_SHOTGUN << i);
|
||||||
draw_subpic (view, x, i * 16, sb_weapons[flashon][i], 0, 0, 24, 16);
|
draw_subpic (view, 0, i * 16, sb_weapons[flashon][i], 0, 0, 24, 16);
|
||||||
if (flashon > 1)
|
if (flashon > 1)
|
||||||
sb_updates = 0; // force update to remove flash
|
sb_updates = 0; // force update to remove flash
|
||||||
}
|
}
|
||||||
|
@ -557,6 +558,9 @@ draw_frags (view_t *view)
|
||||||
char num[12];
|
char num[12];
|
||||||
scoreboard_t *s;
|
scoreboard_t *s;
|
||||||
|
|
||||||
|
if (cl.maxclients == 1)
|
||||||
|
return;
|
||||||
|
|
||||||
Sbar_SortFrags ();
|
Sbar_SortFrags ();
|
||||||
|
|
||||||
// draw the text
|
// draw the text
|
||||||
|
@ -576,8 +580,8 @@ draw_frags (view_t *view)
|
||||||
top = Sbar_ColorForMap (top);
|
top = Sbar_ColorForMap (top);
|
||||||
bottom = Sbar_ColorForMap (bottom);
|
bottom = Sbar_ColorForMap (bottom);
|
||||||
|
|
||||||
draw_fill (view, x + 4, 0, 28, 4, top);
|
draw_fill (view, x + 4, 1, 28, 4, top);
|
||||||
draw_fill (view, x + 4, 4, 28, 3, bottom);
|
draw_fill (view, x + 4, 5, 28, 3, bottom);
|
||||||
|
|
||||||
// draw number
|
// draw number
|
||||||
snprintf (num, sizeof (num), "%3i", s->frags);
|
snprintf (num, sizeof (num), "%3i", s->frags);
|
||||||
|
@ -714,15 +718,12 @@ draw_rogue_weapons_sbar (view_t *view)
|
||||||
static void
|
static void
|
||||||
draw_rogue_weapons_hud (view_t *view)
|
draw_rogue_weapons_hud (view_t *view)
|
||||||
{
|
{
|
||||||
int flashon, i, x = 0;
|
int flashon, i;
|
||||||
|
|
||||||
if (view->parent->gravity == grav_southeast)
|
|
||||||
x = view->xlen - 24;
|
|
||||||
|
|
||||||
for (i = 0; i < 7; i++) {
|
for (i = 0; i < 7; i++) {
|
||||||
if (cl.stats[STAT_ITEMS] & (IT_SHOTGUN << i)) {
|
if (cl.stats[STAT_ITEMS] & (IT_SHOTGUN << i)) {
|
||||||
flashon = calc_flashon (cl.item_gettime[i], IT_SHOTGUN << i);
|
flashon = calc_flashon (cl.item_gettime[i], IT_SHOTGUN << i);
|
||||||
draw_subpic (view, x, i * 16, sb_weapons[flashon][i], 0, 0, 24, 16);
|
draw_subpic (view, 0, i * 16, sb_weapons[flashon][i], 0, 0, 24, 16);
|
||||||
if (flashon > 1)
|
if (flashon > 1)
|
||||||
sb_updates = 0; // force update to remove flash
|
sb_updates = 0; // force update to remove flash
|
||||||
}
|
}
|
||||||
|
@ -730,7 +731,7 @@ draw_rogue_weapons_hud (view_t *view)
|
||||||
for (i = 0; i < 5; i++) {
|
for (i = 0; i < 5; i++) {
|
||||||
//if (cl.stats[STAT_ACTIVEWEAPON] == (RIT_LAVA_NAILGUN << i)) {
|
//if (cl.stats[STAT_ACTIVEWEAPON] == (RIT_LAVA_NAILGUN << i)) {
|
||||||
if (cl.stats[STAT_ITEMS] & (RIT_LAVA_NAILGUN << i)) {
|
if (cl.stats[STAT_ITEMS] & (RIT_LAVA_NAILGUN << i)) {
|
||||||
draw_pic (view, x, i * 16 + 112, rsb_weapons[i]);
|
draw_pic (view, 0, i * 16 + 112, rsb_weapons[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -878,15 +879,12 @@ draw_hipnotic_weapons_sbar (view_t *view)
|
||||||
static void
|
static void
|
||||||
draw_hipnotic_weapons_hud (view_t *view)
|
draw_hipnotic_weapons_hud (view_t *view)
|
||||||
{
|
{
|
||||||
int flashon, grenadeflashing = 0, i, x = 0;
|
int flashon, grenadeflashing = 0, i;
|
||||||
static int y[] = {0, 16, 32, 48, 64, 96, 112, 128, 144, 80, 80};
|
static int y[] = {0, 16, 32, 48, 64, 96, 112, 128, 144, 80, 80};
|
||||||
qpic_t *pic;
|
qpic_t *pic;
|
||||||
int mask;
|
int mask;
|
||||||
float time;
|
float time;
|
||||||
|
|
||||||
if (view->parent->gravity == grav_southeast)
|
|
||||||
x = view->xlen - 24;
|
|
||||||
|
|
||||||
// hipnotic weapons
|
// hipnotic weapons
|
||||||
for (i = 0; i < 11; i++) {
|
for (i = 0; i < 11; i++) {
|
||||||
if (i < 7) {
|
if (i < 7) {
|
||||||
|
@ -924,7 +922,7 @@ draw_hipnotic_weapons_hud (view_t *view)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pic)
|
if (pic)
|
||||||
draw_pic (view, x, y[i], pic);
|
draw_pic (view, 0, y[i], pic);
|
||||||
|
|
||||||
if (flashon > 1)
|
if (flashon > 1)
|
||||||
sb_updates = 0; // force update to remove flash
|
sb_updates = 0; // force update to remove flash
|
||||||
|
@ -1251,7 +1249,7 @@ init_hud_views (void)
|
||||||
|
|
||||||
hud_armament_view = view_new (0, 48, 42, 156, grav_southeast);
|
hud_armament_view = view_new (0, 48, 42, 156, grav_southeast);
|
||||||
|
|
||||||
view = view_new (0, 0, 42, 112, grav_northeast);
|
view = view_new (0, 0, 24, 112, grav_northeast);
|
||||||
view->draw = draw_weapons_hud;
|
view->draw = draw_weapons_hud;
|
||||||
view_add (hud_armament_view, view);
|
view_add (hud_armament_view, view);
|
||||||
|
|
||||||
|
@ -1355,9 +1353,14 @@ init_hipnotic_hud_views (void)
|
||||||
|
|
||||||
hud_view->resize_y = 1;
|
hud_view->resize_y = 1;
|
||||||
|
|
||||||
hud_armament_view = view_new (0, 48, 42, 204, grav_southeast);
|
if (vid.conheight < 252) {
|
||||||
|
hud_armament_view = view_new (0, min (vid.conheight - 160, 48),
|
||||||
|
66, 160, grav_southeast);
|
||||||
|
} else {
|
||||||
|
hud_armament_view = view_new (0, 48, 42, 204, grav_southeast);
|
||||||
|
}
|
||||||
|
|
||||||
view = view_new (0, 0, 42, 160, grav_northeast);
|
view = view_new (0, 0, 24, 160, grav_northeast);
|
||||||
view->draw = draw_hipnotic_weapons_hud;
|
view->draw = draw_hipnotic_weapons_hud;
|
||||||
view_add (hud_armament_view, view);
|
view_add (hud_armament_view, view);
|
||||||
|
|
||||||
|
@ -1457,9 +1460,14 @@ init_rogue_hud_views (void)
|
||||||
|
|
||||||
hud_view->resize_y = 1;
|
hud_view->resize_y = 1;
|
||||||
|
|
||||||
hud_armament_view = view_new (0, 48, 42, 236, grav_southeast);
|
if (vid.conheight < 284) {
|
||||||
|
hud_armament_view = view_new (0, min (vid.conheight - 192, 48),
|
||||||
|
66, 192, grav_southeast);
|
||||||
|
} else {
|
||||||
|
hud_armament_view = view_new (0, 48, 42, 236, grav_southeast);
|
||||||
|
}
|
||||||
|
|
||||||
view = view_new (0, 0, 42, 192, grav_northeast);
|
view = view_new (0, 0, 24, 192, grav_northeast);
|
||||||
view->draw = draw_rogue_weapons_hud;
|
view->draw = draw_rogue_weapons_hud;
|
||||||
view_add (hud_armament_view, view);
|
view_add (hud_armament_view, view);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue