Special Aircraft Service

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Adjusted paratrooper chute opening heights  (Read 174 times)

0 Members and 1 Guest are viewing this topic.

WxTech

  • Modder
  • member
  • Offline Offline
  • Posts: 6040
Adjusted paratrooper chute opening heights
« on: August 02, 2024, 07:03:25 PM »

I've written on this in the recent past. Some more detail, after some further adjustments. Note that heights are always AGL, or above ground level.

The heights at which paratroopers open their chutes is problematic at lower heights. Below a certain height all chutes are made to open immediately. If a pair of crew members jump simultaneously they will almost invariably open chutes at the same time and thus make contact. This triggers the tangled chute mode, and the poor little silicon lifeforms plummet to their doom. I've lowered the height at which immediate chute opening is commanded.

Additionally, when jumping from higher altitudes the chutes could open at what I consider a rather high height. Particularly so over mountainous terrain! I've applied a globally lower maximum opening height. The graph and code below show the scheme I've adopted at this time. The X axis is the height at the moment of the crew member jumping. The blue line shows the maximum height at the time of opening and the red line the minimum height. The actual height is randomly selected between these limits. This really helps to reduce the number of tangled chutes when crew leap in pairs!

Below 150m the chute is made to open immediately. Between a jump height of 150m and 500m the chute will open between the limits of immediate and down to as low as 150m.



From Paratrooper.class:
Code: [Select]
public Master(Actor actor)
{
super(actor);
actor.pos.getAbs(Paratrooper.p);
float f = (float)Paratrooper.p.z - Engine.land().HQ((float)Paratrooper.p.x, (float)Paratrooper.p.y);
float floor = f;
float ceiling = f;
if(f < 150F)
turn_para_on_height = f;
else
if(f < 500F)
{
floor = 150F;
turn_para_on_height = World.Rnd().nextFloat(floor, ceiling);
}
else
if(f >= 4000F)
turn_para_on_height = World.Rnd().nextFloat(1000F, 2000F);
else
{
floor = (380F + 2000F * ((f - 100F) / 5000F)) * 0.518F;
ceiling = (500F + 1500F * ((f - 500F) / 3500F));
turn_para_on_height = World.Rnd().nextFloat(floor, ceiling);
}
Logged
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. - Hyman Rickover (but probably predating his use.)
Pages: [1]   Go Up
 

Page created in 0.035 seconds with 24 queries.