From 374e58734cbc731993e514918b5bf930082f922c Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 22 Nov 2012 15:11:46 +0100 Subject: [PATCH] network the anim parameters (still unused, but can be checked on client by prvm_*) --- qcsrc/common/animdecide.qc | 4 ---- qcsrc/common/animdecide.qh | 6 ++++-- qcsrc/common/csqcmodel_settings.qh | 10 ++++++++++ qcsrc/csqcmodellib/common.qh | 14 +++++++------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/qcsrc/common/animdecide.qc b/qcsrc/common/animdecide.qc index dcdcac354..5110fc047 100644 --- a/qcsrc/common/animdecide.qc +++ b/qcsrc/common/animdecide.qc @@ -3,12 +3,8 @@ .float anim_implicit_time; // actions -.float anim_lower_action; -.float anim_lower_time; .float anim_lower_implicit_action; .float anim_lower_implicit_time; -.float anim_upper_action; -.float anim_upper_time; .float anim_upper_implicit_action; .float anim_upper_implicit_time; diff --git a/qcsrc/common/animdecide.qh b/qcsrc/common/animdecide.qh index fa010111b..fe15345ab 100644 --- a/qcsrc/common/animdecide.qh +++ b/qcsrc/common/animdecide.qh @@ -5,8 +5,10 @@ void animdecide_setframes(entity e, float support_blending); // please network this one .float anim_state; .float anim_time; -#define ReadAnimState() do { self.anim_state = ReadByte(); self.anim_time = ReadApproxPastTime(); } while(0) -#define WriteAnimState(dest) do { WriteByte(dest, self.anim_state); WriteApproxPastTime(dest, self.anim_time); } while(0) +.float anim_lower_action; +.float anim_lower_time; +.float anim_upper_action; +.float anim_upper_time; // explicit anim states (networked) void animdecide_setstate(entity e, float newstate, float restart); diff --git a/qcsrc/common/csqcmodel_settings.qh b/qcsrc/common/csqcmodel_settings.qh index c07bbeebc..96c8aacf9 100644 --- a/qcsrc/common/csqcmodel_settings.qh +++ b/qcsrc/common/csqcmodel_settings.qh @@ -28,6 +28,16 @@ CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_x, 255, 0, 255) \ CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_y, 255, 0, 255) \ CSQCMODEL_PROPERTY_SCALED(256, float, ReadByte, WriteByte, glowmod_z, 255, 0, 255) \ + CSQCMODEL_ENDIF \ + CSQCMODEL_IF(isplayer) \ + CSQCMODEL_PROPERTY(128, float, ReadByte, WriteByte, anim_state) \ + CSQCMODEL_PROPERTY(128, float, ReadApproxPastTime, WriteApproxPastTime, anim_time) \ + CSQCMODEL_IF(!islocalplayer) \ + CSQCMODEL_PROPERTY(256, float, ReadChar, WriteChar, anim_lower_action) \ + CSQCMODEL_PROPERTY(256, float, ReadApproxPastTime, WriteApproxPastTime, anim_lower_time) \ + CSQCMODEL_ENDIF \ + CSQCMODEL_PROPERTY(512, float, ReadChar, WriteChar, anim_upper_action) \ + CSQCMODEL_PROPERTY(512, float, ReadApproxPastTime, WriteApproxPastTime, anim_upper_time) \ CSQCMODEL_ENDIF // TODO get rid of colormod/glowmod here, find good solution for nex charge glowmod hack; also get rid of some useless properties on non-players that only exist for CopyBody diff --git a/qcsrc/csqcmodellib/common.qh b/qcsrc/csqcmodellib/common.qh index 587645cd4..f6044cb28 100644 --- a/qcsrc/csqcmodellib/common.qh +++ b/qcsrc/csqcmodellib/common.qh @@ -51,13 +51,13 @@ IN THE SOFTWARE.\ .float lerpfrac; #define CSQCMODEL_PROPERTY_FRAME 32768 -#define CSQCMODEL_PROPERTY_FRAME2 16384 -#define CSQCMODEL_PROPERTY_LERPFRAC 8192 -#define CSQCMODEL_PROPERTY_TELEPORTED 4096 // the "teleport bit" cancelling interpolation -#define CSQCMODEL_PROPERTY_MODELINDEX 2048 -#define CSQCMODEL_PROPERTY_ORIGIN 1024 -#define CSQCMODEL_PROPERTY_YAW 512 -#define CSQCMODEL_PROPERTY_PITCHROLL 256 +#define CSQCMODEL_PROPERTY_TELEPORTED 16384 // the "teleport bit" cancelling interpolation +#define CSQCMODEL_PROPERTY_MODELINDEX 8192 +#define CSQCMODEL_PROPERTY_ORIGIN 4096 +#define CSQCMODEL_PROPERTY_YAW 2048 +#define CSQCMODEL_PROPERTY_PITCHROLL 1024 +#define CSQCMODEL_PROPERTY_FRAME2 512 +#define CSQCMODEL_PROPERTY_LERPFRAC 256 #define ALLPROPERTIES_COMMON \ CSQCMODEL_PROPERTY(CSQCMODEL_PROPERTY_FRAME, float, ReadByte, WriteByte, frame) \ -- 2.39.2