1.2 update, w/ GZDoom 4.9 stuff:

- Customizable player skins here too.
 - Integrated re-skin add-ons ("Old Sounds" is still separate).
 - The usual fixes and optimizations.
 - All weapons are now left-handed, where possible.
This commit is contained in:
Marisa the Magician 2022-11-06 00:02:46 +01:00
commit a21aa43f35
1485 changed files with 1157 additions and 380 deletions

View file

@ -5,20 +5,14 @@ Class BCasing : UTCasing
BounceSound "automag/casing";
}
}
Class BCasing2 : UTCasing
{
Default
{
BounceSound "automag/casing";
}
}
Class Betamag : UnrealWeapon
{
bool SlaveActive, SlaveDown, SlaveAltFire, SlaveWhip, SlaveSpin;
int SlaveRefire;
double AltAccuracy;
int OldSkin;
override bool TryPickup( in out Actor toucher )
{
if ( !sting_proto ) return false; // not allowed
@ -27,6 +21,45 @@ Class Betamag : UnrealWeapon
override void Tick()
{
Super.Tick();
switch ( sting_altbetamag )
{
case 1:
if ( OldSkin != 1 )
{
A_ChangeModel("",1,"","",1,"models","Autom1_.png");
A_ChangeModel("",0,"","",0,"models","Autom1.png",CMDL_USESURFACESKIN);
A_ChangeModel("",2,"","",0,"models","Autom1.png",CMDL_USESURFACESKIN);
}
OldSkin = 1;
break;
case 2:
if ( OldSkin != 2 )
{
A_ChangeModel("",1,"","",1,"models","AutoHand1_.png");
A_ChangeModel("",0,"","",0,"models","AutoHand1.png",CMDL_USESURFACESKIN);
A_ChangeModel("",2,"","",0,"models","Autom1.png",CMDL_USESURFACESKIN);
}
OldSkin = 2;
break;
case 3:
if ( OldSkin != 3 )
{
A_ChangeModel("",1,"","",1,"models","Autom1_.png");
A_ChangeModel("",0,"","",0,"models","Autom1.png",CMDL_USESURFACESKIN);
A_ChangeModel("",2,"","",0,"models","AutoHand1.png",CMDL_USESURFACESKIN);
}
OldSkin = 2;
break;
case 0:
if ( OldSkin != 0 )
{
A_ChangeModel("",1,"","",1,"models","AutoHand1_.png");
A_ChangeModel("",0,"","",0,"models","AutoHand1.png",CMDL_USESURFACESKIN);
A_ChangeModel("",2,"","",0,"models","AutoHand1.png",CMDL_USESURFACESKIN);
}
OldSkin = 0;
break;
}
if ( sting_protomags && (MaxAmount <= 1) ) MaxAmount = 2;
else if ( !sting_protomags && (MaxAmount > 1) ) MaxAmount = 1;
if ( Owner && !sting_protomags && (Amount > 1) )
@ -233,13 +266,13 @@ Class Betamag : UnrealWeapon
Vector3 x, y, z, x2, y2, z2;
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
Vector3 origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x);
int ydir = slave?-1:1;
int ydir = slave?1:-1;
if ( alt ) origin = level.Vec3Offset(origin,-z*2.5+ydir*y*1.5);
else origin = level.Vec3Offset(origin,-z*1.5+ydir*y*2);
double a = FRandom[Betamag](0,360), s = FRandom[Betamag](0,alt?invoker.altaccuracy:0.);
if ( invoker.Amount > 1 ) s = s*2.+FRandom[Betamag](0,0.01);
[x2, y2, z2] = dt_CoordUtil.GetAxes(BulletSlope(),angle,roll);
Vector3 dir = (x2+y2*cos(a)*s+z2*sin(a)*s).unit();
Vector3 dir = dt_Utility.ConeSpread(x2,y2,z2,a,s);
FLineTraceData d;
LineTrace(atan2(dir.y,dir.x),10000,asin(-dir.z),TRF_ABSPOSITION,origin.z,origin.x,origin.y,d);
UTBulletTrail.DoTrail(self,origin,dir,10000,int((invoker.Amount+alt)**2));
@ -294,7 +327,9 @@ Class Betamag : UnrealWeapon
s.alpha *= 0.5;
}
origin = level.Vec3Offset(origin,x*5+ydir*y*8-z*2);
let c = Spawn(slave?"BCasing2":"BCasing",origin);
let c = Spawn("BCasing",origin);
if ( !slave && ((invoker.OldSkin == 1) || (invoker.OldSkin == 3)) ) c.A_ChangeModel("",0,"","",0,"models","Autom1.png");
else if ( slave && ((invoker.OldSkin == 1) || (invoker.OldSkin == 2)) ) c.A_ChangeModel("",0,"","",0,"models","Autom1.png");
c.angle = angle;
c.pitch = pitch;
c.vel = x*FRandom[Junk](-1.5,1.5)+y*ydir*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);