1 // CustomWingNames.cpp : implementation file
2 //
3 
4 #include "stdafx.h"
5 #include "fred.h"
6 #include "CustomWingNames.h"
7 #include "ship/ship.h"
8 
9 #ifdef _DEBUG
10 #undef THIS_FILE
11 static char THIS_FILE[] = __FILE__;
12 #endif
13 
14 /////////////////////////////////////////////////////////////////////////////
15 // CustomWingNames dialog
16 
17 
CustomWingNames(CWnd * pParent)18 CustomWingNames::CustomWingNames(CWnd* pParent /*=NULL*/)
19 	: CDialog(CustomWingNames::IDD, pParent)
20 {
21 	//{{AFX_DATA_INIT(CustomWingNames)
22 	m_squadron_1 = _T("");
23 	m_squadron_2 = _T("");
24 	m_squadron_3 = _T("");
25 	m_squadron_4 = _T("");
26 	m_squadron_5 = _T("");
27 	m_starting_1 = _T("");
28 	m_starting_2 = _T("");
29 	m_starting_3 = _T("");
30 	m_tvt_1 = _T("");
31 	m_tvt_2 = _T("");
32 	//}}AFX_DATA_INIT
33 }
34 
35 
DoDataExchange(CDataExchange * pDX)36 void CustomWingNames::DoDataExchange(CDataExchange* pDX)
37 {
38 	CDialog::DoDataExchange(pDX);
39 	//{{AFX_DATA_MAP(CustomWingNames)
40 	DDX_Text(pDX, IDC_SQUADRON_WING_NAME_1, m_squadron_1);
41 	DDX_Text(pDX, IDC_SQUADRON_WING_NAME_2, m_squadron_2);
42 	DDX_Text(pDX, IDC_SQUADRON_WING_NAME_3, m_squadron_3);
43 	DDX_Text(pDX, IDC_SQUADRON_WING_NAME_4, m_squadron_4);
44 	DDX_Text(pDX, IDC_SQUADRON_WING_NAME_5, m_squadron_5);
45 	DDX_Text(pDX, IDC_STARTING_WING_NAME_1, m_starting_1);
46 	DDX_Text(pDX, IDC_STARTING_WING_NAME_2, m_starting_2);
47 	DDX_Text(pDX, IDC_STARTING_WING_NAME_3, m_starting_3);
48 	DDX_Text(pDX, IDC_TVT_WING_NAME_1, m_tvt_1);
49 	DDX_Text(pDX, IDC_TVT_WING_NAME_2, m_tvt_2);
50 	//}}AFX_DATA_MAP
51 }
52 
53 
BEGIN_MESSAGE_MAP(CustomWingNames,CDialog)54 BEGIN_MESSAGE_MAP(CustomWingNames, CDialog)
55 	//{{AFX_MSG_MAP(CustomWingNames)
56 	//}}AFX_MSG_MAP
57 END_MESSAGE_MAP()
58 
59 /////////////////////////////////////////////////////////////////////////////
60 // CustomWingNames message handlers
61 
62 BOOL CustomWingNames::OnInitDialog()
63 {
64 	// init starting wings
65 	m_starting_1 = _T(Starting_wing_names[0]);
66 	m_starting_2 = _T(Starting_wing_names[1]);
67 	m_starting_3 = _T(Starting_wing_names[2]);
68 
69 	// init squadron wings
70 	m_squadron_1 = _T(Squadron_wing_names[0]);
71 	m_squadron_2 = _T(Squadron_wing_names[1]);
72 	m_squadron_3 = _T(Squadron_wing_names[2]);
73 	m_squadron_4 = _T(Squadron_wing_names[3]);
74 	m_squadron_5 = _T(Squadron_wing_names[4]);
75 
76 	// init tvt wings
77 	m_tvt_1 = _T(TVT_wing_names[0]);
78 	m_tvt_2 = _T(TVT_wing_names[1]);
79 
80 	CDialog::OnInitDialog();
81 	UpdateData(FALSE);
82 	return TRUE;
83 }
84 
OnOK()85 void CustomWingNames::OnOK()
86 {
87 	UpdateData(TRUE);
88 
89 	if (strcmp(m_starting_1, m_tvt_1))
90 	{
91 		MessageBox("The first starting wing and the first team-versus-team wing must have the same wing name.");
92 		return;
93 	}
94 
95 	if (!stricmp(m_starting_1, m_starting_2) || !stricmp(m_starting_1, m_starting_3)
96 		|| !stricmp(m_starting_2, m_starting_3))
97 	{
98 		MessageBox("Duplicate wing names in starting wing list.");
99 		return;
100 	}
101 
102 	if (!stricmp(m_squadron_1, m_squadron_2) || !stricmp(m_squadron_1, m_squadron_3) || !stricmp(m_squadron_1, m_squadron_4) || !stricmp(m_squadron_1, m_squadron_5)
103 		|| !stricmp(m_squadron_2, m_squadron_3) || !stricmp(m_squadron_2, m_squadron_4) || !stricmp(m_squadron_2, m_squadron_5)
104 		|| !stricmp(m_squadron_3, m_squadron_4) || !stricmp(m_squadron_3, m_squadron_5)
105 		|| !stricmp(m_squadron_4, m_squadron_5))
106 	{
107 		MessageBox("Duplicate wing names in squadron wing list.");
108 		return;
109 	}
110 
111 	if (!stricmp(m_tvt_1, m_tvt_2))
112 	{
113 		MessageBox("Duplicate wing names in team-versus-team wing list.");
114 		return;
115 	}
116 
117 
118 	// copy starting wings
119 	strcpy_s(Starting_wing_names[0], m_starting_1);
120 	strcpy_s(Starting_wing_names[1], m_starting_2);
121 	strcpy_s(Starting_wing_names[2], m_starting_3);
122 
123 	// copy squadron wings
124 	strcpy_s(Squadron_wing_names[0], m_squadron_1);
125 	strcpy_s(Squadron_wing_names[1], m_squadron_2);
126 	strcpy_s(Squadron_wing_names[2], m_squadron_3);
127 	strcpy_s(Squadron_wing_names[3], m_squadron_4);
128 	strcpy_s(Squadron_wing_names[4], m_squadron_5);
129 
130 	// copy tvt wings
131 	strcpy_s(TVT_wing_names[0], m_tvt_1);
132 	strcpy_s(TVT_wing_names[1], m_tvt_2);
133 
134 	update_custom_wing_indexes();
135 
136 	CDialog::OnOK();
137 }
138 
OnCancel()139 void CustomWingNames::OnCancel()
140 {
141 	// TODO: Add extra cleanup here
142 
143 	CDialog::OnCancel();
144 }
145 
OnClose()146 void CustomWingNames::OnClose()
147 {
148 	int z;
149 
150 	UpdateData(TRUE);
151 
152 	if (query_modified()) {
153 		z = MessageBox("Do you want to keep your changes?", "Close", MB_ICONQUESTION | MB_YESNOCANCEL);
154 		if (z == IDCANCEL){
155 			return;
156 		}
157 
158 		if (z == IDYES) {
159 			OnOK();
160 			return;
161 		}
162 	}
163 
164 	CDialog::OnClose();
165 }
166 
query_modified()167 int CustomWingNames::query_modified()
168 {
169 	return strcmp(Starting_wing_names[0], m_starting_1) || strcmp(Starting_wing_names[1], m_starting_2) || strcmp(Starting_wing_names[2], m_starting_3)
170 		|| strcmp(Squadron_wing_names[0], m_squadron_1) || strcmp(Squadron_wing_names[1], m_squadron_2) || strcmp(Squadron_wing_names[2], m_squadron_3) || strcmp(Squadron_wing_names[3], m_squadron_4) || strcmp(Squadron_wing_names[4], m_squadron_5)
171 		|| strcmp(TVT_wing_names[0], m_tvt_1) || strcmp(TVT_wing_names[1], m_tvt_2);
172 }
173