1 /* 2 * Copyright (C) 2000,2001 Onlyer (onlyer@263.net) 3 * Copyright (C) 2001 faster (lqx@cic.tsinghua.edu.cn) 4 * Copyright (C) 2001 sousou (liupeng.cs@263.net) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 9 * of the License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 */ 20 #ifndef INCLUDED_D2CS_D2GS_CHARACTER_H 21 #define INCLUDED_D2CS_D2GS_CHARACTER_H 22 23 #ifdef D2CS 24 # include "common/bn_type.h" 25 #endif 26 27 #ifdef D2GS 28 # include "bn_types.h" 29 #pragma pack(push, character_h, 1) 30 #endif 31 32 #define D2CHARINFO_MAGICWORD 0x12345678 33 #define D2CHARINFO_VERSION 0x00010000 34 #define D2CHARINFO_PORTRAIT_PADSIZE 30 35 36 typedef struct 37 { 38 bn_int magicword; /* static for check */ 39 bn_int version; /* charinfo file version */ 40 bn_int create_time; /* character creation time */ 41 bn_int last_time; /* character last access time */ 42 bn_int checksum; 43 bn_int total_play_time; /* total in game play time */ 44 bn_int reserved[6]; 45 unsigned char charname[MAX_CHARNAME_LEN]; 46 unsigned char account[MAX_ACCTNAME_LEN]; 47 unsigned char realmname[MAX_REALMNAME_LEN]; 48 } t_d2charinfo_header; 49 50 typedef struct 51 { 52 bn_int experience; 53 bn_int charstatus; 54 bn_int charlevel; 55 bn_int charclass; 56 } t_d2charinfo_summary; 57 58 typedef struct 59 { 60 bn_short header; /* 0x84 0x80 */ 61 bn_byte gfx[11]; 62 bn_byte class; 63 bn_byte color[11]; 64 bn_byte level; 65 bn_byte status; 66 67 68 69 bn_byte u1[3]; 70 bn_byte ladder; /* need not be 0xff and 0 to make character displayed as ladder character */ 71 /* client only check this bit */ 72 bn_byte u2[2]; 73 bn_byte end; /* 0x00 */ 74 } t_d2charinfo_portrait; 75 76 typedef struct 77 { 78 t_d2charinfo_header header; 79 t_d2charinfo_portrait portrait; 80 bn_byte pad[D2CHARINFO_PORTRAIT_PADSIZE]; 81 t_d2charinfo_summary summary; 82 } t_d2charinfo_file; 83 84 #ifdef D2GS 85 #pragma pack(pop, character_h) 86 #endif 87 88 #endif 89