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