View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000960 | FSSCP | gameplay | public | 2006-06-27 10:30 | 2006-06-30 23:54 |
Reporter | karajorma | Assigned To | Goober5000 | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | Windows | OS | Windows XP Home | OS Version | SP2 |
Product Version | 3.6.9 | ||||
Summary | 0000960: Virgo wing fails to attack in A Game of Tag | ||||
Description | This 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. | ||||
Tags | No tags attached. | ||||
|
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". |
|
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 |
|
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 |
|
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 |
|
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 |
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 |