4b825dc642cb6eb9a060e54bf8d69288fbee490494a6641b73026d662261604d7d192beae70b11dc
 
 
1
#ifndef _bh_track_h_
 
 
2
#define _bh_track_h_ 1
 
 
3
 
 
 
4
#include "track.h"
 
 
5
 
 
 
6
extern void TrackObjectBehaveInit(void* bhdata, STRATEGYBLOCK* sbptr);
 
 
7
extern void TrackObjectBehaveFun(STRATEGYBLOCK* sbptr);
 
 
8
extern void TrackObjectIsDamaged(STRATEGYBLOCK *sbPtr, const DAMAGE_PROFILE *damage, int multiple);
 
 
9
extern int TrackObjectGetSynchData(STRATEGYBLOCK* sbptr);
 
 
10
extern void TrackObjectSetSynchData(STRATEGYBLOCK* sbptr,int status);
 
 
11
 
 
 
12
typedef enum track_object_req_states
 
 
13
{
 
 
14
    track_no_request,
 
 
15
    track_request_start,
 
 
16
    track_request_stop,
 
 
17
    track_request_startforward,
 
 
18
    track_request_startbackward
 
 
19
 
 
 
20
} TRACK_OBJECT_REQUEST_STATE;
 
 
21
 
 
 
22
#ifndef TrackRequestFlag_ActiveForward
 
 
23
    #define TrackRequestFlag_ActiveForward 0x00000001
 
 
24
    #define TrackRequestFlag_ActiveBackward 0x00000002
 
 
25
    #define TrackRequestFlag_OppositeBackward 0x00000004
 
 
26
#endif
 
 
27
 
 
 
28
typedef struct track_point_target 
 
 
29
{
 
 
30
    char target_name [SB_NAME_LENGTH];
 
 
31
    STRATEGYBLOCK * target_sbptr;
 
 
32
    int request;
 
 
33
    int flags;
 
 
34
 
 
 
35
} TRACK_POINT_TARGET;
 
 
36
 
 
 
37
typedef struct special_track_point
 
 
38
{
 
 
39
    int track_point_no;
 
 
40
    int num_targets;
 
 
41
 
 
 
42
    TRACK_POINT_TARGET* targets;
 
 
43
 
 
 
44
} SPECIAL_TRACK_POINT;
 
 
45
 
 
 
46
typedef struct track_object_behav_block
 
 
47
{
 
 
48
    AVP_BEHAVIOUR_TYPE bhvr_type;
 
 
49
 
 
 
50
    TRACK_CONTROLLER* to_track;
 
 
51
 
 
 
52
    TRACK_OBJECT_REQUEST_STATE request;
 
 
53
 
 
 
54
    TXACTRLBLK *to_tac;//for objects with anims on them
 
 
55
 
 
 
56
    int num_special_track_points;
 
 
57
    SPECIAL_TRACK_POINT* special_track_points;
 
 
58
 
 
 
59
    int destruct_target_request;
 
 
60
    char destruct_target_ID[SB_NAME_LENGTH];
 
 
61
    STRATEGYBLOCK* destruct_target_sbptr;
 
 
62
 
 
 
63
    int TimeUntilNetSynchAllowed; 
 
 
64
 
 
 
65
} TRACK_OBJECT_BEHAV_BLOCK;
 
 
66
 
 
 
67
typedef struct track_object_tools_template
 
 
68
{
 
 
69
    char nameID[SB_NAME_LENGTH];
 
 
70
    TRACK_CONTROLLER* track;
 
 
71
    VECTORCH position;
 
 
72
    EULER orientation;
 
 
73
    int num_special_track_points;
 
 
74
    SPECIAL_TRACK_POINT* special_track_points;
 
 
75
    int integrity; // 0-20 (>20 = indestructable)
 
 
76
    int destruct_target_request;
 
 
77
    char destruct_target_ID[SB_NAME_LENGTH];
 
 
78
 
 
 
79
} TRACK_OBJECT_TOOLS_TEMPLATE;
 
 
80
 
 
 
81
#endif