View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002188 | FSSCP | docking | public | 2010-04-21 10:49 | 2012-12-10 03:11 |
| Reporter | Ransom Arceihn | Assigned To | Admiral MS | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | 3.6.12 RC1 | ||||
| Summary | 0002188: Disabling a transport in the process of undocking makes it impossible to dock with | ||||
| Description | That just about covers it, really. If a transport is disabled before it's finished undocking, any other transports have a hell of a time trying to dock with it. See the attached mission, in which an Isis ineffectually humps an Elysium. Interestingly, if you raise the time compression to 64x it will succeed. It's also worth noting that if the transport is disabled any earlier, the Isis simply ignores the dock order altogether. | ||||
| Tags | No tags attached. | ||||
|
2010-04-21 10:49
|
|
|
|
If you mean the ship the dock the transport was docked to can no longer be used then that is retail behavior. Basically the dock becomes unusable as it is blocked by the transport. I believe destroying the disabled ship will allow docking to resume normally. Been awhile since I played any missions involving those docking procedures though. |
|
|
I mean the transport that was docked, not the ship it was docked to. |
|
|
OK then that is a different scenario. Just out of curiosity if the transport has more then one dock can a ship dock to the other dock? Knowing that might help narrow things down. |
|
2010-04-22 11:19
|
|
|
|
Using an Argo undocking from its frontside port and then trying to dock the Isis with its bottom port encounters the same issue. Added transporttest2.fs2 to demonstrate. |
|
|
Bug confirmed with both missions on 9357. NOTE: Both missions have three weapons that throw debug warnings on mission load, but they don't affect the mission/bug in question. I'd fix it but we don't need 4 attached files to sort through later. |
|
|
Cause is a an if/else if construction in collision detection that doesn't trigger correctly for all cases to disable collision while docking. Patch uploaded: dock_collision.patch |
|
|
dock_collision.patch (442 bytes)
Index: code/object/collideshipship.cpp
===================================================================
--- code/object/collideshipship.cpp (revision 9405)
+++ code/object/collideshipship.cpp (working copy)
@@ -72,7 +72,9 @@
if (aip1->goal_objnum == OBJ_INDEX(objp2)){
return 1;
}
- } else if (aip2->mode == AIM_DOCK) {
+ }
+
+ if (aip2->mode == AIM_DOCK) {
if (aip2->goal_objnum == OBJ_INDEX(objp1)){
return 1;
}
|
|
|
Tested. I assumed this would be tough to track down, but your patch fixes the problem exactly. |
|
|
Fix committed to trunk in 9407 |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2010-04-21 10:49 | Ransom Arceihn | New Issue | |
| 2010-04-21 10:49 | Ransom Arceihn | Status | new => assigned |
| 2010-04-21 10:49 | Ransom Arceihn | Assigned To | => Goober5000 |
| 2010-04-21 10:49 | Ransom Arceihn | File Added: transporttest.fs2 | |
| 2010-04-21 20:51 | FUBAR-BDHR | Note Added: 0011903 | |
| 2010-04-22 05:45 | Ransom Arceihn | Note Added: 0011904 | |
| 2010-04-22 08:46 | FUBAR-BDHR | Note Added: 0011905 | |
| 2010-04-22 11:19 | Ransom Arceihn | File Added: transporttest2.fs2 | |
| 2010-04-22 11:20 | Ransom Arceihn | Note Added: 0011906 | |
| 2012-11-20 00:54 | MjnMixael | Note Added: 0014104 | |
| 2012-12-07 23:32 | Admiral MS | Note Added: 0014352 | |
| 2012-12-07 23:32 | Admiral MS | File Added: dock_collision.patch | |
| 2012-12-08 07:16 | MjnMixael | Note Added: 0014355 | |
| 2012-12-08 19:53 | The_E | Note Added: 0014358 | |
| 2012-12-08 19:53 | The_E | Status | assigned => resolved |
| 2012-12-08 19:53 | The_E | Resolution | open => fixed |
| 2012-12-10 03:11 | Goober5000 | Assigned To | Goober5000 => Admiral MS |