From 5501b7a5d797e5129094b87083d0d1743842185c Mon Sep 17 00:00:00 2001 From: MusicalProgrammer Date: Tue, 5 Nov 2019 22:06:35 -0500 Subject: [PATCH] Fixed random level loading bug. --- DataModelInstance.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/DataModelInstance.cpp b/DataModelInstance.cpp index d52d3dc..5d7681e 100644 --- a/DataModelInstance.cpp +++ b/DataModelInstance.cpp @@ -65,7 +65,7 @@ rapidxml::xml_node<>* DataModelInstance::getNode(xml_node<> * node,const char* n _errMsg = "Expected <"; _errMsg += name; _errMsg+="> tag."; - _successfulLoad=true; + _successfulLoad=false; return 0; } return tempNode; @@ -78,7 +78,7 @@ float DataModelInstance::getFloatValue(xml_node<> * node,const char* name) _errMsg = "Expected <"; _errMsg += name; _errMsg+="> tag."; - _successfulLoad=true; + _successfulLoad=false; return 0; } float newFloat; @@ -424,19 +424,26 @@ bool DataModelInstance::readXMLFileStream(std::ifstream* file) file->seekg(0,file->end); int length = file->tellg(); if (length<0) + { MessageBoxStr("File is empty"); + file->close(); + return false; + } file->seekg(0,file->beg); char * buffer = new char[length+1]; buffer[length]=0; file->read(buffer,length); + file->close(); + if (!file) { stringstream msg; msg << "Something went wrong." << endl << strerror(errno); MessageBoxStr(msg.str()); + return false; } - file->close(); + _successfulLoad = true; xml_document<> doc; doc.parse<0>(buffer); xml_node<> *mainNode = doc.first_node();