View Issue Details

IDProjectCategoryView StatusLast Update
0001482FSSCPgameplaypublic2007-09-29 04:21
Reporterz80 Assigned ToTurey  
PrioritynormalSeverityminorReproducibilitysometimes
Status resolvedResolutionfixed 
Product Version3.6.9 
Fixed in Version3.6.10 
Summary0001482: Derelict campaign's missions are skipped even if not commited if you quit the game at the mission debriefing.
DescriptionPlaying a campaign mission, replay it many times from debriefing. On debriefing screen, quit the main hall without having commited the mission (ESC key) and at end quit the game.
The next time you run the game and follow the campaing, you 'll be on the next campaign's mission and the skipped mission will not appear in the tech room simulation screen.
TagsNo tags attached.

Activities

z80

2007-08-31 02:12

reporter   ~0008424

Last edited: 2007-08-31 02:13

In that case, here is a workaround :

Decrement the long word at offset 0x1C in the file <player>.Derelict.cs2 in folder <Game directory>\data\players\single.

I've noticed that in the case of this bug, the skipped mission's data are apparently missing in this file.

z80

2007-08-31 03:34

reporter   ~0008425

Sorry, there's a mistranslate in the resume, read :

Derelict campaign's missions are skipped even if not ACCEPTED if you quit the game at the mission debriefing.

rather than

Derelict campaign's missions are skipped even if not commited if you quit the game at the mission debriefing.


Same correction has to apply to the description, read :

Playing a campaign mission, replay it many times from debriefing. On debriefing screen, quit the main hall without having ACCEPTED the mission (ESC key) and at end quit the game.

rather than

Playing a campaign mission, replay it many times from debriefing. On debriefing screen, quit the main hall without having commited the mission (ESC key) and at end quit the game.

Turey

2007-08-31 05:04

developer   ~0008428

When you hit escape, which option do you choose?

z80

2007-08-31 05:05

reporter   ~0008430

Last edited: 2007-08-31 05:06

I'm checking actual CVS HEAD (~ 3.6.10) and note that in file code/missionui/missiondebrief.cpp there is in the [debrief_init] method a systematic update of campaign structure :

    if ( (Game_mode & GM_CAMPAIGN_MODE) && ( !MULTIPLAYER_CLIENT ) ) {
        // MUST store goals and events first - may be used to evaluate next mission
        // store goals and events
        mission_campaign_store_goals_and_events_and_variables();

        // evaluate next mission
        mission_campaign_eval_next_mission();
    }

The [mission_campaign_eval_next_mission()] call will apparently update the mission number in the campaign structure as soon as the player get in the debriefing. However, it's seem's that with this code the mission data are normaly stored in the structure, so that a later call to the method [campaign_savefile_save] from file code/mission/missioncampaign.cpp issued when quiting the game would have logicaly saved the mission data, but i've verified that mission data aren't saved in campaign file in the case of this bug.

I'll check what's exactly done in debriefing process.

z80

2007-08-31 05:10

reporter   ~0008432

Turey : When the mission is a success, and that i press ESC in the debriefing without having accept the result, the game drive me to the deck.

Turey

2007-08-31 23:27

developer   ~0008448

Last edited: 2007-08-31 23:39

You don't get this prompt? Because if I hit that third option, it works for me.

http://www.fsoinstaller.com/images/debrief.png

EDIT: That's odd, now it's not working. hrm.

z80

2007-09-01 00:24

reporter   ~0008449

Turey : After completing successfully a mission and replay it many times, it's seem than sometimes i'dont get this prompt when using ESC key on the debriefing. The game drive then me to the deck, from which i quit the game.
In that case, when i rerun the game and return to the campaign (derelict), i got the next mission. The skipped mission doesn't appear in the mission simulator at tech room and the mission's data are missing in the campaign data file (<player>.<campaign>.cs2).
This behaviour does not occur frequently, so reproduce isn't easy. I got it twice since playing the derelict campaign, after fifteen mission i think (last occurence at scientific vessels escort to tau sigma mission). I've keep a backup of resultant pilot and campaign files that i'll join.

2007-09-01 00:27

 

z80scp.Derelict.cs2 (51,699 bytes)

2007-09-01 00:27

 

z80scp.pl2 (1,980 bytes)

2007-09-01 00:27

 

z80scp.FreeSpace2.cs2 (7,794 bytes)

Turey

2007-09-01 00:57

developer   ~0008450

The "Replay Later" button should now be fixed in HEAD. Try it out.

You say you don't get the prompt sometimes? The code's quite clear, if you complete the mission and hit escape, you get the prompt. Are you sure that you don't get it?

z80

2007-09-01 01:05

reporter   ~0008451

Turey: I don't remember having it on the moment. I remember than something seem wrong after leaving the campaign (because i meet this bug sooner), so, as i was always in the game, i return to the campaign and be boarded on the escort mission and leave immediatly the briefing. I quit then the game, but when i rerun the game later i get the next mission in the campaign and the escort mission wasn't appear in the simulator.

z80

2007-09-01 01:47

reporter   ~0008452

I'll check the [debrief_do_keys] method and your contribution fo rev 2.60 of MissionDebrief.cpp, i note that the prompt could only be missed if the <Turned_traitor> var is true and if the <Must_replay_mission> is false at the same, this case drive to the [gameseq_post_event(GS_EVENT_END_GAME);] statement which correspond to the main hall / deck according to commentary.

This case seems fit with the trouble i've met, so did you think that <Turned_traitor> && !<Must_replay_mission> is a possible resulting issue of a mission ?

Turey

2007-09-01 02:27

developer   ~0008454

I haven't been able to get that combination to occur.

z80

2007-09-01 02:36

reporter   ~0008455

And i've got a "succesful" debriefing, which seem wouldn't be possible if <Turned_traitor> was true. I don't see, i return to the game :-) and i'll pay more attention to the game if i feel i've got at new the same trouble.

z80

2007-09-03 00:51

reporter   ~0008469

Last edited: 2007-09-03 00:56

Same problem, this time at the aurigan capture mission ("The sting"), but without replay. I got the debriefing, press ESC, get this time the prompt, select "no, retry later", leave the game. When i rerun, i was a the next mission. seem that's not rely to the prompt call. Campaign and pilot's files backuped, if wanted.

EDIT: I remember the "No, ... later" require a correction, and i'm always on 3.6.9, so don't care. I'll recompile 3.6.10 and reddo the campaign with it to check this later.

Turey

2007-09-29 04:21

developer   ~0008543

Was finally able to track down exactly why this happens. When the game starts up, it loads Campaign.next_mission into Game_current_mission_filename. Game_current_mission_filename is then used to decide which mission is actually played. When a mission is completed, Campaign.next_mission is incremented. If the player accepts, Game_current_mission_filename is updated, and the next mission starts. If the player retries, then Game_current_mission_filename is left alone, and the same mission is played again. Even if the player retries the mission, Campaign.next_mission is still incremented. This isn't a problem normally, as Game_current_mission_filename decides what mission is played. However if the player quits the game completely, then Game_current_mission_filename is tossed and Campaign.next_mission is saved in the player file. When the game is started again, it loads Campaign.next_mission into Game_current_mission_filename, and as a result a mission is skipped.

Issue History

Date Modified Username Field Change
2007-08-31 01:54 z80 New Issue
2007-08-31 02:12 z80 Note Added: 0008424
2007-08-31 02:13 z80 Note Edited: 0008424
2007-08-31 02:13 z80 Note Edited: 0008424
2007-08-31 03:34 z80 Note Added: 0008425
2007-08-31 04:39 Turey Status new => assigned
2007-08-31 04:39 Turey Assigned To => Turey
2007-08-31 04:41 Turey Status assigned => confirmed
2007-08-31 05:04 Turey Note Added: 0008428
2007-08-31 05:05 z80 Note Added: 0008430
2007-08-31 05:06 z80 Note Edited: 0008430
2007-08-31 05:10 z80 Note Added: 0008432
2007-08-31 23:27 Turey Note Added: 0008448
2007-08-31 23:39 Turey Note Edited: 0008448
2007-09-01 00:24 z80 Note Added: 0008449
2007-09-01 00:27 z80 File Added: z80scp.Derelict.cs2
2007-09-01 00:27 z80 File Added: z80scp.pl2
2007-09-01 00:27 z80 File Added: z80scp.FreeSpace2.cs2
2007-09-01 00:57 Turey Note Added: 0008450
2007-09-01 01:05 z80 Note Added: 0008451
2007-09-01 01:47 z80 Note Added: 0008452
2007-09-01 02:27 Turey Note Added: 0008454
2007-09-01 02:36 z80 Note Added: 0008455
2007-09-03 00:51 z80 Note Added: 0008469
2007-09-03 00:56 z80 Note Edited: 0008469
2007-09-29 04:21 Turey Status confirmed => resolved
2007-09-29 04:21 Turey Fixed in Version => 3.6.10
2007-09-29 04:21 Turey Resolution open => fixed
2007-09-29 04:21 Turey Note Added: 0008543