.float swamp_slowdown;
.float lastflags;
.float lastground;
-.float wasFlying;
+.bool wasFlying;
.int buttons_old;
.vector movement_old;
#define PHYS_INPUT_BUTTON_ZOOMSCRIPT(s) PHYS_INPUT_BUTTON_BUTTON9(s)
#define PHYS_INPUT_BUTTON_JETPACK(s) PHYS_INPUT_BUTTON_BUTTON10(s)
#define PHYS_INPUT_BUTTON_DODGE(s) PHYS_INPUT_BUTTON_BUTTON11(s)
+#define PHYS_INPUT_BUTTON_MINIGAME(s) PHYS_INPUT_BUTTON_BUTTON12(s)
#ifdef CSQC
STATIC_INIT(PHYS_INPUT_BUTTON)
// used for special commands and idle checking, not from the engine
// TODO: cache
#define PHYS_INPUT_BUTTON_MASK(s) ( \
- (1 << 0) * PHYS_INPUT_BUTTON_ATCK(s) \
- | (1 << 1) * PHYS_INPUT_BUTTON_JUMP(s) \
- | (1 << 2) * PHYS_INPUT_BUTTON_ATCK2(s) \
- | (1 << 3) * PHYS_INPUT_BUTTON_ZOOM(s) \
- | (1 << 4) * PHYS_INPUT_BUTTON_CROUCH(s) \
- | (1 << 5) * PHYS_INPUT_BUTTON_HOOK(s) \
- | (1 << 6) * PHYS_INPUT_BUTTON_USE(s) \
- | (1 << 7) * PHYS_INPUT_BUTTON_BACKWARD(s) \
- | (1 << 8) * PHYS_INPUT_BUTTON_FORWARD(s) \
- | (1 << 9) * PHYS_INPUT_BUTTON_LEFT(s) \
- | (1 << 10) * PHYS_INPUT_BUTTON_RIGHT(s) \
+ ((1 << 0) * PHYS_INPUT_BUTTON_ATCK(s)) \
+ | ((1 << 1) * PHYS_INPUT_BUTTON_JUMP(s)) \
+ | ((1 << 2) * PHYS_INPUT_BUTTON_ATCK2(s)) \
+ | ((1 << 3) * PHYS_INPUT_BUTTON_ZOOM(s)) \
+ | ((1 << 4) * PHYS_INPUT_BUTTON_CROUCH(s)) \
+ | ((1 << 5) * PHYS_INPUT_BUTTON_HOOK(s)) \
+ | ((1 << 6) * PHYS_INPUT_BUTTON_USE(s)) \
+ | ((1 << 7) * PHYS_INPUT_BUTTON_BACKWARD(s)) \
+ | ((1 << 8) * PHYS_INPUT_BUTTON_FORWARD(s)) \
+ | ((1 << 9) * PHYS_INPUT_BUTTON_LEFT(s)) \
+ | ((1 << 10) * PHYS_INPUT_BUTTON_RIGHT(s)) \
)
#define IS_JUMP_HELD(s) (!((s).flags & FL_JUMPRELEASED))
#define ITEMS_STAT(s) ((s).items)
.float teleport_time;
-#define PHYS_TELEPORT_TIME(s) ((s).teleport_time)
-
-.float waterjump_time;
-#define PHYS_WATERJUMP_TIME(s) ((s).waterjump_time)
#ifdef CSQC
.entity hook;
// TODO
- #define IS_CLIENT(s) ((s).isplayermodel || (s) == csqcplayer)
- #define IS_PLAYER(s) ((s).isplayermodel)
+ #define IS_CLIENT(s) (((s).isplayermodel & ISPLAYER_CLIENT) || (s) == csqcplayer)
+ #define IS_PLAYER(s) ((s).isplayermodel & ISPLAYER_PLAYER)
#define IS_NOT_A_CLIENT(s) (!(s).isplayermodel && (s) != csqcplayer)
#define isPushable(s) ((s).isplayermodel || (s).pushable || ((s).flags & FL_PROJECTILE))
#define SET_DUCKED(s) ((s).flags |= FL_DUCKED)
#define UNSET_DUCKED(s) ((s).flags &= ~FL_DUCKED)
+ #define PHYS_INVEHICLE(s) (boolean(hud != HUD_NORMAL))
+
#define PHYS_JUMPSPEEDCAP_MIN autocvar_cl_jumpspeedcap_min
#define PHYS_JUMPSPEEDCAP_MAX autocvar_cl_jumpspeedcap_max
#define SET_DUCKED(s) ((s).crouch = true)
#define UNSET_DUCKED(s) ((s).crouch = false)
+ #define PHYS_INVEHICLE(s) (boolean((s).vehicle != NULL))
+
#define PHYS_JUMPSPEEDCAP_MIN autocvar_sv_jumpspeedcap_min
#define PHYS_JUMPSPEEDCAP_MAX autocvar_sv_jumpspeedcap_max