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

Comparing deliantra/server/include/client.h (file contents):
Revision 1.14 by root, Thu Dec 21 06:12:36 2006 UTC vs.
Revision 1.19 by root, Sat Dec 23 09:41:55 2006 UTC

77enum MapMode { Map0Cmd = 0, Map1Cmd = 1, Map1aCmd = 2 }; 77enum MapMode { Map0Cmd = 0, Map1Cmd = 1, Map1aCmd = 2 };
78 78
79/* The following is the setup for a ring buffer for storing output 79/* The following is the setup for a ring buffer for storing output
80 * data that the OS can't handle right away. 80 * data that the OS can't handle right away.
81 */ 81 */
82
83struct Buffer 82struct Buffer
84{ 83{
85 char data[SOCKETBUFSIZE]; 84 char data[SOCKETBUFSIZE];
86 int start; 85 int start;
87 int len; 86 int len;
87};
88
89// states the socket can be in
90enum {
91 ST_DEAD, // socket is dead
92 ST_SETUP, // initial handshake / setup / login
93 ST_PLAYING, // logged in an playing
94 ST_CUSTOM, // waiting for custom reply
95
96 ST_CONFIRM_QUIT,
97 ST_CHANGE_CLASS,
98 ST_GET_PARTY_PASSWORD,
88}; 99};
89 100
90// a handler for a specific type of packet 101// a handler for a specific type of packet
91enum { 102enum {
92 PF_PLAYER = 0x01, // must have valid player / will by synchronised 103 PF_PLAYER = 0x01, // must have valid player / will by synchronised
160 unsigned int inbuf_len; // number of bytes valid in inbuf 171 unsigned int inbuf_len; // number of bytes valid in inbuf
161 uint8 *faces_sent; // This is a bitmap on sent face status 172 uint8 *faces_sent; // This is a bitmap on sent face status
162 statsinfo stats; 173 statsinfo stats;
163 174
164 client_container cc_inv, cc_other; 175 client_container cc_inv, cc_other;
176 Buffer outputbuffer;
165 177
166 char *ACC (RW, host); /* Which host it is connected from (ip address) */ 178 char *ACC (RW, host); /* Which host it is connected from (ip address) */
179 uint8 ACC (RW, state); /* Input state of the player (name, password, etc */
167 uint8 ACC (RW, password_fails); /* how many times the player has failed to give the right password */ 180 uint8 ACC (RW, password_fails); /* how many times the player has failed to give the right password */
168 bool destroyed; // set when this socket is to be destroyed
169 Buffer outputbuffer;
170 181
171 bool ACC (RW, facecache); /* If true, client is caching images */ 182 bool ACC (RW, facecache); /* If true, client is caching images */
172 bool ACC (RW, sent_scroll); 183 bool ACC (RW, sent_scroll);
173 bool ACC (RW, sound); /* does the client want sound */ 184 bool ACC (RW, sound); /* does the client want sound */
174 bool ACC (RW, exp64); /* Client wants 64 bit exp data, as well as skill data */
175 bool ACC (RW, newmapcmd); /* Send newmap command when entering new map SMACFIGGEN */ 185 bool ACC (RW, newmapcmd); /* Send newmap command when entering new map SMACFIGGEN */
176 bool ACC (RW, plugincmd); /* CF+ extend the protocol through a plug-in */ 186 bool ACC (RW, plugincmd); /* CF+ extend the protocol through a plug-in */
177 bool ACC (RW, mapinfocmd); /* CF+ return map info and send map change info */ 187 bool ACC (RW, mapinfocmd); /* CF+ return map info and send map change info */
178 bool ACC (RW, extcmd); /* CF+ call into extensions/plugins */ 188 bool ACC (RW, extcmd); /* CF+ call into extensions/plugins */
179 bool ACC (RW, extmap); /* CF+ extend map comamnd with extra data */ 189 bool ACC (RW, extmap); /* CF+ extend map comamnd with extra data */
199 209
200 maptile *ACC (RW, current_map); // CF+ last/current player map 210 maptile *ACC (RW, current_map); // CF+ last/current player map
201 int ACC (RW, current_x), ACC (RW, current_y); // CF+ last/current map position 211 int ACC (RW, current_x), ACC (RW, current_y); // CF+ last/current map position
202 char ACC (RW, version)[64]; // CF+ client name/version 212 char ACC (RW, version)[64]; // CF+ client name/version
203 213
204 player *ACC (RO, pl);//TODO should not be here, preferably 214 player_ptr ACC (RO, pl);
205 215
206 int ACC (RW, rtt), ACC (RW, rttvar); /* round-trip time and -variance, if known */ 216 int ACC (RW, rtt), ACC (RW, rttvar); /* round-trip time and -variance, if known */
207 217
208 client (int fd, const char *from_ip); 218 client (int fd, const char *from_ip);
209 ~client (); 219 ~client ();
210 void destroy (); 220 void destroy ();
221 bool destroyed () const { return state == ST_DEAD; }
211 222
212 iw cmd_ev; void cmd_cb (iw &w); 223 iw cmd_ev; void cmd_cb (iw &w);
213 iow socket_ev; void socket_cb (iow &w, int got); 224 iow socket_ev; void socket_cb (iow &w, int got);
214 225
215 std::deque< command, slice_allocator<command> > cmd_queue; 226 std::deque< command, slice_allocator<command> > cmd_queue;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines