diff --git a/src/shared/flags.h b/src/shared/flags.h index 663ea5bb..af143b41 100644 --- a/src/shared/flags.h +++ b/src/shared/flags.h @@ -38,6 +38,6 @@ #define FL_FROZEN (1<<19) #define FL_USE_RELEASED (1<<20) #define FL_NOATTACK (1<<21) -#define FL_RESERVED1 (1<<22) +#define FL_ONUSABLE (1<<22) #define FL_RESERVED2 (1<<23) #define FL_RESERVED3 (1<<15) diff --git a/src/shared/player_pmove.qc b/src/shared/player_pmove.qc index 66497d7f..71d34f20 100644 --- a/src/shared/player_pmove.qc +++ b/src/shared/player_pmove.qc @@ -323,6 +323,23 @@ base_player::Physics_Run(void) input_buttons = saved_input_buttons; Physics_InputPostMove(); +#ifdef SERVER + /* Use Flagger */ + vector src, dest; + makevectors(input_angles); + src = origin + view_ofs; + dest = src + v_forward * 64; + traceline(src, dest, MOVE_NORMAL, this); + + flags &= ~FL_ONUSABLE; + if (trace_ent.identity == 1) { + CBaseEntity foo = (CBaseEntity)trace_ent; + if (foo.PlayerUse) { + flags |= FL_ONUSABLE; + } + } +#endif + angles[0] = Math_FixDelta(angles[0]); angles[1] = Math_FixDelta(angles[1]); angles[2] = Math_FixDelta(angles[2]);