Properly corrected the order weapon icons and ammo bars are drawn in.
This commit is contained in:
parent
fec0e03971
commit
b9e55b1363
1 changed files with 31 additions and 11 deletions
|
|
@ -386,7 +386,6 @@ Class UTHud : BaseStatusBar
|
||||||
UTDrawWeaponIcon(cw,true,hudsize*weaponsize);
|
UTDrawWeaponIcon(cw,true,hudsize*weaponsize);
|
||||||
CurX = BaseX+cwslot*WeaponOffset;
|
CurX = BaseX+cwslot*WeaponOffset;
|
||||||
CurY = BaseY;
|
CurY = BaseY;
|
||||||
UTDrawPlainTex(WeaponBox,hudsize*weaponsize,opacity+7);
|
|
||||||
}
|
}
|
||||||
if ( pw && (pw.SlotNumber != -1) && (pw != WP_NOCHANGE) )
|
if ( pw && (pw.SlotNumber != -1) && (pw != WP_NOCHANGE) )
|
||||||
{
|
{
|
||||||
|
|
@ -398,17 +397,38 @@ Class UTHud : BaseStatusBar
|
||||||
CurY = BaseY;
|
CurY = BaseY;
|
||||||
UTDrawWeaponIcon(pw,true,hudsize*weaponsize);
|
UTDrawWeaponIcon(pw,true,hudsize*weaponsize);
|
||||||
}
|
}
|
||||||
|
if ( cwslot != -1 )
|
||||||
|
{
|
||||||
|
CurX = BaseX+cwslot*WeaponOffset;
|
||||||
|
UTDrawPlainTex(WeaponBox,hudsize*weaponsize,opacity+7);
|
||||||
|
}
|
||||||
Weapon wslots[10];
|
Weapon wslots[10];
|
||||||
|
// first run, populate the full array of weapons
|
||||||
|
for ( int i=0; i<10; i++ )
|
||||||
|
{
|
||||||
|
int sslot = (i<9)?(i+1):0;
|
||||||
for ( Inventory i = CPlayer.mo.Inv; i; i=i.Inv )
|
for ( Inventory i = CPlayer.mo.Inv; i; i=i.Inv )
|
||||||
{
|
{
|
||||||
if ( !(i is 'Weapon') ) continue;
|
if ( !(i is 'Weapon') ) continue;
|
||||||
let w = Weapon(i);
|
let w = Weapon(i);
|
||||||
if ( w.SlotNumber == -1 ) continue;
|
if ( w.SlotNumber != sslot ) continue;
|
||||||
int slot = w.SlotNumber?(w.SlotNumber-1):9;
|
int slot = w.SlotNumber?(w.SlotNumber-1):9;
|
||||||
if ( !wslots[slot] ) wslots[slot] = w;
|
if ( !wslots[slot] )
|
||||||
else if ( (wslots[slot] != cw) && ((wslots[slot] != pw)
|
{
|
||||||
|| (wslots[slot].SelectionOrder > w.SelectionOrder)) )
|
|
||||||
wslots[slot] = w;
|
wslots[slot] = w;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( (wslots[slot] == pw) || (wslots[slot] == cw) ) continue;
|
||||||
|
if ( (w == pw) || (w == cw) )
|
||||||
|
{
|
||||||
|
wslots[slot] = w;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( (w.SelectionOrder < wslots[slot].SelectionOrder) && (!w.Ammo1 || (w.Ammo1.Amount > 0)) )
|
||||||
|
wslots[slot] = w;
|
||||||
|
else if ( (w.SelectionOrder >= wslots[slot].SelectionOrder) && wslots[slot].Ammo1 && (wslots[slot].Ammo1.Amount <= 0) )
|
||||||
|
wslots[slot] = w;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for ( int i=0; i<10; i++ )
|
for ( int i=0; i<10; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -426,7 +446,7 @@ Class UTHud : BaseStatusBar
|
||||||
CurX = BaseX+i*WeaponOffset+4*WeapScale;
|
CurX = BaseX+i*WeaponOffset+4*WeapScale;
|
||||||
CurY = BaseY+4*WeapScale;
|
CurY = BaseY+4*WeapScale;
|
||||||
UTDrawTintedTex(BigNum[(i==9)?0:(i+1)],0.75*hudsize*weaponsize,opacity+7,GoldColor);
|
UTDrawTintedTex(BigNum[(i==9)?0:(i+1)],0.75*hudsize*weaponsize,opacity+7,GoldColor);
|
||||||
if ( !wslots[i].Ammo1 || (wslots[i].Ammo1.Amount <= 0) ) continue;
|
if ( !wslots[i].Ammo1 ) continue;
|
||||||
CurY = BaseY+52*WeapScale;
|
CurY = BaseY+52*WeapScale;
|
||||||
Vector2 ss = (0.6875,0.5)*WeapScale;
|
Vector2 ss = (0.6875,0.5)*WeapScale;
|
||||||
double dw = (Screen.GetWidth()/ss.x), dh = (Screen.GetHeight()/ss.y);
|
double dw = (Screen.GetWidth()/ss.x), dh = (Screen.GetHeight()/ss.y);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue