/* * Copyright (C) 2005-2008 MaNGOS * * Copyright (C) 2008 Trinity * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef DBCSTRUCTURE_H #define DBCSTRUCTURE_H #include "DBCEnums.h" #include "Platform/Define.h" #include #include #include // Structures using to access raw DBC data and required packing to portability // GCC have alternative #pragma pack(N) syntax and old gcc version not support pack(push,N), also any gcc version not support it at some platform #if defined( __GNUC__ ) #pragma pack(1) #else #pragma pack(push,1) #endif struct AreaTableEntry { uint32 ID; // 0 uint32 mapid; // 1 uint32 zone; // 2 if 0 then it's zone, else it's zone id of this area uint32 exploreFlag; // 3, main index uint32 flags; // 4, unknown value but 312 for all cities // 5-9 unused int32 area_level; // 10 char* area_name[16]; // 11-26 // 27, string flags, unused uint32 team; // 28 }; struct AreaTriggerEntry { uint32 id; // 0 uint32 mapid; // 1 float x; // 2 float y; // 3 float z; // 4 float radius; // 5 float box_x; // 6 extent x edge float box_y; // 7 extent y edge float box_z; // 8 extent z edge float box_orientation; // 9 extent rotation by about z axis }; struct BankBagSlotPricesEntry { uint32 ID; uint32 price; }; struct BattlemasterListEntry { uint32 id; // 0 uint32 mapid[3]; // 1-3 mapid // 4-8 unused uint32 type; // 9 (3 - BG, 4 - arena) uint32 minlvl; // 10 uint32 maxlvl; // 11 uint32 maxplayersperteam; // 12 // 13-14 unused char* name[16]; // 15-30 // 31 string flag, unused // 32 unused }; struct CharTitlesEntry { uint32 ID; // 0, title ids, for example in Quest::GetCharTitleId() //uint32 unk1; // 1 flags? //char* name[16]; // 2-17, unused // 18 string flag, unused //char* name2[16]; // 19-34, unused // 35 string flag, unused uint32 bit_index; // 36 used in PLAYER_CHOSEN_TITLE and 1<