mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-09 17:52:08 -10:00
There are a lot of changes here that should probably be examined, namely the Debug Console (which had conflicts) and Yarn's "any resolution" mainhalls code (Which also had conflicts) but for the most part this should be fairly clean. git-svn-id: svn://svn.icculus.org/fs2open/branches/antipodes@10912 387891d4-d844-0410-90c0-e4c51a9137d3
120 lines
2.6 KiB
C++
120 lines
2.6 KiB
C++
// FictionViewerDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "fred.h"
|
|
#include "FictionViewerDlg.h"
|
|
#include "missionui/fictionviewer.h"
|
|
#include "gamesnd/eventmusic.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// FictionViewerDlg dialog
|
|
|
|
|
|
FictionViewerDlg::FictionViewerDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(FictionViewerDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(FictionViewerDlg)
|
|
m_story_file = _T("");
|
|
m_font_file = _T("");
|
|
m_voice_file = _T("");
|
|
m_fiction_music = 0;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void FictionViewerDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(FictionViewerDlg)
|
|
DDX_Text(pDX, IDC_STORY_FILE, m_story_file);
|
|
DDX_Text(pDX, IDC_FONT_FILE, m_font_file);
|
|
DDX_Text(pDX, IDC_VOICE_FILE, m_voice_file);
|
|
DDX_CBIndex(pDX, IDC_FICTION_MUSIC, m_fiction_music);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(FictionViewerDlg, CDialog)
|
|
//{{AFX_MSG_MAP(FictionViewerDlg)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// FictionViewerDlg message handlers
|
|
|
|
BOOL FictionViewerDlg::OnInitDialog()
|
|
{
|
|
int i;
|
|
CComboBox *box;
|
|
|
|
box = (CComboBox *) GetDlgItem(IDC_FICTION_MUSIC);
|
|
box->AddString("None");
|
|
for (i=0; i<Num_music_files; i++){
|
|
box->AddString(Spooled_music[i].name);
|
|
}
|
|
|
|
// init variables
|
|
m_story_file = _T(fiction_file());
|
|
m_font_file = _T(fiction_font());
|
|
m_voice_file = _T(fiction_voice());
|
|
m_fiction_music = Mission_music[SCORE_FICTION_VIEWER] + 1;
|
|
|
|
CDialog::OnInitDialog();
|
|
UpdateData(FALSE);
|
|
return TRUE;
|
|
}
|
|
|
|
void FictionViewerDlg::OnOK()
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
// load it up
|
|
fiction_viewer_reset();
|
|
fiction_viewer_load((const char *)(LPCSTR)m_story_file, (const char *)(LPCSTR)m_font_file, (const char *)(LPCSTR)m_voice_file);
|
|
|
|
// set music
|
|
Mission_music[SCORE_FICTION_VIEWER] = m_fiction_music - 1;
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void FictionViewerDlg::OnCancel()
|
|
{
|
|
// TODO: Add extra cleanup here
|
|
|
|
CDialog::OnCancel();
|
|
}
|
|
|
|
void FictionViewerDlg::OnClose()
|
|
{
|
|
int z;
|
|
|
|
UpdateData(TRUE);
|
|
|
|
if (query_modified()) {
|
|
z = MessageBox("Do you want to keep your changes?", "Close", MB_ICONQUESTION | MB_YESNOCANCEL);
|
|
if (z == IDCANCEL){
|
|
return;
|
|
}
|
|
|
|
if (z == IDYES) {
|
|
OnOK();
|
|
return;
|
|
}
|
|
}
|
|
|
|
CDialog::OnClose();
|
|
}
|
|
|
|
int FictionViewerDlg::query_modified()
|
|
{
|
|
return strcmp(m_story_file, fiction_file()) || strcmp(m_font_file, fiction_font()) ||
|
|
strcmp(m_voice_file, fiction_voice()) || m_fiction_music != (Mission_music[SCORE_FICTION_VIEWER] + 1);
|
|
}
|