ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/traits.h
Revision: 1.8
Committed: Wed Dec 20 09:14:22 2006 UTC (17 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.7: +1 -0 lines
Log Message:
- minor cleanups
- minor optimisations (in_player vs. is_player_inv)
- added P_PLAYER map flag
- some (dead) concept code

File Contents

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