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

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 2000,2001 Onlyer (onlyer@263.net)
  3.  *
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  */
  18. #ifndef INCLUDED_D2CHARFILE_H
  19. #define INCLUDED_D2CHARFILE_H
  20. /* only used in char convert */
  21. #define D2CHARSAVE_VERSION_OFFSET 0x04
  22. #define D2CHARSAVE_CHECKSUM_OFFSET 0x0C
  23. /* used in both save init and convert */
  24. #define D2CHARSAVE_STATUS_OFFSET 0x18 /* newbie.save offset or old version */
  25. #define D2CHARSAVE_STATUS_OFFSET_109 0x24 /* 1.09 or later version (1.10) */
  26. /* only used for save init to newbie.save file */
  27. #define D2CHARSAVE_CLASS_OFFSET 0x22
  28. #define D2CHARSAVE_CHARNAME_OFFSET 0x08
  29. /* unused */
  30. #define D2CHARSAVE_LEVEL_OFFSET 0x24
  31. #define D2CHAR_MAX_CLASS 0x06
  32. #define D2CHARINFO_PORTRAIT_PADBYTE 0xff
  33. #define D2CHARINFO_PORTRAIT_HEADER 0x8084
  34. #define D2CHARINFO_PORTRAIT_MASK 0x80
  35. #define D2CHARINFO_STATUS_FLAG_INIT 0x01
  36. #define D2CHARINFO_STATUS_FLAG_EXPANSION 0x20
  37. #define D2CHARINFO_STATUS_FLAG_LADDER 0x40
  38. #define D2CHARINFO_STATUS_FLAG_HARDCORE 0x04
  39. #define D2CHARINFO_STATUS_FLAG_DEAD 0x08
  40. #define D2CHARINFO_STATUS_FLAG_INIT_MASK (D2CHARINFO_STATUS_FLAG_INIT | 
  41. D2CHARINFO_STATUS_FLAG_EXPANSION| D2CHARINFO_STATUS_FLAG_LADDER |D2CHARINFO_STATUS_FLAG_HARDCORE)
  42. #include "bit.h"
  43. #define charstatus_set_init(status,n) BIT_SET_CLR_FLAG(status, D2CHARINFO_STATUS_FLAG_INIT, n)
  44. #define charstatus_set_expansion(status,n) BIT_SET_CLR_FLAG(status, D2CHARINFO_STATUS_FLAG_EXPANSION, n)
  45. #define charstatus_set_ladder(status,n) BIT_SET_CLR_FLAG(status, D2CHARINFO_STATUS_FLAG_LADDER, n)
  46. #define charstatus_set_hardcore(status,n) BIT_SET_CLR_FLAG(status, D2CHARINFO_STATUS_FLAG_HARDCORE, n)
  47. #define charstatus_set_dead(status,n) BIT_SET_CLR_FLAG(status, D2CHARINFO_STATUS_FLAG_DEAD, n)
  48. #define charstatus_get_init(status) BIT_TST_FLAG(status, D2CHARINFO_STATUS_FLAG_INIT)
  49. #define charstatus_get_expansion(status) BIT_TST_FLAG(status, D2CHARINFO_STATUS_FLAG_EXPANSION)
  50. #define charstatus_get_ladder(status) BIT_TST_FLAG(status, D2CHARINFO_STATUS_FLAG_LADDER)
  51. #define charstatus_get_hardcore(status) BIT_TST_FLAG(status, D2CHARINFO_STATUS_FLAG_HARDCORE)
  52. #define charstatus_get_dead(status) BIT_TST_FLAG(status, D2CHARINFO_STATUS_FLAG_DEAD)
  53. #define charstatus_get_difficulty(status) ((( status >> 0x08) & 0x0f )/4) /* number of act = 4 */
  54. #define charstatus_get_difficulty_expansion(status) ((( status >> 0x08) & 0x0f )/5) /* number of act = 5 */
  55. #ifndef JUST_NEED_TYPES
  56. #include "d2cs_d2gs_character.h"
  57. extern int d2char_create(char const * account, char const * charname, unsigned char class, 
  58. unsigned short status);
  59. extern int d2char_delete(char const * account, char const * charname);
  60. extern int d2char_get_summary(char const * account, char const * charname,t_d2charinfo_summary * charinfo);
  61. extern int d2char_get_portrait(char const * account, char const * filename, t_d2charinfo_portrait * portrait);
  62. extern int d2char_portrait_init(t_d2charinfo_portrait * portrait);
  63. extern int d2charinfo_load(char const * account, char const * charname, t_d2charinfo_file * data);
  64. extern int d2charinfo_check(t_d2charinfo_file * data);
  65. extern unsigned int d2charinfo_get_expansion(t_d2charinfo_summary const * charinfo);
  66. extern unsigned int d2charinfo_get_level(t_d2charinfo_summary const * charinfo);
  67. extern unsigned int d2charinfo_get_class(t_d2charinfo_summary const * charinfo);
  68. extern unsigned int d2charinfo_get_hardcore(t_d2charinfo_summary const * charinfo);
  69. extern unsigned int d2charinfo_get_ladder(t_d2charinfo_summary const * charinfo);
  70. extern unsigned int d2charinfo_get_dead(t_d2charinfo_summary const * charinfo);
  71. extern unsigned int d2charinfo_get_difficulty(t_d2charinfo_summary const * charinfo);
  72. extern int d2char_convert(char const * account, char const * charname);
  73. extern int d2char_find(char const * account, char const * charname);
  74. extern int d2char_get_savefile_name(char * filename,char const * charname);
  75. extern int d2char_get_infofile_name(char * filename,char const * account, char const * charname);
  76. extern int d2char_get_infodir_name(char * filename,char const * account);
  77. extern int d2char_check_acctname(char const * name);
  78. extern int d2char_check_charname(char const * name);
  79. extern int file_write(char const * filename, void * data, unsigned int size);
  80. extern int file_read(char const * filename, void * data, unsigned int * size);
  81. #endif
  82. #endif