View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002918 | FSSCP | gameplay | public | 2013-09-14 17:48 | 2015-08-31 05:09 |
Reporter | Apollo | Assigned To | MageKing17 | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
OS | Windows 7 | OS Version | Home Edition | ||
Product Version | 3.7.0 | ||||
Target Version | 3.7.4 | Fixed in Version | 3.7.3 | ||
Summary | 0002918: +Max Glide Speed is broken | ||||
Description | "+Max Glide Speed:" becomes completely nonfunctional if the player releases the acceleration or deceleration keys before they press either of the glide keys. This makes it possible to glide at afterburner speed for an indefinite period of time, causing a wide variety of mechanic imbalances. Most obviously, engine power has little worth. | ||||
Steps To Reproduce | 1. Run attached mod with 3.7.0 or 3.7.1 (other builds seem to work too). 2. Load "glidetest.fs2" in the mission simulator. 3. Without changing to a different ship, start the mission. You will find that the Ulysses's tabled max gliding speed (70 m/s) only works when the acceleration or deceleration keys are held down when the glide key is pressed. For convenience, you may wish to change the default glide key binding. | ||||
Additional Information | Listed as major because a feature is basically broken. | ||||
Tags | No tags attached. | ||||
|
|
|
Reproducible |
|
Marking for code review because MageKing17 says that this is actually intended behavior. |
|
It should be possible to add, say, a game_settings.tbl flag to allow mods to alter this behavior, but I think this ultimately is a feature request, given that the code intentionally (both by the code and the comments) doesn't decay velocity when the ship isn't actively thrusting. I've assigned this to myself because I think it wouldn't be hard to do, but I don't see any reason to crowbar this into 3.7.2. (If anybody else wants to take a look or try their hand at this, the relevant code seems to be in physics.cpp, especially line 719.) |
|
physics.cpp.patch (784 bytes)
Index: code/physics/physics.cpp =================================================================== --- code/physics/physics.cpp (revision 11296) +++ code/physics/physics.cpp (working copy) @@ -715,8 +715,7 @@ vm_vec_scale_add2(&pi->desired_vel, &orient->vec.rvec, xVal); vm_vec_scale_add2(&pi->desired_vel, &orient->vec.uvec, yVal); - // Only do the glide cap if we have one and are actively thrusting in some direction. - if ( curGlideCap >= 0.0f && (ci->forward != 0.0f || ci->sideways != 0.0f || ci->vertical != 0.0f) ) { + if ( curGlideCap >= 0.0f ) { // so if negative, don't bother with speed cap float currentmag = vm_vec_mag(&pi->desired_vel); if ( currentmag > curGlideCap ) { vm_vec_scale( &pi->desired_vel, curGlideCap / currentmag ); |
|
After this conversation on the forum, I think it's time to take another look at this: http://www.hard-light.net/forums/index.php?topic=89438.0 Given the fact that the condition was added by Sushi who can't remember why it was added, and that the impact on existing mods is fairly limited, and that the current behavior is counter-intuitive to pretty much everybody, does anybody think we actually need a flag to preserve the old behavior? Or does it make sense to just revert r8628 (as the attached patch does)? |
|
Can you poll a few mod leaders of mods which use glide? Diaspora et al.? |
|
This had a pull request (https://github.com/scp-fs2open/fs2open.github.com/pull/288) and was merged (https://github.com/scp-fs2open/fs2open.github.com/commit/9bc635e0982fdafc75b7aa213820258ac5ae0296) ten days ago. Default behavior is now the intuitive one, and the old behavior can be restored with an AI profile flag. I'd link to the wiki entry for the flag, but HLP is down at the moment; I'll edit this note to add that link later. (In case I forget to do that in the future: it's "$glide decay requires thrust:") |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-09-14 17:48 | Apollo | New Issue | |
2013-09-14 17:48 | Apollo | File Added: Glidebug.zip | |
2015-01-04 03:54 | SmashMonkey | Note Added: 0016438 | |
2015-01-04 07:21 | Goober5000 | Note Added: 0016440 | |
2015-01-04 07:21 | Goober5000 | Status | new => code review |
2015-01-04 07:21 | Goober5000 | Target Version | => 3.7.2 |
2015-01-04 07:44 | MageKing17 | Note Added: 0016442 | |
2015-01-04 07:44 | MageKing17 | Assigned To | => MageKing17 |
2015-01-04 07:44 | MageKing17 | Priority | high => normal |
2015-01-04 07:44 | MageKing17 | Severity | major => feature |
2015-01-04 07:44 | MageKing17 | Status | code review => assigned |
2015-01-04 07:44 | MageKing17 | Target Version | 3.7.2 => |
2015-04-07 19:55 | MageKing17 | File Added: physics.cpp.patch | |
2015-04-07 19:58 | MageKing17 | Note Added: 0016609 | |
2015-04-07 19:58 | MageKing17 | Status | assigned => code review |
2015-04-07 19:58 | MageKing17 | Severity | feature => minor |
2015-04-09 01:34 | Goober5000 | Note Added: 0016624 | |
2015-08-31 05:09 | MageKing17 | Note Added: 0016769 | |
2015-08-31 05:09 | MageKing17 | Status | code review => resolved |
2015-08-31 05:09 | MageKing17 | Resolution | open => fixed |
2015-08-31 05:09 | MageKing17 | Fixed in Version | => 3.7.3 |
2015-08-31 05:09 | MageKing17 | Target Version | => 3.7.4 |