PMove_Custom: unset the FL_ONLADDER flag when not directly facing a ladder

This commit is contained in:
Marco Cawthorne 2022-09-11 14:14:40 -07:00
parent 02a1218ee7
commit 843ef32908
Signed by: eukara
GPG Key ID: CE2032F0A2882A22
1 changed files with 17 additions and 0 deletions

View File

@ -77,6 +77,7 @@ void
PMoveCustom_Categorize(void)
{
int contents;
bool inladder = false;
tracebox(self.origin, self.mins, self.maxs, self.origin - [0,0,1], MOVE_NORMAL, self);
@ -107,6 +108,22 @@ PMoveCustom_Categorize(void)
self.hitcontentsmaski = oldhitcontents;
if (trace_endcontentsi & CONTENTBIT_FTELADDER) {
/* place the ladder into a virtual space */
vector ladderpos = trace_ent.absmin + (0.5f * (trace_ent.absmax - trace_ent.absmin));
ladderpos[2] = self.origin[2];
/* test our view angles against them */
makevectors(input_angles);
vector vecDelta = normalize(ladderpos - self.origin);
float flFov = vecDelta * v_forward;
/* we're facing it... */
if (flFov > 0.0f) {
inladder = true;
}
}
if (inladder == true) {
self.flags |= FL_ONLADDER;
} else {
self.flags &= ~FL_ONLADDER;