Posted: Sat Jun 11, 2011 11:06 am
you could set fl_onground regardless of the solidity. really the only reason to not do so is to ensure that tne entity on top is able to clear the onground flag again next frame if the entity below movetogoals away or such.
movetype_walk entities generally fully reevaluate anyway, so if the ent above has that movetype, you can set its onground flag safely even if the ent below is not movetype_push.
movetype_push is safe because that code does an explicit check for the things sitting on top of it.
the issue comes when you have health/ammo boxes/etc sitting on top of an explobox - you don't want the movetype_toss item above getting the onground flag, because if nothing clears it once set, the item will never drop to the actual ground.
solid_bsp is not really relevent for anything in this regard. if anything, you'd be best changing the check to not be able to gain traction when standing on a solid_slidebox than to only gain traction on solid_bsp, that is if you wanted to continue to not gain traction on the heads of monsters.
movetype_walk entities generally fully reevaluate anyway, so if the ent above has that movetype, you can set its onground flag safely even if the ent below is not movetype_push.
movetype_push is safe because that code does an explicit check for the things sitting on top of it.
the issue comes when you have health/ammo boxes/etc sitting on top of an explobox - you don't want the movetype_toss item above getting the onground flag, because if nothing clears it once set, the item will never drop to the actual ground.
solid_bsp is not really relevent for anything in this regard. if anything, you'd be best changing the check to not be able to gain traction when standing on a solid_slidebox than to only gain traction on solid_bsp, that is if you wanted to continue to not gain traction on the heads of monsters.