14 #include "CampaignTreeWnd.h"
15 #include "CampaignEditorDlg.h"
16 #include "CampaignTreeView.h"
17 #include "Management.h"
20 #include "MissionSave.h"
21 #include "InitialShips.h"
27 static char THIS_FILE[] = __FILE__;
52 ON_COMMAND(ID_CPGN_FILE_OPEN, OnCpgnFileOpen)
72 LoadAccelTable(
"IDR_ACC_CAMPAIGN");
78 if (!m_splitter.CreateStatic(
this, 1, 2))
80 TRACE0(
"Failed to CreateStaticSplitter\n");
85 if (!m_splitter.CreateView(0, 0, RUNTIME_CLASS(
campaign_editor), CSize(0, 0), pContext))
87 TRACE0(
"Failed to create first pane\n");
92 if (!m_splitter.CreateView(0, 1, RUNTIME_CLASS(
campaign_tree_view), CSize(240, 100), pContext))
94 TRACE0(
"Failed to create second pane\n");
101 m_splitter.SetColumnInfo(0, s.cx, 0);
102 m_splitter.SetColumnInfo(1, 0, 0);
103 m_splitter.RecalcLayout();
126 CFileDialog dlg(
TRUE,
"fc2", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"FreeSpace Campaign files (*.fc2)|*.fc2||",
this);
127 if (dlg.DoModal() == IDOK)
129 name = dlg.GetFileName();
157 CFrameWnd::OnDestroy();
206 char *old_name = NULL;
207 char campaign_path[256];
215 CFileDialog dlg(
FALSE,
"fc2", old_name, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"FreeSpace Campaign files (*.fc2)|*.fc2||",
this);
216 if (dlg.DoModal() == IDOK)
218 name = dlg.GetFileName();
229 string_copy(campaign_path, dlg.GetPathName(), 256);
264 CFrameWnd::OnClose();
281 r =
MessageBox(
"This campaign has been modified. Save changes first?",
"Campaign Modified",
302 MessageBox(
"No errors detected in campaign",
"Woohoo!");
318 return internal_error(
"Branch #%d has illegal source mission", i);
320 return internal_error(
"Branch #%d has illegal target mission", i);
336 true_at[
z] = mcount[
z];
354 if (mcount[i] && true_at[i] < mcount[i])
368 if (
error(
"No top level mission present in tree"))
372 return internal_error(
"More than one top level mission present in tree");
387 nprintf((
"Error", buf.c_str()));
404 sprintf(buf2,
"%s\n\nThis is an internal error. Please let Hoffoss\n"
405 "know about this so he can fix it. Click cancel to debug.", buf.c_str());
407 nprintf((
"Error", buf.c_str()));
417 int err = 0,
z, faulty_node;
441 if (
error(error_buf.c_str()))
#define CAMPAIGN_TYPE_SINGLE
#define SEXP_ERROR_CHECK_MODE
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName)
void save_tree(int clear=1)
campaign_editor * Campaign_tree_formp
int save_campaign_file(char *pathname)
int error(const char *msg,...)
afx_msg void OnCpgnFileSaveAs()
afx_msg void OnUpdateCpgnFileOpen(CCmdUI *pCmdUI)
#define ID_INITIAL_WEAPONS
afx_msg void OnInitialWeapons()
void initialize(int init_files=1)
int fred_check_sexp(int sexp, int type, char *msg,...)
CMainFrame * Fred_main_wnd
std::basic_string< char, std::char_traits< char >, std::allocator< char > > SCP_string
void convert_sexp_to_string(SCP_string &dest, int cur_node, int mode)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define IDC_CUSTOM_TECH_DB
void create_new_mission()
campaign_tree_view * Campaign_tree_viewp
GLdouble GLdouble GLdouble r
int Mission_filename_cb_format
void vsprintf(SCP_string &dest, const char *format, va_list ap)
afx_msg void OnInitialShips()
sprintf(buf,"(%f,%f,%f)", v3->xyz.x, v3->xyz.y, v3->xyz.z)
#define SEXP_MODE_CAMPAIGN
int internal_error(const char *msg,...)
int check_sexp_syntax(int node, int return_type, int recursive, int *bad_node, int mode)
campaign_tree_wnd * Campaign_wnd
int get_mission_info(const char *filename, mission *mission_p, bool basic)
void string_copy(char *dest, const CString &src, int max_len, int modify)
void truncate_message_lines(SCP_string &text, int num_allowed_lines)
GLuint const GLchar * name
#define MB_ICONEXCLAMATION
afx_msg void OnCpgnFileOpen()
#define ID_CPGN_FILE_SAVE_AS
#define ID_CPGN_FILE_OPEN
int MessageBox(HWND h, const char *s1, const char *s2, int i)
char * sexp_error_message(int num)
#define MAX_CAMPAIGN_MISSIONS
afx_msg void OnErrorChecker()
char filename[MAX_FILENAME_LEN]
virtual ~campaign_tree_wnd()
#define ID_CPGN_FILE_SAVE
cmission missions[MAX_CAMPAIGN_MISSIONS]
afx_msg void OnCpgnFileNew()
campaign_tree_link Links[MAX_CAMPAIGN_TREE_LINKS]
afx_msg void OnCpgnFileSave()