NSMonster: use PMoveCustom_RunStandardPlayerPhysics instead of the engine, as it overrides
our hitcontentsmask. This is required for monster/bot clips. Client: If an entity gets removed, ensure the .skeletonindex gets deleted.
This commit is contained in:
parent
7f440a2885
commit
6b1af093bb
4 changed files with 12 additions and 3 deletions
|
@ -729,6 +729,10 @@ CSQC_Ent_Remove(void)
|
||||||
if (self.isCSQC) {
|
if (self.isCSQC) {
|
||||||
NSEntity me = (NSEntity)self;
|
NSEntity me = (NSEntity)self;
|
||||||
me.ClientRemove();
|
me.ClientRemove();
|
||||||
|
|
||||||
|
if (me.skeletonindex)
|
||||||
|
skel_delete(me.skeletonindex);
|
||||||
|
|
||||||
remove(self);
|
remove(self);
|
||||||
} else {
|
} else {
|
||||||
remove(self);
|
remove(self);
|
||||||
|
|
|
@ -543,7 +543,8 @@ NSMonster::NewRoute(vector destination)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const int CONTENTBITS_MONSTER = CONTENTBIT_SOLID|0x00000002i|CONTENTBIT_BODY|CONTENTBIT_MONSTERCLIP;
|
const int CONTENTBITS_MONSTER = CONTENTBIT_SOLID|CONTENTBIT_BODY|CONTENTBIT_MONSTERCLIP|CONTENTBIT_BOTCLIP;
|
||||||
|
void PMoveCustom_RunPlayerPhysics(entity target);
|
||||||
|
|
||||||
void
|
void
|
||||||
NSMonster::Physics(void)
|
NSMonster::Physics(void)
|
||||||
|
@ -568,7 +569,7 @@ NSMonster::Physics(void)
|
||||||
WalkRoute();
|
WalkRoute();
|
||||||
|
|
||||||
hitcontentsmaski = CONTENTBITS_MONSTER;
|
hitcontentsmaski = CONTENTBITS_MONSTER;
|
||||||
runstandardplayerphysics(this);
|
PMoveCustom_RunPlayerPhysics(this);
|
||||||
SetOrigin(origin);
|
SetOrigin(origin);
|
||||||
IdleNoise();
|
IdleNoise();
|
||||||
|
|
||||||
|
|
|
@ -510,7 +510,8 @@ NSTalkMonster::Physics(void)
|
||||||
}
|
}
|
||||||
CheckRoute();
|
CheckRoute();
|
||||||
WalkRoute();
|
WalkRoute();
|
||||||
runstandardplayerphysics(this);
|
hitcontentsmaski = CONTENTBITS_MONSTER;
|
||||||
|
PMoveCustom_RunPlayerPhysics(this);
|
||||||
SetOrigin(origin);
|
SetOrigin(origin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -572,6 +572,9 @@ PMoveCustom_RunPlayerPhysics(entity target)
|
||||||
self.dimension_solid = 254;
|
self.dimension_solid = 254;
|
||||||
self.dimension_hit = 254;
|
self.dimension_hit = 254;
|
||||||
|
|
||||||
|
if (self.maxspeed <= 0)
|
||||||
|
self.maxspeed = 240;
|
||||||
|
|
||||||
/* call accelerate before and after the actual move,
|
/* call accelerate before and after the actual move,
|
||||||
* with half the move each time. this reduces framerate dependence.
|
* with half the move each time. this reduces framerate dependence.
|
||||||
* and makes controlling jumps slightly easier */
|
* and makes controlling jumps slightly easier */
|
||||||
|
|
Loading…
Reference in a new issue