1 /*------------------------------Patrick 12/3/97-----------------------------------
2   Header for Switch Operated Doors
3   --------------------------------------------------------------------------------*/
4 
5 typedef struct switch_door_behaviour_type
6 {
7 	AVP_BEHAVIOUR_TYPE myBehaviourType;		/* just for testing system integrity */
8 	DOOR_STATES doorState;
9 	MORPHCTRL *morfControl;
10 	char linkedDoorName[SB_NAME_LENGTH];
11 	STRATEGYBLOCK* linkedDoorPtr;
12 	int openTimer;
13 	unsigned int requestOpen :1;
14 	unsigned int requestClose :1;
15 	int SoundHandle;
16 	int doorType;      // Used to determine door sound type
17 
18 } SWITCH_DOOR_BEHAV_BLOCK;
19 
20 typedef struct switch_door_tools_template
21 {
22 	BOOL state;
23 	MREF myModule;
24 	int shapeOpen;
25 	int shapeClosed;
26 	char linkedDoorName[SB_NAME_LENGTH];
27 	char nameID[SB_NAME_LENGTH];
28 } SWITCH_DOOR_TOOLS_TEMPLATE;
29 
30 #define DOOR_OPENSLOWSPEED		(1<<16)
31 #define DOOR_OPENFASTSPEED		(1<<20)
32 #define DOOR_CLOSESLOWSPEED		(1<<17)
33 #define DOOR_CLOSEFASTSPEED		(1<<20)
34 #define DOOR_FAROPENTIME		(ONE_FIXED<<2) 	/* 4 seconds: DO NOT CHANGE THIS OR AI MAY NOT WORK*/
35 #define DOOR_OPENDISTANCE		(5000) 			/* mm */
36 
37 extern void InitialiseSwitchDoor(void* bhdata, STRATEGYBLOCK* sbptr);
38 extern void SwitchDoorBehaviour(STRATEGYBLOCK* sbptr);
39 extern void OpenDoor(MORPHCTRL *mctrl, int speed);
40 extern void CloseDoor(MORPHCTRL *mctrl, int speed);
41