View Issue Details

IDProjectCategoryView StatusLast Update
0000960FSSCPgameplaypublic2006-06-30 23:54
Reporterkarajorma Assigned ToGoober5000  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformWindowsOSWindows XP HomeOS VersionSP2
Product Version3.6.9 
Summary0000960: Virgo wing fails to attack in A Game of Tag
DescriptionThis bug is basically due to a change in MissionParse.cpp. In 3.6.7 (and probably in older builds all the way back to retail) if I created Cancer wing with 4 ships and 3 waves and gave orders to Cancer 1 from the Ship Editor Cancer 5 and Cancer 9 would also automatically receive those orders. However this change in parse_create_object_sub() stopped that behaviour.

Original Code
 // set up the ai goals for this object.
 ai_add_ship_goal_sexp( sexp, AIG_TYPE_EVENT_SHIP, aip );
  if ( objp->wingnum == -1 ) // free the sexpression nodes only for non-wing ships. wing code will handle it's own case
free_sexp2(objp->ai_goals); // free up sexp nodes for reused, since they aren't needed anymore.


Modified Code
 // set up the ai goals for this object.
 ai_add_ship_goal_sexp( sexp, AIG_TYPE_EVENT_SHIP, aip );
// free up sexp nodes for reuse, since they aren't needed anymore.
  free_sexp2(objp->ai_goals);
  objp->ai_goals = -1;

The problem is that in A Game of Tag (unlike pretty much every other [V] mission) Virgo wing wasn't given any orders. Instead each ship was given individual orders. With this change in place the second wave jump in but have no orders so they simply sit there.

Adding the check so that ai_goals is only set to -1 if the ship isn't in a wing solves the problem (in the test mission I made at least) but I can't submit it unless I know why the check was removed in the first place.
TagsNo tags attached.

Activities

taylor

2006-06-27 13:58

administrator   ~0005970

Though this doesn't explain why the previous bug hunting turned up completely different and testable causes (which couldn't be identified 100%), this sounds a lot better. I had originally tracked this problem down to something in the awacs code (though maybe not directly related to it) since a revert to an older version of just that file fixed the mission problem. We couldn't track it to a particular change though, and nothing that had been changed was a bug.

This works for for me in A Game of TAG, so lets wait and hear what Goob has to say about the change here. However, I did day-by-day CVS checkouts and only started having this problem with the Feb 19th checkout, the missionparse change was made 9 days earlier. Close enough to be a coincidence I suppose, but it makes me a little leary of it all (that or my bug hunting ability, one of them is shot to hell).

The mission parse change was rev 2.151, with the following comment "fixed an old Volition bug unmasked by my parse changes".

karajorma

2006-06-27 14:28

administrator   ~0005971

Last edited: 2006-06-27 14:30

What I suspect is going on is that the bug I've spotted is masked by the one you mention.

The lack of orders is the direct cause of the problem but with the AWACS change reversed the bombers are able to spot the Warspite or Lucidity and come in to attack anyway.

That means that there are no actual bugs in the AWACs code but the legitimate changes determine whether or not Virgo can spot anyone to attack.

edited on: 06-27-06 10:30

Goober5000

2006-06-27 14:33

administrator   ~0005972

Oh crud. I need to be more verbose in my commits; I forget what that was supposed to fix. :p

I have no idea what my "fix stealth" commit was supposed to fix either, since it appears to be purely cosmetic (except for the change from ubyte to int, which shouldn't have done anything).

And now taylor and I are tracking down bugs (both this one and the docking one) to incorrect causes. I think we have a DEM-style plot hole infecting the SCP. :p

karajorma

2006-06-27 15:03

administrator   ~0005973

Last edited: 2006-06-27 15:05

Well to be fair I didn't figure this one out by tracking down the bug. I followed a hunch instead. I realised that I didn't know whether Virgo 5 should get Virgo 1's orders and made a mission to test it.
 After seeing that it didn't with current CVS versions I then realised that if it did in earlier versions it would explain everything we were seeing.

Just cause giving individual orders to all the ships in a wing is a bad FREDding habit doesn't mean I don't want to know what would happen if you did it :D

edited on: 06-27-06 11:05

Goober5000

2006-06-30 23:54

administrator   ~0006005

Okay, I put the old code back in. I don't know exactly what was "unmasked" that needed fixing, but let's hope they were fixed somewhere else. :p

Issue History

Date Modified Username Field Change
2006-06-27 10:30 karajorma New Issue
2006-06-27 10:32 karajorma Description Updated
2006-06-27 13:58 taylor Note Added: 0005970
2006-06-27 14:28 karajorma Note Added: 0005971
2006-06-27 14:30 karajorma Note Edited: 0005971
2006-06-27 14:33 Goober5000 Note Added: 0005972
2006-06-27 15:03 karajorma Note Added: 0005973
2006-06-27 15:05 karajorma Note Edited: 0005973
2006-06-30 23:54 Goober5000 Status assigned => resolved
2006-06-30 23:54 Goober5000 Resolution open => fixed
2006-06-30 23:54 Goober5000 Note Added: 0006005