clan.h
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:6k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * This program is free software; you can redistribute it and/or
  3.  * modify it under the terms of the GNU General Public License
  4.  * as published by the Free Software Foundation; either version 2
  5.  * of the License, or (at your option) any later version.
  6.  *
  7.  * This program is distributed in the hope that it will be useful,
  8.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.  * GNU General Public License for more details.
  11.  *
  12.  * You should have received a copy of the GNU General Public License
  13.  * along with this program; if not, write to the Free Software
  14.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  15.  */
  16. #ifndef INCLUDED_CLAN_TYPES
  17. #define INCLUDED_CLAN_TYPES
  18. #ifdef JUST_NEED_TYPES
  19. # include "common/bn_type.h"
  20. #else
  21. # define JUST_NEED_TYPES
  22. # include "common/bn_type.h"
  23. # undef JUST_NEED_TYPES
  24. #endif
  25. #ifdef CLAN_INTERNAL_ACCESS
  26. #ifdef JUST_NEED_TYPES
  27. # include <stdio.h>
  28. # include "common/list.h"
  29. #else
  30. # define JUST_NEED_TYPES
  31. # include <stdio.h>
  32. # include "common/list.h"
  33. # undef JUST_NEED_TYPES
  34. #endif
  35. #endif
  36. typedef struct clan
  37. #ifdef CLAN_INTERNAL_ACCESS
  38. {
  39.     unsigned int clanid;
  40.     int clantag;
  41.     char const *clanname;
  42.     time_t creation_time;
  43.     char const *clan_motd;
  44.     t_list *members;
  45.     int created;
  46.     /* --by Soar
  47.        on create, set it to -count of invited members,
  48.        each accept packet will inc it by 1,
  49.        when it is increased to 0, means that all invited members have accepted,
  50.        then clan will be created and set this value to 1
  51.      */
  52.     char modified;
  53.     char channel_type; /* 0--public 1--private */
  54. }
  55. #endif
  56. t_clan;
  57. typedef struct _clanmember
  58. #ifdef CLAN_INTERNAL_ACCESS
  59. {
  60.     void *memberacc;
  61.     void *memberconn;
  62.     char status;
  63.     time_t join_time;
  64.     t_clan * clan;
  65. #ifdef WITH_SQL
  66.     char modified;
  67. #endif
  68. }
  69. #endif
  70. t_clanmember;
  71. #define CLAN_CHIEFTAIN 0x04
  72. #define CLAN_SHAMAN    0x03
  73. #define CLAN_GRUNT     0x02
  74. #define CLAN_PEON      0x01
  75. #define CLAN_NEW       0x00
  76. #endif
  77. #ifndef JUST_NEED_TYPES
  78. #ifndef INCLUDED_CLAN_PROTOS
  79. #define INCLUDED_CLAN_PROTOS
  80. #define JUST_NEED_TYPES
  81. #include "common/list.h"
  82. #undef JUST_NEED_TYPES
  83. extern t_list *clanlist(void);
  84. extern int clanlist_load(void);
  85. extern int clanlist_save(void);
  86. extern int clanlist_unload(void);
  87. extern int clanlist_remove_clan(t_clan * clan);
  88. extern int clanlist_add_clan(t_clan * clan);
  89. extern t_clan *clanlist_find_clan_by_clanid(int cid);
  90. extern t_clan *clanlist_find_clan_by_clantag(int clantag);
  91. extern t_account *clanmember_get_account(t_clanmember * member);
  92. extern int clanmember_set_account(t_clanmember * member, t_account * memberacc);
  93. extern t_connection *clanmember_get_connection(t_clanmember * member);
  94. extern int clanmember_set_connection(t_clanmember * member, t_connection * memberconn);
  95. extern char clanmember_get_status(t_clanmember * member);
  96. extern int clanmember_set_status(t_clanmember * member, char status);
  97. extern time_t clanmember_get_join_time(t_clanmember * member);
  98. extern t_clan * clanmember_get_clan(t_clanmember * member);
  99. extern int clanmember_set_online(t_connection * c);
  100. extern int clanmember_set_offline(t_connection * c);
  101. extern const char *clanmember_get_online_status(t_clanmember * member, char *status);
  102. extern int clanmember_on_change_status(t_clanmember * member);
  103. extern const char *clanmember_get_online_status_by_connection(t_connection * conn, char *status);
  104. extern int clanmember_on_change_status_by_connection(t_connection * conn);
  105. extern t_clan *clan_create(t_account * chieftain_acc, t_connection * chieftain_conn, int clantag, const char *clanname, const char *motd);
  106. extern int clan_destroy(t_clan * clan);
  107. extern int clan_unload_members(t_clan * clan);
  108. extern int clan_remove_all_members(t_clan * clan);
  109. extern int clan_save(t_clan * clan);
  110. extern int clan_remove(int clantag);
  111. extern int clan_get_created(t_clan * clan);
  112. extern int clan_set_created(t_clan * clan, int created);
  113. extern char clan_get_modified(t_clan * clan);
  114. extern int clan_set_modified(t_clan * clan, char modified);
  115. extern char clan_get_channel_type(t_clan * clan);
  116. extern int clan_set_channel_type(t_clan * clan, char channel_type);
  117. extern t_list *clan_get_members(t_clan * clan);
  118. extern char const *clan_get_name(t_clan * clan);
  119. extern int clan_get_clantag(t_clan * clan);
  120. extern char const *clan_get_motd(t_clan * clan);
  121. extern int clan_set_motd(t_clan * clan, const char *motd);
  122. extern unsigned int clan_get_clanid(t_clan * clan);
  123. extern int clan_set_creation_time(t_clan * clan, time_t c_time);
  124. extern time_t clan_get_creation_time(t_clan * clan);
  125. extern int clan_get_member_count(t_clan * clan);
  126. extern t_clanmember *clan_add_member(t_clan * clan, t_account * memberacc, t_connection * memberconn, char status);
  127. extern int clan_remove_member(t_clan * clan, t_clanmember * member);
  128. extern t_clanmember *clan_find_member(t_clan * clan, t_account * memberacc);
  129. extern t_clanmember *clan_find_member_by_name(t_clan * clan, char const *membername);
  130. extern t_clanmember *clan_find_member_by_uid(t_clan * clan, unsigned int memberuid);
  131. extern int clan_send_packet_to_online_members(t_clan * clan, t_packet * packet);
  132. extern int clan_get_possible_member(t_connection * c, t_packet const *const packet);
  133. extern int clan_send_status_window(t_connection * c);
  134. extern int clan_send_status_window_on_create(t_clan * clan);
  135. extern int clan_close_status_window(t_connection * c);
  136. extern int clan_close_status_window_on_disband(t_clan * clan);
  137. extern int clan_send_member_status(t_connection * c, t_packet const *const packet);
  138. extern int clan_change_member_status(t_connection * c, t_packet const *const packet);
  139. extern int clan_send_motd_reply(t_connection * c, t_packet const *const packet);
  140. extern int clan_save_motd_chg(t_connection * c, t_packet const *const packet);
  141. extern int str_to_clantag(const char *str);
  142. #endif
  143. #endif