Forum

checkbottom ()

Discuss programming in the QuakeC language.

Moderator: InsideQC Admins

checkbottom ()

Postby Cobalt » Mon Feb 10, 2014 5:22 pm

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?
User avatar
Cobalt
 
Posts: 445
Joined: Wed Jun 10, 2009 2:58 am
Location: New England, USA

Re: checkbottom ()

Postby Spike » Tue Feb 11, 2014 6:55 am

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.
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK


Return to QuakeC Programming

Who is online

Users browsing this forum: No registered users and 1 guest