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.9 by root, Tue Sep 12 19:20:05 2006 UTC vs.
Revision 1.13 by pippijn, Tue Jan 2 23:39:21 2007 UTC

1
2/*
3 * static char *rcsid_anim_c =
4 * "$Id: anim.C,v 1.9 2006/09/12 19:20:05 root Exp $";
5 */
6
7/* 1/*
8 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
9 3
10 Copyright (C) 2002-2003 Mark Wedel & Crossfire Development Team 4 Copyright (C) 2002-2003 Mark Wedel & Crossfire Development Team
11 Copyright (C) 1992 Frank Tore Johansen 5 Copyright (C) 1992 Frank Tore Johansen
22 16
23 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
25 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26 20
27 The authors can be reached via e-mail at crossfire-devel@real-time.com 21 The authors can be reached via e-mail at <crossfire@schmorp.de>
28*/ 22*/
29 23
30/* This file contains animation related code. */ 24/* This file contains animation related code. */
31 25
32#include <global.h> 26#include <global.h>
33#include <stdio.h> 27#include <stdio.h>
34
35std::vector < Animations > animations;
36 28
37void 29void
38free_all_anim (void) 30free_all_anim (void)
39{ 31{
40 for (int i = 0; i <= num_animations; i++) 32 for (int i = 0; i <= num_animations; i++)
72 { 64 {
73 Animations anim0; 65 Animations anim0;
74 66
75 anim0.name = "###none"; 67 anim0.name = "###none";
76 anim0.num_animations = 1; 68 anim0.num_animations = 1;
77 anim0.faces = (Fontindex *) malloc (sizeof (Fontindex)); 69 anim0.faces = (uint16 *)malloc (sizeof (uint16));
78 anim0.faces[0] = 0; 70 anim0.faces[0] = 0;
79 anim0.facings = 0; 71 anim0.facings = 0;
80 72
81 animations.push_back (anim0); 73 animations.push_back (anim0);
82 } 74 }
83 75
84 sprintf (buf, "%s/animations", settings.datadir); 76 sprintf (buf, "%s/animations", settings.datadir);
85 LOG (llevDebug, "Reading animations from %s...", buf); 77 LOG (llevDebug, "Reading animations from %s...\n", buf);
86 if ((fp = fopen (buf, "r")) == NULL) 78 if ((fp = fopen (buf, "r")) == NULL)
87 { 79 {
88 LOG (llevError, "Cannot open animations file %s: %s\n", buf, strerror (errno)); 80 LOG (llevError, "Cannot open animations file %s: %s\n", buf, strerror (errno));
89 exit (-1); 81 exit (-1);
90 } 82 }
110 anim.facings = 1; 102 anim.facings = 1;
111 animations.push_back (anim); 103 animations.push_back (anim);
112 } 104 }
113 else if (!strncmp (buf, "mina", 4)) 105 else if (!strncmp (buf, "mina", 4))
114 { 106 {
115 animations[num_animations].faces = (Fontindex *) malloc (sizeof (Fontindex) * num_frames); 107 animations[num_animations].faces = (uint16 *) malloc (sizeof (uint16) * num_frames);
116 for (i = 0; i < num_frames; i++) 108 for (i = 0; i < num_frames; i++)
117 animations[num_animations].faces[i] = faces[i]; 109 animations[num_animations].faces[i] = faces[i];
118 animations[num_animations].num_animations = num_frames; 110 animations[num_animations].num_animations = num_frames;
119 if (num_frames % animations[num_animations].facings) 111 if (num_frames % animations[num_animations].facings)
120 { 112 {
181 */ 173 */
182 174
183void 175void
184animate_object (object *op, int dir) 176animate_object (object *op, int dir)
185{ 177{
186 int
187 max_state; /* Max animation state object should be drawn in */ 178 int max_state; /* Max animation state object should be drawn in */
188 int
189 base_state; /* starting index # to draw from */ 179 int base_state; /* starting index # to draw from */
190 180
191 if (!op->animation_id || !NUM_ANIMATIONS (op)) 181 if (!op->animation_id || !NUM_ANIMATIONS (op))
192 { 182 {
193 LOG (llevError, "Object %s lacks animation.\n", op->debug_desc ()); 183 LOG (llevError, "Object %s lacks animation.\n", op->debug_desc ());
194 return; 184 return;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines