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

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_ANONGAME_TYPES
  17. #define INCLUDED_ANONGAME_TYPES
  18. #ifdef JUST_NEED_TYPES
  19. # include "account.h"
  20. # include "connection.h"
  21. # include "compat/uint.h"
  22. #else
  23. # define JUST_NEED_TYPES
  24. # include "account.h"
  25. # include "connection.h"
  26. # include "compat/uint.h"
  27. # undef JUST_NEED_TYPES
  28. #endif
  29. typedef struct
  30. {
  31.     int currentplayers;
  32.     int totalplayers;
  33.     struct connection * player[ANONGAME_MAX_GAMECOUNT];
  34.     t_account * account[ANONGAME_MAX_GAMECOUNT];
  35.     int result[ANONGAME_MAX_GAMECOUNT];
  36. } t_anongameinfo;
  37. typedef struct
  38. {
  39.     t_anongameinfo * info;
  40.     int count;
  41.     t_uint32 id;
  42.     t_uint32 tid;
  43.     struct connection * tc[ANONGAME_MAX_GAMECOUNT/2];
  44.     t_uint32 race;
  45.     t_uint32 handle;
  46.     unsigned int addr;
  47.     char loaded;
  48.     char joined;
  49.     t_uint8 playernum;
  50.     t_uint32 map_prefs;
  51.     t_uint8 type;
  52.     t_uint8 gametype;
  53.     int queue;
  54. } t_anongame;
  55. typedef struct
  56. {
  57. struct connection * c;
  58. t_uint32 map_prefs;
  59. char const * versiontag;
  60. } t_matchdata;
  61. #endif
  62. /*****/
  63. #ifndef JUST_NEED_TYPES
  64. #ifndef INCLUDED_ANONGAME_PROTOS
  65. #define INCLUDED_ANONGAME_PROTOS
  66. #define JUST_NEED_TYPES
  67. #include "common/packet.h"
  68. #include "connection.h"
  69. #undef JUST_NEED_TYPES
  70. extern int anongame_matchlists_create(void);
  71. extern int anongame_matchlists_destroy(void);
  72. extern int handle_anongame_search(t_connection * c, t_packet const * packet);
  73. extern int anongame_unqueue(t_connection * c, int queue);
  74. extern char anongame_arranged(int queue);
  75. extern int anongame_stats(t_connection * c);
  76. extern t_anongameinfo * anongameinfo_create(int totalplayers);
  77. extern void anongameinfo_destroy(t_anongameinfo * i);
  78. extern t_anongameinfo * anongame_get_info(t_anongame * a);
  79. extern int              anongame_get_currentplayers(t_anongame *a);
  80. extern int              anongame_get_totalplayers(t_anongame *a);
  81. extern t_connection *   anongame_get_player(t_anongame * a, int plnum);
  82. extern int anongame_get_count(t_anongame *a);
  83. extern t_uint32         anongame_get_id(t_anongame * a);
  84. extern t_connection * anongame_get_tc(t_anongame *a, int tpnumber);
  85. extern t_uint32         anongame_get_race(t_anongame * a);
  86. extern t_uint32         anongame_get_handle(t_anongame * a);
  87. extern unsigned int     anongame_get_addr(t_anongame * a);
  88. extern char             anongame_get_loaded(t_anongame * a);
  89. extern char             anongame_get_joined(t_anongame * a);
  90. extern t_uint8          anongame_get_playernum(t_anongame * a);
  91. extern t_uint8          anongame_get_queue(t_anongame *a);
  92. extern void anongame_set_result(t_anongame * a, int result);
  93. extern void anongame_set_handle(t_anongame *a, t_uint32 h);
  94. extern void anongame_set_addr(t_anongame *a, unsigned int addr);
  95. extern void anongame_set_loaded(t_anongame * a, char loaded);
  96. extern void anongame_set_joined(t_anongame * a, char joined);
  97. extern int handle_w3route_packet(t_connection * c, t_packet const * const packet);
  98. extern int handle_anongame_join(t_connection * c);
  99. #endif
  100. #endif