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

@ -210,8 +210,8 @@ Class TranslocatorModule : Actor
States
{
Spawn:
TMOD A 1;
Wait;
TMOD A -1;
Stop;
Bounce:
TMOD A 0
{
@ -247,6 +247,26 @@ Class TranslocatorModule : Actor
}
}
Class OldTranslocatorModule : TranslocatorModule
{
States
{
Death:
TMOD A -1
{
A_SetPitch(0);
if ( tracer && !tracer.bACTLIKEBRIDGE )
{
SetOrigin(tracer.Vec2OffsetZ(0,0,pos.z),false);
vel.xy *= 0;
tracer = null;
bHITTRACER = false;
}
}
Stop;
}
}
Class TranslocatorAfterimageParticle : Actor
{
Default
@ -402,7 +422,7 @@ Class Translocator : UTWeapon
p.angle = angle;
p.pitch = BulletSlope();
p.A_SetSize(radius);
Vector3 dir = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch));
Vector3 dir = dt_Utility.Vec3FromAngle(p.angle,p.pitch);
dir.z += 0.35*(1-abs(dir.z));
p.vel = dir*p.speed;
invoker.module = p;
@ -559,3 +579,107 @@ Class Translocator : UTWeapon
Wait;
}
}
Class OldTranslocator : Translocator
{
action void A_ThrowModuleOld()
{
Weapon weap = Weapon(invoker);
if ( !weap ) return;
A_StartSound("transloc/throw",CHAN_WEAPON);
invoker.FireEffect();
A_AlertMonsters();
Vector3 x, y, z;
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
Vector3 origin = (pos.x,pos.y,player.viewz)+15.0*x-10.0*y-4.0*z;
let p = Spawn("OldTranslocatorModule",origin);
p.target = self;
p.angle = angle;
p.pitch = BulletSlope();
p.A_SetSize(radius);
Vector3 dir = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch));
dir.z += 0.35*(1-abs(dir.z));
p.vel = dir*p.speed;
invoker.module = p;
}
States
{
Spawn:
TLCP A -1;
Stop;
TLCP B -1;
Stop;
Select:
TLCS A 1 A_Raise(int.max);
Wait;
Ready:
TLCS A 0 A_JumpIf(invoker.module,"Ready2");
TLCS ABCDEFGHIJKLMNO 1 A_WeaponReady(WRF_NOFIRE);
TLCS O 0 A_JumpIf(invoker.module,"Idle");
Goto Idle2;
Ready2:
TLS2 ABCDEFGHIJKLMNO 1 A_WeaponReady(WRF_NOFIRE);
Goto Idle;
Idle:
TLCI ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
{
if ( !invoker.module )
return ResolveState("PickedUp");
A_WeaponReady();
return ResolveState(null);
}
TLI2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1
{
if ( !invoker.module )
return ResolveState("PickedUp");
A_WeaponReady();
return ResolveState(null);
}
TLI3 ABCDEFGH 1
{
if ( !invoker.module )
return ResolveState("PickedUp");
A_WeaponReady();
return ResolveState(null);
}
Loop;
Idle2:
TLI4 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponReady(WRF_NOSECONDARY);
TLI5 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponReady(WRF_NOSECONDARY);
TLI6 ABCDEFGH 1 A_WeaponReady(WRF_NOSECONDARY);
TLI6 H 0;
Loop;
PickedUp:
TLCI A 5;
TLR2 A 0 A_ReturnModule();
Goto Return2;
Fire:
TLCF A 0 A_JumpIf(invoker.module||(invoker.Ammo1&&invoker.Ammo1.Amount<=0),"Return");
TLCF ABCDEFGHIJK 1;
TLCF K 0 A_ThrowModuleOld();
TLCF LMNOPQRST 1 A_WeaponReady(WRF_NOPRIMARY);
Goto Idle;
Return:
TLCR ABCDEFGHIJKLMNOP 1;
TLCR Q 1 A_ReturnModule();
TLCR RST 1;
Return2:
TLR2 ABCDEFGHIJKLMNOPQRST 1;
TLR2 T 0;
Goto Idle2;
AltFire:
TLCT ABCDEFGHIJK 1;
TLCT L 1 A_Translocate();
TLCT MNOPQRST 1;
Goto PickedUp;
Deselect:
TLCD A 0 A_JumpIf(invoker.module,"Deselect2");
TLCD ABCDEFGIJK 1;
TLCD K 1 A_Lower(int.max);
Wait;
Deselect2:
TLD2 ABCDEFGHIJK 1;
TLD2 K 1 A_Lower(int.max);
Wait;
}
}