Category:DBC

From wowdev
Revision as of 16:46, 3 October 2012 by Schlumpf (talk | contribs) (→‎Header: Show full file structure. Also, be more clear on stuff.)
Jump to navigation Jump to search

The DBC (DataBaseClient) files are clientside databases containing data about Items, NPC's, Enviroment, World etc.

Some of the following pages have been retrieved from "http://www.sourcepeek.com/wiki/" and "http://paste2.org/p/1366912"

Structure

struct dbc_header
{
  uint32_t magic; // always 'WDBC'
  uint32_t record_count; // records per file
  uint32_t field_count; // fields per record
  uint32_t record_size; // sum (sizeof (field_type_i)) | 0 <= i < field_count. field_type_i is NOT defined in the files.
  uint32_t string_block_size;
};
template<typename record_type>
struct dbc_file
{
  dbc_header header;
  // static_assert (header.record_size == sizeof (record_type));
  record_type records[header.record_count];
  char string_block[header.string_block_size];
};

String Block

Unlike the cache files, string data is stored in a block after the records. String data in records contain an offset to the string, starting from the string block. For example: If the address of the string block was 500, and the string value was 50, the address of the string would be at 550. The string block starts with a null character, and all strings are null-terminated.

Notes

  • When encountering a string field in a dbc file, it usually consists of an english name field as well as 7 additional fields for different localizations. Following the 8 String* fields is a bitmask field.
  • 2.1.1 changes the additional fields to 15.
  • Always add the fucking revision infomation about the datas!

Pages in category "DBC"

The following 200 pages are in this category, out of 708 total.

(previous page) (next page)

D

(previous page) (next page)