18 static char THIS_FILE[] = __FILE__;
34 player_ships_only =
true;
35 num_string_variables = 0;
44 CDialog::DoDataExchange(pDX);
79 CDialog::OnInitDialog();
82 num_selected_ships = 0;
89 m_selected_ships[num_selected_ships++] = objp->
instance;
95 Assert (num_selected_ships > 0);
98 if (num_selected_ships > 1)
104 m_set_from_variables.ResetContent();
105 m_set_from_variables.AddString(
"Set From Ship Class");
111 m_set_from_variables.AddString(buff);
112 string_variable_indices[num_string_variables++] =
i;
115 m_set_from_variables.SetCurSel(0);
116 if (!num_string_variables) {
117 m_set_from_variables.EnableWindow(
FALSE);
121 m_set_from_ship_class.ResetContent();
123 if (num_string_variables) {
124 m_set_from_ship_class.AddString(
"Set From Variable");
133 ship_class_indices[count++] = std::distance(
Ship_info.cbegin(), it);
134 m_set_from_ship_class.AddString(it->name);
136 m_set_from_ship_class.SetCurSel(num_string_variables?1:0);
139 alt_class_pool.clear();
141 alt_class_list_rebuild();
148 void AltShipClassDlg::alt_class_list_rebuild()
154 for ( i=0; i < j ; i++) {
158 for (i = 0; i < (
int)alt_class_pool.size() ; i++) {
160 if(alt_class_pool[i].default_to_this_class && (i < (
int)alt_class_pool.size() - 1) ) {
165 if (alt_class_pool[i].variable_index != -1) {
175 if (alt_class_pool[i].ship_class >= 0 && alt_class_pool[i].ship_class <
MAX_SHIP_CLASSES) {
197 for (
int i=0; i < num_selected_ships; i++) {
208 alt_class_update_entry(new_list_item);
210 alt_class_pool.push_back(new_list_item);
211 alt_class_list_rebuild();
218 alt_class_update_entry(new_list_item);
224 alt_class_pool.push_back(new_list_item);
228 alt_class_pool.insert(alt_class_pool.begin() +
index, new_list_item );
231 alt_class_list_rebuild();
240 void AltShipClassDlg::alt_class_update_entry(
alt_class &list_item)
257 if (num_string_variables) {
279 Assert (index < (
int) alt_class_pool.size());
280 alt_class_pool.erase(alt_class_pool.begin()+
index);
281 alt_class_list_rebuild();
293 std::swap(alt_class_pool[index], alt_class_pool[index-1]);
294 alt_class_list_rebuild();
301 int inext = index + 1;
308 std::swap(alt_class_pool[index], alt_class_pool[inext]);
309 alt_class_list_rebuild();
315 int current_selection;
326 if (current_selection >= 0) {
328 alt_class_list_rebuild();
334 int current_selection;
345 if (current_selection >= 0) {
347 alt_class_list_rebuild();
354 int variable_selection = 0;
355 int ship_selection = 0;
364 if (alt_class_pool[index].variable_index != -1) {
367 if (string_variable_indices[i] == alt_class_pool[index].variable_index) {
368 variable_selection = i+1;
376 if (ship_class_indices[i] == alt_class_pool[index].ship_class) {
383 if (num_string_variables) {
int ship_info_lookup(const char *token)
#define IDC_ALT_CLASS_LIST
#define IDC_ALT_CLASS_INSERT
afx_msg void OnSelchangeAltClassList()
#define END_OF_LIST(head)
sexp_variable Sexp_variables[MAX_SEXP_VARIABLES]
bool default_to_this_class
afx_msg void OnDefaultToClass()
afx_msg void OnAltClassInsert()
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
SCP_vector< alt_class > s_alt_classes
#define IDC_SET_FROM_VARIABLES
sprintf(buf,"(%f,%f,%f)", v3->xyz.x, v3->xyz.y, v3->xyz.z)
CButton m_default_to_class
CListBox m_alt_class_list
CComboBox m_set_from_variables
object Objects[MAX_OBJECTS]
afx_msg void OnAltClassDelete()
#define IDC_ALT_CLASS_ADD
GLuint const GLchar * name
#define IDC_DEFAULT_TO_CLASS
CComboBox m_set_from_ship_class
afx_msg void OnMoveDown()
afx_msg void OnSelendokSetFromVariables()
#define IDC_ALT_CLASS_DOWN
virtual void DoDataExchange(CDataExchange *pDX)
SCP_vector< ship_info > Ship_info
afx_msg void OnSelendokSetFromShipClass()
#define IDC_ALT_CLASS_DELETE
afx_msg void OnAltClassAdd()
#define IDC_SET_FROM_SHIP_CLASS
#define SEXP_VARIABLE_STRING
#define MAX_SEXP_VARIABLES
AltShipClassDlg(CWnd *pParent=NULL)