2021-04-17 16:19 EDT

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000272FSSCPgameplaypublic2007-11-22 14:00
Assigned Totaylor 
Product Version 
Target VersionFixed in Version 
Summary0000272: Red-Alert bugs
DescriptionI noticed two bugs in the Red-Alert feature:
If I step back to the previous mission, the wingmen I had lost in the previous(which is the next in the campaign tree) mission do not appear. Presumably, the programme reads them as dead.
The next one is that if there is a chain of red-alert mission(in my case 3 missions), I can only step one mission back. It means that if I step back from mission 3 to mission 2, and I still want to step back to mission 1, I cannot because mission 2 is loaded in again.
Additional InformationI experienced these problems while testing my newest campaign, but I am quite sure that I did nothing wrong. I even did not check the Red Alert carry status for my wingmen(bug 1).
If you need more info, PM me at HLP because I notice it more easily.
TagsNo tags attached.
Attached Files

child of 0000481resolvedZacam Problems related to the pilot file code (container for multiple bugs) 



taylor (administrator)

Have you got some missions to test with? If the campaign is release please let me know where to download it. I don't know of any chained redalert mission off-hand so it's difficult to figure out what's going on.


TopAce (reporter)

The last three missions of the Journey to Epsilon Pegasi campaign.
Download at HLP.


administrator (administrator)

HLP is down atm, is there an alternative download?


taylor (administrator)

Ok, first problem I see but I need to research the best fix. When you replay a previous mission it saves the campaign file which in turn saves the savefile. The wingman redalert status is also saved at this point. The problem is that the wrong data gets saved. I should be able to work around this though without losing anything in between. This should be relatively easy to do with a global variable to check against (like with the techroom reset stuff) but this one needs to be tested pretty well.

Second problem is a bit easier to deal with. When you go back it resets some variables to tell it what the new current (really previous) and next (really current) missions are. It never resets the previous (really previous->previous) though so it ends up just staying on the one. I'll fix and test that one today.


Goober5000 (administrator)

Er, now wait a minute. I don't think the stepping-back problem is "easily fixable" because the campaign only remembers the most recent red-alert. Every time you red-alert to a new mission, it overwrites the previously saved settings. This has been around since retail. The first time I noticed it was with the three-mission arc in Derelict when you're tracking the Shivan fleet back to its origin.

Since there's only one memory slot, this can't be fixed without enlarging the memory - either by pushing all the separate red-alert instances onto a stack (my preferred solution) or saving red-alert information for each mission in a campaign. I don't think that qualifies as an easy fix. Conceptually easy, yes; but it would require significant refactoring of the red-alert code.

If you're going to fix that, it would be a good idea to fix the related bug where if you enter a red-alert mission without having previously red-alerted, you get all the information from the last time you ever red-alerted. This should be easy to fix if you're already fixing the main bug.


taylor (administrator)

Yeah I new that was going to be a problem from the start. I've already started on that real fix though it will require a pilot file upgrade to work. With the original pilot file upgrade the redalert status info should be campaign specific and that was intentional to fix the problem of it carrying between cmapaigns. I'm changing it so that the redalert status for ALL redalert missions in a campaign are saved out. They will be mission specific so that it's always the correct status for that mission. That should properly squash the big problem.

The replay previous problem is actually bigger than you might think. It's possible to corrupt the campaign file if you keep going back, since it doesn't work. I'm not sure how exactly, only that I've been able to do it on several occasions. I'm going to go ahead and get the multiple previous thing in CVS. It's an easy change and pointed out another problem too so it's worth doing.

I'm seriously considering making the replay previous thing only work once though. A popup would appear and say that you can't go back again. The reason to do that of course is because the redalert status will only be from the other mission and it avoids that. The popup could then be easily removed when the pilot file upgrade goes in as it would already have the ability to go back properly.

I don't think this will ever be a problem for retail missions though and campaign makers could work around this by only having it need the redalert data the first time. So, the popup may not even be wanted at this point. I'll go ahead and code the popup and if it's decided that it's not needed then I just won't commit it.


Goober5000 (administrator)

How can you corrupt the campaign file if you keep going back? Is it because the campaign file isn't designed to play missions backwards, or something else?

As for the popup, go ahead and put it in. No question. This will avoid nasty nasty surprises like the one I got when I found myself having to replay all three red-alert missions with 14% hull. :(


taylor (administrator)

The savefile corruption is triggered somehow but either how or when it's saved. Perhaps a combination of the two. I've tried to figure it out but haven't succeeded. All I know for sure is that it's the redalert info specifically that get's corrupted. All info before that seems to read ok but trying to grab the redalert status data will result in a crash. I've only been able to make it happen once in the main campaign and that was doing something not typically possible. It's happened to me at least 3 times in other campaigns though, but you have to keep hitting the previous mission button 5 or 6 times before it happens.

10-4 on the popup. I'll try and get that in tonight along with the previous mission and save/status fixes. When the pilot file gets updated and the popup removed the rest of the code will already be in place.


taylor (administrator)

Ok, screw the popup. Easy enough in theory but I can't figure out how to get the thing working right. The problem comes when you have to detect whether the previous mission is a redalert mission or not. The only time you know that is after missionparse is done with it. I can store the previous type while you are playing but if you exit the game on the second mission then there is no way to know if you can go back *before* loading the previous mission.

Eehh, I'm doing that new pilot file for temporary stuff anyway. Might as well move the properly fixed redalert code into that for the time being. When the new controlconfig stuff isn't so ugly then I'll move all of it back into the main campaign savefile. That way we can go ahead and have real multiple-previous support and without having weird data problems. Needs more testing though.


taylor (administrator)

Added to a container bug, 0000481.


-Issue History
Date Modified Username Field Change
2004-11-09 13:57 TopAce New Issue
2005-03-13 20:06 taylor Note Added: 0001875
2005-03-13 20:06 taylor Status new => assigned
2005-03-13 20:06 taylor Assigned To => taylor
2005-03-14 12:15 TopAce Note Added: 0001902
2005-03-14 12:26 administrator Note Added: 0001903
2005-03-14 14:11 taylor Note Added: 0001905
2005-03-14 20:14 Goober5000 Note Added: 0001938
2005-03-14 20:34 taylor Note Added: 0001948
2005-03-14 21:29 Goober5000 Note Added: 0001953
2005-03-14 22:27 taylor Note Added: 0001954
2005-03-23 06:01 taylor Note Added: 0002028
2005-07-22 03:05 taylor Status assigned => closed
2005-07-22 03:05 taylor Note Added: 0002852
2006-10-31 23:40 taylor Relationship added child of 0000481
2006-10-31 23:40 taylor Resolution open => suspended
2007-11-22 14:00 taylor Resolution suspended => duplicate
+Issue History