File: ScriptSelect.h

package info (click to toggle)
descent3 1.5.0%2Bds-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 35,256 kB
  • sloc: cpp: 416,147; ansic: 3,233; sh: 10; makefile: 8
file content (134 lines) | stat: -rw-r--r-- 4,120 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*
 * Descent 3
 * Copyright (C) 2024 Parallax Software
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#if !defined(AFX_SCRIPTSELECT_H__84E5B8C1_29FC_11D1_86CC_004033312F7C__INCLUDED_)
#define AFX_SCRIPTSELECT_H__84E5B8C1_29FC_11D1_86CC_004033312F7C__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// ScriptSelect.h : header file
//

#include "objscript.h"
#include "objcscript.h"
#include "d3x.h"

/////////////////////////////////////////////////////////////////////////////
// CScriptSelect dialog

#include "object.h"
#include "trigger.h"

class CScriptSelect : public CDialog {
  // Construction
public:
  CScriptSelect(uint16_t scr_type = 0xffff, int custom = CUSTOM_SCRIPT_MASK,
                CWnd *pParent = NULL); // standard constructor

  int m_CurScriptSel;

  //	arguments passed to script from object.
  int m_NumParms;
  tScriptParm m_Parm[MAX_SCRPARAMS];
  int m_CustomType; // 0 = none, 1 = default, 2 = custom

  // Dialog Data
  //{{AFX_DATA(CScriptSelect)
  enum { IDD = IDD_SCRIPTSELECT };
  CString m_ScriptName;
  //}}AFX_DATA

  // Overrides
  // ClassWizard generated virtual function overrides
  //{{AFX_VIRTUAL(CScriptSelect)
protected:
  virtual void DoDataExchange(CDataExchange *pDX); // DDX/DDV support
                                                   //}}AFX_VIRTUAL

  // Implementation
protected:
  // Generated message map functions
  //{{AFX_MSG(CScriptSelect)
  afx_msg void OnDblclkScriptselListbox();
  virtual void OnOK();
  virtual BOOL OnInitDialog();
  afx_msg void OnDestroy();
  afx_msg void OnParameters();
  afx_msg void OnSelchangeScriptselListbox();
  afx_msg void OnScriptselAdd();
  afx_msg void OnEditScript();
  afx_msg void OnScrtype();
  //}}AFX_MSG
  DECLARE_MESSAGE_MAP()

private:
  void UpdateScriptListbox();
  void EditScript(const char *filename, const char *scrname);

private:
  tD3XProgram *m_ScriptCode;
  uint16_t m_ScriptType;
};

inline void SETUP_SCRIPTSELECT_OBJECT(CScriptSelect &sel, object *obj) {
#if 0 // LGT: script undefined
	sel.m_ScriptName = obj->script.name;
	sel.m_NumParms = obj->script.num_parms;
	obj->script.copy_parms(sel.m_Parm);
#endif
}

inline void RETURN_SCRIPTSELECT_OBJECT(object *obj, CScriptSelect &sel) {
#if 0 // LGT: script undefined
	obj->script.set_parms(sel.m_NumParms, sel.m_Parm);
	if (sel.m_ScriptName == "null") 
		obj->script.set_name(NULL);
	else
		obj->script.set_name(sel.m_ScriptName);
	obj->script.is_custom = (sel.m_CustomType==CUSTOM_SCRIPT_MASK) ? 1 : 0;

	mprintf((0, "Script [%s:custom=%d] assigned.\n", sel.m_ScriptName, obj->script.is_custom));
#endif
}

inline void SETUP_SCRIPTSELECT_TRIGGER(CScriptSelect &sel, trigger *trig) {
#if 0 // LGT: script undefined
	sel.m_ScriptName = trig->script.name;
	sel.m_NumParms = trig->script.num_parms;
	trig->script.copy_parms(sel.m_Parm);
#endif
}

inline void RETURN_SCRIPTSELECT_TRIGGER(trigger *trig, CScriptSelect &sel) {
#if 0 // LGT: script undefined
	trig->script.set_parms(sel.m_NumParms, sel.m_Parm);
	if (sel.m_ScriptName == "null") 
		trig->script.set_name(NULL);
	else
		trig->script.set_name(sel.m_ScriptName);
	trig->script.is_custom = (sel.m_CustomType==CUSTOM_SCRIPT_MASK) ? 1 : 0;

	mprintf((0, "Script [%s:custom=%d] assigned.\n", sel.m_ScriptName, trig->script.is_custom));
#endif
}

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SCRIPTSELECT_H__84E5B8C1_29FC_11D1_86CC_004033312F7C__INCLUDED_)