I ask because I prefer to keep it, but it MAY degrade overall performance if there is LOTS of bullets in the air at once.
I'll give you the change, its simple.
if(you) event_type = EVENT_ENTITY; //hit an entity
becomes
if(you)
{
if(you.push>me.push) event_type = EVENT_ENTITY; //hit an equal or larger entity
else event_type = EVENT_IMPACT; //hit a smaller or equal object
}
Another thing to try. At the start of "mg_action", YOU may be empty,
because ME may be empty in "fire_turrmg, I cant tell.
In which case, IGNORE_YOU in the c_move does nothing.
Put this line at the top of "mg_action"
you = player; to remove this chance.
And another, IF your player-tank is a physics entity, try adding
phent_setgroup(me,2); at physics setup time to both player and any projectiles HE fires.
Members of the same physics group NEVER
physics-COLLIDE WITH EACH OTHER.
It should allow you to drop the initial c_move at the start of firing things.
And let me know IF the manual event trigger works, please.
PS Answer. Yeah, if you call c_trace, c_move, or c_rotate (at least), they will all set
the YOU pointer to whoever they hit.
If YOU is null after a sucessful hit (c_trace <> zero), then the ME hit something that ISNT an entity.
Which means WED blocks (or terrains, I think).