When bouncing/rotating (non-stationary state) - level.time is passed to ent->s.time and RotateAroundDirection( ent.axis, cg.time / 4 ) is used
While at stationary RotateAroundDirection( ent.axis, s1->time ) is used - so level.time/4 sould be passed to ent->s.time store last visible orientation
Of course you can pass any random value to ent->s.time but then it will look like some unexpected jerky rotation at landing - while storing last visible orientation will give much more natural(-expected) behavior
Checking if classname is grenade seems unnecessary. Grenade is the only q3a/missionpack missile with EF_BOUNCE_HALF (so only one that will run that code), but if there were others they should probably do it too.
Created attachment 2793 [details] Fix Grenades always placed at the same orientation after bouncing
>Can I have your opinion on Zack's message please? Looks reasonable