ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/cf.schmorp.de/dclient/src/backend/communicator/message_logger.cpp
Revision: 1.2
Committed: Mon Oct 18 14:11:46 2010 UTC (16 years ago) by sf-pippijn
Branch: MAIN
Changes since 1.1: +34 -28 lines
Log Message:
check and log but do not die when ncurses stuff fails

File Contents

# Content
1 #include "deliantra/message_logger.h"
2
3 #include "deliantra/data/fx.h"
4 #include "deliantra/data/item.h"
5
6 #include <json/json.h>
7
8 template<typename T, typename C>
9 static std::vector<T>
10 vector (C const &c)
11 {
12 return std::vector<T> (c.begin (), c.end ());
13 }
14
15 template<typename T>
16 static logstream const &
17 operator , (logstream const &os, T const &v)
18 {
19 return os << ',' << v;
20 }
21
22 template<typename T>
23 logstream const &
24 operator << (logstream const &os, std::vector<T> const &v)
25 {
26 os << '[';
27 for (auto it = v.begin (), et = v.end (); it != et; ++it)
28 {
29 os << *it;
30 if (it + 1 != et)
31 os << ',';
32 }
33 os << ']';
34 return os;
35 }
36
37 static logstream const &
38 operator << (logstream const &os, data::fx const &fx)
39 {
40 os << "\n fx{";
41 os << fx.type
42 , fx.facenum
43 , vector<int> (vector<unsigned char> (fx.name))
44 ;
45 os << '}';
46 return os;
47 }
48
49 static logstream const &
50 operator << (logstream const &os, data::item const &item)
51 {
52 os << "\n item{";
53 os << item.singular
54 , item.plural
55 , item.tag
56 , item.flags
57 , item.weight
58 , item.face
59 , item.nrof
60 , item.anim
61 , item.type
62 , int (item.animspeed)
63 ;
64 os << '}';
65 return os;
66 }
67
68 template<typename K, typename V>
69 static logstream const &
70 operator << (logstream const &os, std::pair<K, V> const &pair)
71 {
72 os << "\n pair{";
73 os << pair.first
74 , pair.second
75 ;
76 os << '}';
77 return os;
78 }
79
80 void
81 message_logger::addme_success ()
82 {
83 LOG ("server") << __func__ << "\n";
84 }
85
86 void
87 message_logger::addspell ()
88 {
89 LOG ("server") << __func__ << "\n";
90 }
91
92 void
93 message_logger::delinv (u32 tag)
94 {
95 LOG ("server") << __func__ << " (" << tag << ")\n";
96 }
97
98 void
99 message_logger::delitem (std::vector<u32> const &items)
100 {
101 LOG ("server") << __func__ << " (" << items << ")\n";
102 }
103
104 void
105 message_logger::drawinfo (std::string const &info)
106 {
107 LOG ("server") << __func__ << " (" << info << ")\n";
108 }
109
110 void
111 message_logger::ext (Json::Value const &ext)
112 {
113 LOG ("server") << __func__ << " (" << ext << ")\n";
114 }
115
116 void
117 message_logger::fx (std::vector<data::fx> const &faces)
118 {
119 LOG ("server") << __func__ << " (" << faces << ")\n";
120 }
121
122 void
123 message_logger::item2 (u32 location, std::vector<data::item> const &items)
124 {
125 auto const &logs = LOG;
126 logs ("server") << __func__ << " (";
127 logs << location, items;
128 logs << ")\n";
129 }
130
131 void
132 message_logger::map (data::map const &map)
133 {
134 //LOG ("server") << __func__ << "\n";
135 }
136
137 void
138 message_logger::map_scroll (int dx, int dy)
139 {
140 auto const &logs = LOG;
141 logs ("server") << __func__ << " (";
142 logs << dx, dx;
143 logs << ")\n";
144 }
145
146 void
147 message_logger::msg (int n, std::string const &channel, std::string const &msg)
148 {
149 auto const &logs = LOG;
150 logs ("server") << __func__ << " (";
151 logs << n, channel, msg;
152 logs << ")\n";
153 }
154
155 void
156 message_logger::player (u32 tag, u32 weight, u32 face, std::string const &name)
157 {
158 auto const &logs = LOG;
159 logs ("server") << __func__ << " (";
160 logs << tag, weight, face, name;
161 logs << ")\n";
162 }
163
164 void
165 message_logger::replyinfo (std::string const &title, std::vector<std::pair<int, std::string>> const &info)
166 {
167 auto const &logs = LOG;
168 logs ("server") << __func__ << " (";
169 logs << title, info;
170 logs << ")\n";
171 }
172
173 void
174 message_logger::query (int flags, std::string const &prompt)
175 {
176 auto const &logs = LOG;
177 logs ("server") << __func__ << " (";
178 logs << flags, prompt;
179 logs << ")\n";
180 }
181
182 void
183 message_logger::stats (data::statistics const &stats)
184 {
185 LOG ("server") << __func__ << "\n";
186 }
187
188 void
189 message_logger::upditem (u08 flags, u32 location, data::item const &item)
190 {
191 auto const &logs = LOG;
192 logs ("server") << __func__ << " (";
193 logs << int (flags), location, item;
194 logs << ")\n";
195 }
196
197 void
198 message_logger::version (Json::Value const &server_version)
199 {
200 LOG ("server") << __func__ << " (" << server_version << ")\n";
201 }