Crossfire Server, Trunk  1.75.0
newclient.h
Go to the documentation of this file.
1 
14 #ifndef NEWCLIENT_H
15 #define NEWCLIENT_H
16 
25 #define MAXSOCKBUF (2+65535+1)
26 
32 #define MAP2_COORD_OFFSET 15
33 
42 #define MAP2_TYPE_CLEAR 0x0
43 #define MAP2_TYPE_DARKNESS 0x1
44 #define MAP2_TYPE_LABEL 0x2 // SC 1030
45 /*
46  * These next two are not used presently, but the numbers are set aside for
47  * when support is added.
48  *
49  * #define MAP2_TYPE_LIGHTSOURCE 0x3
50  */
56 enum map2_label {
65 };
66 
67 #define MAP2_LAYER_START 0x10
68 #define MAP2_ADD_LENGTH 0b11100000 // OR this with the above for "next byte is length", SC 1030
69 
70 #define CS_QUERY_YESNO 0x1
71 #define CS_QUERY_SINGLECHAR 0x2
72 #define CS_QUERY_HIDEINPUT 0x4
74 #define CS_SAY_NORMAL 0x1
75 #define CS_SAY_SHOUT 0x2
76 #define CS_SAY_GSAY 0x4
83 #define FLOAT_MULTI 100000
84 #define FLOAT_MULTF 100000.0
85 
91 #define CS_STAT_HP 1
92 #define CS_STAT_MAXHP 2
93 #define CS_STAT_SP 3
94 #define CS_STAT_MAXSP 4
95 #define CS_STAT_STR 5
96 #define CS_STAT_INT 6
97 #define CS_STAT_WIS 7
98 #define CS_STAT_DEX 8
99 #define CS_STAT_CON 9
100 #define CS_STAT_CHA 10
101 #define CS_STAT_EXP 11
102 #define CS_STAT_LEVEL 12
103 #define CS_STAT_WC 13
104 #define CS_STAT_AC 14
105 #define CS_STAT_DAM 15
106 #define CS_STAT_ARMOUR 16
107 #define CS_STAT_SPEED 17
108 #define CS_STAT_FOOD 18
109 #define CS_STAT_WEAP_SP 19
110 #define CS_STAT_RANGE 20
111 #define CS_STAT_TITLE 21
112 #define CS_STAT_POW 22
113 #define CS_STAT_GRACE 23
114 #define CS_STAT_MAXGRACE 24
115 #define CS_STAT_FLAGS 25
116 #define CS_STAT_WEIGHT_LIM 26
117 #define CS_STAT_EXP64 28
118 #define CS_STAT_SPELL_ATTUNE 29
119 #define CS_STAT_SPELL_REPEL 30
120 #define CS_STAT_SPELL_DENY 31
121 #define CS_STAT_RACE_STR 32
122 #define CS_STAT_RACE_INT 33
123 #define CS_STAT_RACE_WIS 34
124 #define CS_STAT_RACE_DEX 35
125 #define CS_STAT_RACE_CON 36
126 #define CS_STAT_RACE_CHA 37
127 #define CS_STAT_RACE_POW 38
128 #define CS_STAT_BASE_STR 39
129 #define CS_STAT_BASE_INT 40
130 #define CS_STAT_BASE_WIS 41
131 #define CS_STAT_BASE_DEX 42
132 #define CS_STAT_BASE_CON 43
133 #define CS_STAT_BASE_CHA 44
134 #define CS_STAT_BASE_POW 45
135 #define CS_STAT_APPLIED_STR 46
136 #define CS_STAT_APPLIED_INT 47
137 #define CS_STAT_APPLIED_WIS 48
138 #define CS_STAT_APPLIED_DEX 49
139 #define CS_STAT_APPLIED_CON 50
140 #define CS_STAT_APPLIED_CHA 51
141 #define CS_STAT_APPLIED_POW 52
142 #define CS_STAT_GOLEM_HP 53
143 #define CS_STAT_GOLEM_MAXHP 54
144 #define CS_STAT_CHARACTER_FLAGS 55
145 #define CS_STAT_GOD_NAME 56
146 #define CS_STAT_OVERLOAD 57
147 #define CS_STAT_ITEM_POWER 58
149 #define CS_STAT_RESIST_START 100
150 #define CS_STAT_RESIST_END 117
152 #define CS_STAT_RES_PHYS 100
153 #define CS_STAT_RES_MAG 101
154 #define CS_STAT_RES_FIRE 102
155 #define CS_STAT_RES_ELEC 103
156 #define CS_STAT_RES_COLD 104
157 #define CS_STAT_RES_CONF 105
158 #define CS_STAT_RES_ACID 106
159 #define CS_STAT_RES_DRAIN 107
160 #define CS_STAT_RES_GHOSTHIT 108
161 #define CS_STAT_RES_POISON 109
162 #define CS_STAT_RES_SLOW 110
163 #define CS_STAT_RES_PARA 111
164 #define CS_STAT_TURN_UNDEAD 112
165 #define CS_STAT_RES_FEAR 113
166 #define CS_STAT_RES_DEPLETE 114
167 #define CS_STAT_RES_DEATH 115
168 #define CS_STAT_RES_HOLYWORD 116
169 #define CS_STAT_RES_BLIND 117
170 
176 #define CS_STAT_SKILLINFO 140
177 
183 #define CS_NUM_SKILLS 50
184 
193 #define SF_FIREON 0x01
194 #define SF_RUNON 0x02
195 
201 // readied skill
202 #define CF_CONFUSED 0x01
203 #define CF_POISONED 0x02
204 #define CF_BLIND 0x04
205 #define CF_XRAY 0x08
206 #define CF_DISEASED 0x10
207 #define CF_NOT_PERFECT 0x20
208 #define CF_HOSTILE 0x40
209 #define CF_STEALTHY 0x80
210 #define CF_PARALYZED 0x0100
211 #define CF_WIZARD 0x0200
213 
214 
221 #define ACL_NAME 1
222 #define ACL_CLASS 2
223 #define ACL_RACE 3
224 #define ACL_LEVEL 4
225 #define ACL_FACE 5
226 #define ACL_PARTY 6
227 #define ACL_MAP 7
228 #define ACL_FACE_NUM 8
229 
246 #define NDI_BLACK 0
247 #define NDI_WHITE 1
248 #define NDI_NAVY 2
249 #define NDI_RED 3
250 #define NDI_ORANGE 4
251 #define NDI_BLUE 5
252 #define NDI_DK_ORANGE 6
253 #define NDI_GREEN 7
254 #define NDI_LT_GREEN 8
256 #define NDI_GREY 9
257 #define NDI_BROWN 10
258 #define NDI_GOLD 11
259 #define NDI_TAN 12
260 #define NDI_MAX_COLOR 12
262 #define NDI_COLOR_MASK 0xff
266 #define NDI_UNIQUE 0x100
267 #define NDI_ALL 0x200
268 #define NDI_ALL_DMS 0x400
270 #define NDI_NO_TRANSLATE 0x800
273 #define NDI_DELAYED 0x1000
280 
281 
286 
287 #define F_APPLIED 0x000F
288 #define F_UNIDENTIFIED 0x0010
289 #define F_UNPAID 0x0200
290 #define F_MAGIC 0x0400
291 #define F_CURSED 0x0800
292 #define F_DAMNED 0x1000
293 #define F_OPEN 0x2000
294 #define F_NOPICK 0x4000
295 #define F_LOCKED 0x8000
296 #define F_BLESSED 0x0100
297 #define F_READ 0x0020
298 
307 #define FACE_FLOOR 0x80
308 #define FACE_WALL 0x40
310 #define FACE_COLOR_MASK 0xf
311 
318 #define UPD_LOCATION 0x01
319 #define UPD_FLAGS 0x02
320 #define UPD_WEIGHT 0x04
321 #define UPD_FACE 0x08
322 #define UPD_NAME 0x10
323 #define UPD_ANIM 0x20
324 #define UPD_ANIMSPEED 0x40
325 #define UPD_NROF 0x80
326 #define UPD_ALL 0xFF
327 
328 #define UPD_SP_MANA 0x01
329 #define UPD_SP_GRACE 0x02
330 #define UPD_SP_DAMAGE 0x04
332 
333 
337 #define SOUND_TYPE_LIVING 1
338 #define SOUND_TYPE_SPELL 2
339 #define SOUND_TYPE_ITEM 3
340 #define SOUND_TYPE_GROUND 4
341 #define SOUND_TYPE_HIT 5
342 #define SOUND_TYPE_HIT_BY 6
343 
350 #define FACE_IS_ANIM 1<<15
351 #define ANIM_RANDOM 1<<13
352 #define ANIM_SYNC 2<<13
353 
354 #define ANIM_FLAGS_MASK 0x6000
360 #define ANIM_MASK 0x1fff
361 
377 #define EMI_NOREDRAW 0x01
378 
381 #define EMI_SMOOTH 0x02
382 
387 #define EMI_HASMOREBITS 0x80
388 
390 /*
391  * Note!
392  * When adding message types, don't forget to keep the client up to date too!
393  */
394 
399 #define MSG_TYPE_BOOK 1
400 #define MSG_TYPE_CARD 2
401 #define MSG_TYPE_PAPER 3
402 #define MSG_TYPE_SIGN 4
403 #define MSG_TYPE_MONUMENT 5
404 #define MSG_TYPE_DIALOG 6
405 #define MSG_TYPE_MOTD 7
406 #define MSG_TYPE_ADMIN 8
407 #define MSG_TYPE_SHOP 9
408 #define MSG_TYPE_COMMAND 10
409 #define MSG_TYPE_ATTRIBUTE 11
411 #define MSG_TYPE_SKILL 12
412 #define MSG_TYPE_APPLY 13
413 #define MSG_TYPE_ATTACK 14
414 #define MSG_TYPE_COMMUNICATION 15
415 #define MSG_TYPE_SPELL 16
416 #define MSG_TYPE_ITEM 17
417 #define MSG_TYPE_MISC 18
419 #define MSG_TYPE_VICTIM 19
421 #define MSG_TYPE_CLIENT 20
422 #define MSG_TYPE_LAST 21
423 
424 #define MSG_SUBTYPE_NONE 0
425 
426 /* book messages subtypes */
427 #define MSG_TYPE_BOOK_CLASP_1 1
428 #define MSG_TYPE_BOOK_CLASP_2 2
429 #define MSG_TYPE_BOOK_ELEGANT_1 3
430 #define MSG_TYPE_BOOK_ELEGANT_2 4
431 #define MSG_TYPE_BOOK_QUARTO_1 5
432 #define MSG_TYPE_BOOK_QUARTO_2 6
433 #define MSG_TYPE_BOOK_SPELL_EVOKER 7
434 #define MSG_TYPE_BOOK_SPELL_PRAYER 8
435 #define MSG_TYPE_BOOK_SPELL_PYRO 9
436 #define MSG_TYPE_BOOK_SPELL_SORCERER 10
437 #define MSG_TYPE_BOOK_SPELL_SUMMONER 11
438 
439 /* card messages subtypes*/
440 #define MSG_TYPE_CARD_SIMPLE_1 1
441 #define MSG_TYPE_CARD_SIMPLE_2 2
442 #define MSG_TYPE_CARD_SIMPLE_3 3
443 #define MSG_TYPE_CARD_ELEGANT_1 4
444 #define MSG_TYPE_CARD_ELEGANT_2 5
445 #define MSG_TYPE_CARD_ELEGANT_3 6
446 #define MSG_TYPE_CARD_STRANGE_1 7
447 #define MSG_TYPE_CARD_STRANGE_2 8
448 #define MSG_TYPE_CARD_STRANGE_3 9
449 #define MSG_TYPE_CARD_MONEY_1 10
450 #define MSG_TYPE_CARD_MONEY_2 11
451 #define MSG_TYPE_CARD_MONEY_3 12
452 
453 /* Paper messages subtypes */
454 #define MSG_TYPE_PAPER_NOTE_1 1
455 #define MSG_TYPE_PAPER_NOTE_2 2
456 #define MSG_TYPE_PAPER_NOTE_3 3
457 #define MSG_TYPE_PAPER_LETTER_OLD_1 4
458 #define MSG_TYPE_PAPER_LETTER_OLD_2 5
459 #define MSG_TYPE_PAPER_LETTER_NEW_1 6
460 #define MSG_TYPE_PAPER_LETTER_NEW_2 7
461 #define MSG_TYPE_PAPER_ENVELOPE_1 8
462 #define MSG_TYPE_PAPER_ENVELOPE_2 9
463 #define MSG_TYPE_PAPER_SCROLL_OLD_1 10
464 #define MSG_TYPE_PAPER_SCROLL_OLD_2 11
465 #define MSG_TYPE_PAPER_SCROLL_NEW_1 12
466 #define MSG_TYPE_PAPER_SCROLL_NEW_2 13
467 #define MSG_TYPE_PAPER_SCROLL_MAGIC 14
468 
469 /* road signs messages subtypes */ /* Including magic mouths */
470 #define MSG_TYPE_SIGN_BASIC 1
471 #define MSG_TYPE_SIGN_DIR_LEFT 2
472 #define MSG_TYPE_SIGN_DIR_RIGHT 3
473 #define MSG_TYPE_SIGN_DIR_BOTH 4
474 #define MSG_TYPE_SIGN_MAGIC_MOUTH 5
475 
476 /* stones and monument messages */
477 #define MSG_TYPE_MONUMENT_STONE_1 1
478 #define MSG_TYPE_MONUMENT_STONE_2 2
479 #define MSG_TYPE_MONUMENT_STONE_3 3
480 #define MSG_TYPE_MONUMENT_STATUE_1 4
481 #define MSG_TYPE_MONUMENT_STATUE_2 5
482 #define MSG_TYPE_MONUMENT_STATUE_3 6
483 #define MSG_TYPE_MONUMENT_GRAVESTONE_1 7
484 #define MSG_TYPE_MONUMENT_GRAVESTONE_2 8
485 #define MSG_TYPE_MONUMENT_GRAVESTONE_3 9
486 #define MSG_TYPE_MONUMENT_WALL_1 10
487 #define MSG_TYPE_MONUMENT_WALL_2 11
488 #define MSG_TYPE_MONUMENT_WALL_3 12
489 
490 /* dialog message */
491 #define MSG_TYPE_DIALOG_NPC 1
492 #define MSG_TYPE_DIALOG_ALTAR 2
493 #define MSG_TYPE_DIALOG_MAGIC_EAR 3
495 /* MOTD doesn't have any subtypes */
496 
497 /* admin/global messages */
498 #define MSG_TYPE_ADMIN_RULES 1
499 #define MSG_TYPE_ADMIN_NEWS 2
500 #define MSG_TYPE_ADMIN_PLAYER 3
501 #define MSG_TYPE_ADMIN_DM 4
502 #define MSG_TYPE_ADMIN_HISCORE 5
503 #define MSG_TYPE_ADMIN_LOADSAVE 6
504 #define MSG_TYPE_ADMIN_LOGIN 7
505 #define MSG_TYPE_ADMIN_VERSION 8
506 #define MSG_TYPE_ADMIN_ERROR 9
507 /*
508  * I'm not actually expecting anything to make much use of the MSG_TYPE_SHOP
509  * values However, to use the media tags, need to use draw_ext_info, and need
510  * to have a type/subtype, so figured might as well put in real values here.
511  */
512 #define MSG_TYPE_SHOP_LISTING 1
514 #define MSG_TYPE_SHOP_PAYMENT 2
516 #define MSG_TYPE_SHOP_SELL 3
517 #define MSG_TYPE_SHOP_MISC 4
518 /*
519  * Basically, 1 subtype/command. Like shops, not expecting much to be done,
520  * but by having different subtypes, it makes it easier for client to store
521  * way information (eg, who output)
522  */
523 #define MSG_TYPE_COMMAND_WHO 1
524 #define MSG_TYPE_COMMAND_MAPS 2
525 #define MSG_TYPE_COMMAND_BODY 3
526 #define MSG_TYPE_COMMAND_MALLOC 4
527 #define MSG_TYPE_COMMAND_WEATHER 5
528 #define MSG_TYPE_COMMAND_STATISTICS 6
529 #define MSG_TYPE_COMMAND_CONFIG 7
530 #define MSG_TYPE_COMMAND_INFO 8
531 #define MSG_TYPE_COMMAND_QUESTS 9
532 #define MSG_TYPE_COMMAND_DEBUG 10
533 #define MSG_TYPE_COMMAND_ERROR 11
534 #define MSG_TYPE_COMMAND_SUCCESS 12
535 #define MSG_TYPE_COMMAND_FAILURE 13
536 #define MSG_TYPE_COMMAND_EXAMINE 14
537 #define MSG_TYPE_COMMAND_INVENTORY 15
538 #define MSG_TYPE_COMMAND_HELP 16
539 #define MSG_TYPE_COMMAND_DM 17
540 #define MSG_TYPE_COMMAND_NEWPLAYER 18
545 /* This is somewhat verbose. If the client ends up being able to
546  * choose various attributes based on message type, I think it is important
547  * for the client to know if this is a benefit or detriment to the player.
548  * In the case of losing a bonus, this typically indicates a spell has
549  * ended, which is probably more important (and should be displayed more
550  * prominently) than when you cast the spell
551  */
552 
553 #define MSG_TYPE_ATTRIBUTE_ATTACKTYPE_GAIN 1
554 #define MSG_TYPE_ATTRIBUTE_ATTACKTYPE_LOSS 2
559 #define MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN 3
560 #define MSG_TYPE_ATTRIBUTE_PROTECTION_LOSS 4
566 #define MSG_TYPE_ATTRIBUTE_MOVE 5
568 #define MSG_TYPE_ATTRIBUTE_RACE 6
569 #define MSG_TYPE_ATTRIBUTE_BAD_EFFECT_START 7
571 #define MSG_TYPE_ATTRIBUTE_BAD_EFFECT_END 8
572 #define MSG_TYPE_ATTRIBUTE_STAT_GAIN 9
573 #define MSG_TYPE_ATTRIBUTE_STAT_LOSS 10
574 #define MSG_TYPE_ATTRIBUTE_LEVEL_GAIN 11
575 #define MSG_TYPE_ATTRIBUTE_LEVEL_LOSS 12
576 #define MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START 13
578 #define MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END 14
579 #define MSG_TYPE_ATTRIBUTE_GOD 15
581 /* I think one type/skill is overkill, so instead, use broader categories
582  * for these messages.
583  * The difference in ERROR vs FAILURE is basically this: ERROR indicates
584  * something wasn't right to even attempt to use the skill (don't have
585  * needed object, or haven't marked objects, etc).
586  * FAILURE indicates that player attempted to use the skill, but it
587  * didn't work.
588  * PRAY is listed out because praying over altars can generate some
589  * messages not really related to the skill itself.
590  */
591 #define MSG_TYPE_SKILL_MISSING 1
592 #define MSG_TYPE_SKILL_ERROR 2
593 #define MSG_TYPE_SKILL_SUCCESS 3
594 #define MSG_TYPE_SKILL_FAILURE 4
595 #define MSG_TYPE_SKILL_PRAY 5
596 #define MSG_TYPE_SKILL_LIST 6
598 /* Messages related to applying objects. Note that applying many objects may
599  * generate MSG_TYPE_ATTRIBUTE messages - the APPLY here more directly related
600  * to the direct messages related to applying them (you put on your armor, you
601  * apply scroll, etc). The ERROR is like that for SKILLS - something prevent
602  * even trying to apply the object. FAILURE indicates result wasn't
603  * successful.
604  */
605 #define MSG_TYPE_APPLY_ERROR 1
606 #define MSG_TYPE_APPLY_UNAPPLY 2
607 #define MSG_TYPE_APPLY_SUCCESS 3
608 #define MSG_TYPE_APPLY_FAILURE 4
609 #define MSG_TYPE_APPLY_CURSED 5
610 #define MSG_TYPE_APPLY_TRAP 6
611 #define MSG_TYPE_APPLY_BADBODY 7
612 #define MSG_TYPE_APPLY_PROHIBITION 8
613 #define MSG_TYPE_APPLY_BUILD 9
615 /* attack related messages */
616 #define MSG_TYPE_ATTACK_DID_HIT 1
617 #define MSG_TYPE_ATTACK_PET_HIT 2
618 #define MSG_TYPE_ATTACK_FUMBLE 3
619 #define MSG_TYPE_ATTACK_DID_KILL 4
620 #define MSG_TYPE_ATTACK_PET_DIED 5
621 #define MSG_TYPE_ATTACK_NOKEY 6
622 #define MSG_TYPE_ATTACK_NOATTACK 7
623 #define MSG_TYPE_ATTACK_PUSHED 8
624 #define MSG_TYPE_ATTACK_MISS 9
626 #define MSG_TYPE_COMMUNICATION_RANDOM 1
627 #define MSG_TYPE_COMMUNICATION_SAY 2
628 #define MSG_TYPE_COMMUNICATION_ME 3
629 #define MSG_TYPE_COMMUNICATION_TELL 4
630 #define MSG_TYPE_COMMUNICATION_EMOTE 5
631 #define MSG_TYPE_COMMUNICATION_PARTY 6
632 #define MSG_TYPE_COMMUNICATION_SHOUT 7
633 #define MSG_TYPE_COMMUNICATION_CHAT 8
635 #define MSG_TYPE_SPELL_HEAL 1
636 #define MSG_TYPE_SPELL_PET 2
637 #define MSG_TYPE_SPELL_FAILURE 3
638 #define MSG_TYPE_SPELL_END 4
639 #define MSG_TYPE_SPELL_SUCCESS 5
640 #define MSG_TYPE_SPELL_ERROR 6
641 #define MSG_TYPE_SPELL_PERCEIVE_SELF 7
642 #define MSG_TYPE_SPELL_TARGET 8
643 #define MSG_TYPE_SPELL_INFO 9
646 #define MSG_TYPE_ITEM_REMOVE 1
647 #define MSG_TYPE_ITEM_ADD 2
648 #define MSG_TYPE_ITEM_CHANGE 3
649 #define MSG_TYPE_ITEM_INFO 4
650 /*
651  * MSG_TYPE_MISC, by its very nature, doesn't really have subtypes. It is
652  * used for messages that really don't belong anyplace else
653  */
654 #define MSG_TYPE_VICTIM_SWAMP 1
655 #define MSG_TYPE_VICTIM_WAS_HIT 2
656 #define MSG_TYPE_VICTIM_STEAL 3
658 #define MSG_TYPE_VICTIM_SPELL 4
660 #define MSG_TYPE_VICTIM_DIED 5
661 #define MSG_TYPE_VICTIM_WAS_PUSHED 6
664 #define MSG_TYPE_CLIENT_CONFIG 1
665 #define MSG_TYPE_CLIENT_SERVER 2
666 #define MSG_TYPE_CLIENT_COMMAND 3
667 #define MSG_TYPE_CLIENT_QUERY 4
668 #define MSG_TYPE_CLIENT_DEBUG 5
669 #define MSG_TYPE_CLIENT_NOTICE 6
670 #define MSG_TYPE_CLIENT_METASERVER 7
671 #define MSG_TYPE_CLIENT_SCRIPT 8
672 #define MSG_TYPE_CLIENT_ERROR 9
674 
675 
678 #define INFO_MAP_ARCH_NAME 1
679 #define INFO_MAP_NAME 2
680 #define INFO_MAP_DESCRIPTION 3
685 typedef struct SockList {
686 #ifdef CLIENT_TYPES_H /* Used by the client */
687  int len;
688  unsigned char *buf;
689 #else /* Used by the server */
690  size_t len;
691  unsigned char buf[MAXSOCKBUF]; /* 2(size)+65535(content)+1(ending NULL) */
692 #endif
693 } SockList;
694 
698 typedef struct CS_Stats {
699  int ibytes;
700  int obytes;
701  short max_conn;
702  time_t time_start; //< Start time of sampling interval
703 
704  // These variables partly duplicate the process_*_utime statistics in
705  // time.cpp, but are needed because we need data from the last sampling
706  // interval and not over all time.
707  unsigned long ticks; //< Number of ticks processed
708  unsigned long ticks_overtime; //< Number of ticks that were over time
709  unsigned long max_ticktime; //< Longest tick (in ms)
710  unsigned long total_ticktime; //< Total tick time (in ms)
711 } CS_Stats;
712 
714 
715 #endif /* NEWCLIENT_H */
CS_Stats::ibytes
int ibytes
ibytes, obytes are bytes in, out.
Definition: newclient.h:699
CS_Stats::total_ticktime
unsigned long total_ticktime
Definition: newclient.h:710
CS_Stats
struct CS_Stats CS_Stats
Statistics for the last CS_LOGTIME seconds on the server.
MAP2_LABEL_SIGN
@ MAP2_LABEL_SIGN
Definition: newclient.h:62
MAXSOCKBUF
#define MAXSOCKBUF
Maximum size of a packet the client expects to get and that the server can send.
Definition: newclient.h:25
CS_Stats::ticks
unsigned long ticks
Definition: newclient.h:707
a_active
@ a_active
Definition: newclient.h:285
map2_label
map2_label
Map label subtypes.
Definition: newclient.h:56
buf
StringBuffer * buf
Definition: readable.cpp:1565
MAP2_LABEL_PLAYER_PARTY
@ MAP2_LABEL_PLAYER_PARTY
Definition: newclient.h:59
CS_Stats::time_start
time_t time_start
Definition: newclient.h:702
a_readied
@ a_readied
Definition: newclient.h:285
a_applied
@ a_applied
Definition: newclient.h:285
MAP2_LABEL_NONE
@ MAP2_LABEL_NONE
Definition: newclient.h:57
SockList
struct SockList SockList
Contains the base information we use to make up a packet we want to send.
MAP2_LABEL_SAY
@ MAP2_LABEL_SAY
Definition: newclient.h:63
CS_Stats::obytes
int obytes
Definition: newclient.h:700
SockList::len
size_t len
Definition: newclient.h:690
cst_tot
CS_Stats cst_tot
CS_Stats::max_ticktime
unsigned long max_ticktime
Definition: newclient.h:709
MAP2_LABEL_NPC
@ MAP2_LABEL_NPC
Definition: newclient.h:61
MAP2_LABEL_DM
@ MAP2_LABEL_DM
Definition: newclient.h:60
MAP2_LABEL_PLAYER
@ MAP2_LABEL_PLAYER
Definition: newclient.h:58
a_wielded
@ a_wielded
Definition: newclient.h:285
a_none
@ a_none
Definition: newclient.h:285
CS_Stats::ticks_overtime
unsigned long ticks_overtime
Definition: newclient.h:708
MAP2_LABEL_CHAT
@ MAP2_LABEL_CHAT
Definition: newclient.h:64
cst_lst
CS_Stats cst_lst
Definition: newclient.h:713
a_worn
@ a_worn
Definition: newclient.h:285
CS_Stats
Statistics for the last CS_LOGTIME seconds on the server.
Definition: newclient.h:698
CS_Stats::max_conn
short max_conn
Maximum connections received.
Definition: newclient.h:701