]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
network the anim parameters (still unused, but can be checked on client by prvm_*)
authorRudolf Polzer <divverent@xonotic.org>
Thu, 22 Nov 2012 14:11:46 +0000 (15:11 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Thu, 22 Nov 2012 14:14:32 +0000 (15:14 +0100)
qcsrc/common/animdecide.qc
qcsrc/common/animdecide.qh
qcsrc/common/csqcmodel_settings.qh
qcsrc/csqcmodellib/common.qh

index dcdcac3548645b7899c334b6ef86e62828234b3f..5110fc047d96953bc430728ab097e1942cf647ff 100644 (file)
@@ -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;
 
index fa010111bbd64d98059b9bd96b2ce3b52e270bd5..fe15345abaf972c9fb6f90bb1033591f3afb2c7b 100644 (file)
@@ -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);
index c07bbeebc37a99708ea84ecb4e3a1903b0a43fcb..96c8aacf9cea4a457b1b121153ca123cc40fa0e7 100644 (file)
                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
 
index 587645cd4fc27b81e79e5423a6f8a765962954c3..f6044cb283f3cf3b9b87959121df6c9abfff81b2 100644 (file)
@@ -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) \