Code Search for Developers
 
 
  

dbcfile.cpp from MaNGOS at Krugle


Show dbcfile.cpp syntax highlighted

#include "dbcfile.h"
#include "mpq_libmpq.h"

DBCFile::DBCFile(const std::string &filename):
	filename(filename),
	data(0)
{
	
}
void DBCFile::open()
{
	MPQFile f(filename.c_str());
	char header[4];
	unsigned int na,nb,es,ss;

	f.read(header,4); // Number of records
	assert(header[0]=='W' && header[1]=='D' && header[2]=='B' && header[3] == 'C');
	f.read(&na,4); // Number of records
	f.read(&nb,4); // Number of fields
	f.read(&es,4); // Size of a record
	f.read(&ss,4); // String size
	
	recordSize = es;
	recordCount = na;
	fieldCount = nb;
	stringSize = ss;
	assert(fieldCount*4 == recordSize);

	data = new unsigned char[recordSize*recordCount+stringSize];
	stringTable = data + recordSize*recordCount;
	f.read(data,recordSize*recordCount+stringSize);
	f.close();
}
DBCFile::~DBCFile()
{
	delete [] data;
}

DBCFile::Record DBCFile::getRecord(size_t id)
{
	assert(data);
	return Record(*this, data + id*recordSize);
}

DBCFile::Iterator DBCFile::begin()
{
	assert(data);
	return Iterator(*this, data);
}
DBCFile::Iterator DBCFile::end()
{
	assert(data);
	return Iterator(*this, stringTable);
}





See more files for this project here

MaNGOS

MaNGOS is an object-oriented Massively Multiplayer Online Role-Playing Game Server (MMORPGS). It\'s an educational project, to help developers get familar with large scale C++ and C# development projects.

Project homepage: http://sourceforge.net/projects/mangos
Programming language(s): C,C++,SQL
License: gpl2

  debug/
    zlib.lib
  libmpq/
    Makefile
    Makefile.am
    common.cpp
    common.h
    explode.cpp
    explode.h
    extract.cpp
    huffman.cpp
    huffman.h
    mpq.cpp
    mpq.h
    parser.cpp
    wave.cpp
    wave.h
    zconf.h
    zlib.h
  release/
    zlib.lib
  Makefile
  Makefile.am
  README.linux
  System.cpp
  VC71_AD.sln
  VC71_ad.vcproj
  VC80_AD.sln
  VC80_ad.vcproj
  ad
  ad.exe
  adt.cpp
  adt.h
  dbcfile.cpp
  dbcfile.h
  mpq_libmpq.cpp
  mpq_libmpq.h