ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/traits.h
Revision: 1.7
Committed: Tue Dec 19 04:58:05 2006 UTC (17 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.6: +2 -2 lines
Log Message:
- separate all comamnds into immediate/socket-level and queued/player-level
- clean up player command handling, handle up to 8 commands/tick

File Contents

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