Try to fix player bumping into random things that shouldn't be collidable.

Frantic attempt at preventing desyncs by adding "FloatBobPhase 0" to a lot of actors.
Boss brains count towards kills (prevents players from getting an "all kills" bonus without having actually beaten the boss proper).
This commit is contained in:
Mari the Deer 2020-12-06 01:43:50 +01:00
commit 793e75a7ed
5 changed files with 21 additions and 3 deletions

View file

@ -1,2 +1,2 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r662 \cu(Sat 5 Dec 21:57:50 CET 2020)";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r663 \cu(Sun 6 Dec 01:43:50 CET 2020)";

View file

@ -307,6 +307,7 @@ Class SWWMBossBrain : BossBrain
Radius 20;
Height 40;
+NOBLOOD;
+COUNTKILL;
}
States
{
@ -421,6 +422,7 @@ Class SWWMSmoke : Actor
+NOTELEPORT;
+NOINTERACTION;
Scale .3;
FloatBobPhase 0;
}
override void PostBeginPlay()
@ -531,6 +533,7 @@ Class SWWMHalfSmoke : Actor
+NOTELEPORT;
+NOINTERACTION;
Scale 0.3;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -656,6 +659,7 @@ Class SWWMBubble : Actor
+THRUACTORS;
+NOINTERACTION;
Scale 0.5;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -756,6 +760,7 @@ Class SWWMSpark : Actor
+NOINTERACTION;
Gravity 0.2;
Scale 0.05;
FloatBobPhase 0;
}
override void Tick()
{
@ -898,6 +903,7 @@ Class SWWMChip : Actor
+NOINTERACTION;
Gravity 0.35;
Scale 0.2;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -1089,6 +1095,7 @@ Class SWWMItemFog : Actor
+ROLLCENTER;
+NOINTERACTION;
+FORCEXYBILLBOARD;
FloatBobPhase 0;
}
States
{
@ -1145,6 +1152,7 @@ Class SWWMTeleportSparkle : Actor
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
FloatBobPhase 0;
}
override void Tick()
{
@ -1172,6 +1180,7 @@ Class SWWMTeleportFog : Actor
+FORCEXYBILLBOARD;
Radius .1;
Height 0.;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -1233,6 +1242,7 @@ Class SWWMPickupFlash : Actor
+ROLLCENTER;
+NOINTERACTION;
+FORCEXYBILLBOARD;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -1332,6 +1342,7 @@ Class InvisibleSplasher : Actor
Radius 2;
Radius 2;
+NOBLOCKMAP; // needed to prevent infinite loops with some 3D floor water (yes, you read that right)
FloatBobPhase 0;
}
States
{
@ -1476,6 +1487,7 @@ Class SWWMShadow : Actor
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
FloatBobPhase 0;
}
States
{

View file

@ -374,6 +374,7 @@ Class FancyConfetti : Actor
+ROLLCENTER;
+SLIDESONWALLS;
Gravity 0.05;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -437,6 +438,7 @@ Class SuperFancySparkle : Actor
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
FloatBobPhase 0;
}
override void PostBeginPlay()
{

View file

@ -435,6 +435,7 @@ Class SWWMCasing : Actor abstract
WallBounceFactor 0.65;
BounceFactor 0.65;
BounceSound "explodium/casing";
FloatBobPhase 0;
}
override void PostBeginPlay()
{

View file

@ -729,7 +729,7 @@ Class Demolitionist : PlayerPawn
while ( (spd > 0) && bi.Next() )
{
a = bi.Thing;
if ( !a || (a == self) || (!a.bSOLID && !a.bSHOOTABLE) || a.bTHRUACTORS ) continue;
if ( !a || (a == self) || (!a.bSOLID && !a.bSHOOTABLE) || a.bTHRUACTORS || a.bCORPSE ) continue;
if ( !SWWMUtility.ExtrudeIntersect(self,a,dir*spd,8,16) ) continue;
if ( !CheckSight(a,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) ) continue;
Vector3 diff = level.Vec3Diff(pos,a.pos);
@ -883,7 +883,7 @@ Class Demolitionist : PlayerPawn
bTHRUACTORS = true;
for ( int i=1; i<=8; i++ )
{
if ( (spd > 0) && !bumped && !TryMove(Vec2Offset(steppy.x,steppy.y),1,false,tm) && BlockingLine )
if ( (spd > 0) && !bumped && !TryMove(Vec2Offset(steppy.x,steppy.y),1,false,tm) && SWWMUtility.BlockingLineIsBlocking(self,Line.ML_BLOCKEVERYTHING|Line.ML_BLOCKING|Line.ML_BLOCK_PLAYERS) )
{
Vector3 wallnorm = (-BlockingLine.delta.y,BlockingLine.delta.x,0).unit();
int lside = 1;
@ -2336,6 +2336,7 @@ Class DashTrail : Actor
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -2383,6 +2384,7 @@ Class DashTrail2 : Actor
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -2640,6 +2642,7 @@ Class DemolitionistSelfLight : Actor
+NOBLOCKMAP;
+DONTSPLASH;
+NOINTERACTION;
FloatBobPhase 0;
}
bool activelight()
{