Eh, s/day/month/ or something.
Now that I've actually had time to lookd at the state code, I see why niffiwan tied things to a mission flag. There's a bunch of mission cleanup and campaign saving code that doesn't get called until the debriefing is accepted, and niffiwan's new flag is needed to allow this to run. So I'm fine with this approach, in principle.
As for the patch itself, I notice that one of the newly added lines is
if ( m_always_show_goals ) {
(line 362, seen
here). This is a mismatch from the actual variable added, which is
m_end_to_mainhall.
Also, you should modify the comment "// go to main hall, tha campaign is over!" at line 1792
here. This is vitally important, because the comment was written for an earlier use and is now no longer accurate, and it is likely to confuse some future coder who sees it. (One of my pet peeves is seeing coders update a section of code in such a way as to render the comments incorrect without updating the comments. It happens all the time, frustratingly.) But this paragraph may be obsolete, because...
As for the actual
implementation of the patch, it's hard for me to tell without actually patching my local code, but I think the patch is a lot more tangled than it needs to be. We already have the "no debriefing" flag, which makes this much simpler. Just set the no-debriefing flag in end-mission, and then in debrief_accept, check for the end-to-main-hall flag and post a main hall event rather than a start-mission event.