14 #include "BriefingEditorDlg.h"
18 #include "FredRender.h"
19 #include "Management.h"
34 static char THIS_FILE[] = __FILE__;
39 static int Max_icons_for_lines;
51 Max_icons_for_lines = 0;
53 i = ++Max_icons_for_lines + 1;
93 CDialog::DoDataExchange(pDX);
137 ON_CBN_SELCHANGE(
IDC_TEAM, OnSelchangeTeam)
142 ON_NOTIFY(NM_RCLICK,
IDC_TREE, OnRclickTree)
143 ON_NOTIFY(TVN_BEGINLABELEDIT, IDC_TREE, OnBeginlabeleditTree)
144 ON_NOTIFY(TVN_ENDLABELEDIT, IDC_TREE, OnEndlabeleditTree)
163 m = pMenu->GetSubMenu(0);
167 m->CheckMenuItem(i, MF_BYPOSITION | MF_UNCHECKED);
170 m->EnableMenuItem(i, MF_BYPOSITION | MF_GRAYED);
173 m->CheckMenuItem(m_current_briefing, MF_BYPOSITION | MF_CHECKED );
177 m = pMenu->GetSubMenu(1);
180 CDialog::OnInitMenu(pMenu);
188 CDialog::Create(
IDD);
194 box = (CComboBox *) GetDlgItem(
IDC_TEAM);
200 box->AddString(it->name);
203 box->AddString(
"None");
208 box->AddString(
"None");
236 if (i < Briefing->num_stages) {
256 int bs,
i, j,
s,
t, dup = 0;
269 for (i=0; i<t-1; i++)
270 for (j=i+1; j<
t; j++) {
278 MessageBox(
"You have duplicate icons names. You should resolve these.",
"Warning");
329 if (ptr->
text != buf3)
402 sprintf(msg,
"Icon ID #%d is already used in a later stage. You can only\n"
416 sprintf(msg,
"Icon ID #%d is already used in this stage. Icon ID has been reset back to %d",
501 if (!::IsWindow(m_hWnd))
507 if ((
m_cur_stage >= 0) && (m_cur_stage < Briefing->num_stages)) {
531 GetDlgItem(
IDC_NEXT) -> EnableWindow(enable);
534 GetDlgItem(
IDC_PREV) -> EnableWindow(enable);
551 GetDlgItem(
IDC_TIME) -> EnableWindow(enable);
552 GetDlgItem(
IDC_VOICE) -> EnableWindow(enable);
553 GetDlgItem(
IDC_BROWSE) -> EnableWindow(enable);
554 GetDlgItem(
IDC_TEXT) -> EnableWindow(enable);
559 GetDlgItem(
IDC_TREE) -> EnableWindow(enable);
560 GetDlgItem(
IDC_PLAY) -> EnableWindow(enable);
593 int sip_bii_cargo = (sip_bii_ship >= 0) ?
Ship_info[
m_ship_type].bii_index_ship_with_cargo : -1;
600 GetDlgItem(
IDC_ICON_IMAGE) -> EnableWindow(enable && (sip_bii_ship < 0));
606 GetDlgItem(
IDC_LOCAL) -> EnableWindow(enable);
607 GetDlgItem(
IDC_TEAM) -> EnableWindow(enable);
608 GetDlgItem(
IDC_ID) -> EnableWindow(enable);
777 CFileDialog dlg(
TRUE,
"wav", NULL, OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR,
778 "Voice Files (*.ogg, *.wav)|*.ogg;*.wav|Ogg Vorbis Files (*.ogg)|*.ogg|Wave Files (*.wav)|*.wav||");
780 if (dlg.DoModal() == IDOK) {
847 for (i=0; i<num_lines; i++)
940 int cargo = 0, cargo_count = 0, freighter_count = 0;
950 ship = waypoint = -1;
984 if(jnp->GetSCPObject() == ptr)
1005 if (dock_ptr->docked_objp->flags &
OF_MARKED)
1020 if (cargo_count && cargo_count == freighter_count)
1026 else if (waypoint >= 0)
1033 name = jnp->GetName();
1041 strncpy(iconp->
label, name, len);
1323 if ((
id >= 0) && (
iconp->
id ==
id))
1333 id = LOWORD(wParam);
1349 return CDialog::OnCommand(wParam, lParam);
1370 TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
1382 TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
1391 return CDialog::DestroyWindow();
1428 MessageBox(
"No view set",
"Unable to copy view");
void brief_render_icon_line(int stage_num, int line_num)
void record_window_data(window_data *wndd, CWnd *wnd)
virtual BOOL DestroyWindow()
afx_msg void OnPasteView()
int Mission_music[NUM_SCORES]
afx_msg void OnEndlabeleditTree(NMHDR *pNMHDR, LRESULT *pResult)
void reset_icon_loop(int stage)
brief_stage stages[MAX_BRIEF_STAGES]
waypoint_list * find_waypoint_list_with_instance(int waypoint_instance, int *waypoint_index)
#define ICON_SUPPORT_SHIP
matrix m_copy_view_orient
int init_window(window_data *wndd, CWnd *wnd, int adjust=0, int pre=0)
struct vec3d::@225::@227 xyz
void link_modified(int *ptr)
void delete_icon(int num)
afx_msg void OnBeginlabeleditTree(NMHDR *pNMHDR, LRESULT *pResult)
#define END_OF_LIST(head)
#define ICON_FIGHTER_WING
int edit_label(HTREEITEM h)
UINT WPARAM LPARAM lParam
std::basic_string< char, std::char_traits< char >, std::allocator< char > > SCP_string
void obj_merge_created_list(void)
#define IDC_BRIEFING_MUSIC
GLfloat GLfloat GLfloat v2
void deconvert_multiline_string(char *dest, const CString &str, int max_len)
briefing Briefings[MAX_TVT_TEAMS]
GLenum GLuint GLenum GLsizei const GLchar * buf
#define IDC_PROPAGATE_ICONS
void right_clicked(int mode=0)
SCP_list< CJumpNode > Jump_nodes
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam)
#define IDC_USE_CARGO_ICON
iff_info Iff_info[MAX_IFFS]
#define ICON_FREIGHTER_WITH_CARGO
afx_msg void OnSelchangeIconImage()
#define IDC_USE_WING_ICON
int cfile_push_chdir(int type)
Push current directory onto a 'stack' and change to a new directory.
void convert_multiline_string(CString &dest, const SCP_string &src)
void brief_render_icon(int stage_num, int icon_num, float frametime, int selected, float w_scale_factor, float h_scale_factor)
char voice[MAX_FILENAME_LEN]
dock_instance * dock_list
int check_mouse_hit(int x, int y)
void set_cur_object_index(int obj)
afx_msg void OnPropagateIcons()
int obj_create(ubyte type, int parent_obj, int instance, matrix *orient, vec3d *pos, float radius, uint flags)
afx_msg void OnInsertStage()
afx_msg void OnGotoView()
afx_msg void OnMakeIcon()
int end_label_edit(TVITEMA &item)
int icon_marked[MAX_STAGE_ICONS]
sprintf(buf,"(%f,%f,%f)", v3->xyz.x, v3->xyz.y, v3->xyz.z)
#define CF_TYPE_VOICE_BRIEFINGS
#define ICON_FREIGHTER_WING_NO_CARGO
#define ICON_CRUISER_WING
briefing_editor_dlg(CWnd *pParent=NULL)
int icon_obj[MAX_STAGE_ICONS]
#define ICON_KNOSSOS_DEVICE
afx_msg void OnAddStage()
afx_msg void OnRclickTree(NMHDR *pNMHDR, LRESULT *pResult)
GLint GLint GLint GLint GLint x
object Objects[MAX_OBJECTS]
int find_icon(int id, int stage)
void string_copy(char *dest, const CString &src, int max_len, int modify)
afx_msg void OnCargoIcon()
int query_node_in_sexp(int node, int sexp)
#define vm_vec_make(v, _x, _y, _z)
int ship_query_general_type(int ship)
afx_msg void OnSaveView()
window_data Briefing_wnd_data
afx_msg void OnFlipIcon()
menu_music Spooled_music[MAX_SPOOLED_MUSIC]
void set_modified(BOOL arg)
GLuint const GLchar * name
CString m_substitute_briefing_music
char * Icon_names[MIN_BRIEF_ICONS]
#define MISSION_TYPE_TRAINING
#define SIF_ALL_SHIP_TYPES
#define ICON_FREIGHTER_WING_WITH_CARGO
void audiostream_close_file(int i, int fade)
#define ICON_ASTEROID_FIELD
#define MAX_BRIEF_STAGE_LINES
void obj_delete(int objnum)
afx_msg void OnSelchangeShipType()
void propagate_icon(int num)
int save_tree(int node=-1)
#define BI_USE_CARGO_ICON
afx_msg void OnSelchangeTeam()
char substitute_briefing_music_name[NAME_LENGTH]
virtual void DoDataExchange(CDataExchange *pDX)
SCP_vector< ship_info > Ship_info
#define SIF_KNOSSOS_DEVICE
void update_data(int update=1)
vec3d * vm_vec_avg(vec3d *dest, const vec3d *src0, const vec3d *src1)
int MessageBox(HWND h, const char *s1, const char *s2, int i)
#define ICON_TRANSPORT_WING
#define ICON_FREIGHTER_NO_CARGO
void audiostream_play(int i, float volume, int looping)
void load_tree(int index, const char *deflt="true")
void icon_select(int num)
afx_msg void OnWingIcon()
void hilite_item(int node)
int audiostream_open(const char *filename, int type)
void copy_stage(int from, int to)
briefing_editor_dlg * Briefing_dialog
#define MAX_ICON_TEXT_LEN
int get_next_icon(int id)
afx_msg void OnDeleteStage()
void draw_icon(object *objp)
int line_marked[MAX_BRIEF_STAGE_LINES]
#define CF_TYPE_VOICE_TRAINING
char label[MAX_LABEL_LEN]
void lcl_fred_replace_stuff(char *text, size_t max_len)
char iff_name[NAME_LENGTH]
int calc_num_lines_for_icons(int num)
afx_msg void OnCopyView()
#define IDC_SUBSTITUTE_BRIEFING_MUSIC
char ship_name[NAME_LENGTH]
void focus_sexp(int select_sexp_node)
void restore_editor_state()
void clear_tree(const char *op=NULL)
afx_msg void OnDeleteIcon()