mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-07 08:15:59 -10:00
The new `no_fred` flag prevents weapons from being listed in the dropdown lists in the weapon dialog. Also this fixes `no_fred` ships to not appear either: previously they were hidden in the main window dropdown but still appeared in the ship editor. In order to vastly simplify the dropdown list code, the weapon dialog was refactored to use arrays of variables rather than one hardcoded variable per bank. Implements #3643.
77 lines
2.0 KiB
C++
77 lines
2.0 KiB
C++
/*
|
|
* Copyright (C) Volition, Inc. 1999. All rights reserved.
|
|
*
|
|
* All source code herein is the property of Volition, Inc. You may not sell
|
|
* or otherwise commercially exploit the source or things you created based on the
|
|
* source.
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
#include "ship/ship.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// WeaponEditorDlg dialog
|
|
|
|
class WeaponEditorDlg : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
void update_pilot();
|
|
void OnCancel();
|
|
void change_selection();
|
|
void OnOK();
|
|
WeaponEditorDlg(CWnd* pParent = NULL); // standard constructor
|
|
|
|
std::array<int, MAX_SHIP_SECONDARY_BANKS> m_ammo_max;
|
|
int m_last_item;
|
|
int m_ship;
|
|
int m_ship_class;
|
|
int m_multi_edit;
|
|
ship_weapon pilot, *cur_weapon;
|
|
|
|
std::array<int, MAX_SHIP_PRIMARY_BANKS> m_IDC_GUN;
|
|
std::array<int, MAX_SHIP_SECONDARY_BANKS> m_IDC_MISSILE;
|
|
std::array<int, MAX_SHIP_SECONDARY_BANKS> m_IDC_AMMO;
|
|
std::array<int, MAX_SHIP_SECONDARY_BANKS> m_IDC_SPIN;
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(WeaponEditorDlg)
|
|
enum { IDD = IDD_WEAPON_EDITOR };
|
|
std::array<int, MAX_SHIP_SECONDARY_BANKS> m_ammo;
|
|
std::array<CSpinButtonCtrl, MAX_SHIP_SECONDARY_BANKS> m_spin;
|
|
int m_ai_class;
|
|
std::array<int, MAX_SHIP_PRIMARY_BANKS> m_gun;
|
|
std::array<int, MAX_SHIP_SECONDARY_BANKS> m_missile;
|
|
int m_cur_item;
|
|
//}}AFX_DATA
|
|
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(WeaponEditorDlg)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(WeaponEditorDlg)
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnSelchangeList();
|
|
afx_msg void OnClose();
|
|
afx_msg void OnSelchangeMissile1();
|
|
afx_msg void OnSelchangeMissile2();
|
|
afx_msg void OnSelchangeMissile3();
|
|
afx_msg void OnSelchangeMissile4();
|
|
afx_msg void OnSelchangeMissile(int secondary_index);
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
int combo_index_to_weapon_class(int dialog_id, int combo_index);
|
|
int weapon_class_to_combo_index(int dialog_id, int weapon_class);
|
|
};
|