Page 1 of 1

checkbottom ()

Posted: Mon Feb 10, 2014 5:22 pm
by Cobalt
Is this a pretty good def for this function:

Code: Select all

float (entity e) checkbottom = #40; // e.absmin_z is fully touching world
?

I noticed in some other modders code :

Code: Select all

// if the corpse is on a ledge, or in mid-air, gib it to prevent hang-ups
if (!checkbottom(self) || (other.absmin_z + 4 < self.absmin_z))
I just never realized checkbottom can be used to detect a ledge. Though Im not an engine coder yet, It seems to scan the entire min_z of the model
and I guess looks for contact with either world or a BSP, and will be true if the entire face is in contact? If this is the case, could that code be hacked to return similar functions for the sides and top of the model?

Re: checkbottom ()

Posted: Tue Feb 11, 2014 6:55 am
by Spike
checkbottom does tracelines at certain points. quake's simple geometry generally means this is sufficiently reliable to avoid false positives.
it returns false if any one of those traces goes down too far.

don't expect it to be happy on slopes.