mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-10 04:31:34 -10:00
git-svn-id: svn://svn.icculus.org/fs2open/branches/antipodes@10047 387891d4-d844-0410-90c0-e4c51a9137d3
142 lines
3.5 KiB
C++
142 lines
3.5 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.
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _EVENTEDITOR_H
|
|
#define _EVENTEDITOR_H
|
|
|
|
#include "Sexp_tree.h"
|
|
#include "mission/missiongoals.h"
|
|
#include "mission/missionmessage.h"
|
|
|
|
#define MAX_SEARCH_MESSAGE_DEPTH 5 // maximum search number of event nodes with message text
|
|
|
|
class event_sexp_tree : public sexp_tree
|
|
{
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// event_editor dialog
|
|
|
|
class event_editor : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
void update_persona();
|
|
void save();
|
|
char *current_message_name(int index);
|
|
char *get_message_list_item(int i);
|
|
int save_message(int num);
|
|
void update_cur_message();
|
|
HTREEITEM get_event_handle(int num);
|
|
void reset_event(int num, HTREEITEM after);
|
|
void save_event(int e);
|
|
void swap_handler(int node1, int node2);
|
|
void insert_handler(int old, int node);
|
|
int query_modified();
|
|
void OnOK();
|
|
void OnCancel();
|
|
int handler(int code, int node, char *str = NULL);
|
|
void create_tree();
|
|
void load_tree();
|
|
int modified;
|
|
int select_sexp_node;
|
|
event_editor(CWnd* pParent = NULL); // standard constructor
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(event_editor)
|
|
enum { IDD = IDD_EVENT_EDITOR };
|
|
event_sexp_tree m_event_tree;
|
|
UINT m_repeat_count;
|
|
UINT m_trigger_count;
|
|
UINT m_interval;
|
|
int m_event_score;
|
|
int m_chain_delay;
|
|
BOOL m_chained;
|
|
CString m_obj_text;
|
|
CString m_obj_key_text;
|
|
CString m_avi_filename;
|
|
CString m_message_name;
|
|
CString m_message_text;
|
|
int m_persona;
|
|
CString m_wave_filename;
|
|
int m_cur_msg;
|
|
int m_team;
|
|
int m_message_team;
|
|
int m_last_message_node;
|
|
int m_log_true;
|
|
int m_log_false;
|
|
int m_log_always_false;
|
|
int m_log_1st_repeat;
|
|
int m_log_last_repeat;
|
|
int m_log_1st_trigger;
|
|
int m_log_last_trigger;
|
|
int m_log_state_change;
|
|
//}}AFX_DATA
|
|
|
|
CBitmap m_play_bm;
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(event_editor)
|
|
public:
|
|
virtual BOOL DestroyWindow();
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(event_editor)
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnRclickEventTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnBeginlabeleditEventTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnEndlabeleditEventTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnButtonNewEvent();
|
|
afx_msg void OnDelete();
|
|
afx_msg void OnOk();
|
|
afx_msg void OnClose();
|
|
afx_msg void OnSelchangedEventTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnUpdateRepeatCount();
|
|
afx_msg void OnUpdateTriggerCount();
|
|
afx_msg void OnChained();
|
|
afx_msg void OnInsert();
|
|
afx_msg void OnSelchangeMessageList();
|
|
afx_msg void OnNewMsg();
|
|
afx_msg void OnDeleteMsg();
|
|
afx_msg void OnBrowseAvi();
|
|
afx_msg void OnBrowseWave();
|
|
afx_msg void OnSelchangeWaveFilename();
|
|
afx_msg void OnPlay();
|
|
afx_msg void OnUpdate();
|
|
afx_msg void On_Cancel();
|
|
afx_msg void OnSelchangeTeam();
|
|
afx_msg void OnSelchangeMessageTeam();
|
|
afx_msg void OnDblclkMessageList();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
private:
|
|
int cur_event;
|
|
void update_cur_event();
|
|
int m_num_events;
|
|
int m_sig[MAX_MISSION_EVENTS];
|
|
mission_event m_events[MAX_MISSION_EVENTS];
|
|
int m_num_messages;
|
|
SCP_vector<MMessage> m_messages;
|
|
int m_wave_id;
|
|
};
|
|
|
|
extern event_editor *Event_editor_dlg; // global reference needed by event tree class
|
|
|
|
#endif
|