Tweaked some drawing behaviors. Added note about HUD customization.
This commit is contained in:
parent
d8412ec2a5
commit
f55abc40fb
6 changed files with 24 additions and 16 deletions
|
|
@ -46,8 +46,14 @@ In progress:
|
||||||
- General polishing and bugfixing.
|
- General polishing and bugfixing.
|
||||||
- Trim out unused animations.
|
- Trim out unused animations.
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
|
||||||
|
- Scaling/Customization options for the HUD.
|
||||||
|
|
||||||
Known bugs:
|
Known bugs:
|
||||||
|
|
||||||
- Sometimes the slave enforcer gets "lowered" while the main enforcer is
|
- Sometimes the slave enforcer gets "lowered" while the main enforcer is
|
||||||
reloading. No idea what causes this.
|
reloading. No idea what causes this.
|
||||||
- Sludge doesn't react to ceiling and wall movement.
|
- Sludge doesn't react to ceiling and wall movement.
|
||||||
|
- Pulse gun beams behave oddly when the player is on moving platforms.
|
||||||
|
This might just be a rendering interpolation glitch, as usual.
|
||||||
|
|
@ -180,5 +180,5 @@ Sprite "EBLDH0",1,1{}
|
||||||
Sprite "EBLDI0",1,1{}
|
Sprite "EBLDI0",1,1{}
|
||||||
Sprite "EBLDJ0",1,1{}
|
Sprite "EBLDJ0",1,1{}
|
||||||
Sprite "EBLDK0",1,1{}
|
Sprite "EBLDK0",1,1{}
|
||||||
Graphic "XHAIRS99",16,16{}
|
Graphic "XHAIRS99",1,1{}
|
||||||
Graphic "XHAIRB99",16,16{}
|
Graphic "XHAIRB99",1,1{}
|
||||||
|
|
|
||||||
|
|
@ -236,21 +236,21 @@ Class UTRocketLauncher : UTWeapon
|
||||||
|
|
||||||
override void PostRender()
|
override void PostRender()
|
||||||
{
|
{
|
||||||
if ( LockedTarget ) Screen.DrawTexture(lockontex,false,(Screen.GetWidth()-16)*0.5,(Screen.GetHeight()-16)*0.5);
|
if ( LockedTarget ) Screen.DrawTexture(lockontex,false,Screen.GetWidth()*0.5,Screen.GetHeight()*0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
override void Tick()
|
override void Tick()
|
||||||
{
|
{
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( !Owner ) return;
|
if ( !Owner ) return;
|
||||||
if ( LockedOn && (!LockedTarget || (LockedTarget.Health <= 0) || LockedTarget.bKilled || LockedTarget.bCorpse || !LockedTarget.bShootable) )
|
if ( LockedOn && (!LockedTarget || (LockedTarget.Health <= 0) || !LockedTarget.bIsMonster || LockedTarget.bKilled || LockedTarget.bCorpse || !LockedTarget.bShootable) )
|
||||||
{
|
{
|
||||||
LockedTarget = null;
|
LockedTarget = null;
|
||||||
LockedOn = false;
|
LockedOn = false;
|
||||||
Owner.A_PlaySound("utrl/seeklost",CHAN_6);
|
Owner.A_PlaySound("utrl/seeklost",CHAN_6);
|
||||||
}
|
}
|
||||||
if ( LockedTarget ) A_SetCrosshair(99);
|
if ( LockedTarget ) crosshair = 99;
|
||||||
else A_SetCrosshair(0);
|
else crosshair = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// consumes 1 ammo
|
// consumes 1 ammo
|
||||||
|
|
@ -357,7 +357,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
invoker.LockedTarget = null;
|
invoker.LockedTarget = null;
|
||||||
while ( a = Actor(t.Next()) )
|
while ( a = Actor(t.Next()) )
|
||||||
{
|
{
|
||||||
if ( !a.bSHOOTABLE || (a.Health <= 0) || a.bKilled || a.bCorpse || (a == self) || isTeammate(a) || !CheckSight(a) ) continue;
|
if ( !a.bSHOOTABLE || (a.Health <= 0) || a.bKilled || !a.bIsMonster || a.bCorpse || (a == self) || isTeammate(a) || !CheckSight(a) ) continue;
|
||||||
Vector3 viewdir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
Vector3 viewdir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch));
|
||||||
Vector3 reldir = level.Vec3Diff(Vec2OffsetZ(0,0,player.viewz),a.Vec2OffsetZ(0,0,a.pos.z+a.height*0.5));
|
Vector3 reldir = level.Vec3Diff(Vec2OffsetZ(0,0,player.viewz),a.Vec2OffsetZ(0,0,a.pos.z+a.height*0.5));
|
||||||
double reldist = reldir.length();
|
double reldist = reldir.length();
|
||||||
|
|
|
||||||
|
|
@ -160,8 +160,8 @@ Class Enforcer : UTWeapon replaces Pistol
|
||||||
override void PostRender()
|
override void PostRender()
|
||||||
{
|
{
|
||||||
if ( !CVar.GetCVar('flak_enforcerreload').GetBool() ) return;
|
if ( !CVar.GetCVar('flak_enforcerreload').GetBool() ) return;
|
||||||
if ( Amount > 1 ) Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.88,String.Format("L Clip: % 2d / 20\nR Clip: % 2d / 20",slaveclipcount,clipcount));
|
if ( Amount > 1 ) Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.9-confont.GetHeight()*2,String.Format("L Clip: %2d / 20\nR Clip: %2d / 20",slaveclipcount,clipcount));
|
||||||
else Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.88,String.Format("Clip: % 2d / 20",clipcount));
|
else Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.9-confont.GetHeight(),String.Format("Clip: %2d / 20",clipcount));
|
||||||
}
|
}
|
||||||
|
|
||||||
override bool HandlePickup( Inventory item )
|
override bool HandlePickup( Inventory item )
|
||||||
|
|
|
||||||
|
|
@ -416,7 +416,7 @@ Class PulseGun : UTWeapon
|
||||||
override void PostRender()
|
override void PostRender()
|
||||||
{
|
{
|
||||||
if ( !CVar.GetCVar('flak_pulsereload').GetBool() ) return;
|
if ( !CVar.GetCVar('flak_pulsereload').GetBool() ) return;
|
||||||
Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.88,String.Format("Clip: % 2d / 50",clipcount));
|
Screen.DrawText(confont,Font.CR_GREEN,Screen.GetWidth()*0.01,Screen.GetHeight()*0.9-confont.GetHeight(),String.Format("Clip: %2d / 50",clipcount));
|
||||||
}
|
}
|
||||||
|
|
||||||
action void A_Reloading()
|
action void A_Reloading()
|
||||||
|
|
|
||||||
|
|
@ -192,6 +192,7 @@ Class UTHud : BaseStatusBar
|
||||||
}
|
}
|
||||||
|
|
||||||
// UT's implementation doesn't seem to translate well to this, so I improvised a bit and made something not so ugly
|
// UT's implementation doesn't seem to translate well to this, so I improvised a bit and made something not so ugly
|
||||||
|
// This whole function might need to be rewritten in a prettier way someday
|
||||||
private void UTDrawBigNum( int value, double sx = 1.0 )
|
private void UTDrawBigNum( int value, double sx = 1.0 )
|
||||||
{
|
{
|
||||||
double step = 25*HScale*sx;
|
double step = 25*HScale*sx;
|
||||||
|
|
@ -200,6 +201,7 @@ Class UTHud : BaseStatusBar
|
||||||
String digits = String.Format("%d",min(abs(value),9999));
|
String digits = String.Format("%d",min(abs(value),9999));
|
||||||
double flen = 3*step;
|
double flen = 3*step;
|
||||||
double len = digits.length()*step;
|
double len = digits.length()*step;
|
||||||
|
for ( int i=0; i<digits.length(); i++ ) if ( digits.CharAt(i) == "1" ) len -= 0.5*step;
|
||||||
CurX += (flen-len)*0.5;
|
CurX += (flen-len)*0.5;
|
||||||
if ( digits.CharAt(0) == "1" ) CurX -= 0.5*step;
|
if ( digits.CharAt(0) == "1" ) CurX -= 0.5*step;
|
||||||
if ( value < 0 )
|
if ( value < 0 )
|
||||||
|
|
@ -210,7 +212,7 @@ Class UTHud : BaseStatusBar
|
||||||
for ( int i=0; i<digits.length(); i++ )
|
for ( int i=0; i<digits.length(); i++ )
|
||||||
{
|
{
|
||||||
Screen.DrawTexture(BigNum[digits.CharCodeAt(i)-0x30],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_AlphaChannel,true,DTA_FillColor,DrawColor);
|
Screen.DrawTexture(BigNum[digits.CharCodeAt(i)-0x30],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_AlphaChannel,true,DTA_FillColor,DrawColor);
|
||||||
CurX += step;
|
CurX += ((i<digits.length()-1)&&(digits.CharAt(i+1)=="1"))?step*0.5:step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -407,14 +409,14 @@ Class UTHud : BaseStatusBar
|
||||||
cl1 = String.Format("Dark%s",cl2);
|
cl1 = String.Format("Dark%s",cl2);
|
||||||
}
|
}
|
||||||
String tname = String.Format("\c[%s]Name:\c[%s] %s",cl1,cl2,lastseen.player.GetUserName());
|
String tname = String.Format("\c[%s]Name:\c[%s] %s",cl1,cl2,lastseen.player.GetUserName());
|
||||||
CurX = (Screen.GetWidth()-confont.StringWidth(tname)*CleanXFac)*0.5;
|
CurX = (640-confont.StringWidth(tname))*0.5;
|
||||||
CurY = Screen.GetHeight()*0.75;
|
CurY = 480*0.75;
|
||||||
Screen.DrawText(confont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_CleanNoMove,true,DTA_Alpha,lalpha/2.);
|
Screen.DrawText(confont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_Alpha,lalpha/2.);
|
||||||
if ( !deathmatch || (lastseen.IsTeammate(CPlayer.mo)) )
|
if ( !deathmatch || (lastseen.IsTeammate(CPlayer.mo)) )
|
||||||
{
|
{
|
||||||
CurY += 1.2*confont.GetHeight()*CleanYFac;
|
CurY += 1.2*confont.GetHeight();
|
||||||
tname = String.Format("\c[%s]Health:\c[%s] %d",cl1,cl2,lastseen.Health);
|
tname = String.Format("\c[%s]Health:\c[%s] %d",cl1,cl2,lastseen.Health);
|
||||||
Screen.DrawText(confont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_CleanNoMove,true,DTA_Alpha,lalpha/2.);
|
Screen.DrawText(confont,Font.CR_UNTRANSLATED,CurX,CurY,tname,DTA_VirtualWidth,640,DTA_VirtualHeight,480,DTA_Alpha,lalpha/2.);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue