Crossfire Server, Trunk
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 /*
45  * These next two are not used presently, but the numbers are set aside for
46  * when support is added.
47  *
48  * #define MAP2_TYPE_SOUND 0x2
49  * #define MAP2_TYPE_LIGHTSOURCE 0x3
50  */
53 #define MAP2_LAYER_START 0x10
54 
55 #define CS_QUERY_YESNO 0x1
56 #define CS_QUERY_SINGLECHAR 0x2
57 #define CS_QUERY_HIDEINPUT 0x4
59 #define CS_SAY_NORMAL 0x1
60 #define CS_SAY_SHOUT 0x2
61 #define CS_SAY_GSAY 0x4
68 #define FLOAT_MULTI 100000
69 #define FLOAT_MULTF 100000.0
70 
76 #define CS_STAT_HP 1
77 #define CS_STAT_MAXHP 2
78 #define CS_STAT_SP 3
79 #define CS_STAT_MAXSP 4
80 #define CS_STAT_STR 5
81 #define CS_STAT_INT 6
82 #define CS_STAT_WIS 7
83 #define CS_STAT_DEX 8
84 #define CS_STAT_CON 9
85 #define CS_STAT_CHA 10
86 #define CS_STAT_EXP 11
87 #define CS_STAT_LEVEL 12
88 #define CS_STAT_WC 13
89 #define CS_STAT_AC 14
90 #define CS_STAT_DAM 15
91 #define CS_STAT_ARMOUR 16
92 #define CS_STAT_SPEED 17
93 #define CS_STAT_FOOD 18
94 #define CS_STAT_WEAP_SP 19
95 #define CS_STAT_RANGE 20
96 #define CS_STAT_TITLE 21
97 #define CS_STAT_POW 22
98 #define CS_STAT_GRACE 23
99 #define CS_STAT_MAXGRACE 24
100 #define CS_STAT_FLAGS 25
101 #define CS_STAT_WEIGHT_LIM 26
102 #define CS_STAT_EXP64 28
103 #define CS_STAT_SPELL_ATTUNE 29
104 #define CS_STAT_SPELL_REPEL 30
105 #define CS_STAT_SPELL_DENY 31
106 #define CS_STAT_RACE_STR 32
107 #define CS_STAT_RACE_INT 33
108 #define CS_STAT_RACE_WIS 34
109 #define CS_STAT_RACE_DEX 35
110 #define CS_STAT_RACE_CON 36
111 #define CS_STAT_RACE_CHA 37
112 #define CS_STAT_RACE_POW 38
113 #define CS_STAT_BASE_STR 39
114 #define CS_STAT_BASE_INT 40
115 #define CS_STAT_BASE_WIS 41
116 #define CS_STAT_BASE_DEX 42
117 #define CS_STAT_BASE_CON 43
118 #define CS_STAT_BASE_CHA 44
119 #define CS_STAT_BASE_POW 45
120 #define CS_STAT_APPLIED_STR 46
121 #define CS_STAT_APPLIED_INT 47
122 #define CS_STAT_APPLIED_WIS 48
123 #define CS_STAT_APPLIED_DEX 49
124 #define CS_STAT_APPLIED_CON 50
125 #define CS_STAT_APPLIED_CHA 51
126 #define CS_STAT_APPLIED_POW 52
127 #define CS_STAT_GOLEM_HP 53
128 #define CS_STAT_GOLEM_MAXHP 54
129 #define CS_STAT_CHARACTER_FLAGS 55
130 #define CS_STAT_GOD_NAME 56
131 #define CS_STAT_OVERLOAD 57
132 #define CS_STAT_ITEM_POWER 58
134 #define CS_STAT_RESIST_START 100
135 #define CS_STAT_RESIST_END 117
137 #define CS_STAT_RES_PHYS 100
138 #define CS_STAT_RES_MAG 101
139 #define CS_STAT_RES_FIRE 102
140 #define CS_STAT_RES_ELEC 103
141 #define CS_STAT_RES_COLD 104
142 #define CS_STAT_RES_CONF 105
143 #define CS_STAT_RES_ACID 106
144 #define CS_STAT_RES_DRAIN 107
145 #define CS_STAT_RES_GHOSTHIT 108
146 #define CS_STAT_RES_POISON 109
147 #define CS_STAT_RES_SLOW 110
148 #define CS_STAT_RES_PARA 111
149 #define CS_STAT_TURN_UNDEAD 112
150 #define CS_STAT_RES_FEAR 113
151 #define CS_STAT_RES_DEPLETE 114
152 #define CS_STAT_RES_DEATH 115
153 #define CS_STAT_RES_HOLYWORD 116
154 #define CS_STAT_RES_BLIND 117
155 
161 #define CS_STAT_SKILLINFO 140
162 
168 #define CS_NUM_SKILLS 50
169 
178 #define SF_FIREON 0x01
179 #define SF_RUNON 0x02
180 
186 // readied skill
187 #define CF_CONFUSED 0x01
188 #define CF_POISONED 0x02
189 #define CF_BLIND 0x04
190 #define CF_XRAY 0x08
191 #define CF_DISEASED 0x10
192 #define CF_NOT_PERFECT 0x20
193 #define CF_HOSTILE 0x40
194 #define CF_STEALTHY 0x80
195 #define CF_PARALYZED 0x0100
196 #define CF_WIZARD 0x0200
198 
199 
206 #define ACL_NAME 1
207 #define ACL_CLASS 2
208 #define ACL_RACE 3
209 #define ACL_LEVEL 4
210 #define ACL_FACE 5
211 #define ACL_PARTY 6
212 #define ACL_MAP 7
213 #define ACL_FACE_NUM 8
214 
231 #define NDI_BLACK 0
232 #define NDI_WHITE 1
233 #define NDI_NAVY 2
234 #define NDI_RED 3
235 #define NDI_ORANGE 4
236 #define NDI_BLUE 5
237 #define NDI_DK_ORANGE 6
238 #define NDI_GREEN 7
239 #define NDI_LT_GREEN 8
241 #define NDI_GREY 9
242 #define NDI_BROWN 10
243 #define NDI_GOLD 11
244 #define NDI_TAN 12
245 #define NDI_MAX_COLOR 12
247 #define NDI_COLOR_MASK 0xff
251 #define NDI_UNIQUE 0x100
252 #define NDI_ALL 0x200
253 #define NDI_ALL_DMS 0x400
255 #define NDI_NO_TRANSLATE 0x800
258 #define NDI_DELAYED 0x1000
265 
266 
271 
272 #define F_APPLIED 0x000F
273 #define F_UNIDENTIFIED 0x0010
274 #define F_UNPAID 0x0200
275 #define F_MAGIC 0x0400
276 #define F_CURSED 0x0800
277 #define F_DAMNED 0x1000
278 #define F_OPEN 0x2000
279 #define F_NOPICK 0x4000
280 #define F_LOCKED 0x8000
281 #define F_BLESSED 0x0100
282 #define F_READ 0x0020
283 
292 #define FACE_FLOOR 0x80
293 #define FACE_WALL 0x40
295 #define FACE_COLOR_MASK 0xf
296 
303 #define UPD_LOCATION 0x01
304 #define UPD_FLAGS 0x02
305 #define UPD_WEIGHT 0x04
306 #define UPD_FACE 0x08
307 #define UPD_NAME 0x10
308 #define UPD_ANIM 0x20
309 #define UPD_ANIMSPEED 0x40
310 #define UPD_NROF 0x80
311 #define UPD_ALL 0xFF
312 
313 #define UPD_SP_MANA 0x01
314 #define UPD_SP_GRACE 0x02
315 #define UPD_SP_DAMAGE 0x04
317 
318 
322 #define SOUND_TYPE_LIVING 1
323 #define SOUND_TYPE_SPELL 2
324 #define SOUND_TYPE_ITEM 3
325 #define SOUND_TYPE_GROUND 4
326 #define SOUND_TYPE_HIT 5
327 #define SOUND_TYPE_HIT_BY 6
328 
335 #define FACE_IS_ANIM 1<<15
336 #define ANIM_RANDOM 1<<13
337 #define ANIM_SYNC 2<<13
338 
339 #define ANIM_FLAGS_MASK 0x6000
345 #define ANIM_MASK 0x1fff
346 
362 #define EMI_NOREDRAW 0x01
363 
366 #define EMI_SMOOTH 0x02
367 
372 #define EMI_HASMOREBITS 0x80
373 
375 /*
376  * Note!
377  * When adding message types, don't forget to keep the client up to date too!
378  */
379 
384 #define MSG_TYPE_BOOK 1
385 #define MSG_TYPE_CARD 2
386 #define MSG_TYPE_PAPER 3
387 #define MSG_TYPE_SIGN 4
388 #define MSG_TYPE_MONUMENT 5
389 #define MSG_TYPE_DIALOG 6
390 #define MSG_TYPE_MOTD 7
391 #define MSG_TYPE_ADMIN 8
392 #define MSG_TYPE_SHOP 9
393 #define MSG_TYPE_COMMAND 10
394 #define MSG_TYPE_ATTRIBUTE 11
396 #define MSG_TYPE_SKILL 12
397 #define MSG_TYPE_APPLY 13
398 #define MSG_TYPE_ATTACK 14
399 #define MSG_TYPE_COMMUNICATION 15
400 #define MSG_TYPE_SPELL 16
401 #define MSG_TYPE_ITEM 17
402 #define MSG_TYPE_MISC 18
404 #define MSG_TYPE_VICTIM 19
406 #define MSG_TYPE_CLIENT 20
407 #define MSG_TYPE_LAST 21
408 
409 #define MSG_SUBTYPE_NONE 0
410 
411 /* book messages subtypes */
412 #define MSG_TYPE_BOOK_CLASP_1 1
413 #define MSG_TYPE_BOOK_CLASP_2 2
414 #define MSG_TYPE_BOOK_ELEGANT_1 3
415 #define MSG_TYPE_BOOK_ELEGANT_2 4
416 #define MSG_TYPE_BOOK_QUARTO_1 5
417 #define MSG_TYPE_BOOK_QUARTO_2 6
418 #define MSG_TYPE_BOOK_SPELL_EVOKER 7
419 #define MSG_TYPE_BOOK_SPELL_PRAYER 8
420 #define MSG_TYPE_BOOK_SPELL_PYRO 9
421 #define MSG_TYPE_BOOK_SPELL_SORCERER 10
422 #define MSG_TYPE_BOOK_SPELL_SUMMONER 11
423 
424 /* card messages subtypes*/
425 #define MSG_TYPE_CARD_SIMPLE_1 1
426 #define MSG_TYPE_CARD_SIMPLE_2 2
427 #define MSG_TYPE_CARD_SIMPLE_3 3
428 #define MSG_TYPE_CARD_ELEGANT_1 4
429 #define MSG_TYPE_CARD_ELEGANT_2 5
430 #define MSG_TYPE_CARD_ELEGANT_3 6
431 #define MSG_TYPE_CARD_STRANGE_1 7
432 #define MSG_TYPE_CARD_STRANGE_2 8
433 #define MSG_TYPE_CARD_STRANGE_3 9
434 #define MSG_TYPE_CARD_MONEY_1 10
435 #define MSG_TYPE_CARD_MONEY_2 11
436 #define MSG_TYPE_CARD_MONEY_3 12
437 
438 /* Paper messages subtypes */
439 #define MSG_TYPE_PAPER_NOTE_1 1
440 #define MSG_TYPE_PAPER_NOTE_2 2
441 #define MSG_TYPE_PAPER_NOTE_3 3
442 #define MSG_TYPE_PAPER_LETTER_OLD_1 4
443 #define MSG_TYPE_PAPER_LETTER_OLD_2 5
444 #define MSG_TYPE_PAPER_LETTER_NEW_1 6
445 #define MSG_TYPE_PAPER_LETTER_NEW_2 7
446 #define MSG_TYPE_PAPER_ENVELOPE_1 8
447 #define MSG_TYPE_PAPER_ENVELOPE_2 9
448 #define MSG_TYPE_PAPER_SCROLL_OLD_1 10
449 #define MSG_TYPE_PAPER_SCROLL_OLD_2 11
450 #define MSG_TYPE_PAPER_SCROLL_NEW_1 12
451 #define MSG_TYPE_PAPER_SCROLL_NEW_2 13
452 #define MSG_TYPE_PAPER_SCROLL_MAGIC 14
453 
454 /* road signs messages subtypes */ /* Including magic mouths */
455 #define MSG_TYPE_SIGN_BASIC 1
456 #define MSG_TYPE_SIGN_DIR_LEFT 2
457 #define MSG_TYPE_SIGN_DIR_RIGHT 3
458 #define MSG_TYPE_SIGN_DIR_BOTH 4
459 #define MSG_TYPE_SIGN_MAGIC_MOUTH 5
460 
461 /* stones and monument messages */
462 #define MSG_TYPE_MONUMENT_STONE_1 1
463 #define MSG_TYPE_MONUMENT_STONE_2 2
464 #define MSG_TYPE_MONUMENT_STONE_3 3
465 #define MSG_TYPE_MONUMENT_STATUE_1 4
466 #define MSG_TYPE_MONUMENT_STATUE_2 5
467 #define MSG_TYPE_MONUMENT_STATUE_3 6
468 #define MSG_TYPE_MONUMENT_GRAVESTONE_1 7
469 #define MSG_TYPE_MONUMENT_GRAVESTONE_2 8
470 #define MSG_TYPE_MONUMENT_GRAVESTONE_3 9
471 #define MSG_TYPE_MONUMENT_WALL_1 10
472 #define MSG_TYPE_MONUMENT_WALL_2 11
473 #define MSG_TYPE_MONUMENT_WALL_3 12
474 
475 /* dialog message */
476 #define MSG_TYPE_DIALOG_NPC 1
477 #define MSG_TYPE_DIALOG_ALTAR 2
478 #define MSG_TYPE_DIALOG_MAGIC_EAR 3
480 /* MOTD doesn't have any subtypes */
481 
482 /* admin/global messages */
483 #define MSG_TYPE_ADMIN_RULES 1
484 #define MSG_TYPE_ADMIN_NEWS 2
485 #define MSG_TYPE_ADMIN_PLAYER 3
486 #define MSG_TYPE_ADMIN_DM 4
487 #define MSG_TYPE_ADMIN_HISCORE 5
488 #define MSG_TYPE_ADMIN_LOADSAVE 6
489 #define MSG_TYPE_ADMIN_LOGIN 7
490 #define MSG_TYPE_ADMIN_VERSION 8
491 #define MSG_TYPE_ADMIN_ERROR 9
492 /*
493  * I'm not actually expecting anything to make much use of the MSG_TYPE_SHOP
494  * values However, to use the media tags, need to use draw_ext_info, and need
495  * to have a type/subtype, so figured might as well put in real values here.
496  */
497 #define MSG_TYPE_SHOP_LISTING 1
499 #define MSG_TYPE_SHOP_PAYMENT 2
501 #define MSG_TYPE_SHOP_SELL 3
502 #define MSG_TYPE_SHOP_MISC 4
503 /*
504  * Basically, 1 subtype/command. Like shops, not expecting much to be done,
505  * but by having different subtypes, it makes it easier for client to store
506  * way information (eg, who output)
507  */
508 #define MSG_TYPE_COMMAND_WHO 1
509 #define MSG_TYPE_COMMAND_MAPS 2
510 #define MSG_TYPE_COMMAND_BODY 3
511 #define MSG_TYPE_COMMAND_MALLOC 4
512 #define MSG_TYPE_COMMAND_WEATHER 5
513 #define MSG_TYPE_COMMAND_STATISTICS 6
514 #define MSG_TYPE_COMMAND_CONFIG 7
515 #define MSG_TYPE_COMMAND_INFO 8
516 #define MSG_TYPE_COMMAND_QUESTS 9
517 #define MSG_TYPE_COMMAND_DEBUG 10
518 #define MSG_TYPE_COMMAND_ERROR 11
519 #define MSG_TYPE_COMMAND_SUCCESS 12
520 #define MSG_TYPE_COMMAND_FAILURE 13
521 #define MSG_TYPE_COMMAND_EXAMINE 14
522 #define MSG_TYPE_COMMAND_INVENTORY 15
523 #define MSG_TYPE_COMMAND_HELP 16
524 #define MSG_TYPE_COMMAND_DM 17
525 #define MSG_TYPE_COMMAND_NEWPLAYER 18
530 /* This is somewhat verbose. If the client ends up being able to
531  * choose various attributes based on message type, I think it is important
532  * for the client to know if this is a benefit or detriment to the player.
533  * In the case of losing a bonus, this typically indicates a spell has
534  * ended, which is probably more important (and should be displayed more
535  * prominently) than when you cast the spell
536  */
537 
538 #define MSG_TYPE_ATTRIBUTE_ATTACKTYPE_GAIN 1
539 #define MSG_TYPE_ATTRIBUTE_ATTACKTYPE_LOSS 2
544 #define MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN 3
545 #define MSG_TYPE_ATTRIBUTE_PROTECTION_LOSS 4
551 #define MSG_TYPE_ATTRIBUTE_MOVE 5
553 #define MSG_TYPE_ATTRIBUTE_RACE 6
554 #define MSG_TYPE_ATTRIBUTE_BAD_EFFECT_START 7
556 #define MSG_TYPE_ATTRIBUTE_BAD_EFFECT_END 8
557 #define MSG_TYPE_ATTRIBUTE_STAT_GAIN 9
558 #define MSG_TYPE_ATTRIBUTE_STAT_LOSS 10
559 #define MSG_TYPE_ATTRIBUTE_LEVEL_GAIN 11
560 #define MSG_TYPE_ATTRIBUTE_LEVEL_LOSS 12
561 #define MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START 13
563 #define MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END 14
564 #define MSG_TYPE_ATTRIBUTE_GOD 15
566 /* I think one type/skill is overkill, so instead, use broader categories
567  * for these messages.
568  * The difference in ERROR vs FAILURE is basically this: ERROR indicates
569  * something wasn't right to even attempt to use the skill (don't have
570  * needed object, or haven't marked objects, etc).
571  * FAILURE indicates that player attempted to use the skill, but it
572  * didn't work.
573  * PRAY is listed out because praying over altars can generate some
574  * messages not really related to the skill itself.
575  */
576 #define MSG_TYPE_SKILL_MISSING 1
577 #define MSG_TYPE_SKILL_ERROR 2
578 #define MSG_TYPE_SKILL_SUCCESS 3
579 #define MSG_TYPE_SKILL_FAILURE 4
580 #define MSG_TYPE_SKILL_PRAY 5
581 #define MSG_TYPE_SKILL_LIST 6
583 /* Messages related to applying objects. Note that applying many objects may
584  * generate MSG_TYPE_ATTRIBUTE messages - the APPLY here more directly related
585  * to the direct messages related to applying them (you put on your armor, you
586  * apply scroll, etc). The ERROR is like that for SKILLS - something prevent
587  * even trying to apply the object. FAILURE indicates result wasn't
588  * successful.
589  */
590 #define MSG_TYPE_APPLY_ERROR 1
591 #define MSG_TYPE_APPLY_UNAPPLY 2
592 #define MSG_TYPE_APPLY_SUCCESS 3
593 #define MSG_TYPE_APPLY_FAILURE 4
594 #define MSG_TYPE_APPLY_CURSED 5
595 #define MSG_TYPE_APPLY_TRAP 6
596 #define MSG_TYPE_APPLY_BADBODY 7
597 #define MSG_TYPE_APPLY_PROHIBITION 8
598 #define MSG_TYPE_APPLY_BUILD 9
600 /* attack related messages */
601 #define MSG_TYPE_ATTACK_DID_HIT 1
602 #define MSG_TYPE_ATTACK_PET_HIT 2
603 #define MSG_TYPE_ATTACK_FUMBLE 3
604 #define MSG_TYPE_ATTACK_DID_KILL 4
605 #define MSG_TYPE_ATTACK_PET_DIED 5
606 #define MSG_TYPE_ATTACK_NOKEY 6
607 #define MSG_TYPE_ATTACK_NOATTACK 7
608 #define MSG_TYPE_ATTACK_PUSHED 8
609 #define MSG_TYPE_ATTACK_MISS 9
611 #define MSG_TYPE_COMMUNICATION_RANDOM 1
612 #define MSG_TYPE_COMMUNICATION_SAY 2
613 #define MSG_TYPE_COMMUNICATION_ME 3
614 #define MSG_TYPE_COMMUNICATION_TELL 4
615 #define MSG_TYPE_COMMUNICATION_EMOTE 5
616 #define MSG_TYPE_COMMUNICATION_PARTY 6
617 #define MSG_TYPE_COMMUNICATION_SHOUT 7
618 #define MSG_TYPE_COMMUNICATION_CHAT 8
620 #define MSG_TYPE_SPELL_HEAL 1
621 #define MSG_TYPE_SPELL_PET 2
622 #define MSG_TYPE_SPELL_FAILURE 3
623 #define MSG_TYPE_SPELL_END 4
624 #define MSG_TYPE_SPELL_SUCCESS 5
625 #define MSG_TYPE_SPELL_ERROR 6
626 #define MSG_TYPE_SPELL_PERCEIVE_SELF 7
627 #define MSG_TYPE_SPELL_TARGET 8
628 #define MSG_TYPE_SPELL_INFO 9
631 #define MSG_TYPE_ITEM_REMOVE 1
632 #define MSG_TYPE_ITEM_ADD 2
633 #define MSG_TYPE_ITEM_CHANGE 3
634 #define MSG_TYPE_ITEM_INFO 4
635 /*
636  * MSG_TYPE_MISC, by its very nature, doesn't really have subtypes. It is
637  * used for messages that really don't belong anyplace else
638  */
639 #define MSG_TYPE_VICTIM_SWAMP 1
640 #define MSG_TYPE_VICTIM_WAS_HIT 2
641 #define MSG_TYPE_VICTIM_STEAL 3
643 #define MSG_TYPE_VICTIM_SPELL 4
645 #define MSG_TYPE_VICTIM_DIED 5
646 #define MSG_TYPE_VICTIM_WAS_PUSHED 6
649 #define MSG_TYPE_CLIENT_CONFIG 1
650 #define MSG_TYPE_CLIENT_SERVER 2
651 #define MSG_TYPE_CLIENT_COMMAND 3
652 #define MSG_TYPE_CLIENT_QUERY 4
653 #define MSG_TYPE_CLIENT_DEBUG 5
654 #define MSG_TYPE_CLIENT_NOTICE 6
655 #define MSG_TYPE_CLIENT_METASERVER 7
656 #define MSG_TYPE_CLIENT_SCRIPT 8
657 #define MSG_TYPE_CLIENT_ERROR 9
659 
660 
663 #define INFO_MAP_ARCH_NAME 1
664 #define INFO_MAP_NAME 2
665 #define INFO_MAP_DESCRIPTION 3
670 typedef struct SockList {
671 #ifdef CLIENT_TYPES_H /* Used by the client */
672  int len;
673  unsigned char *buf;
674 #else /* Used by the server */
675  size_t len;
676  unsigned char buf[MAXSOCKBUF]; /* 2(size)+65535(content)+1(ending NULL) */
677 #endif
678 } SockList;
679 
683 typedef struct CS_Stats {
684  int ibytes;
685  int obytes;
686  short max_conn;
687  time_t time_start; //< Start time of sampling interval
688 
689  // These variables partly duplicate the process_*_utime statistics in
690  // time.cpp, but are needed because we need data from the last sampling
691  // interval and not over all time.
692  unsigned long ticks; //< Number of ticks processed
693  unsigned long ticks_overtime; //< Number of ticks that were over time
694  unsigned long max_ticktime; //< Longest tick (in ms)
695  unsigned long total_ticktime; //< Total tick time (in ms)
696 } CS_Stats;
697 
699 
700 #endif /* NEWCLIENT_H */
CS_Stats::ibytes
int ibytes
Definition: newclient.h:684
CS_Stats::total_ticktime
unsigned long total_ticktime
Definition: newclient.h:695
CS_Stats
struct CS_Stats CS_Stats
MAXSOCKBUF
#define MAXSOCKBUF
Definition: newclient.h:25
CS_Stats::ticks
unsigned long ticks
Definition: newclient.h:692
a_active
@ a_active
Definition: newclient.h:270
buf
StringBuffer * buf
Definition: readable.cpp:1565
CS_Stats::time_start
time_t time_start
Definition: newclient.h:687
a_readied
@ a_readied
Definition: newclient.h:270
a_applied
@ a_applied
Definition: newclient.h:270
SockList
struct SockList SockList
CS_Stats::obytes
int obytes
Definition: newclient.h:685
SockList::len
size_t len
Definition: newclient.h:675
cst_tot
CS_Stats cst_tot
CS_Stats::max_ticktime
unsigned long max_ticktime
Definition: newclient.h:694
a_wielded
@ a_wielded
Definition: newclient.h:270
a_none
@ a_none
Definition: newclient.h:270
CS_Stats::ticks_overtime
unsigned long ticks_overtime
Definition: newclient.h:693
cst_lst
CS_Stats cst_lst
Definition: newclient.h:698
a_worn
@ a_worn
Definition: newclient.h:270
CS_Stats
Definition: newclient.h:683
CS_Stats::max_conn
short max_conn
Definition: newclient.h:686