Page 1 of 1

Air Control property for PlayerPawn

PostPosted: Fri Jun 07, 2019 5:52 pm
by Snarboo
I've run into an issue with a mod project I'm working on: I need the player to have greater air control on an actor level, but currently the only way to alter air control is by overriding air control on a level wide basis using ACS or ZScript. I am requesting that the PlayerPawn have its own Air Control property as a result.

I know there are ways around this. For example, putting the following code on my custom PlayerPawn class works:
Code: Select allExpand view
override void PostBeginPlay()
   {
      level.aircontrol = 0.1;
      Super.PostBeginPlay();
   }


...but this seems like a gross hack that will inevitably cause problems, even if it works in the short term. It also overrides Air Control for all player classes, even those where it doesn't make sense. I could completely rewrite the jumping and gravity code for each custom PlayerPawn, but that seems excessive for such a small change. Alternatively, there's always ACS, but that has the same issue of overriding Air Control for everybody. The way Air Control is handled is also inconsistent with how other properties, such as Gravity, are handled. Gravity can be handled on a level basis, sector basis (UDMF), and actor basis.

Basically, I don't want to override the level's Air Control property if it's been set for a reason, especially if doing so interferes with other players. This property would also make Air Control more consistent with things like Gravity.

I'm not sure how feasible this suggestion is, but a prior thread suggesting the same feature came up with a possible solution.

Edit:
Would allowing UDMF to set Air Control on a per sector basis be worth adding, too? Obviously that's secondary to the primary suggestion. :p