ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/anim.C
(Generate patch)

Comparing deliantra/server/common/anim.C (file contents):
Revision 1.17 by pippijn, Mon Jan 15 21:06:17 2007 UTC vs.
Revision 1.18 by root, Fri Jan 19 17:50:10 2007 UTC

61 /* set the name so we don't try to dereferance null. 61 /* set the name so we don't try to dereferance null.
62 * Put # at start so it will be first in alphabetical 62 * Put # at start so it will be first in alphabetical
63 * order. 63 * order.
64 */ 64 */
65 { 65 {
66 Animations anim0; 66 animation anim0;
67 67
68 anim0.name = "###none"; 68 anim0.name = "###none";
69 anim0.num_animations = 1; 69 anim0.num_animations = 1;
70 anim0.faces = (uint16 *)malloc (sizeof (uint16)); 70 anim0.faces = (uint16 *)malloc (sizeof (uint16));
71 anim0.faces[0] = 0; 71 anim0.faces[0] = 0;
94 LOG (llevError, "Didn't get a mina before %s\n", buf); 94 LOG (llevError, "Didn't get a mina before %s\n", buf);
95 num_frames = 0; 95 num_frames = 0;
96 } 96 }
97 num_animations++; 97 num_animations++;
98 98
99 Animations anim; 99 animation anim;
100 100
101 anim.name = buf + 5; 101 anim.name = buf + 5;
102 anim.num = num_animations; /* for bsearch */ 102 anim.num = num_animations; /* for bsearch */
103 anim.facings = 1; 103 anim.facings = 1;
104 animations.push_back (anim); 104 animations.push_back (anim);
134 fclose (fp); 134 fclose (fp);
135 LOG (llevDebug, "done. got (%d)\n", num_animations); 135 LOG (llevDebug, "done. got (%d)\n", num_animations);
136} 136}
137 137
138static int 138static int
139anim_compare (const Animations * a, const Animations * b) 139anim_compare (const animation * a, const animation * b)
140{ 140{
141 return strcmp (a->name, b->name); 141 return strcmp (a->name, b->name);
142} 142}
143 143
144/* Tries to find the animation id that matches name. Returns an integer match 144/* Tries to find the animation id that matches name. Returns an integer match
145 * 0 if no match found (animation 0 is initialised as the 'bug' face 145 * 0 if no match found (animation 0 is initialised as the 'bug' face
146 */ 146 */
147int 147int
148find_animation (const char *name) 148find_animation (const char *name)
149{ 149{
150 Animations search, *match; 150 animation search, *match;
151 151
152 search.name = name; 152 search.name = name;
153 153
154 match = (Animations *) bsearch (&search, &animations[0], (num_animations + 1), 154 match = (animation *) bsearch (&search, &animations[0], (num_animations + 1),
155 sizeof (Animations), (int (*)(const void *, const void *)) anim_compare); 155 sizeof (animation), (int (*)(const void *, const void *)) anim_compare);
156 156
157 157
158 if (match) 158 if (match)
159 return match->num; 159 return match->num;
160 160

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines