|
@@ -23,7 +23,12 @@ namespace LOTRO_DAT {
|
|
|
OpenDatFile(filename);
|
|
|
ReadSuperBlock();
|
|
|
MakeDirectories();
|
|
|
- MakeDictionary();
|
|
|
+ try {
|
|
|
+ MakeDictionary();
|
|
|
+ } catch (...) {
|
|
|
+ fprintf(stderr, "Unable to make dictionary!! Unable to init DatFile!!!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (dat_state_ == SUCCESS_DICTIONARY)
|
|
|
dat_state_ = READY;
|
|
|
else
|
|
@@ -114,8 +119,13 @@ namespace LOTRO_DAT {
|
|
|
void DatFile::MakeDictionary() {
|
|
|
if (dat_state_ != SUCCESS_DIRECTORIES)
|
|
|
throw DatException("Bad DatFile::MakeDictionary() - DatFile isn't in valid state!", INIT_EXCEPTION);
|
|
|
- root_directory_->MakeDictionary(dictionary_);
|
|
|
- dat_state_ = SUCCESS_DICTIONARY;
|
|
|
+ try {
|
|
|
+ root_directory_->MakeDictionary(dictionary_);
|
|
|
+ } catch (...) {
|
|
|
+ fprintf(stderr, "Bad DatFile::MakeDictionary() - File is corrupted?\n");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ dat_state_ = SUCCESS_DICTIONARY;
|
|
|
}
|
|
|
|
|
|
void DatFile::ReadData(BinaryData &data, long long size, long long offset, long long data_offset) {
|