6 #define SUB_ANGLES(s) (s).angles
7 #define SUB_VELOCITY velocity
8 #define SUB_AVELOCITY avelocity
9 #define SUB_ORIGIN origin
10 #define SUB_SETORIGIN(s,v) setorigin((s), (v))
11 #define SUB_NEXTTHINK nextthink
12 #define SUB_THINK(e, f) setthink(e, f)
13 #define SUB_THUNK(e) getthink(e)
14 #define SUB_LTIME ltime
15 #define SUB_FLAGS flags
19 void _Movetype_LinkEdict(entity this, float touch_triggers);
21 #define SUB_ANGLES(s) (s).move_angles
22 #define SUB_VELOCITY move_velocity
23 #define SUB_AVELOCITY move_avelocity
24 #define SUB_ORIGIN move_origin
25 #define SUB_NEXTTHINK move_nextthink
26 #define SUB_THINK(e, f) ((e).move_think = (f))
27 #define SUB_THUNK(e) ((e).move_think)
28 #define SUB_LTIME move_ltime
29 #define SUB_FLAGS move_flags
33 void SUB_SETORIGIN(entity s, vector v)
36 _Movetype_LinkEdict(s, true);
42 void SUB_SetFade (entity ent, float when, float fading_time);
43 void SUB_VanishOrRemove (entity ent);
45 .vector finaldest, finalangle; //plat.qc stuff
46 .void(entity this) think1;
48 .float t_length, t_width;
59 .float platmovetype_start, platmovetype_end;
73 .float trigger_reverse;
75 // Keys player is holding
77 // message delay for func_door locked by keys and key locks
78 // this field is used on player entities
79 .float key_door_messagetime;
84 // this stuff is defined in the server side engine VM, so we must define it separately here
86 const float DAMAGE_NO = 0;
87 const float DAMAGE_YES = 1;
88 const float DAMAGE_AIM = 2;
91 float STATE_BOTTOM = 1;
95 .string noise, noise1, noise2, noise3; // contains names of wavs to play
97 .float max_health; // players maximum health is stored here