G'day,

I'd like a second pair of eyes on this please.

When a ship explodes, the status is set to PEXPLODE, a countdown fuse
p_explode is set, and at a particular point in that countdown the
explosion damage is assigned to nearby ships using blowup().

I was going to add an explosion frame on a client that gave a flash of
light at the frame that the server assigns damage from an explosion.

So I went looking into when that happens.

But I found that the changes in early 2007 changed which explosion frame
was used.  Chain reactions would have gone five times faster.  Didn't
anybody notice?

Here's how it works in detail:

1.  at the time a ship explodes, p_explode is set to 10, in both the new
code and the classic code,

2.  p_explode is decremented every simulation frame,

3.  in the frame where p_explode is decremented to 6, the explosion
damage is assigned,

4.  when p_explode reaches zero, the ship status changes to PDEAD, and
p_explode is reset to 600, which doesn't matter because;

5.  when the ntserv sees the PDEAD it calls death() causing status to
change to POUTFIT.

It seems that the change from 10 fps to 50 fps should be changing step 1
to set p_explode to 50, and step 5 to assign explosion damage at a
p_explode of 30.

At the moment in the code the explosion damage is happening at explosion
time plus four fiftieths of a second (80ms), instead of four tenths of a
second (400ms).

Also, explosions are shorter than they should be; 200ms instead of
1000ms.

This should *entirely* change base ogging.

-- 
James Cameron
http://quozl.linux.org.au/