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

Comparing deliantra/server/include/traits.h (file contents):
Revision 1.1 by root, Thu Aug 31 09:19:34 2006 UTC vs.
Revision 1.9 by root, Thu Dec 21 01:33:50 2006 UTC

1#ifndef TRAITS_H__ 1#ifndef TRAITS_H__
2#define TRAITS_H__ 2#define TRAITS_H__
3 3
4struct client_container;
5struct client;
4struct pl; 6struct player;
5struct object; 7struct object;
8struct maptile;
6struct mapstruct; 9struct mapspace;
7struct archt; 10struct archetype;
8struct region; 11struct region;
9struct party; 12struct party;
10struct mapstruct; 13struct treasurelist;
11 14
12// could have used templates, but a more traditional C api 15// could have used templates, but a more traditional C api
13// uses more explicit typing which is ok for this purpose. 16// uses more explicit typing which is ok for this purpose.
14enum data_type 17enum data_type
15{ 18{
20 DT_DOUBLE, 23 DT_DOUBLE,
21 DT_STRING, // 0-terminated string 24 DT_STRING, // 0-terminated string
22 DT_DATA, // string + length 25 DT_DATA, // string + length
23 DT_OBJECT, 26 DT_OBJECT,
24 DT_MAP, 27 DT_MAP,
28 DT_CLIENT,
25 DT_PLAYER, 29 DT_PLAYER,
26 DT_ARCH, 30 DT_ARCH,
27 DT_PARTY, 31 DT_PARTY,
28 DT_REGION, 32 DT_REGION,
29 33
33template<typename T> 37template<typename T>
34struct cftype { }; 38struct cftype { };
35 39
36template<> 40template<>
37struct cftype<int> { 41struct cftype<int> {
38 enum { dt = DT_INT }; 42 static const data_type dt = DT_INT;
39}; 43};
40 44
41template<> 45template<>
42struct cftype<sint64> { 46struct cftype<sint64> {
43 enum { dt = DT_INT64 }; 47 static const data_type dt = DT_INT64;
44}; 48};
45 49
46template<> 50template<>
47struct cftype<double> { 51struct cftype<double> {
48 enum { dt = DT_DOUBLE }; 52 static const data_type dt = DT_DOUBLE;
49}; 53};
50 54
51template<> 55template<>
52struct cftype<const char *> { 56struct cftype<const char *> {
53 enum { dt = DT_STRING }; 57 static const data_type dt = DT_STRING;
54}; 58};
55 59
56template<> 60template<>
57struct cftype<object> { 61struct cftype<object> {
58 enum { dt = DT_OBJECT }; 62 static const data_type dt = DT_OBJECT;
59}; 63};
60 64
61template<> 65template<>
62struct cftype<struct pl> { 66struct cftype<client> {
63 enum { dt = DT_PLAYER }; 67 static const data_type dt = DT_CLIENT;
64}; 68};
65 69
66template<> 70template<>
67struct cftype<mapstruct> { 71struct cftype<player> {
68 enum { dt = DT_MAP }; 72 static const data_type dt = DT_PLAYER;
69}; 73};
70 74
71template<> 75template<>
76struct cftype<maptile> {
77 static const data_type dt = DT_MAP;
78};
79
80template<>
72struct cftype<struct archt> { 81struct cftype<archetype> {
73 enum { dt = DT_ARCH }; 82 static const data_type dt = DT_ARCH;
74}; 83};
75 84
76template<> 85template<>
77struct cftype<party> { 86struct cftype<party> {
78 enum { dt = DT_PARTY }; 87 static const data_type dt = DT_PARTY;
79}; 88};
80 89
81template<> 90template<>
82struct cftype<region> { 91struct cftype<region> {
83 enum { dt = DT_REGION }; 92 static const data_type dt = DT_REGION;
93};
94
95template<>
96struct cftype<treasurelist> {
97 static const data_type dt = DT_REGION;
84}; 98};
85 99
86#endif 100#endif
87 101

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines