]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
support custom properties
authorRudolf Polzer <divverent@xonotic.org>
Mon, 14 Nov 2011 05:51:43 +0000 (06:51 +0100)
committerRudolf Polzer <divverent@xonotic.org>
Mon, 14 Nov 2011 05:51:43 +0000 (06:51 +0100)
qcsrc/csqcmodel/cl_model.qc
qcsrc/csqcmodel/common.qc
qcsrc/csqcmodel/settings.qh

index 540f97b7b45e3d6ba06b5cb6a567f8a41548ba48..f5519c2f61099f45e6353b02e914e86bf401342e 100644 (file)
@@ -146,6 +146,8 @@ void CSQCModel_Draw()
        InterpolateOrigin_Do();
        // TODO csqcplayers: run prediction here too
        CSQCModel_InterpolateAnimation_Do();
+
+       { CSQCMODELS_HOOK_PREDRAW }
 }
 
 void CSQCModel_Read()
@@ -155,6 +157,8 @@ void CSQCModel_Read()
 
        self.iflags |= IFLAG_ANGLES; // interpolate angles too
 
+       { CSQCMODELS_HOOK_PREUPDATE }
+
        CSQCPlayer_PreUpdate();
        InterpolateOrigin_Undo();
        CSQCModel_InterpolateAnimation_PreNote(sf);
@@ -173,6 +177,8 @@ void CSQCModel_Read()
        InterpolateOrigin_Note();
        CSQCPlayer_PostUpdate();
 
+       { CSQCMODELS_HOOK_POSTUPDATE }
+
 #ifdef CSQCMODELS_SUPPORT_GETTAGINFO_BEFORE_DRAW
        InterpolateOrigin_Do();
        CSQCModel_InterpolateAnimation_Do();
index 5677f9a4cca19e46ee32c903c9eb1e17b9f1c2be..74dbc78adcf92375ff7fe192ff76706c9b4a0d00 100644 (file)
        PROPERTY(2, ReadAngle, WriteAngle, angles_y) \
        PROPERTY(2, ReadAngle, WriteAngle, angles_z) \
        PROPERTY(4, ReadShort, WriteShort, modelindex) \
-       PROPERTY(16, ReadByte, WriteByte, skin) \
-       PROPERTY(32, ReadInt24_t, WriteInt24_t, effects) \
-       PROPERTY_SCALED(64, ReadByte, WriteByte, alpha, 255, 0, 255) \
-       PROPERTY_SCALED(128, ReadByte, WriteByte, glowmod_x, 32, 0, 255) \
-       PROPERTY_SCALED(128, ReadByte, WriteByte, glowmod_y, 32, 0, 255) \
-       PROPERTY_SCALED(128, ReadByte, WriteByte, glowmod_z, 32, 0, 255) \
-       PROPERTY(256, ReadChar, WriteChar, view_ofs_z) \
-       PROPERTY(512, ReadShort, WriteShort, colormap)
+       PROPERTY(8, ReadChar, WriteChar, view_ofs_z) \
+       CSQCMODELS_EXTRAPROPERTIES(16)
 
 #ifdef CSQCMODELS_HAVE_TWO_FRAMES
 .float frame3;
index 67acc7f6624af7523cae0cf6429e710c48e08c1e..51c3a771ef636917edd4ada493630032a045f17a 100644 (file)
@@ -1,2 +1,20 @@
+// define this if svqc code wants to use .frame2 and .lerpfrac
 #define CSQCMODELS_HAVE_TWO_FRAMES
+
+// don't define this ever
 //#define CSQCMODELS_SUPPORT_GETTAGINFO_BEFORE_DRAW
+
+// add properties you want networked to CSQC here
+#define CSQCMODELS_EXTRAPROPERTIES(multiplier) \
+       PROPERTY(multiplier*1, ReadByte, WriteByte, skin) \
+       PROPERTY(multiplier*2, ReadShort, WriteShort, colormap) \
+       PROPERTY(multiplier*4, ReadInt24_t, WriteInt24_t, effects) \
+       PROPERTY_SCALED(multiplier*8, ReadByte, WriteByte, alpha, 255, 0, 255) \
+       PROPERTY_SCALED(multiplier*16, ReadByte, WriteByte, glowmod_x, 32, 0, 255) \
+       PROPERTY_SCALED(multiplier*16, ReadByte, WriteByte, glowmod_y, 32, 0, 255) \
+       PROPERTY_SCALED(multiplier*16, ReadByte, WriteByte, glowmod_z, 32, 0, 255)
+
+// add hook function calls here
+#define CSQCMODELS_HOOK_PREUPDATE
+#define CSQCMODELS_HOOK_POSTUPDATE
+#define CSQCMODELS_HOOK_PREDRAW