[9861] Backporting some code chnages from 400 branch.

(based on 400's commit 0f37423)
(based on 400's commit 636cfef)
(based on 400's commit 0bbe3a7)
(based on 400's commit ce86b56)
(based on 400's commit b74c6a8)
This commit is contained in:
tomrus88 2010-05-10 23:27:05 +04:00 committed by VladimirMangos
parent a0d9ffcc5f
commit ff2cda6af1
18 changed files with 68 additions and 43 deletions

View file

@ -242,6 +242,7 @@ char* DBCFileLoader::AutoProduceStrings(const char* format, char* dataTable)
offset+=1;
break;
case FT_STRING:
{
// fill only not filled entries
char** slot = (char**)(&dataTable[offset]);
if(!*slot || !**slot)
@ -251,6 +252,13 @@ char* DBCFileLoader::AutoProduceStrings(const char* format, char* dataTable)
}
offset+=sizeof(char*);
break;
}
case FT_NA:
case FT_NA_BYTE:
case FT_SORT:
break;
default:
assert(false && "unknown format character");
}
}

View file

@ -42,7 +42,11 @@ class DBCStorage
return false;
fieldCount = dbc.GetCols();
// load raw non-string data
m_dataTable = (T*)dbc.AutoProduceData(fmt,nCount,(char**&)indexTable);
// load strings from dbc data
m_stringPoolList.push_back(dbc.AutoProduceStrings(fmt,(char*)m_dataTable));
// error in dbc file at loading if NULL
@ -60,6 +64,7 @@ class DBCStorage
if(!dbc.Load(fn, fmt))
return false;
// load strings from another locale dbc data
m_stringPoolList.push_back(dbc.AutoProduceStrings(fmt,(char*)m_dataTable));
return true;
@ -93,4 +98,5 @@ class DBCStorage
T* m_dataTable;
StringPoolList m_stringPoolList;
};
#endif