Deprecate use of ROTATING. Fix rotation of many items.

This commit is contained in:
Mari the Deer 2023-01-11 20:05:53 +01:00
commit 06e2e2c55c
39 changed files with 70 additions and 158 deletions

View file

@ -7,6 +7,7 @@ Class AmmoFabricator : Inventory abstract
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
meta int budget, pertype, maxunits, maxtypes, maxunitprice, txtcol;
@ -314,6 +315,7 @@ Class HammerspaceEmbiggener : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
override Inventory CreateCopy( Actor other )
{

View file

@ -4,6 +4,7 @@ Class SWWMAmmo : Ammo
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
meta String PickupTag;
meta Class<MagAmmo> MagAmmoType;
@ -275,6 +276,7 @@ Class MagAmmo : Inventory abstract
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
meta Class<Ammo> ParentAmmo;
Ammo pamo;

View file

@ -138,6 +138,7 @@ Class SWWMSpareArmor : Inventory abstract
Mixin SWWMUseToPickup;
Mixin SWWMOverlapPickupSound;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
meta Class<SWWMArmor> giveme;

View file

@ -5,6 +5,7 @@ Class SWWMHealth : Inventory abstract
Mixin SWWMUseToPickup;
Mixin SWWMOverlapPickupSound;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
// can't use the Health class for whatever reason

View file

@ -197,6 +197,7 @@ Mixin Class SWWMPickupGlow
Class SWWMItemOverlay : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
@ -212,7 +213,7 @@ Class SWWMItemOverlay : SWWMNonInteractiveActor
}
prev = target.prev;
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+target.vel,true);
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
if ( (angle != target.angle) && bINTERPOLATEANGLES ) angle = target.angle; // copy angle for rotating pickups
FloatBobPhase = target.FloatBobPhase;
bInvisible = target.bInvisible||Inventory(target).Owner;
}
@ -224,6 +225,20 @@ Class SWWMItemOverlay : SWWMNonInteractiveActor
}
}
Mixin Class SWWMRotatingPickup
{
Default
{
+INTERPOLATEANGLES;
}
override void Tick()
{
Super.Tick();
if ( !Owner ) angle -= (180./64.);
}
}
Mixin Class SWWMRespawn
{
override void Hide()

View file

@ -3,6 +3,7 @@
Class SWWMCollectible : Inventory abstract
{
Mixin SWWMUseToPickup;
Mixin SWWMRotatingPickup;
meta int avail;
bool propagated;

View file

@ -4,6 +4,7 @@ Class SWWMKey : Key abstract
{
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRotatingPickup;
bool propagated;

View file

@ -539,6 +539,7 @@ Class SWWMLamp : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
bool bActive, bActivated;

View file

@ -5,6 +5,7 @@ Class Omnisight : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
override bool TryPickup( in out Actor toucher )
{
@ -74,6 +75,7 @@ Class SafetyTether : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
bool bPrimed, bFailed;
int primetim;

View file

@ -19,6 +19,7 @@ Class GrilledCheeseSandwich : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
// for falling off cliffs and others
@ -408,6 +409,7 @@ Class GhostArtifact : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
Default
@ -578,6 +580,7 @@ Class GravitySuppressor : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
override bool Use( bool pickup )
@ -809,6 +812,7 @@ Class FuckingInvinciball : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
override Inventory CreateCopy( Actor other )
@ -1086,6 +1090,7 @@ Class Ragekit : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
override bool Use( bool pickup )
@ -1327,6 +1332,7 @@ Class EBarrier : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
int terrainwait;

View file

@ -903,6 +903,7 @@ Class AngerySigil : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
override bool Use( bool pickup )
@ -1186,6 +1187,7 @@ Class DivineSprite : Inventory
Mixin SWWMOverlapPickupSound;
Mixin SWWMUseToPickup;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
Mixin SWWMPickupGlow;
override bool Use( bool pickup )

View file

@ -582,7 +582,11 @@ Class SWWMWeapon : Weapon abstract
override void Tick()
{
Super.Tick();
if ( !Owner ) return;
if ( !Owner )
{
angle -= (180./64.);
return;
}
if ( !Owner.player || (Owner.player.ReadyWeapon != self) || !(Owner.player.WeaponState&WF_WEAPONSWITCHOK) || (Owner.player.WeaponState&WF_DISABLESWITCH) )
{
tooltipsent = false;
@ -687,6 +691,7 @@ Class SWWMWeapon : Weapon abstract
+WEAPON.NOALERT;
+WEAPON.NODEATHINPUT;
+FLOATBOB;
+INTERPOLATEANGLES;
+DONTGIB;
FloatBobStrength 0.25;
}
@ -697,6 +702,7 @@ Class SWWMDualWeaponGiver : Inventory
{
Mixin SWWMOverlapPickupSound;
Mixin SWWMRespawn;
Mixin SWWMRotatingPickup;
bool bUsePickup;
SWWMWeapon giveme[2];

View file

@ -7,6 +7,7 @@ Class HellblazerX : SWWMItemOverlay
{
RenderStyle "Translucent";
Alpha .5;
+INTERPOLATEANGLES;
}
States
{