]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake2/qdata_heretic2/joints.h
eol style
[xonotic/netradiant.git] / tools / quake2 / qdata_heretic2 / joints.h
index e489114ed79a00746aaf61d2f9e250f52a6e360b..046bebdf0b8e3ebc4164a7b9e617a5d7c418ec21 100644 (file)
-/*\r
-Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
-For a list of contributors, see the accompanying CONTRIBUTORS file.\r
-\r
-This file is part of GtkRadiant.\r
-\r
-GtkRadiant is free software; you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation; either version 2 of the License, or\r
-(at your option) any later version.\r
-\r
-GtkRadiant is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-GNU General Public License for more details.\r
-\r
-You should have received a copy of the GNU General Public License\r
-along with GtkRadiant; if not, write to the Free Software\r
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
-*/\r
-\r
-#ifndef JOINTS_H\r
-#define JOINTS_H\r
-\r
-#ifdef _HERETIC2_\r
-#include "angles.h"\r
-#endif\r
-\r
-//typedef float vec3_t[3];\r
-//typedef unsigned char byte;\r
-\r
-#ifndef _WIN32\r
-#define stricmp strcasecmp\r
-#define strcmpi strcasecmp\r
-#endif\r
-\r
-typedef struct Placement_s\r
-{\r
-       vec3_t origin;\r
-       vec3_t direction;\r
-       vec3_t up;\r
-} Placement_t;\r
-\r
-#if 1\r
-typedef struct QDataJoint_s\r
-{\r
-       Placement_t placement;\r
-       vec3_t          rotation;\r
-} QDataJoint_t;\r
-#endif\r
-\r
-typedef struct ArrayedListNode_s\r
-{\r
-       int data;\r
-       int next;\r
-       int inUse;\r
-} ArrayedListNode_t;\r
-\r
-#define ARRAYEDLISTNODE_NULL -1\r
-\r
-typedef struct JointAngles_s\r
-{\r
-       float angles[3];\r
-       int children;\r
-       int created;\r
-} JointAngles_t;\r
-\r
-typedef struct JointAngles2_s\r
-{\r
-       float angles[3];\r
-       int children;\r
-       int changed[3];\r
-       int inUse;\r
-} JointAngles2_t;\r
-\r
-#define MAX_MODELJOINTS                        256\r
-#define MAX_MODELJOINTNODES            255\r
-\r
-extern JointAngles_t jointAngles[MAX_MODELJOINTS];\r
-extern JointAngles2_t jointAngles2[MAX_MODELJOINTS];\r
-\r
-extern ArrayedListNode_t jointAngleNodes[MAX_MODELJOINTNODES];\r
-\r
-// Skeletal structures enums\r
-enum {\r
-       SKEL_RAVEN = 0,\r
-       SKEL_BOX,\r
-       NUM_SKELETONS\r
-};\r
-\r
-// Raven Skeletal structures enums\r
-enum {\r
-       RAVEN_WAIST1 = 0,\r
-       RAVEN_WAIST2 = 1,\r
-       RAVEN_HEAD = 2,\r
-       NUM_JOINTS_RAVEN\r
-};\r
-\r
-// Box Skeletal structures enums\r
-enum {\r
-       BOX_CENTER = 0,\r
-       NUM_JOINTS_BOX\r
-};\r
-\r
-extern int numJointsForSkeleton[];\r
-extern char *RAVEN_SKEL_NAMES[];\r
-\r
-#define J_NEW_SKELETON         0x00001000\r
-#define J_YAW_CHANGED          0x00002000\r
-#define J_PITCH_CHANGED                0x00004000\r
-#define J_ROLL_CHANGED         0x00008000\r
-#define MAX_JOINTS                     0x00000fff\r
-/*\r
-inline int GetFreeNode(ArrayedListNode_t *nodeArray, int max)\r
-{      // yeah, I know this is a sucky, inefficient way to do this, but I didn't feel like taking the time to write a real resource manager in C\r
-       int i;\r
-\r
-       for(i = 0; i < max; ++i)\r
-       {\r
-               if(!nodeArray[i].inUse)\r
-               {\r
-                       nodeArray[i].inUse = 1;\r
-                       return i;\r
-               }\r
-       }\r
-\r
-       assert(0);\r
-       return -1;\r
-}\r
-\r
-inline void FreeNode(ArrayedListNode_t *nodeArray, int index)\r
-{\r
-       nodeArray[index].inUse = 0;\r
-}\r
-*/\r
-int CreateSkeleton(int structure);\r
-void CreateSkeletonAtIndex(int structure, int index);\r
-void FreeSkeleton(int structure, int index);\r
-void SetJointAngle(int jointIndex, int angleIndex, float angle);\r
-float ModifyJointAngle(int jointIndex, int angleIndex, float deltaAngle);\r
-int ZeroJointAngle(int jointIndex, int angleIndex, float angVel);\r
-int ApplyAngVelToJoint(int jointIndex, int angleIndex, float angVel, float destAng);\r
-\r
-#endif\r
+/*
+Copyright (C) 1999-2007 id Software, Inc. and contributors.
+For a list of contributors, see the accompanying CONTRIBUTORS file.
+
+This file is part of GtkRadiant.
+
+GtkRadiant is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GtkRadiant is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GtkRadiant; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef JOINTS_H
+#define JOINTS_H
+
+#ifdef _HERETIC2_
+#include "angles.h"
+#endif
+
+//typedef float vec3_t[3];
+//typedef unsigned char byte;
+
+#ifndef _WIN32
+#define stricmp strcasecmp
+#define strcmpi strcasecmp
+#endif
+
+typedef struct Placement_s
+{
+       vec3_t origin;
+       vec3_t direction;
+       vec3_t up;
+} Placement_t;
+
+#if 1
+typedef struct QDataJoint_s
+{
+       Placement_t placement;
+       vec3_t          rotation;
+} QDataJoint_t;
+#endif
+
+typedef struct ArrayedListNode_s
+{
+       int data;
+       int next;
+       int inUse;
+} ArrayedListNode_t;
+
+#define ARRAYEDLISTNODE_NULL -1
+
+typedef struct JointAngles_s
+{
+       float angles[3];
+       int children;
+       int created;
+} JointAngles_t;
+
+typedef struct JointAngles2_s
+{
+       float angles[3];
+       int children;
+       int changed[3];
+       int inUse;
+} JointAngles2_t;
+
+#define MAX_MODELJOINTS                        256
+#define MAX_MODELJOINTNODES            255
+
+extern JointAngles_t jointAngles[MAX_MODELJOINTS];
+extern JointAngles2_t jointAngles2[MAX_MODELJOINTS];
+
+extern ArrayedListNode_t jointAngleNodes[MAX_MODELJOINTNODES];
+
+// Skeletal structures enums
+enum {
+       SKEL_RAVEN = 0,
+       SKEL_BOX,
+       NUM_SKELETONS
+};
+
+// Raven Skeletal structures enums
+enum {
+       RAVEN_WAIST1 = 0,
+       RAVEN_WAIST2 = 1,
+       RAVEN_HEAD = 2,
+       NUM_JOINTS_RAVEN
+};
+
+// Box Skeletal structures enums
+enum {
+       BOX_CENTER = 0,
+       NUM_JOINTS_BOX
+};
+
+extern int numJointsForSkeleton[];
+extern char *RAVEN_SKEL_NAMES[];
+
+#define J_NEW_SKELETON         0x00001000
+#define J_YAW_CHANGED          0x00002000
+#define J_PITCH_CHANGED                0x00004000
+#define J_ROLL_CHANGED         0x00008000
+#define MAX_JOINTS                     0x00000fff
+/*
+inline int GetFreeNode(ArrayedListNode_t *nodeArray, int max)
+{      // yeah, I know this is a sucky, inefficient way to do this, but I didn't feel like taking the time to write a real resource manager in C
+       int i;
+
+       for(i = 0; i < max; ++i)
+       {
+               if(!nodeArray[i].inUse)
+               {
+                       nodeArray[i].inUse = 1;
+                       return i;
+               }
+       }
+
+       assert(0);
+       return -1;
+}
+
+inline void FreeNode(ArrayedListNode_t *nodeArray, int index)
+{
+       nodeArray[index].inUse = 0;
+}
+*/
+int CreateSkeleton(int structure);
+void CreateSkeletonAtIndex(int structure, int index);
+void FreeSkeleton(int structure, int index);
+void SetJointAngle(int jointIndex, int angleIndex, float angle);
+float ModifyJointAngle(int jointIndex, int angleIndex, float deltaAngle);
+int ZeroJointAngle(int jointIndex, int angleIndex, float angVel);
+int ApplyAngVelToJoint(int jointIndex, int angleIndex, float angVel, float destAng);
+
+#endif