2024-04-20 16:23:08 +00:00
|
|
|
/*
|
|
|
|
* 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/>.
|
|
|
|
|
2024-05-06 15:12:44 +00:00
|
|
|
--- HISTORICAL COMMENTS FOLLOW ---
|
|
|
|
|
2024-04-19 20:58:24 +00:00
|
|
|
* $Logfile: /DescentIII/Main/editor/DallasMainDlg.h $
|
|
|
|
* $Revision: 1.1.1.1 $
|
|
|
|
* $Date: 2003-08-26 03:57:37 $
|
|
|
|
* $Author: kevinb $
|
|
|
|
*
|
|
|
|
* This is the header for the main dialog of the DALLAS graphical scripting interface
|
|
|
|
*
|
|
|
|
* $Log: not supported by cvs2svn $
|
|
|
|
*
|
|
|
|
* 67 8/30/99 4:11p Nate
|
|
|
|
* Added copy/paste for conditions, log ops, and nested if-then clauses
|
|
|
|
*
|
|
|
|
* 66 5/04/99 6:53p Jeff
|
|
|
|
* added event for when a player dies
|
|
|
|
*
|
|
|
|
* 65 4/27/99 4:27p Jeff
|
|
|
|
* added player respawn osiris event
|
|
|
|
*
|
|
|
|
* 64 4/15/99 9:47p Nate
|
|
|
|
* Upped max number of enum values to 100
|
|
|
|
*
|
|
|
|
* 63 4/14/99 6:03p Nate
|
|
|
|
* Added Event Type specification to Dallas Script Highlighting system.
|
|
|
|
*
|
|
|
|
* 62 4/02/99 2:16p Nate
|
|
|
|
* Added AI Init event
|
|
|
|
*
|
|
|
|
* 61 3/30/99 4:47p Jeff
|
|
|
|
* added level events for when IGC occurs for a player
|
|
|
|
*
|
|
|
|
* 60 3/11/99 10:51a Nate
|
|
|
|
* Added deletion of "Untitled" Dallas files when doing a New from editor
|
|
|
|
*
|
|
|
|
* 59 2/22/99 1:17p Nate
|
|
|
|
* Added 'level goal item complete' event
|
|
|
|
*
|
|
|
|
* 58 2/22/99 1:19a Jeff
|
|
|
|
* added handling for evt_use
|
|
|
|
*
|
|
|
|
* 57 2/20/99 6:07p Nate
|
|
|
|
* Added Level Goal events
|
|
|
|
*
|
|
|
|
* 56 2/19/99 5:35p Nate
|
|
|
|
* Added new types and events
|
|
|
|
*
|
|
|
|
* 55 2/17/99 4:14p Nate
|
|
|
|
* Added condition query shortcuts
|
|
|
|
*
|
|
|
|
* 54 2/08/99 3:53p Nate
|
|
|
|
* Added new event types
|
|
|
|
*
|
|
|
|
* 53 2/07/99 4:43p Nate
|
|
|
|
* Added OWNER selection to Door parameter types
|
|
|
|
*
|
|
|
|
* 52 2/05/99 11:52a Nate
|
|
|
|
* Added importing/exporting of scripts
|
|
|
|
*
|
|
|
|
* 51 2/03/99 7:20p Nate
|
|
|
|
* Fixed clipboard bug and added script chaining option
|
|
|
|
*
|
|
|
|
* 50 2/03/99 2:19p Nate
|
|
|
|
* Added cool drag-n-drop support
|
|
|
|
*
|
|
|
|
* 49 2/03/99 11:57a Nate
|
|
|
|
* Added script highlighting interface
|
|
|
|
*
|
|
|
|
* 48 2/02/99 7:41p Nate
|
|
|
|
* Added columnization of popup menus
|
|
|
|
*
|
|
|
|
* 47 2/01/99 2:42p Nate
|
|
|
|
* Added title bar display of level and modified indicator
|
|
|
|
*
|
|
|
|
* 46 1/29/99 4:41p Nate
|
|
|
|
* A few minor tweaks and fixes
|
|
|
|
*
|
|
|
|
* 45 1/28/99 9:41p Nate
|
|
|
|
* Added tons of new stuff
|
|
|
|
*
|
|
|
|
* 44 1/26/99 1:15p Nate
|
|
|
|
* Added UserTypes Workshop implementation
|
|
|
|
*
|
|
|
|
* 43 1/25/99 7:16p Nate
|
|
|
|
* Added UserTypes dialog (non-functional)
|
|
|
|
*
|
|
|
|
* 42 1/25/99 2:38p Nate
|
|
|
|
* Added Valid Flag Mask range support.
|
|
|
|
*
|
|
|
|
* 41 1/25/99 9:52a Nate
|
|
|
|
* Enabled Save Format Version 1
|
|
|
|
*
|
|
|
|
* 40 1/24/99 4:49p Nate
|
|
|
|
* Added code for Dallas Save Format Version 1, but didn't enable it yet
|
|
|
|
*
|
|
|
|
* 39 1/23/99 5:52p Nate
|
|
|
|
* Added flag support
|
|
|
|
*
|
|
|
|
* 38 1/21/99 8:57p Nate
|
|
|
|
* Added warnings when saving objects
|
|
|
|
*
|
|
|
|
* 37 1/20/99 3:51p Nate
|
|
|
|
* Added Specific Name parameter type 'a'
|
|
|
|
*
|
|
|
|
* 36 1/19/99 7:37p Nate
|
|
|
|
* Added sound selection prompt dialog
|
|
|
|
*
|
|
|
|
* 35 1/19/99 12:18p Nate
|
|
|
|
* Made it so Owner objects can now be "other"
|
|
|
|
*
|
|
|
|
* 34 1/19/99 10:35a Nate
|
|
|
|
* Fixed Other object submenu bug
|
|
|
|
*
|
|
|
|
* 33 1/18/99 2:29p Nate
|
|
|
|
* Added support for default parameters and valid range specification
|
|
|
|
*
|
|
|
|
* 32 1/17/99 6:29p Nate
|
|
|
|
* Layed groundwork for default parameter values and valid parameter
|
|
|
|
* ranges
|
|
|
|
*
|
|
|
|
* 31 1/15/99 7:31p Nate
|
|
|
|
* Added some more interface features/fixes
|
|
|
|
*
|
|
|
|
* 30 1/15/99 2:05p Nate
|
|
|
|
* Added collapse/expand all, fixed me and delete problems, made dlg
|
|
|
|
* longer
|
|
|
|
*
|
|
|
|
* 29 1/15/99 10:37a Nate
|
|
|
|
* Fixed highest room index bug
|
|
|
|
*
|
|
|
|
* 28 1/14/99 6:11p Nate
|
|
|
|
* Added Trigger Script support and many other things, too numerous to
|
|
|
|
* count.
|
|
|
|
*
|
|
|
|
* 27 1/13/99 7:28p Nate
|
|
|
|
* Added message file reading from created script
|
|
|
|
*
|
|
|
|
* 26 1/13/99 10:50a Nate
|
|
|
|
* Fixed up copy/pase, added highlighting of all scripts matching
|
|
|
|
* specified owner
|
|
|
|
*
|
|
|
|
* 25 1/12/99 7:32p Nate
|
|
|
|
* Added copy and paste support
|
|
|
|
*
|
|
|
|
* 24 1/12/99 4:45p Nate
|
|
|
|
* Added max exec time support, added more interface features
|
|
|
|
*
|
|
|
|
* 23 1/11/99 8:42p Nate
|
|
|
|
* Added script parameter support
|
|
|
|
*
|
|
|
|
* 22 1/11/99 6:40p Nate
|
|
|
|
* Added ENUM support
|
|
|
|
*
|
|
|
|
* 21 1/11/99 10:19a Nate
|
|
|
|
* Fixed AND/OR insertion bug
|
|
|
|
*
|
|
|
|
* 20 1/08/99 12:32p Nate
|
|
|
|
* Added glue function validation upon loading scripts
|
|
|
|
*
|
|
|
|
* 19 1/07/99 10:17p Nate
|
|
|
|
* Added first round of script loading code...
|
|
|
|
*
|
|
|
|
* 18 1/06/99 7:09p Nate
|
|
|
|
* Added saving of scripts
|
|
|
|
*
|
|
|
|
* 17 1/06/99 1:13p Nate
|
|
|
|
* Added support for IT objects and ELSE clauses
|
|
|
|
*
|
|
|
|
* 16 1/05/99 8:00p Nate
|
|
|
|
* Added conditional code creation... fixed up interface yet a little
|
|
|
|
* more.
|
|
|
|
*
|
|
|
|
* 15 1/05/99 2:03p Nate
|
|
|
|
* Fixed up events and conditional interface a little
|
|
|
|
*
|
|
|
|
* 14 1/04/99 7:34p Nate
|
|
|
|
* Added rough interface for Conditions
|
|
|
|
*
|
|
|
|
* 13 12/23/98 6:44p Nate
|
|
|
|
* Added reading in of queries
|
|
|
|
*
|
|
|
|
* 12 12/23/98 4:03p Nate
|
|
|
|
* Added code to implement as a modeless dialog
|
|
|
|
*
|
|
|
|
* 11 12/23/98 12:35p Nate
|
|
|
|
* Added use of level name in Dallas script file naming system.
|
|
|
|
*
|
|
|
|
* 10 12/22/98 3:55p Nate
|
|
|
|
* Added object and room assignments
|
|
|
|
*
|
|
|
|
* 9 12/21/98 8:01p Nate
|
|
|
|
* Added creation of shell code, started conditional interface.
|
|
|
|
*
|
|
|
|
* 8 12/20/98 4:29p Nate
|
|
|
|
* Added script grouping code (based upon owner, then event type)
|
|
|
|
*
|
|
|
|
* 7 12/18/98 6:54p Nate
|
|
|
|
* Added more interface features.
|
|
|
|
*
|
|
|
|
* 6 12/17/98 9:48p Nate
|
|
|
|
* Added editing of paramaters
|
|
|
|
*
|
|
|
|
* 5 12/16/98 8:45p Nate
|
|
|
|
* Added loading of Actions
|
|
|
|
*
|
|
|
|
* 4 12/15/98 7:47p Nate
|
|
|
|
* Added inserting and deleting of default script trees.
|
|
|
|
*
|
|
|
|
* 3 12/13/98 6:08p Nate
|
|
|
|
* Implemented the Message List interface
|
|
|
|
*
|
|
|
|
* 2 12/11/98 6:45p Nate
|
|
|
|
* Initial Version
|
|
|
|
*
|
|
|
|
* $NoKeywords: $
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#if !defined(AFX_DALLASMAINDLG_H__93285122_90E1_11D2_A4E0_00A0C96ED60D__INCLUDED_)
|
|
|
|
#define AFX_DALLASMAINDLG_H__93285122_90E1_11D2_A4E0_00A0C96ED60D__INCLUDED_
|
|
|
|
|
|
|
|
#if _MSC_VER > 1000
|
|
|
|
#pragma once
|
|
|
|
#endif // _MSC_VER > 1000
|
|
|
|
// DallasMainDlg.h : header file
|
|
|
|
//
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// The Current Save Version Number
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#define DALLAS_SAVE_VERSION 3
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Message List structure and constants
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#define MAX_MESSAGE_LIST_ENTRIES 500
|
|
|
|
#define MAX_MESSAGE_LEN 256
|
|
|
|
#define MAX_MESSAGE_NAME_LEN 45
|
|
|
|
|
|
|
|
#define NO_MSG_LIST_ERROR 0
|
|
|
|
#define MSG_LIST_FULL_ERROR 1
|
|
|
|
#define MSG_LIST_DUP_NAME_ERROR 2
|
|
|
|
|
|
|
|
#define DEFAULT_MESSAGE_NAME "Message"
|
|
|
|
#define DEFAULT_MESSAGE_TEXT ""
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char name[MAX_MESSAGE_NAME_LEN+1]; // the named identifier of the message
|
|
|
|
char message[MAX_MESSAGE_LEN+1]; // the message text
|
|
|
|
} tMessageListEntry;
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Tree Data Node structure and constants
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#define NOT_SPECIFIED_TYPE -1
|
|
|
|
#define OBJECT_NONE_HANDLE -2
|
|
|
|
#define OBJECT_IT_HANDLE -3
|
|
|
|
#define OBJECT_ME_HANDLE -4
|
|
|
|
#define ENUM_GOALID_VALUE -5
|
|
|
|
#define ENUM_TIMERID_VALUE -6
|
|
|
|
#define ENUM_MATCENID_VALUE -7
|
|
|
|
#define MATCEN_ID_VALUE -8
|
|
|
|
#define LEVEL_GOAL_ID_VALUE -9
|
|
|
|
|
|
|
|
// The types of Tree Nodes
|
|
|
|
#define SCRIPT_HEADER_NODE 0
|
|
|
|
#define SCRIPT_OWNER_NODE 1
|
|
|
|
#define SCRIPT_EVENT_NODE 2
|
|
|
|
#define CONDITIONAL_HEADER_NODE 3
|
|
|
|
#define ACTIONS_HEADER_NODE 4
|
|
|
|
#define CONDITIONAL_STATEMENT_NODE 5
|
|
|
|
#define EXPRESSION_NODE 6
|
|
|
|
#define EXPRESSION_OPERATOR_NODE 7
|
|
|
|
#define ACTION_STATEMENT_NODE 8
|
|
|
|
#define LOGICAL_OPERATOR_NODE 9
|
|
|
|
#define PARAMETER_NODE 10
|
|
|
|
#define PARAMETER_OPERATOR_NODE 11
|
|
|
|
#define CLIPBOARD_HEADER_NODE 12
|
|
|
|
#define UNKNOWN_NODE 13
|
|
|
|
|
|
|
|
// Logical Operator Types
|
|
|
|
#define AND_TYPE 0
|
|
|
|
#define OR_TYPE 1
|
|
|
|
|
|
|
|
#define MAX_LOGICAL_OPERATORS 2
|
|
|
|
|
|
|
|
// Conditional Statement Types
|
|
|
|
#define ALWAYS_STATEMENT 0
|
|
|
|
#define BINARY_STATEMENT 1
|
|
|
|
#define COMPARISON_STATEMENT 2
|
|
|
|
|
|
|
|
#define MAX_CONDITION_TYPES 3
|
|
|
|
|
|
|
|
#define ALWAYS_STRING "ALWAYS"
|
|
|
|
|
|
|
|
// Parameter Types
|
|
|
|
#define DOOR_PARAMETER_TYPE 0
|
|
|
|
#define OBJECT_PARAMETER_TYPE 1
|
|
|
|
#define ROOM_PARAMETER_TYPE 2
|
|
|
|
#define TRIGGER_PARAMETER_TYPE 3
|
|
|
|
#define INT_PARAMETER_TYPE 4
|
|
|
|
#define BOOL_PARAMETER_TYPE 5
|
|
|
|
#define FLOAT_PARAMETER_TYPE 6
|
|
|
|
#define VECTOR_PARAMETER_TYPE 7
|
|
|
|
#define STRING_PARAMETER_TYPE 8
|
|
|
|
#define PERCENTAGE_PARAMETER_TYPE 9
|
|
|
|
#define ENUM_PARAMETER_TYPE 10
|
|
|
|
#define SCRIPT_PARAMETER_TYPE 11
|
|
|
|
#define SOUND_PARAMETER_TYPE 12
|
|
|
|
#define SPECNAME_PARAMETER_TYPE 13
|
|
|
|
#define TEXTURE_PARAMETER_TYPE 14
|
|
|
|
#define FLAG_PARAMETER_TYPE 15
|
|
|
|
#define PATH_PARAMETER_TYPE 16
|
|
|
|
#define MATCEN_PARAMETER_TYPE 17
|
|
|
|
#define LEVEL_GOAL_PARAMETER_TYPE 18
|
|
|
|
#define STRM_AUDIO_PARAMETER_TYPE 19
|
|
|
|
#define UNKNOWN_PARAMETER_TYPE 20
|
|
|
|
|
|
|
|
#define MAX_LITERALS 20
|
|
|
|
|
|
|
|
#define ANY_PARAMETER_TYPE 21
|
|
|
|
|
|
|
|
// Expression Types
|
|
|
|
#define LITERAL_VALUE_TYPE 0
|
|
|
|
#define QUERY_TYPE 1
|
|
|
|
|
|
|
|
// Expression Operator Types
|
|
|
|
#define BINARY_OPERATOR_TYPE 0
|
|
|
|
#define COMPARISON_OPERATOR_TYPE 1
|
|
|
|
|
|
|
|
// Expression Operators (Comparison)
|
|
|
|
#define EQUAL_TO 0
|
|
|
|
#define NOT_EQUAL_TO 1
|
|
|
|
#define GREATER_THAN 2
|
|
|
|
#define LESS_THAN 3
|
|
|
|
#define GREATER_THAN_OR_EQUAL_TO 4
|
|
|
|
#define LESS_THAN_OR_EQUAL_TO 5
|
|
|
|
|
|
|
|
// Expression Operators (Binary)
|
|
|
|
#define IS_TRUE 6
|
|
|
|
#define IS_FALSE 7
|
|
|
|
|
|
|
|
#define MAX_EXPRESSION_OPERATORS 8
|
|
|
|
|
|
|
|
// Struct for storing expression operator information
|
|
|
|
typedef struct {
|
|
|
|
int type; // expression operator (see above)
|
|
|
|
char *name; // the displayed name
|
|
|
|
char *menu_name; // the menu name
|
|
|
|
char *code_name; // DEFINE string to identify event in code
|
|
|
|
int op_type; // whether it is a binary or comparison op
|
|
|
|
} ExpOpInfoItem;
|
|
|
|
|
|
|
|
|
|
|
|
// Script Owner Types
|
|
|
|
#define TRIGGER_TYPE 0
|
|
|
|
#define OBJECT_TYPE 1
|
|
|
|
#define LEVEL_TYPE 2
|
|
|
|
|
|
|
|
#define ROOM_TYPE 3 // Not an owner type, but it is a named type
|
|
|
|
#define SOUND_TYPE 4 // also not an owner type
|
|
|
|
#define PATH_TYPE 5 // also not an owner type
|
|
|
|
#define MATCEN_TYPE 6 // also not an owner type
|
|
|
|
#define LEVEL_GOAL_TYPE 7 // also not an owner type
|
|
|
|
|
|
|
|
#define ALL_OBJECTS_TYPE 10 // Used for highlighting purposes only
|
|
|
|
#define ALL_TRIGGERS_TYPE 11 // Used for highlighting purposes only
|
|
|
|
#define NONE_TYPE 12 // Used for highlighting purposes only
|
|
|
|
#define ALL_OWNERS_TYPE 13 // Used for highlighting purposes only
|
|
|
|
|
|
|
|
// Script Event Types - ONLY ADD TO END OF LIST!!!!
|
|
|
|
// (NOTE: when making changes, remember to update event_info[] in the main source file!)
|
|
|
|
#define COLLIDE_EVENT_TYPE 0
|
|
|
|
#define ACTIVATED_EVENT_TYPE 1
|
|
|
|
#define CREATED_EVENT_TYPE 2
|
|
|
|
#define DAMAGED_EVENT_TYPE 3
|
|
|
|
#define DESTROYED_EVENT_TYPE 4
|
|
|
|
#define FRAME_INTERVAL_EVENT_TYPE 5
|
|
|
|
#define LEVEL_START_EVENT_TYPE 6
|
|
|
|
#define LEVEL_END_EVENT_TYPE 7
|
|
|
|
#define CHANGE_SEGMENT_EVENT_TYPE 8
|
|
|
|
#define TIMER_EVENT_TYPE 9
|
|
|
|
#define AIN_OBJKILLED_EVENT_TYPE 10
|
|
|
|
#define AIN_SEEPLAYER_EVENT_TYPE 11
|
|
|
|
#define AIN_WHITOBJECT_EVENT_TYPE 12
|
|
|
|
#define AIN_GOALCOMPLETE_EVENT_TYPE 13
|
|
|
|
#define AIN_GOALFAIL_EVENT_TYPE 14
|
|
|
|
#define AIN_MELHIT_EVENT_TYPE 15
|
|
|
|
#define AIN_MELATTACKFRAME_EVENT_TYPE 16
|
|
|
|
#define AIN_MOVIE_STARTED_EVENT_TYPE 17
|
|
|
|
#define AIN_MOVIE_ENDED_EVENT_TYPE 18
|
|
|
|
#define DOOR_CLOSED_EVENT_TYPE 19
|
|
|
|
#define DOOR_ACTIVATED_EVENT_TYPE 20
|
|
|
|
#define MATCEN_NOTIFY_EVENT_TYPE 21
|
|
|
|
#define CHILD_DIED_EVENT_TYPE 22
|
|
|
|
#define LGOAL_COMPLETED_EVENT_TYPE 23
|
|
|
|
#define ALL_LGOALS_COMPLETE_EVENT_TYPE 24
|
|
|
|
#define USED_EVENT_TYPE 25
|
|
|
|
#define LGOAL_ITEM_COMPLETE_EVENT_TYPE 26
|
|
|
|
#define PLAYER_MOVIE_START_TYPE 27
|
|
|
|
#define PLAYER_MOVIE_END_TYPE 28
|
|
|
|
#define AI_INIT_EVENT_TYPE 29
|
|
|
|
#define PLAYER_RESPAWN_TYPE 30
|
|
|
|
#define PLAYER_DIES_TYPE 31
|
|
|
|
#define MAX_EVENT_TYPES 32
|
|
|
|
|
|
|
|
#define ALL_EVENT_TYPES 99 // Used for highlighting purposes only
|
|
|
|
|
|
|
|
// Struct for storing event information
|
|
|
|
typedef struct {
|
|
|
|
int type; // event type (see above)
|
|
|
|
char *name; // the displayed name
|
|
|
|
char *code_name; // DEFINE string to identify event in code
|
|
|
|
char *data_line; // The line for this event's data struct
|
|
|
|
int flags; // owner and various flags
|
|
|
|
} EventInfoItem;
|
|
|
|
|
|
|
|
// Constants for masking what events go with what owner
|
|
|
|
#define OBJECT_MASK 0x001
|
|
|
|
#define TRIGGER_MASK 0x002
|
|
|
|
#define LEVEL_MASK 0x004
|
|
|
|
|
|
|
|
#define HAS_IT_MASK 0x008
|
|
|
|
#define HAS_GOALID_MASK 0x010
|
|
|
|
#define HAS_TIMERID_MASK 0x020
|
|
|
|
#define HAS_MATCENID_MASK 0x040
|
|
|
|
|
|
|
|
#define DOOR_OBJECT_MASK 0x080
|
|
|
|
|
|
|
|
#define HAS_LEVGOALID_MASK 0x100
|
|
|
|
|
|
|
|
|
|
|
|
// Struct for easily creating literal menu
|
|
|
|
typedef struct {
|
|
|
|
int type; // the type of literal (parameter type)
|
|
|
|
char *name; // menu name of the literal
|
|
|
|
} ParamMenuItem;
|
|
|
|
|
|
|
|
|
|
|
|
// Nested Types
|
|
|
|
#define TOP_LEVEL 0
|
|
|
|
#define NESTED 1
|
|
|
|
|
|
|
|
// Clause Types
|
|
|
|
#define THEN_CLAUSE 0
|
|
|
|
#define ELSE_CLAUSE 1
|
|
|
|
|
|
|
|
// Max Execution Time options
|
|
|
|
#define ENTER_EXEC_TIMES 0
|
|
|
|
#define EXECUTE_INFINITELY 1
|
|
|
|
#define EXECUTE_ONCE 2
|
|
|
|
#define EXECUTE_TWICE 3
|
|
|
|
|
|
|
|
#define MAX_EXEC_TIME_OPTIONS 4
|
|
|
|
|
|
|
|
// Continue Chain Options
|
|
|
|
#define CONTINUE_SCRIPT_CHAIN 0
|
|
|
|
#define BREAK_SCRIPT_CHAIN 1
|
|
|
|
|
|
|
|
#define MAX_CHAIN_OPTIONS 2
|
|
|
|
|
|
|
|
// Object Parameter Indicators
|
|
|
|
#define USE_OBJECT_HANDLE 0
|
|
|
|
#define USE_IT_HANDLE 1
|
|
|
|
#define USE_ME_HANDLE 2
|
|
|
|
|
|
|
|
// Enum Parameter Indicators
|
|
|
|
#define USE_ENUM_VALUE 0
|
|
|
|
#define USE_GOALID_VALUE 1
|
|
|
|
#define USE_TIMERID_VALUE 2
|
|
|
|
#define USE_MATCENID_VALUE 3
|
|
|
|
|
|
|
|
// Matcen Parameter Indicators
|
|
|
|
#define USE_MATCEN_VALUE 0
|
|
|
|
#define USE_MATCEN_EVENT_ID 1
|
|
|
|
|
|
|
|
// Level Goal Parameter Indicators
|
|
|
|
#define USE_LEVEL_GOAL_VALUE 0
|
|
|
|
#define USE_LEVEL_GOAL_ID 1
|
|
|
|
|
|
|
|
#define DEFAULT_SCRIPT_HEADER_STRING "Script Description Goes Here"
|
|
|
|
#define NOT_SPECIFIED_STRING "NOT SPECIFIED"
|
|
|
|
#define NONE_STRING "None"
|
|
|
|
|
|
|
|
#define MAX_NDATA_NAME_LEN 64
|
|
|
|
|
|
|
|
#define MAX_STRING_DISPLAY_LEN 20
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int type; // the node type (see above list)
|
|
|
|
char name[MAX_NDATA_NAME_LEN+1]; // multipurpose name string
|
|
|
|
int ID; // multipurpose identifier
|
|
|
|
int subID; // multipurpose sub-identifier
|
|
|
|
int int_val; // stores an integer value
|
|
|
|
float float_val1; // stores a float value type (Vector X)
|
|
|
|
float float_val2; // stores a float value type (Vector Y)
|
|
|
|
float float_val3; // stores a float value type (Vector Z)
|
|
|
|
char str_val[MAX_MESSAGE_NAME_LEN+1]; // stores the named identifier of a message
|
|
|
|
int flags; // various flags
|
|
|
|
} tTreeNodeData;
|
|
|
|
|
|
|
|
/**********************************************************
|
|
|
|
* Tree Node Data Specifications
|
|
|
|
***********************************************************
|
|
|
|
|
|
|
|
SCRIPT_HEADER_NODE
|
|
|
|
name: the script header description entered by user
|
|
|
|
ID: the ID number given to the script
|
|
|
|
|
|
|
|
SCRIPT_OWNER_NODE
|
|
|
|
ID: the type of owner (object, trigger, or level)
|
|
|
|
int_val: the handle or ID number for the owner
|
|
|
|
|
|
|
|
SCRIPT_EVENT_NODE
|
|
|
|
ID: the type of event
|
|
|
|
|
|
|
|
CONDITIONAL_HEADER_NODE
|
|
|
|
ID: whether it is TOP_LEVEL or NESTED
|
|
|
|
|
|
|
|
ACTIONS_HEADER_NODE
|
|
|
|
ID: whether it is TOP_LEVEL or NESTED
|
|
|
|
for TOP_LEVEL:
|
|
|
|
subID: max times to execute actions (only valid for TOP_LEVEL, 0 implies infinity)
|
|
|
|
int_val: whether it should
|
|
|
|
for NESTED:
|
|
|
|
subID: whether it is a THEN_CLAUSE or an ELSE_CLAUSE
|
|
|
|
int_val: unused
|
|
|
|
|
|
|
|
CONDITIONAL_STATEMENT_NODE
|
|
|
|
ID: the type of conditional (always, binary, or comparison statement)
|
|
|
|
|
|
|
|
EXPRESSION_NODE
|
|
|
|
ID: stores index into the Query Database
|
|
|
|
name: the parameter name accepting the query's return value
|
|
|
|
|
|
|
|
EXPRESSION_OPERATOR_NODE
|
|
|
|
ID: the type of operation (binary or comparison)
|
|
|
|
subID: the specific operation (<,=,>, etc)
|
|
|
|
|
|
|
|
ACTION_STATEMENT_NODE
|
|
|
|
ID: index into the Action Database (or DO_NOTHING_ID)
|
|
|
|
|
|
|
|
LOGICAL_OPERATOR_NODE
|
|
|
|
ID: the type of operator (AND, OR)
|
|
|
|
|
|
|
|
PARAMETER_NODE
|
|
|
|
name: the parameter name for this value
|
|
|
|
ID: the type of parameter this node is storing
|
|
|
|
for DOOR_PARAMETER_TYPE:
|
|
|
|
subID: indicates whether object should USE_OBJECT_HANDLE or USE_IT_HANDLE or USE_ME_HANDLE
|
|
|
|
int_val: stores the object handle for the door
|
|
|
|
str_val: stores the name of the door
|
|
|
|
for OBJECT_PARAMETER_TYPE:
|
|
|
|
subID: indicates whether object should USE_OBJECT_HANDLE or USE_IT_HANDLE or USE_ME_HANDLE
|
|
|
|
int_val: stores the object handle
|
|
|
|
str_val: stores the name of the object
|
|
|
|
for ROOM_PARAMETER_TYPE:
|
|
|
|
int_val: stores an index/ID for the room
|
|
|
|
str_val: stores the name of the room
|
|
|
|
for TRIGGER_PARAMETER_TYPE:
|
|
|
|
int_val: stores an index/ID for the trigger
|
|
|
|
str_val: stores the name of the trigger
|
|
|
|
for INT_PARAMETER_TYPE:
|
|
|
|
int_val: stores an integer value
|
|
|
|
for BOOL_PARAMETER_TYPE:
|
|
|
|
int_val: stores either TRUE or FALSE
|
|
|
|
for FLOAT_PARAMETER_TYPE:
|
|
|
|
float_val1: stores a float value
|
|
|
|
for VECTOR_PARAMETER_TYPE:
|
|
|
|
float_val1: stores X value
|
|
|
|
float_val2: stores Y value
|
|
|
|
float_val3: stores Z value
|
|
|
|
for STRING_PARAMETER_TYPE:
|
|
|
|
str_val: stores the name (identifier) of a string in the message list
|
|
|
|
for PERCENTAGE_PARAMETER_TYPE:
|
|
|
|
float_val1: stores a percentage as a float value (ie 0.5 == 50%)
|
|
|
|
for ENUM_PARAMETER_TYPE:
|
|
|
|
subID: indicates whether enum should USE_ENUM_VALUE or USE_GOALID_VALUE or USE_TIMERID_VALUE or USE_MATCENID_VALUE
|
|
|
|
int_val: stores the value for the enumeration (keyed on the value in name)
|
|
|
|
for SCRIPT_PARAMETER_TYPE:
|
|
|
|
int_val: stores the script ID
|
|
|
|
for SOUND_PARAMETER_TYPE:
|
|
|
|
int_val: stores the sound array index position
|
|
|
|
str_val: stores the name of the sound
|
|
|
|
for SPECNAME_PARAMETER_TYPE:
|
|
|
|
str_val: stores the specific string
|
|
|
|
for TEXTURE_PARAMETER_TYPE:
|
|
|
|
int_val: stores the texture array index position
|
|
|
|
str_val: stores the name of the sound
|
|
|
|
for FLAG_PARAMETER_TYPE:
|
|
|
|
int_val: stores the value for the flags (keyed on the value in name)
|
|
|
|
for PATH_PARAMETER_TYPE:
|
|
|
|
int_val: stores an index/ID for the path
|
|
|
|
str_val: stores the name of the path
|
|
|
|
for MATCEN_PARAMETER_TYPE:
|
|
|
|
subID: indicates whether matcen should USE_MATCEN_VALUE or USE_MATCEN_EVENT_ID
|
|
|
|
int_val: stores an index/ID for the matcen
|
|
|
|
str_val: stores the name of the matcen
|
|
|
|
for LEVEL_GOAL_PARAMETER_TYPE:
|
|
|
|
subID: stores whether goal should USE_LEVEL_GOAL_VALUE or USE_LEVEL_GOAL_ID
|
|
|
|
int_val: stores an index/ID for the goal
|
|
|
|
str_val: stores the name of the goal
|
|
|
|
for STRM_AUDIO_PARAMETER_TYPE:
|
|
|
|
str_val: stores the name of the streaming audio file
|
|
|
|
|
|
|
|
PARAMETER_OPERATOR_NODE
|
|
|
|
|
|
|
|
CLIPBOARD_HEADER_NODE
|
|
|
|
|
|
|
|
UNKNOWN_NODE
|
|
|
|
*************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Enumeration structures and constants
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#define MAX_ENUMS 50
|
|
|
|
#define MAX_ENUM_VALUES 100
|
|
|
|
|
|
|
|
#define TAG_ENUM "$$ENUM"
|
|
|
|
#define TAG_USERTYPE "$$USERTYPE"
|
|
|
|
|
|
|
|
#define USERTYPE_NONE "None"
|
|
|
|
|
|
|
|
#define INVALID_ENUM -1
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char *name; // the name of this enum value
|
|
|
|
int value; // the value bound to this name
|
|
|
|
} tEnumValueEntry;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char *name; // the name for this enumeration type
|
|
|
|
tEnumValueEntry values[MAX_ENUM_VALUES]; // the enumerated value storage
|
|
|
|
int num_values; // the number of values stored
|
|
|
|
bool is_user_type; // indicates if it's a user type
|
|
|
|
int max_values; // max allowed value for user types
|
|
|
|
} tEnumDBEntry;
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Flag structures and constants
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#define MAX_FLAGS 50
|
|
|
|
#define MAX_FLAG_VALUES 32
|
|
|
|
|
|
|
|
#define TAG_FLAG "$$FLAG"
|
|
|
|
|
|
|
|
#define INVALID_FLAG -1
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char *name; // the name of this flag value
|
|
|
|
int value; // the value bound to this name
|
|
|
|
} tFlagValueEntry;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char *name; // the name for this flag type
|
|
|
|
tFlagValueEntry values[MAX_FLAG_VALUES]; // the flag value storage
|
|
|
|
int num_values; // the number of values stored
|
|
|
|
} tFlagDBEntry;
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Action and Query Database structures and constants
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#define DO_NOTHING_ID -1
|
|
|
|
#define DO_NOTHING_STRING "DO NOTHING"
|
|
|
|
|
|
|
|
#define MAX_ACTIONS 500
|
|
|
|
#define MAX_QUERIES 500
|
|
|
|
#define MAX_CATEGORIES 32
|
|
|
|
|
|
|
|
#define INVALID_CATEGORY -1
|
|
|
|
|
|
|
|
#define INVALID_FUNCTION_NAME "InvalidFunctionName"
|
|
|
|
#define INVALID_FUNCTION_ID -2
|
|
|
|
|
|
|
|
#define TAG_CAT "$$CATEGORIES"
|
|
|
|
#define TAG_ACTION "$$ACTION"
|
|
|
|
#define TAG_QUERY "$$QUERY"
|
|
|
|
#define TAG_END "$$END"
|
|
|
|
|
|
|
|
#define NO_MEM_ERR 0 // out of memory (malloc failed)
|
|
|
|
#define UEOF_ERR 1 // unexpected end of file
|
|
|
|
#define INV_CAT_ERR 2 // invalid category assigned
|
|
|
|
#define INV_ENUM_ERR 3 // invalid enum assigned (duplicate name)
|
|
|
|
#define INV_ENUM_VALUE_ERR 4 // invalid enum value assigned (duplicate)
|
|
|
|
#define MAX_ENUM_ERR 5 // the max number of enums has been reached
|
|
|
|
#define MAX_ENUM_VALUES_ERR 6 // the max number of enum values has been reached
|
|
|
|
#define INV_FLAG_ERR 7 // invalid flag assigned (duplicate name)
|
|
|
|
#define INV_FLAG_VALUE_ERR 8 // invalid flag value assigned (duplicate)
|
|
|
|
#define MAX_FLAG_ERR 9 // the max number of flags has been reached
|
|
|
|
#define MAX_FLAG_VALUES_ERR 10 // the max number of flag values has been reached
|
|
|
|
|
|
|
|
//Structure that defines an action
|
|
|
|
typedef struct {
|
|
|
|
int category; //Which group this action belongs to
|
|
|
|
char *desc; //What the user sees
|
|
|
|
char *func; //The glue function to call for this action
|
|
|
|
char *help; //The help info for this function
|
|
|
|
} tActionDBEntry;
|
|
|
|
|
|
|
|
//Structure that defines a query
|
|
|
|
typedef struct {
|
|
|
|
int category; //Which group this query belongs to
|
|
|
|
char *desc; //What the user sees
|
|
|
|
char *func; //The glue function to call for this query
|
|
|
|
char *help; //The help info for this function
|
|
|
|
} tQueryDBEntry;
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Script Sorting/Organization Structures and Constants
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
HTREEITEM *script_node_list; // The list of scripts of this event type
|
|
|
|
int num_script_nodes; // The number of scripts in the list
|
|
|
|
} tEventSection;
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int owner_type; // The owner type for this script group
|
|
|
|
int owner_handle; // The specific handle/ID for this script group
|
|
|
|
tEventSection event_sections[MAX_EVENT_TYPES]; // The event section script lists
|
|
|
|
} tScriptOwnerGroup;
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// File parsing constants
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
// Message File Related
|
|
|
|
#define MAX_MSG_FILE_BUFFER_LEN (MAX_MESSAGE_LEN+MAX_MESSAGE_NAME_LEN)+1024
|
|
|
|
#define NEXT_MSG_ID_NUM_KEYWORD "NEXT_MESSAGE_ID_NUMBER"
|
|
|
|
|
|
|
|
// Usertype value block tags
|
|
|
|
#define USERTYPE_VALS_START_TAG "$$UTYPE_VALS_START"
|
|
|
|
#define USERTYPE_VALS_END_TAG "$$UTYPE_VALS_END"
|
|
|
|
|
|
|
|
// Script Source File Related
|
|
|
|
#define SCRIPT_BLOCK_START_TAG "$$SCRIPT_BLOCK_START"
|
|
|
|
#define SCRIPT_BLOCK_END_TAG "$$SCRIPT_BLOCK_END"
|
|
|
|
#define CHILD_BLOCK_START_TAG "$$CHILD_BLOCK_START"
|
|
|
|
#define CHILD_BLOCK_END_TAG "$$CHILD_BLOCK_END"
|
|
|
|
|
|
|
|
// Name List Constants
|
|
|
|
#define DOOR_LIST_START_TAG "$$DOOR_LIST_START"
|
|
|
|
#define DOOR_LIST_END_TAG "$$DOOR_LIST_END"
|
|
|
|
|
|
|
|
#define OBJECT_LIST_START_TAG "$$OBJECT_LIST_START"
|
|
|
|
#define OBJECT_LIST_END_TAG "$$OBJECT_LIST_END"
|
|
|
|
|
|
|
|
#define ROOM_LIST_START_TAG "$$ROOM_LIST_START"
|
|
|
|
#define ROOM_LIST_END_TAG "$$ROOM_LIST_END"
|
|
|
|
|
|
|
|
#define TRIGGER_LIST_START_TAG "$$TRIGGER_LIST_START"
|
|
|
|
#define TRIGGER_LIST_END_TAG "$$TRIGGER_LIST_END"
|
|
|
|
|
|
|
|
#define SOUND_LIST_START_TAG "$$SOUND_LIST_START"
|
|
|
|
#define SOUND_LIST_END_TAG "$$SOUND_LIST_END"
|
|
|
|
|
|
|
|
#define TEXTURE_LIST_START_TAG "$$TEXTURE_LIST_START"
|
|
|
|
#define TEXTURE_LIST_END_TAG "$$TEXTURE_LIST_END"
|
|
|
|
|
|
|
|
#define SPECNAME_LIST_START_TAG "$$SPECNAME_LIST_START"
|
|
|
|
#define SPECNAME_LIST_END_TAG "$$SPECNAME_LIST_END"
|
|
|
|
|
|
|
|
#define PATH_LIST_START_TAG "$$PATH_LIST_START"
|
|
|
|
#define PATH_LIST_END_TAG "$$PATH_LIST_END"
|
|
|
|
|
|
|
|
#define MATCEN_LIST_START_TAG "$$MATCEN_LIST_START"
|
|
|
|
#define MATCEN_LIST_END_TAG "$$MATCEN_LIST_END"
|
|
|
|
|
|
|
|
#define GOAL_LIST_START_TAG "$$GOAL_LIST_START"
|
|
|
|
#define GOAL_LIST_END_TAG "$$GOAL_LIST_END"
|
|
|
|
|
|
|
|
#define STRM_AUDIO_LIST_START_TAG "$$STRM_AUDIO_LIST_START"
|
|
|
|
#define STRM_AUDIO_LIST_END_TAG "$$STRM_AUDIO_LIST_END"
|
|
|
|
|
|
|
|
|
|
|
|
// Custom Source Related
|
|
|
|
#define CUSTOM_FUNCTION_PROTOTYPE_BEGIN_TAG "<CUSTOM_FUNCTION_PROTOTYPE_START>"
|
|
|
|
#define CUSTOM_FUNCTION_PROTOTYPE_END_TAG "<CUSTOM_FUNCTION_PROTOTYPE_END>"
|
|
|
|
|
|
|
|
// Script Library File Parsing
|
|
|
|
#define SCRIPT_START_TAG "$$SCRIPT"
|
|
|
|
#define SCRIPT_END_TAG "$$END"
|
|
|
|
|
|
|
|
// Script Parsing Errors
|
|
|
|
#define UEOS_ERR 0 // The script file ended unexpectedly
|
|
|
|
#define INVALID_FUNC_ERR 1 // An invalid function name was encountered
|
|
|
|
#define INVALID_NODE_ERR 2 // A node was not added due to parse error(s)
|
|
|
|
#define MODIFIED_FUNC_ERR 3 // A function is now different than the one read in
|
|
|
|
#define INVALID_MSGID_ERR 4 // An invalid message ID was encountered
|
|
|
|
|
|
|
|
// Custom Script Block Lines
|
|
|
|
#define CUSTOM_SCRIPT_BLOCK_START_TAG "/**{CUSTOM_SCRIPT_BLOCK_START}** DO NOT EDIT! **/"
|
|
|
|
#define CUSTOM_SCRIPT_BLOCK_END_TAG "/**{CUSTOM_SCRIPT_BLOCK_END}**** DO NOT EDIT! **/"
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Floating Menu Command Ranges
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// IMPORTANT NOTE:
|
|
|
|
//
|
|
|
|
// When adding a new command to the following menu system, it is vital
|
|
|
|
// that you tack on the number of ID's used to the following section's
|
|
|
|
// STARTING_COMMAND_ID!!!!
|
|
|
|
//
|
|
|
|
// This was done due to the compiler's limit on enclosing parentheses
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
// Define maximum ranges of values for the different lists
|
|
|
|
#define MAX_NAMED_OBJECTS 1000
|
|
|
|
#define MAX_NAMED_TRIGGERS 100
|
|
|
|
#define MAX_NAMED_DOORS 500
|
|
|
|
#define MAX_NAMED_ROOMS 500
|
|
|
|
#define MAX_NAMED_SCRIPTS 500
|
|
|
|
#define MAX_NAMED_SOUNDS 700
|
|
|
|
#define MAX_NAMED_TEXTURES 500
|
|
|
|
#define MAX_NAMED_PATHS 250
|
|
|
|
#define MAX_NAMED_MATCENS 250
|
|
|
|
#define MAX_NAMED_GOALS 250
|
|
|
|
#define MAX_NAMED_STRM_AUDIO 700
|
|
|
|
#define MAX_SPECNAMES 300
|
|
|
|
|
|
|
|
// Define command ID starting point
|
|
|
|
#define STARTING_COMMAND_ID (WM_USER+10000)
|
|
|
|
|
|
|
|
// Define external DALLAS commands
|
|
|
|
#define WM_HIGHLIGHT_SCRIPTS STARTING_COMMAND_ID
|
|
|
|
#define WM_ADD_SCRIPT (WM_HIGHLIGHT_SCRIPTS+1)
|
|
|
|
#define WM_ADD_SCRIPT_AND_HIGHLIGHT (WM_ADD_SCRIPT+1)
|
|
|
|
|
|
|
|
// Define universal CANCEL command
|
|
|
|
#define CANCEL_COMMAND_ID (WM_ADD_SCRIPT_AND_HIGHLIGHT+1)
|
|
|
|
|
|
|
|
// Define the command ID range for a "Assign" operation
|
|
|
|
#define ASSIGN_STARTING_COMMAND_ID (STARTING_COMMAND_ID+4)
|
|
|
|
#define ASSIGN_COMMAND_RANGE_START ASSIGN_STARTING_COMMAND_ID
|
|
|
|
#define ASSIGN_SCRIPT_ID_RANGE_START ASSIGN_COMMAND_RANGE_START
|
|
|
|
#define ASSIGN_SCRIPT_ID_RANGE_END (ASSIGN_SCRIPT_ID_RANGE_START+MAX_NAMED_SCRIPTS)
|
|
|
|
#define ASSIGN_EXEC_TIME_ID_RANGE_START (ASSIGN_SCRIPT_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_EXEC_TIME_ID_RANGE_END (ASSIGN_EXEC_TIME_ID_RANGE_START+MAX_EXEC_TIME_OPTIONS)
|
|
|
|
#define ASSIGN_CHAIN_ID_RANGE_START (ASSIGN_EXEC_TIME_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_CHAIN_ID_RANGE_END (ASSIGN_CHAIN_ID_RANGE_START+MAX_CHAIN_OPTIONS)
|
|
|
|
#define ASSIGN_SPECIFIC_VALUE_ID (ASSIGN_CHAIN_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_TRUE_ID (ASSIGN_SPECIFIC_VALUE_ID+1)
|
|
|
|
#define ASSIGN_FALSE_ID (ASSIGN_TRUE_ID+1)
|
|
|
|
#define ASSIGN_MESSAGE_ID_RANGE_START (ASSIGN_FALSE_ID+1)
|
|
|
|
#define ASSIGN_MESSAGE_ID_RANGE_END (ASSIGN_MESSAGE_ID_RANGE_START+MAX_MESSAGE_LIST_ENTRIES)
|
|
|
|
#define ASSIGN_EVENT_ID_RANGE_START (ASSIGN_MESSAGE_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_EVENT_ID_RANGE_END (ASSIGN_EVENT_ID_RANGE_START+MAX_EVENT_TYPES)
|
|
|
|
#define ASSIGN_LEVEL_ID (ASSIGN_EVENT_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_TRIGGER_ID_RANGE_START (ASSIGN_LEVEL_ID+1)
|
|
|
|
#define ASSIGN_TRIGGER_ID_RANGE_END (ASSIGN_TRIGGER_ID_RANGE_START+MAX_NAMED_TRIGGERS)
|
|
|
|
#define ASSIGN_OBJECT_ME_ID (ASSIGN_TRIGGER_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_OBJECT_IT_ID (ASSIGN_OBJECT_ME_ID+1)
|
|
|
|
#define ASSIGN_OBJECT_NONE_ID (ASSIGN_OBJECT_IT_ID+1)
|
|
|
|
#define ASSIGN_OBJECT_ID_RANGE_START (ASSIGN_OBJECT_NONE_ID+1)
|
|
|
|
#define ASSIGN_OBJECT_ID_RANGE_END (ASSIGN_OBJECT_ID_RANGE_START+MAX_NAMED_OBJECTS)
|
|
|
|
#define ASSIGN_ROOM_ID_RANGE_START (ASSIGN_OBJECT_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_ROOM_ID_RANGE_END (ASSIGN_ROOM_ID_RANGE_START+MAX_NAMED_ROOMS)
|
|
|
|
#define ASSIGN_EXPOP_ID_RANGE_START (ASSIGN_ROOM_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_EXPOP_ID_RANGE_END (ASSIGN_EXPOP_ID_RANGE_START+MAX_EXPRESSION_OPERATORS)
|
|
|
|
#define ASSIGN_ENUM_GOAL_ID (ASSIGN_EXPOP_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_ENUM_TIMER_ID (ASSIGN_ENUM_GOAL_ID+1)
|
|
|
|
#define ASSIGN_ENUM_MATCEN_ID (ASSIGN_ENUM_TIMER_ID+1)
|
|
|
|
#define ASSIGN_ENUM_VALUE_ID_RANGE_START (ASSIGN_ENUM_MATCEN_ID+1)
|
|
|
|
#define ASSIGN_ENUM_VALUE_ID_RANGE_END (ASSIGN_ENUM_VALUE_ID_RANGE_START+MAX_ENUM_VALUES)
|
|
|
|
#define ASSIGN_PATH_ID_RANGE_START (ASSIGN_ENUM_VALUE_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_PATH_ID_RANGE_END (ASSIGN_PATH_ID_RANGE_START+MAX_NAMED_PATHS)
|
|
|
|
#define ASSIGN_MATCEN_EVENT_ID (ASSIGN_PATH_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_MATCEN_ID_RANGE_START (ASSIGN_MATCEN_EVENT_ID+1)
|
|
|
|
#define ASSIGN_MATCEN_ID_RANGE_END (ASSIGN_MATCEN_ID_RANGE_START+MAX_NAMED_MATCENS)
|
|
|
|
#define ASSIGN_LEVEL_GOAL_ID (ASSIGN_MATCEN_ID_RANGE_END+1)
|
|
|
|
#define ASSIGN_LEVEL_GOAL_ID_RANGE_START (ASSIGN_LEVEL_GOAL_ID+1)
|
|
|
|
#define ASSIGN_LEVEL_GOAL_ID_RANGE_END (ASSIGN_LEVEL_GOAL_ID_RANGE_START+MAX_NAMED_GOALS)
|
|
|
|
#define ASSIGN_COMMAND_RANGE_END (ASSIGN_LEVEL_GOAL_ID_RANGE_END+1)
|
|
|
|
|
|
|
|
// Define all command ID range for an "Add" (also serves as "Insert") operation
|
|
|
|
#define ADD_STARTING_COMMAND_ID (ASSIGN_STARTING_COMMAND_ID+MAX_NAMED_SCRIPTS+MAX_EXEC_TIME_OPTIONS+MAX_CHAIN_OPTIONS+MAX_MESSAGE_LIST_ENTRIES+MAX_EVENT_TYPES+MAX_NAMED_TRIGGERS+MAX_NAMED_OBJECTS+MAX_NAMED_ROOMS+MAX_EXPRESSION_OPERATORS+MAX_ENUM_VALUES+MAX_NAMED_PATHS+MAX_NAMED_MATCENS+MAX_NAMED_GOALS+26)
|
|
|
|
#define ADD_COMMAND_RANGE_START ADD_STARTING_COMMAND_ID
|
|
|
|
#define ADD_IF_THEN_CLAUSE_ID ADD_COMMAND_RANGE_START
|
|
|
|
#define ADD_ELSE_CLAUSE_ID (ADD_IF_THEN_CLAUSE_ID+1)
|
|
|
|
#define ADD_IF_THEN_ELSE_CLAUSE_ID (ADD_ELSE_CLAUSE_ID+1)
|
|
|
|
#define ADD_DO_NOTHING_ACTION_ID (ADD_IF_THEN_ELSE_CLAUSE_ID+1)
|
|
|
|
#define ADD_ACTION_ID_RANGE_START (ADD_DO_NOTHING_ACTION_ID+1)
|
|
|
|
#define ADD_ACTION_ID_RANGE_END (ADD_ACTION_ID_RANGE_START+MAX_ACTIONS)
|
|
|
|
#define ADD_LOGOP_ID_RANGE_START (ADD_ACTION_ID_RANGE_END+1)
|
|
|
|
#define ADD_LOGOP_ID_RANGE_END (ADD_LOGOP_ID_RANGE_START+MAX_LOGICAL_OPERATORS)
|
|
|
|
#define INSERT_LOGOP_ID_RANGE_START (ADD_LOGOP_ID_RANGE_END+1)
|
|
|
|
#define INSERT_LOGOP_ID_RANGE_END (INSERT_LOGOP_ID_RANGE_START+MAX_LOGICAL_OPERATORS)
|
|
|
|
#define ADD_CONDITION_ID_RANGE_START (INSERT_LOGOP_ID_RANGE_END+1)
|
|
|
|
#define ADD_CONDITION_ID_RANGE_END (ADD_CONDITION_ID_RANGE_START+MAX_CONDITION_TYPES)
|
|
|
|
#define ADD_COND_QBIN_ID_RANGE_START (ADD_CONDITION_ID_RANGE_END+1)
|
|
|
|
#define ADD_COND_QBIN_ID_RANGE_END (ADD_COND_QBIN_ID_RANGE_START+MAX_QUERIES)
|
|
|
|
#define ADD_COND_QCOMP_ID_RANGE_START (ADD_COND_QBIN_ID_RANGE_END+1)
|
|
|
|
#define ADD_COND_QCOMP_ID_RANGE_END (ADD_COND_QCOMP_ID_RANGE_START+MAX_QUERIES)
|
|
|
|
#define ADD_COMMAND_RANGE_END (ADD_COND_QCOMP_ID_RANGE_END+1)
|
|
|
|
|
|
|
|
// Define all command ID range for a "Replace" operation
|
|
|
|
#define REPLACE_STARTING_COMMAND_ID (ADD_STARTING_COMMAND_ID+MAX_ACTIONS+MAX_LOGICAL_OPERATORS+MAX_LOGICAL_OPERATORS+MAX_CONDITION_TYPES+MAX_QUERIES+MAX_QUERIES+11)
|
|
|
|
#define REPLACE_COMMAND_RANGE_START REPLACE_STARTING_COMMAND_ID
|
|
|
|
#define REPLACE_QUERY_ID_RANGE_START REPLACE_COMMAND_RANGE_START
|
|
|
|
#define REPLACE_QUERY_ID_RANGE_END (REPLACE_QUERY_ID_RANGE_START+MAX_QUERIES)
|
|
|
|
#define REPLACE_LITERAL_ID_RANGE_START (REPLACE_QUERY_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_LITERAL_ID_RANGE_END (REPLACE_LITERAL_ID_RANGE_START+MAX_LITERALS)
|
|
|
|
#define REPLACE_LIT_ENUM_ID_RANGE_START (REPLACE_LITERAL_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_LIT_ENUM_ID_RANGE_END (REPLACE_LIT_ENUM_ID_RANGE_START+MAX_ENUMS)
|
|
|
|
#define REPLACE_LIT_FLAG_ID_RANGE_START (REPLACE_LIT_ENUM_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_LIT_FLAG_ID_RANGE_END (REPLACE_LIT_FLAG_ID_RANGE_START+MAX_FLAGS)
|
|
|
|
#define REPLACE_DO_NOTHING_ACTION_ID (REPLACE_LIT_FLAG_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_ACTION_ID_RANGE_START (REPLACE_DO_NOTHING_ACTION_ID+1)
|
|
|
|
#define REPLACE_ACTION_ID_RANGE_END (REPLACE_ACTION_ID_RANGE_START+MAX_ACTIONS)
|
|
|
|
#define REPLACE_LOGOP_ID_RANGE_START (REPLACE_ACTION_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_LOGOP_ID_RANGE_END (REPLACE_LOGOP_ID_RANGE_START+MAX_LOGICAL_OPERATORS)
|
|
|
|
#define REPLACE_CONDITION_ID_RANGE_START (REPLACE_LOGOP_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_CONDITION_ID_RANGE_END (REPLACE_CONDITION_ID_RANGE_START+MAX_CONDITION_TYPES)
|
|
|
|
#define REPLACE_COND_QBIN_ID_RANGE_START (REPLACE_CONDITION_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_COND_QBIN_ID_RANGE_END (REPLACE_COND_QBIN_ID_RANGE_START+MAX_QUERIES)
|
|
|
|
#define REPLACE_COND_QCOMP_ID_RANGE_START (REPLACE_COND_QBIN_ID_RANGE_END+1)
|
|
|
|
#define REPLACE_COND_QCOMP_ID_RANGE_END (REPLACE_COND_QCOMP_ID_RANGE_START+MAX_QUERIES)
|
|
|
|
#define REPLACE_COMMAND_RANGE_END (REPLACE_COND_QCOMP_ID_RANGE_END+1)
|
|
|
|
|
|
|
|
// Define all command ID range for a "Delete" operation
|
|
|
|
#define DELETE_STARTING_COMMAND_ID (REPLACE_STARTING_COMMAND_ID+MAX_QUERIES+MAX_LITERALS+MAX_ENUMS+MAX_FLAGS+MAX_ACTIONS+MAX_LOGICAL_OPERATORS+MAX_CONDITION_TYPES+MAX_QUERIES+MAX_QUERIES+11)
|
|
|
|
#define DELETE_COMMAND_RANGE_START DELETE_STARTING_COMMAND_ID
|
|
|
|
#define DELETE_ALL_ID DELETE_COMMAND_RANGE_START
|
|
|
|
#define DELETE_CHILDREN_ONLY_ID (DELETE_ALL_ID+1)
|
|
|
|
#define DELETE_COMMAND_RANGE_END (DELETE_CHILDREN_ONLY_ID+1)
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// CDallasMainDlg dialog
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
typedef char *char_ptr;
|
|
|
|
|
|
|
|
class CDallasMainDlg : public CDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
// Storage for the Loaded script filename
|
|
|
|
CString m_ScriptFilename;
|
|
|
|
CString m_ScriptDLLFilename;
|
|
|
|
CString m_ScriptMessagesFilename;
|
|
|
|
CString m_DallasFunctionsFilename;
|
|
|
|
|
|
|
|
// Modified variable storage
|
|
|
|
bool m_Modified;
|
|
|
|
|
|
|
|
// Declare the image list for the tree control
|
|
|
|
CImageList m_TreeImageList;
|
|
|
|
|
|
|
|
// Store the next message ID to be allocated
|
|
|
|
int m_NextScriptID;
|
|
|
|
|
|
|
|
// The list of Message entries
|
|
|
|
tMessageListEntry *m_MessageEntryList[MAX_MESSAGE_LIST_ENTRIES];
|
|
|
|
int m_MessageListErrorCode;
|
|
|
|
int m_NextMessageID;
|
|
|
|
|
|
|
|
// The enumeration database
|
|
|
|
tEnumDBEntry m_EnumDatabase[MAX_ENUMS];
|
|
|
|
int m_NumEnums;
|
|
|
|
|
|
|
|
// The flag database
|
|
|
|
tFlagDBEntry m_FlagDatabase[MAX_FLAGS];
|
|
|
|
int m_NumFlags;
|
|
|
|
|
|
|
|
// The Action function database
|
|
|
|
char *m_FunctionCategories[MAX_CATEGORIES];
|
|
|
|
tActionDBEntry m_ActionDatabase[MAX_ACTIONS];
|
|
|
|
tQueryDBEntry m_QueryDatabase[MAX_QUERIES];
|
|
|
|
int m_NumFunctionCategories;
|
|
|
|
int m_NumActions;
|
|
|
|
int m_NumQueries;
|
|
|
|
|
|
|
|
// Storage for list of object handles (objects with custom names only)
|
|
|
|
int m_ObjectHandleList[MAX_NAMED_OBJECTS];
|
|
|
|
int m_NumObjectHandles;
|
|
|
|
|
|
|
|
// The list for organizing scripts into owner/event groups (prior to creating source)
|
|
|
|
tScriptOwnerGroup *m_ScriptGroupingList;
|
|
|
|
int m_NumScriptGroups;
|
|
|
|
|
|
|
|
// Clipboard data
|
|
|
|
HTREEITEM m_ClipboardNode;
|
|
|
|
|
|
|
|
// Custom Script Storage Data
|
|
|
|
char **m_CustomScriptLines;
|
|
|
|
int m_NumCustomScriptLines;
|
|
|
|
int m_MaxNumCustomScriptLines;
|
|
|
|
|
|
|
|
// Name Lists
|
|
|
|
char *m_DoorList[MAX_NAMED_DOORS];
|
|
|
|
int m_DoorListSize;
|
|
|
|
char *m_ObjectList[MAX_NAMED_OBJECTS];
|
|
|
|
int m_ObjectListSize;
|
|
|
|
char *m_RoomList[MAX_NAMED_ROOMS];
|
|
|
|
int m_RoomListSize;
|
|
|
|
char *m_TriggerList[MAX_NAMED_TRIGGERS];
|
|
|
|
int m_TriggerListSize;
|
|
|
|
char *m_SoundList[MAX_NAMED_SOUNDS];
|
|
|
|
int m_SoundListSize;
|
|
|
|
char *m_TextureList[MAX_NAMED_TEXTURES];
|
|
|
|
int m_TextureListSize;
|
|
|
|
char *m_SpecnameList[MAX_SPECNAMES];
|
|
|
|
int m_SpecnameListSize;
|
|
|
|
char *m_PathList[MAX_NAMED_PATHS];
|
|
|
|
int m_PathListSize;
|
|
|
|
char *m_MatcenList[MAX_NAMED_MATCENS];
|
|
|
|
int m_MatcenListSize;
|
|
|
|
char *m_GoalList[MAX_NAMED_GOALS];
|
|
|
|
int m_GoalListSize;
|
|
|
|
char *m_StrmAudioList[MAX_NAMED_STRM_AUDIO];
|
|
|
|
int m_StrmAudioListSize;
|
|
|
|
char *m_MessageNameList[MAX_MESSAGE_LIST_ENTRIES];
|
|
|
|
int m_MessageNameListSize;
|
|
|
|
|
|
|
|
// Drag and Drop Vars
|
|
|
|
CImageList* m_pDragImage;
|
|
|
|
BOOL m_bLDragging;
|
|
|
|
HTREEITEM m_hitemDrag,m_hitemDrop;
|
|
|
|
|
|
|
|
public:
|
|
|
|
// Construction
|
|
|
|
CDallasMainDlg(CWnd* pParent = NULL); // standard constructor
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Public Interface Data
|
|
|
|
///////////////////////////////////
|
|
|
|
int m_ScriptOwnerType;
|
|
|
|
int m_ScriptOwnerHandle;
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// General Refresh functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void InitAll(void);
|
|
|
|
void ClearAll(void);
|
|
|
|
void LoadAll(void);
|
|
|
|
void SetAllFilenames(void);
|
|
|
|
void SetAllFilenamesToThis(char *level_path);
|
|
|
|
void Refresh(void);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Manage System functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void CheckinScriptFiles(void);
|
|
|
|
void CheckoutScriptFiles(void);
|
|
|
|
void DeleteScriptFiles(void);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Tree Control functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void InitTree(void);
|
|
|
|
void ClearTree(void);
|
|
|
|
|
|
|
|
void UpdateTreeText(HTREEITEM parent);
|
|
|
|
|
|
|
|
void UpdateNodeText(HTREEITEM node);
|
|
|
|
void UpdateAllParentNodesText(HTREEITEM node);
|
|
|
|
void FormatTreeText(CString &text, tTreeNodeData *data, HTREEITEM node=NULL);
|
|
|
|
void FormatConditionText(CString &text, HTREEITEM condition_node);
|
|
|
|
void FormatGenericExpressionText(CString &text, HTREEITEM gen_exp_node);
|
|
|
|
void FormatParameterValueText(CString &text, tTreeNodeData *data);
|
|
|
|
void FormatActionNodeText(CString &text, HTREEITEM action_node);
|
|
|
|
void FormatQueryNodeText(CString &text, HTREEITEM query_node);
|
|
|
|
|
|
|
|
void SetBoldNodeText(HTREEITEM node, bool bold_on);
|
|
|
|
|
|
|
|
void FreeTreeItem(HTREEITEM item);
|
|
|
|
void FreeTreeItemChildren(HTREEITEM item);
|
|
|
|
|
|
|
|
void ExpandAll(HTREEITEM node, UINT nCode); // Works like CTreeCtrl::Expand(), except on child nodes as well
|
|
|
|
|
|
|
|
HTREEITEM AddNodeToTree(HTREEITEM parent, HTREEITEM insertbefore, HTREEITEM src_node, bool expand=FALSE);
|
|
|
|
HTREEITEM AddNodeToTree(HTREEITEM parent, HTREEITEM insertbefore, tTreeNodeData *data_node, bool expand=FALSE);
|
|
|
|
|
|
|
|
HTREEITEM CopyTree(HTREEITEM dest_parent, HTREEITEM dest_insert_before, HTREEITEM src_node);
|
|
|
|
HTREEITEM CopyChildren(HTREEITEM dest_parent, HTREEITEM src_parent);
|
|
|
|
|
|
|
|
int ConvertParamCharToType(int param_char_ID);
|
|
|
|
int ConvertParamTypeToChar(int param_type);
|
|
|
|
|
|
|
|
bool ParentIsComparisonConditional(HTREEITEM node);
|
|
|
|
int GetValidParamType(HTREEITEM node, CString &name);
|
|
|
|
int GetParamType(HTREEITEM node, CString &name);
|
|
|
|
|
|
|
|
void SetTreeNodeImage(HTREEITEM node); // Sets the image for a node (based on node data)
|
|
|
|
|
|
|
|
char *GetEventTypeString(int type);
|
|
|
|
char *GetEventCodeName(int type);
|
|
|
|
char *GetEventDataLine(int type);
|
|
|
|
void GetLogicalOperatorTypeString(int type, CString &string);
|
|
|
|
char *GetExpressionOperatorTypeString(int type);
|
|
|
|
char *GetExpressionOperatorCodeName(int type);
|
|
|
|
char *GetLiteralName(int type);
|
|
|
|
|
|
|
|
bool ScriptHasAnIt(HTREEITEM script_node);
|
|
|
|
bool ScriptHasAMe(HTREEITEM script_node);
|
|
|
|
bool ScriptHasADoorMe(HTREEITEM script_node);
|
|
|
|
bool ScriptHasATimerID(HTREEITEM script_node);
|
|
|
|
bool ScriptHasAGoalID(HTREEITEM script_node);
|
|
|
|
bool ScriptHasAMatcenID(HTREEITEM script_node);
|
|
|
|
bool ScriptHasALevelGoalID(HTREEITEM script_node);
|
|
|
|
bool NodeIsIfClause(HTREEITEM node);
|
|
|
|
bool NodeIsClauseOfType(HTREEITEM node, int type);
|
|
|
|
bool CanAppendElseToNode(HTREEITEM node);
|
|
|
|
|
|
|
|
int GetChildPosition(HTREEITEM child);
|
|
|
|
HTREEITEM GetNthChild(HTREEITEM parent, int n);
|
|
|
|
int GetChildCount(HTREEITEM parent);
|
|
|
|
int GetScriptID(HTREEITEM script_node);
|
|
|
|
HTREEITEM FindScriptIDNode(int scriptID);
|
|
|
|
int GetLowestUnusedScriptID(void);
|
|
|
|
int GetNodeType(HTREEITEM node);
|
|
|
|
int GetScriptOwnerType(HTREEITEM script_node);
|
|
|
|
int GetScriptEventType(HTREEITEM script_node);
|
|
|
|
bool SetScriptEventType(HTREEITEM script_node, int type);
|
|
|
|
|
|
|
|
HTREEITEM GetParentNodeOfType(HTREEITEM child_node, int node_type);
|
|
|
|
HTREEITEM GetParameterParentNode(HTREEITEM param_node);
|
|
|
|
HTREEITEM GetScriptOwnerNode(HTREEITEM node);
|
|
|
|
HTREEITEM GetScriptEventNode(HTREEITEM node);
|
|
|
|
HTREEITEM GetConditionalHeaderNode(HTREEITEM node);
|
|
|
|
HTREEITEM GetActionHeaderNode(HTREEITEM node);
|
|
|
|
|
|
|
|
tTreeNodeData *GetNearestFunctionNode(HTREEITEM node);
|
|
|
|
void DisplayFloatingPopupMenu(HTREEITEM node, POINT &pt);
|
|
|
|
int DeletePrompt(char *msg);
|
|
|
|
void ConfirmAfterDelete(HTREEITEM parent);
|
|
|
|
|
|
|
|
void HighlightAllScripts(void); // Highlights scripts according to public owner data
|
|
|
|
void HighlightScript(HTREEITEM node); // Highlights a given script according to public owner data
|
|
|
|
|
|
|
|
int ModifiedPrompt(void); // Displays the "are you sure?" dialog
|
|
|
|
void SetModified(bool value);
|
|
|
|
void SetTitleBar(void);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Message List functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void InitMessageList(void); // initializes the message list
|
|
|
|
void ClearMessageList(void); // clears the message list
|
|
|
|
bool AddToMessageList(char *name, char *message); // adds a message to the list
|
|
|
|
char *FindMessageInList(char *name); // returns a message matching given name
|
|
|
|
int DeleteMessageListEntry(char *name); // Deletes a message entry
|
|
|
|
tMessageListEntry *GetEmptyMessageListEntry(void); // returns an available entry slot
|
|
|
|
|
|
|
|
///////////////////////////////////////
|
|
|
|
// Name List functions
|
|
|
|
///////////////////////////////////////
|
|
|
|
void InitNameLists(void);
|
|
|
|
void ClearNameLists(void);
|
|
|
|
int FillNameListsFromTree(HTREEITEM parent, bool show_notspec_warnings);
|
|
|
|
int AddNameToListFromTreeNode(HTREEITEM node, bool show_notspec_warnings);
|
|
|
|
|
|
|
|
// Funcs for displaying Indexed value messages
|
|
|
|
void InvSpecParamMsg(int scriptID, char *type_name);
|
|
|
|
void IndValNotSpecMsg(int scriptID, char *type_name);
|
|
|
|
void InvIndValMsg(int scriptID, char *type_name, int index, char *name);
|
|
|
|
int InvIndValPrompt(int scriptID, char *type_name, int index, char *name, int new_index);
|
|
|
|
void InvNameIndValMsg(int scriptID, char *type_name, int index, char *name, char *new_name);
|
|
|
|
int InvNameIndValPrompt(int scriptID, char *type_name, int index, char *name, char *new_name, int new_index);
|
|
|
|
|
|
|
|
// Funcs for displaying object messages
|
|
|
|
void InvObjMsg(int scriptID, int handle, char *name);
|
|
|
|
int InvObjPrompt(int scriptID, int handle, char *name, int new_handle);
|
|
|
|
void InvNameObjMsg(int scriptID, int handle, char *name, char *new_name);
|
|
|
|
int InvNameObjPrompt(int scriptID, int handle, char *name, char *new_name, int new_handle);
|
|
|
|
|
|
|
|
// Add/Find funcs for the individual name lists
|
|
|
|
int AddDoorToList(char *name);
|
|
|
|
int FindDoorInList(char *name);
|
|
|
|
|
|
|
|
int AddObjectToList(char *name);
|
|
|
|
int FindObjectInList(char *name);
|
|
|
|
|
|
|
|
int AddRoomToList(char *name);
|
|
|
|
int FindRoomInList(char *name);
|
|
|
|
|
|
|
|
int AddTriggerToList(char *name);
|
|
|
|
int FindTriggerInList(char *name);
|
|
|
|
|
|
|
|
int AddSoundToList(char *name);
|
|
|
|
int FindSoundInList(char *name);
|
|
|
|
|
|
|
|
int AddTextureToList(char *name);
|
|
|
|
int FindTextureInList(char *name);
|
|
|
|
|
|
|
|
int AddSpecnameToList(char *name);
|
|
|
|
int FindSpecnameInList(char *name);
|
|
|
|
|
|
|
|
int AddPathToList(char *name);
|
|
|
|
int FindPathInList(char *name);
|
|
|
|
|
|
|
|
int AddMatcenToList(char *name);
|
|
|
|
int FindMatcenInList(char *name);
|
|
|
|
|
|
|
|
int AddGoalToList(char *name);
|
|
|
|
int FindGoalInList(char *name);
|
|
|
|
|
|
|
|
int AddStrmAudioToList(char *name);
|
|
|
|
int FindStrmAudioInList(char *name);
|
|
|
|
|
|
|
|
int AddMessageNameToList(char *name);
|
|
|
|
int FindMessageNameInList(char *name);
|
|
|
|
|
|
|
|
///////////////////////////////////////
|
|
|
|
// User Type Workshop Functions
|
|
|
|
///////////////////////////////////////
|
|
|
|
int FillUserTypeBox(CComboBox *box);
|
|
|
|
int FillValuesBox(CListBox *box, char *utype_name);
|
|
|
|
int AddUserTypeValue(char *utype_name, char *value_name);
|
|
|
|
int DeleteUserTypeValue(char *utype_name, char *value_name);
|
|
|
|
int ChangeValueName(char *utype_name, char *old_name, char *new_name);
|
|
|
|
|
|
|
|
///////////////////////////////////////
|
|
|
|
// Enum Database functions
|
|
|
|
///////////////////////////////////////
|
|
|
|
void InitEnumDatabase(void); // Initializes the enum DB for use
|
|
|
|
void ClearEnumDatabase(void); // Clears any allocated data for the enums
|
|
|
|
int GetEnumID(char *name); // Returns the DB slot matching the given enum type name
|
|
|
|
char *GetEnumValueName(char *name, int value); // Returns the name bound to an enum value
|
|
|
|
|
|
|
|
bool GetEnumValue(char *name, char *value_name, int &value); // obtains value for given value name
|
|
|
|
|
|
|
|
int FillEnumTypesMenu(CMenu *enum_menu, int command_offset, char *valid_name);
|
|
|
|
int FillEnumValuesMenu(CMenu *enum_menu, int command_offset, char *enum_name);
|
|
|
|
|
|
|
|
///////////////////////////////////////
|
|
|
|
// Flag Database functions
|
|
|
|
///////////////////////////////////////
|
|
|
|
void InitFlagDatabase(void); // Initializes the flag DB for use
|
|
|
|
void ClearFlagDatabase(void); // Clears any allocated data for the flags
|
|
|
|
int GetFlagID(char *name); // Returns the DB slot matching the given flag type name
|
|
|
|
char *GetFlagValueName(char *name, int value); // Returns the name bound to an flag value
|
|
|
|
|
|
|
|
|
|
|
|
bool FormatFlagValueNames(char *name, int value, CString &text); // Returns the name bound to an flag value
|
|
|
|
bool GetFlagValue(char *name, char *value_name, int &value); // obtains value for given value name
|
|
|
|
|
|
|
|
int FillFlagTypesMenu(CMenu *flag_menu, int command_offset, char *valid_name);
|
|
|
|
int FillFlagValuesBox(CCheckListBox *box, char *flag_name, int flags_value, int valid_flags_mask);
|
|
|
|
|
|
|
|
///////////////////////////////////////
|
|
|
|
// Action and Query Database functions
|
|
|
|
///////////////////////////////////////
|
|
|
|
void InitFunctionDatabases(void); // Initialize the Action and Query Database Arrays
|
|
|
|
void ClearFunctionDatabases(void); // Frees up any allocated memory
|
|
|
|
void ParseFunctionFile(char *filename, bool show_errors=TRUE); // Parses a file, and adds any Actions and Querys to the database
|
|
|
|
char *GetActionDesc(int ID); // Returns the Action description
|
|
|
|
char *GetActionHelp(int ID); // Returns the Action help text
|
|
|
|
char *GetActionFunc(int ID); // Returns the Action function name
|
|
|
|
int GetActionFuncID(char *func_name); // Searches action list for action matching given function name
|
|
|
|
char *GetQueryDesc(int ID); // Returns the Query description
|
|
|
|
char *GetQueryHelp(int ID); // Returns the Query help text
|
|
|
|
char *GetQueryFunc(int ID); // Returns the Query function name
|
|
|
|
int GetQueryFuncID(char *func_name); // Searches query list for query matching given function name
|
|
|
|
int GetQueryReturnType(int ID, CString &name); // Returns the Query's return type (parameter type)
|
|
|
|
int GetFunctionCategoryID(char *catname); // Matches an integer ID to a given category name
|
|
|
|
|
2024-04-28 04:39:29 +00:00
|
|
|
void FunctionFileParseError(int error_code, int linenum, const char *filename); // Handle Parse Errors
|
2024-04-19 20:58:24 +00:00
|
|
|
void ParseOutActionVarTypes(char *new_desc, char *old_desc); // Returns a description copy with the parameter type info removed
|
|
|
|
void ParseOutQueryVarTypes(char *new_desc, char *old_desc); // Returns a description copy with the parameter type info removed
|
|
|
|
bool ValidateActionNode(HTREEITEM node, int linenum);
|
|
|
|
bool ValidateQueryNode(HTREEITEM node, int linenum);
|
|
|
|
void FillActionMenu(CMenu *action_menu, int command_offset);
|
|
|
|
void FillQueryMenu(CMenu *query_menu, int command_offset, int valid_return_type, char *valid_return_name);
|
|
|
|
bool ConformParamNode(HTREEITEM parent_node, HTREEITEM ¶m_node, int type, char *name, char *def_value=NULL);
|
|
|
|
|
|
|
|
int ParseNthParam(HTREEITEM func_node, int n, CString &name_text, CString &default_text, CString &range_text);
|
|
|
|
int ParseNthParam(char *desc, int n, CString &name_text, CString &default_text, CString &range_text);
|
|
|
|
int ParseParamBlock(char_ptr &line, CString &name_text, CString &default_text, CString &range_text);
|
|
|
|
|
|
|
|
bool VerifyIntegerRange(int value, char *range_desc);
|
|
|
|
bool VerifyFloatRange(float value, char *range_desc);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Script Grouping List functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void InitScriptGroupingList(void);
|
|
|
|
void ClearScriptGroupingList(void);
|
|
|
|
int AddNodeToScriptOwnerGroup(int pos, HTREEITEM script_node);
|
|
|
|
int AddNodeToScriptGroupingList(HTREEITEM script_node);
|
|
|
|
int BuildScriptGroupingList(void);
|
|
|
|
|
|
|
|
char *CreateScriptConstantName(int pos);
|
|
|
|
char *CreateScriptClassName(int pos);
|
|
|
|
char *CreateScriptGlobalCtrName(int ID);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Source File Parsing Functions
|
|
|
|
///////////////////////////////////
|
|
|
|
int ParseSourceScript(char *filename); // does high-level parsing of CPP file
|
|
|
|
int ParseMsgTableFile(char *filename); // reads in the message list from a file
|
|
|
|
|
|
|
|
HTREEITEM ParseScriptNodeLine_v0(char *line, int linenum, HTREEITEM parent, bool &skip_all_children, HTREEITEM insert_before=TVI_LAST);
|
|
|
|
HTREEITEM ParseScriptNodeLine_v1U(char *line, int linenum, HTREEITEM parent, bool &skip_all_children, int version, HTREEITEM insert_before=TVI_LAST);
|
|
|
|
void ScriptFileParseError(int error_code, int linenum, int script_ID, char *name);
|
|
|
|
void SpecialScriptFileParseError(int linenum, int script_ID, char *type_name, char *name);
|
|
|
|
bool ValidateFunctionNode(HTREEITEM node, int linenum);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Custom Script Block Functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void InitCustomScriptStorage(void);
|
|
|
|
void ClearCustomScriptStorage(void);
|
|
|
|
int CountCustomScriptLines(CFILE *infile);
|
|
|
|
int ParseCustomScriptFile(char *filename, bool show_errors=TRUE);
|
|
|
|
void WriteCustomScriptBlock(void);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Source File Creation Functions
|
|
|
|
///////////////////////////////////
|
|
|
|
int CreateMsgTableFile(char *filename); // writes message list to file
|
|
|
|
void TabOver(void); // writes series of tabs
|
|
|
|
int CreateScriptFile(char *filename); // creates the new script file
|
|
|
|
void CreateLevelEventCases(tScriptOwnerGroup *owner_group);
|
|
|
|
void CreateEventCases(tScriptOwnerGroup *owner_group); // writes the valid event cases
|
|
|
|
void WriteScriptCode(HTREEITEM script_node); // writes script code for a script node
|
|
|
|
void WriteConditionalCodeBlock(HTREEITEM conditional_header_node); // writes a conditional block segment
|
|
|
|
void WriteLogicalOpExpression(HTREEITEM logop_node); // writes out a logical operation block
|
|
|
|
void WriteConditionalStatement(HTREEITEM condition_node); // writes out a conditional statement
|
|
|
|
void WriteQueryFunctionCall(HTREEITEM query_node); // writes out query function call
|
|
|
|
void WriteActionCodeBlock(HTREEITEM action_header_node); // writes an action block segment
|
|
|
|
void WriteActionFunctionCall(HTREEITEM action_node); // writes out action function call
|
|
|
|
void WriteFunctionParameter(HTREEITEM param_node); // writes out a parameter
|
|
|
|
void WriteScriptSaveBlock(void); // creates the tree block (for saving scripts)
|
|
|
|
void WriteScriptTreeDump(void);
|
|
|
|
void WriteUserTypeVals(void);
|
|
|
|
void WriteNameLists(void);
|
|
|
|
void WriteNameListArrays(void);
|
|
|
|
void WriteNameArrayLookupCode(void);
|
|
|
|
void WriteScriptChildrenDump(HTREEITEM parent, bool filter_on=FALSE);
|
|
|
|
void WriteScriptNodeDump_v0(HTREEITEM parent);
|
|
|
|
void WriteScriptNodeDump_v1U(HTREEITEM parent, bool filter_on=FALSE);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Object Handle List Functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void InitObjectHandleList(void);
|
|
|
|
void ClearObjectHandleList(void);
|
|
|
|
int AddToObjectHandleList(int handle);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Floating Menu Creation Functions
|
|
|
|
///////////////////////////////////
|
|
|
|
void FillObjectMenu(CMenu *object_menu, int command_offset, bool show_other);
|
|
|
|
int FillObjectTypeMenu(CMenu *object_menu, int command_offset, int obj_type);
|
|
|
|
int FillRoomMenu(CMenu *room_menu, int command_offset);
|
|
|
|
int FillSoundsMenu(CMenu *sound_menu, int command_offset);
|
|
|
|
int FillTriggerMenu(CMenu *trigger_menu, int command_offset);
|
|
|
|
int FillPathMenu(CMenu *path_menu, int command_offset);
|
|
|
|
int FillMatcenMenu(CMenu *matcen_menu, int command_offset);
|
|
|
|
int FillLevelGoalMenu(CMenu *level_goal_menu, int command_offset);
|
|
|
|
int FillScriptMenu(CMenu *script_menu, int command_offset);
|
|
|
|
int FillLogOpMenu(CMenu *log_op_menu, int command_offset);
|
|
|
|
int FillExpOpMenu(CMenu *exp_op_menu, int command_offset, int op_type);
|
|
|
|
void FillConditionMenu(CMenu *condition_menu, int command_offset);
|
|
|
|
int FillLiteralMenu(CMenu *literal_menu, int command_offset, int enum_command_offset, int flag_command_offset, int valid_type, char *valid_name);
|
|
|
|
|
|
|
|
void DisplayScriptHeaderNodeMenu(POINT *point);
|
|
|
|
void DisplayScriptOwnerNodeMenu(POINT *point);
|
|
|
|
void DisplayScriptEventNodeMenu(POINT *point, int owner_type, bool has_a_door_me);
|
|
|
|
void DisplayLogicalOperatorNodeMenu(POINT *point);
|
|
|
|
void DisplayConditionalStatementNodeMenu(POINT *point);
|
|
|
|
void DisplayExpressionNodeMenu(POINT *point, int valid_return_type, char *valid_return_name);
|
|
|
|
void DisplayExpressionOperatorNodeMenu(POINT *point, int op_type);
|
|
|
|
void DisplayActionStatementNodeMenu(POINT *point);
|
|
|
|
void DisplayActionHeaderNodeMenu(POINT *point, int level_type, int clause_type, bool can_add_else);
|
|
|
|
void DisplayParameterNodeMenu(POINT *point, int param_type, char *param_name, int valid_return_type, char *valid_return_name, bool has_an_it, bool has_a_me, bool has_a_door_me, bool has_a_goalID, bool has_a_timerID, bool has_a_matcenID, bool has_a_levgoalID);
|
|
|
|
|
|
|
|
void ColumnizePopupMenu(CMenu *menu);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Functions to Assign Values
|
|
|
|
///////////////////////////////////
|
|
|
|
void AssignScriptID(int pos);
|
|
|
|
void AssignExecTime(int ID);
|
|
|
|
void AssignChainOption(int ID);
|
|
|
|
void AssignSpecificValue(void);
|
|
|
|
void AssignNamedValue(int type, int handle);
|
|
|
|
void AssignEventType(int type);
|
|
|
|
void AssignBooleanValue(int type);
|
|
|
|
void AssignMessageName(int msg_ID);
|
|
|
|
void AssignExpOpType(int type);
|
|
|
|
void AssignEnumValueType(int type);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Functions to Add Tree Nodes
|
|
|
|
///////////////////////////////////
|
|
|
|
void AddNestedIfThenClause(void);
|
|
|
|
void AddNestedElseClause(void);
|
|
|
|
void AddNestedIfThenElseClause(void);
|
|
|
|
void AddConditionalStatementNode(int type, int query_id=-1);
|
|
|
|
void AddActionStatementNode(int action_ID);
|
|
|
|
void AddActionParameterNodes(HTREEITEM action_node);
|
|
|
|
void AddQueryParameterNodes(HTREEITEM query_node);
|
|
|
|
void AddLogicalOperatorNode(int type);
|
|
|
|
void InsertLogicalOperatorNode(int type);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Functions to Replace Tree Nodes
|
|
|
|
///////////////////////////////////
|
|
|
|
void ReplaceWithQueryNode(int query_ID);
|
|
|
|
void ReplaceWithLiteralNode(int literal_type, int index);
|
|
|
|
void DoComparisonMatchup(HTREEITEM node);
|
|
|
|
void ReplaceWithActionNode(int action_ID);
|
|
|
|
void ReplaceWithLogOpNode(int type);
|
|
|
|
void ReplaceWithConditionNode(int type, int query_id=-1);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Functions to Add Default Trees
|
|
|
|
///////////////////////////////////
|
|
|
|
HTREEITEM CreateDefaultScriptTree(int script_ID, HTREEITEM insert_before=NULL);
|
|
|
|
HTREEITEM CreateDefaultIfThenClause(HTREEITEM parent, HTREEITEM insert_before, int type);
|
|
|
|
HTREEITEM CreateDefaultElseClause(HTREEITEM parent, HTREEITEM insert_before);
|
|
|
|
HTREEITEM CreateDefaultConditionalStatementNode(HTREEITEM parent);
|
|
|
|
HTREEITEM CreateDefaultConditionalStatementSubtree(HTREEITEM parent, int type, int query_id=-1);
|
|
|
|
HTREEITEM CreateDefaultExpressionOperatorNode(HTREEITEM parent, int type);
|
|
|
|
HTREEITEM CreateDefaultActionStatementNode(HTREEITEM parent);
|
|
|
|
HTREEITEM CreateDefaultParameterNode(HTREEITEM parent, HTREEITEM insert_before, int param_type, char *name, char *def_value=NULL);
|
|
|
|
HTREEITEM CreateDefaultClipboardNode(void);
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// Functions to Handle Copy/Paste
|
|
|
|
///////////////////////////////////
|
|
|
|
void PerformScriptCopy(void);
|
|
|
|
void PerformActionCopy(HTREEITEM action_node);
|
|
|
|
void PerformConditionalCopy(HTREEITEM conditional_node);
|
|
|
|
void PerformLogOpCopy(HTREEITEM logop_node);
|
|
|
|
void PerformClauseCopy(HTREEITEM clause_node);
|
|
|
|
|
|
|
|
void PerformScriptPaste(void);
|
|
|
|
void PerformActionPaste(HTREEITEM src_action_node);
|
|
|
|
void PerformConditionalPaste(HTREEITEM src_conditional_node);
|
|
|
|
void PerformLogOpPaste(HTREEITEM src_logop_node);
|
|
|
|
void PerformClausePaste(HTREEITEM src_clause_node);
|
|
|
|
|
|
|
|
bool NodeIsInClipboard(HTREEITEM node);
|
|
|
|
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
// Functions to search tree and replace values
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
int UpdateStringParams(HTREEITEM root, char *old_name, char *new_name);
|
|
|
|
|
|
|
|
///////////////////////////////////////////
|
|
|
|
// Functions to Handle Script Drag-n-Drop
|
|
|
|
///////////////////////////////////////////
|
|
|
|
bool IsDropSource(HTREEITEM item);
|
|
|
|
HTREEITEM GetDropTarget(HTREEITEM item);
|
|
|
|
|
|
|
|
///////////////////////////////////////////
|
|
|
|
// Functions to Handle Highlight Interface
|
|
|
|
///////////////////////////////////////////
|
|
|
|
void ClearHighlightRadioButtons(void);
|
|
|
|
void FillHighlightEventList(void);
|
|
|
|
int GetHighlightedEvent(void);
|
|
|
|
void SetHighlightedEvent(int type);
|
|
|
|
|
|
|
|
/////////////////////////////////////
|
|
|
|
// Functions to Handle Import/Export
|
|
|
|
/////////////////////////////////////
|
|
|
|
bool ScriptLibraryFilePrompt(CString &filename, bool use_import_msg);
|
|
|
|
bool ImportScriptFromFile(char *filename, char *script_name);
|
|
|
|
bool ExportScriptToFile(char *filename, char *script_name);
|
|
|
|
|
|
|
|
|
|
|
|
// Dialog Data
|
|
|
|
//{{AFX_DATA(CDallasMainDlg)
|
|
|
|
enum { IDD = IDD_DALLAS_MAIN_DIALOG };
|
|
|
|
CComboBox m_EventList;
|
|
|
|
CTreeCtrl m_ScriptTree;
|
|
|
|
CEdit m_HelpEdit;
|
|
|
|
CListBox m_MessageList;
|
|
|
|
CEdit m_MessageEdit;
|
|
|
|
//}}AFX_DATA
|
|
|
|
|
|
|
|
|
|
|
|
// Overrides
|
|
|
|
// ClassWizard generated virtual function overrides
|
|
|
|
//{{AFX_VIRTUAL(CDallasMainDlg)
|
|
|
|
protected:
|
|
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
|
|
virtual void PostNcDestroy();
|
|
|
|
//}}AFX_VIRTUAL
|
|
|
|
|
|
|
|
// Implementation
|
|
|
|
protected:
|
|
|
|
|
|
|
|
// Generated message map functions
|
|
|
|
//{{AFX_MSG(CDallasMainDlg)
|
|
|
|
afx_msg void OnNewMessageButton();
|
|
|
|
afx_msg void OnDeleteMessageButton();
|
|
|
|
virtual BOOL OnInitDialog();
|
|
|
|
afx_msg void OnSelchangeMessageList();
|
|
|
|
afx_msg void OnChangeMessageEdit();
|
|
|
|
afx_msg void OnDblclkMessageList();
|
|
|
|
afx_msg void OnChangeMessageNameButton();
|
|
|
|
virtual void OnOK();
|
|
|
|
afx_msg void OnClose();
|
|
|
|
afx_msg void OnDestroy();
|
|
|
|
virtual void OnCancel();
|
|
|
|
afx_msg void OnNewScriptButton();
|
|
|
|
afx_msg void OnInsertScriptButton();
|
|
|
|
afx_msg void OnDeleteScriptButton();
|
|
|
|
afx_msg void OnRclickEventTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
|
|
afx_msg void OnDblclkScriptTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
|
|
afx_msg void OnSelchangedScriptTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
|
|
afx_msg void OnSaveButton();
|
|
|
|
afx_msg void OnKeydownEventTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
|
|
afx_msg void OnCopyButton();
|
|
|
|
afx_msg void OnPasteButton();
|
|
|
|
afx_msg void OnHighlightButton();
|
|
|
|
afx_msg void OnExpandAllButton();
|
|
|
|
afx_msg void OnCollapseAllButton();
|
|
|
|
afx_msg void OnUtypesButton();
|
|
|
|
afx_msg void OnBegindragEventTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
|
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
|
|
|
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
|
|
|
afx_msg void OnAllobjRadio();
|
|
|
|
afx_msg void OnAlltrigRadio();
|
|
|
|
afx_msg void OnNoneRadio();
|
|
|
|
afx_msg void OnSpecificRadio();
|
|
|
|
afx_msg void OnLevelRadio();
|
|
|
|
afx_msg void OnImportButton();
|
|
|
|
afx_msg void OnExportButton();
|
|
|
|
afx_msg void OnEventRadio();
|
|
|
|
afx_msg void OnSelchangeEventCombo();
|
|
|
|
//}}AFX_MSG
|
|
|
|
afx_msg void OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized );
|
|
|
|
afx_msg LONG OnHighlightScripts(UINT, LONG);
|
|
|
|
afx_msg LONG OnAddScript(UINT, LONG);
|
|
|
|
afx_msg LONG OnAddScriptAndHighlight(UINT, LONG);
|
|
|
|
afx_msg void OnMenuSelectionOfTypeAssign(UINT nID);
|
|
|
|
afx_msg void OnMenuSelectionOfTypeAdd(UINT nID);
|
|
|
|
afx_msg void OnMenuSelectionOfTypeReplace(UINT nID);
|
|
|
|
afx_msg void OnMenuSelectionOfTypeDelete(UINT nID);
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
};
|
|
|
|
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
|
|
|
|
#endif // !defined(AFX_DALLASMAINDLG_H__93285122_90E1_11D2_A4E0_00A0C96ED60D__INCLUDED_)
|