Danbias/Code/Game/GameLogic/LevelParser.cpp

90 lines
1.5 KiB
C++
Raw Normal View History

#include "LevelParser.h"
2014-01-27 10:14:02 +01:00
#include "Loader.h"
2014-01-24 10:01:58 +01:00
using namespace GameLogic;
using namespace ::LevelFileLoader;
2014-01-24 10:01:58 +01:00
LevelParser::LevelParser()
{
}
LevelParser::~LevelParser()
{
}
//
std::vector<ObjectTypeHeader> LevelParser::Parse(std::string filename)
{
//Read entire level file.
2014-01-27 10:14:02 +01:00
Loader loader;
unsigned char* buffer = (unsigned char*)loader.LoadFile(filename.c_str());
2014-01-24 10:01:58 +01:00
std::vector<ObjectTypeHeader> objects;
unsigned int counter = 0;
unsigned int stringSize = 0;
while(counter < stringSize)
{
//Get typeID
int typeID = 0;
2014-01-27 10:14:02 +01:00
//Unpack ID
2014-01-24 10:01:58 +01:00
switch(typeID)
{
case TypeID_LevelHeader:
//Call function
counter += LevelHeaderSize;
break;
case TypeID_Object:
//Call function
counter += ObjectHeaderSize;
break;
default:
//Couldn't find typeID. FAIL!!!!!!
break;
}
}
return objects;
}
//
ObjectTypeHeader LevelParser::ParseHeader(std::string filename)
{
//Read entire level file.
2014-01-27 10:14:02 +01:00
Loader loader;
unsigned char* buffer = (unsigned char*)loader.LoadFile(filename.c_str());
2014-01-24 10:01:58 +01:00
//Find the header in the returned string.
unsigned int counter = 0;
unsigned int stringSize = 0;
ObjectTypeHeader header;
header.typeID = ObjectType_Level;
while(counter < stringSize)
{
int typeID = 0;
switch(typeID)
{
case TypeID_LevelHeader:
//Call function
2014-01-27 10:14:02 +01:00
counter += LevelHeaderSize;
2014-01-24 10:01:58 +01:00
break;
case TypeID_Object:
//Call function
counter += ObjectHeaderSize;
break;
default:
//Couldn't find typeID. FAIL!!!!!!
break;
}
}
return header;
}