2 Copyright (C) 1999-2007 id Software, Inc. and contributors.
3 For a list of contributors, see the accompanying CONTRIBUTORS file.
5 This file is part of GtkRadiant.
7 GtkRadiant is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 GtkRadiant is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GtkRadiant; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 #include <stdlib.h> // for size_t
23 #include "arrayedlist.h"
25 #define JN_YAW_CHANGED 0x00000001
26 #define JN_PITCH_CHANGED 0x00000002
27 #define JN_ROLL_CHANGED 0x00000004
41 // Raven Skeletal joints
49 // Box Skeletal joints
55 // Beetle Skeletal joints
62 // Elflord Skeletal joints
69 // Plague Elf Skeletal joints
77 // Corvus Skeletal joints
85 #define NO_SWAP_FRAME -1
86 #define NULL_ROOT_JOINT -1
88 #define MAX_ARRAYED_SKELETAL_JOINTS 255 // has max of 65,535 (if this remains at 255, net code can be changed to reflect)
89 #define MAX_ARRAYED_JOINT_NODES ( MAX_ARRAYED_SKELETAL_JOINTS - 1 )
91 #define MAX_JOINTS_PER_SKELETON 8 // arbitrary small number
92 #define MAX_JOINT_NODES_PER_SKELETON ( MAX_JOINTS_PER_SKELETON - 1 )
94 extern char *skeletonRootNames[];
95 extern int skeletonRNameOffsets[];
96 extern char *skeletonJointNames[];
97 extern int skeletonNameOffsets[];
98 extern int numJointsInSkeleton[];
99 extern char *skeletonEffectorNames[];
100 extern int skeletonENameOffsets[];
101 extern int numNodesInSkeleton[];
103 typedef void ( *CreateSkeleton_t )( void *skeletalJoints, size_t jointSize, struct ArrayedListNode_s *jointNodes, int rootIndex );
105 extern CreateSkeleton_t SkeletonCreators[NUM_SKELETONS];