1.2 update w/ GZDoom 4.9 features:

- Changeable player skins.
 - Ammo LEDs are now 1:1 with UT by using canvas textures.
 - Integrate some add-ons, including reskins.
 - Various fixes (some backported from Demolitionist).
 - Migrated from libeye to Gutamatics.
This commit is contained in:
Marisa the Magician 2022-11-05 23:59:16 +01:00
commit 602a89cc68
1761 changed files with 4461 additions and 1597 deletions

View file

@ -543,10 +543,10 @@ Class FlakSlug : Actor
p.bHITOWNER = true;
a = FRandom[Flak](0,360);
s = FRandom[Flak](0,0.1);
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
Vector3 dir = dt_Utility.ConeSpread(x,y,z,a,s);
p.angle = atan2(dir.y,dir.x);
p.pitch = -asin(dir.z);
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*(p.speed+FRandom[Flak](-3,3));
p.vel = dt_Utility.Vec3FromAngle(p.angle,p.pitch)*(p.speed+FRandom[Flak](-3,3));
p.target = target;
}
int numpt = Random[Flak](8,12);
@ -637,20 +637,25 @@ Class FlakMag : UTCasing
Class FlakCannon : UTWeapon
{
FlakCannonLED ammoled;
ui Canvas AmmoLed;
ui TextureID LedFont;
override void DoEffect()
override void RenderOverlay( RenderEvent e )
{
Super.DoEffect();
if ( !ammoled )
Vector2 fnt[] =
{
let ti = ThinkerIterator.Create("FlakCannonLED");
while ( ammoled=FlakCannonLED(ti.Next()) ) break;
if ( !ammoled ) ammoled = FlakCannonLED(Spawn("FlakCannonLED"));
}
if ( !Owner || !Owner.player || (Owner != players[consoleplayer].Camera) ) return;
ammoled.mygun = self;
TexMan.SetCameraToTexture(ammoled,"FlakALed",90);
(0,1), (21,1), (42,1), (63,1), (84,1),
(105,1), (126,1), (147,1), (168,1), (189,1)
};
if ( !AmmoLed ) AmmoLed = TexMan.GetCanvas("FlakALed");
if ( !LedFont ) LedFont = TexMan.CheckForTexture("models/LEDFont2.png",TexMan.Type_Any);
AmmoLed.Clear(0,0,128,64,"Black");
int dg3 = (Ammo1.Amount/100)%10;
int dg2 = (Ammo1.Amount/10)%10;
int dg1 = Ammo1.Amount%10;
AmmoLed.DrawTexture(LedFont,false,34,14,DTA_SrcX,fnt[dg3].x,DTA_SrcY,fnt[dg3].y,DTA_SrcWidth,20,DTA_SrcHeight,35,DTA_DestWidth,20,DTA_DestHeight,35,DTA_Color,0xFFFF0000);
AmmoLed.DrawTexture(LedFont,false,54,14,DTA_SrcX,fnt[dg2].x,DTA_SrcY,fnt[dg2].y,DTA_SrcWidth,20,DTA_SrcHeight,35,DTA_DestWidth,20,DTA_DestHeight,35,DTA_Color,0xFFFF0000);
AmmoLed.DrawTexture(LedFont,false,74,14,DTA_SrcX,fnt[dg1].x,DTA_SrcY,fnt[dg1].y,DTA_SrcWidth,20,DTA_SrcHeight,35,DTA_DestWidth,20,DTA_DestHeight,35,DTA_Color,0xFFFF0000);
}
action void A_Loading( bool first = false )
@ -692,10 +697,10 @@ Class FlakCannon : UTWeapon
p = Spawn("FlakChunk",level.Vec3Offset(origin,offsets[i]));
a = FRandom[Flak](0,360);
s = FRandom[Flak](0,0.1);
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
Vector3 dir = dt_Utility.ConeSpread(x,y,z,a,s);
p.angle = atan2(dir.y,dir.x);
p.pitch = -asin(dir.z);
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*(p.speed+FRandom[Flak](-3,3));
p.vel = dt_Utility.Vec3FromAngle(p.angle,p.pitch)*(p.speed+FRandom[Flak](-3,3));
p.target = self;
}
int numpt = Random[Flak](20,30);
@ -737,7 +742,7 @@ Class FlakCannon : UTWeapon
Actor p = Spawn("FlakSlug",origin);
p.angle = angle;
p.pitch = BulletSlope();
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*p.speed;
p.vel = dt_Utility.Vec3FromAngle(p.angle,p.pitch)*p.speed;
p.target = self;
int numpt = Random[Flak](10,15);
for ( int i=0; i<numpt; i++ )
@ -776,6 +781,7 @@ Class FlakCannon : UTWeapon
Weapon.AmmoUse2 1;
Weapon.AmmoGive 10;
UTWeapon.DropAmmo 5;
UTWeapon.NameColor "FF 60 00";
}
States
{