ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/face.h
(Generate patch)

Comparing deliantra/server/include/face.h (file contents):
Revision 1.10 by root, Wed Mar 14 00:04:58 2007 UTC vs.
Revision 1.14 by root, Thu Apr 12 14:18:05 2007 UTC

25#define FACE_H__ 25#define FACE_H__
26 26
27#include <string> 27#include <string>
28#include <tr1/unordered_map> 28#include <tr1/unordered_map>
29 29
30#define CHKSUM_SIZE (128 / 8) 30#define CHKSUM_SIZE 6
31#define MAX_FACES 10000 // stupid gcfclient artificially limits 31#define MAX_FACES 10000 // stupid gcfclient artificially limits
32 32
33typedef uint16 faceidx; 33typedef uint16 faceidx;
34 34
35extern faceidx blank_face, empty_face; 35extern faceidx blank_face, empty_face;
42 42
43/* New face structure - this enforces the notion that data is face by 43/* New face structure - this enforces the notion that data is face by
44 * face only - you can not change the color of an item - you need to instead 44 * face only - you can not change the color of an item - you need to instead
45 * create a new face with that color. 45 * create a new face with that color.
46 */ 46 */
47struct faceinfo : zero_initialised 47struct faceinfo
48{ 48{
49 shstr name; 49 shstr name;
50 facedata data32, data64; 50 facedata data32, data64;
51 faceidx number; /* This is the image id. It should be the */ 51 faceidx number; /* This is the image id. It should be the */
52 /* same value as its position in the array */ 52 /* same value as its position in the array */
53 faceidx smooth; /* the smooth face for this face, or 0 */ 53 faceidx smooth; /* the smooth face for this face, or 0 */
54 uint8 smoothlevel; // smoothlevel is per-face in 2.x servers
54 uint8 visibility; 55 uint8 visibility;
55 uint8 magicmap; /* Color to show this in magic map */ 56 uint8 magicmap; /* Color to show this in magic map */
57
58 faceinfo ()
59 : number (0), smooth (0), smoothlevel (0), visibility (0), magicmap (0)
60 { }
56}; 61};
57 62
58typedef std::tr1::unordered_map<const char *, int, str_hash, str_equal, slice_allocator< std::pair<const char *const, int> >, true> facehash_t; 63typedef std::tr1::unordered_map<const char *, int, str_hash, str_equal, slice_allocator< std::pair<const char *const, int> >, true> facehash_t;
59 64
60extern facehash_t facehash; 65extern facehash_t facehash;
78{ 83{
79 faceinfo *face; 84 faceinfo *face;
80 uint8 flags; 85 uint8 flags;
81}; 86};
82 87
88typedef uint16 animidx;
89
83struct animation 90struct animation
84{ 91{
85 shstr name; /* Name of the animation sequence */ 92 shstr name; /* Name of the animation sequence */
93 animidx number;
86 uint8 num_animations; /* How many different faces to animate */ 94 uint8 num_animations; /* How many different faces to animate */
87 uint8 facings; /* How many facings (1,2,4,8) */ 95 uint8 facings; /* How many facings (1,2,4,8) */
88 faceidx *faces; /* The different animations */ 96 faceidx *faces; /* The different animations */
89 uint16 num; /* Where we are in the array */ 97
98 static animation &create (const char *name, uint8 frames, uint8 facings = 1);
99 static animation &find (const char *name);
100
101 void resize (int new_size);
90}; 102};
103
104typedef std::tr1::unordered_map<const char *, int, str_hash, str_equal, slice_allocator< std::pair<const char *const, int> >, true> animhash_t;
105
106extern animhash_t animhash;
107extern std::vector<animation> animations;
91 108
92#endif 109#endif
93 110

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines