View Issue Details

IDProjectCategoryView StatusLast Update
0002188FSSCPdockingpublic2012-12-10 03:11
ReporterRansom Arceihn Assigned ToAdmiral MS  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.6.12 RC1 
Summary0002188: Disabling a transport in the process of undocking makes it impossible to dock with
DescriptionThat 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.
TagsNo tags attached.

Activities

2010-04-21 10:49

 

transporttest.fs2 (6,038 bytes)

FUBAR-BDHR

2010-04-21 20:51

developer   ~0011903

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.

Ransom Arceihn

2010-04-22 05:45

reporter   ~0011904

I mean the transport that was docked, not the ship it was docked to.

FUBAR-BDHR

2010-04-22 08:46

developer   ~0011905

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

 

transporttest2.fs2 (6,041 bytes)

Ransom Arceihn

2010-04-22 11:20

reporter   ~0011906

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.

MjnMixael

2012-11-20 00:54

manager   ~0014104

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.

Admiral MS

2012-12-07 23:32

developer   ~0014352

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

Admiral MS

2012-12-07 23:32

developer  

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;
 		}
dock_collision.patch (442 bytes)   

MjnMixael

2012-12-08 07:16

manager   ~0014355

Tested. I assumed this would be tough to track down, but your patch fixes the problem exactly.

The_E

2012-12-08 19:53

administrator   ~0014358

Fix committed to trunk in 9407

Issue History

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