GL- la in memcpy för parsing i parseFunctions

This commit is contained in:
Sam Mario Svensson 2014-01-27 14:57:18 +01:00
parent 99fbef8a64
commit dd2b214122
4 changed files with 17 additions and 70 deletions

View File

@ -31,7 +31,8 @@ std::vector<ObjectTypeHeader> LevelParser::Parse(std::string filename)
{ {
//Get typeID //Get typeID
ObjectTypeHeader typeID; ObjectTypeHeader typeID;
typeID = parseObjectTypeHeader(buffer); typeID = ParseObjectTypeHeader(&buffer[counter]);
//counter += 4;
//Unpack ID //Unpack ID
switch((int)typeID.typeID) switch((int)typeID.typeID)
@ -43,7 +44,8 @@ std::vector<ObjectTypeHeader> LevelParser::Parse(std::string filename)
case TypeID_Object: case TypeID_Object:
//Call function //Call function
counter += ObjectHeaderSize; objects.push_back(ParseObjectHeader(&buffer[counter]));
counter += sizeof(ObjectHeader);
break; break;
default: default:
//Couldn't find typeID. FAIL!!!!!! //Couldn't find typeID. FAIL!!!!!!
@ -73,7 +75,7 @@ ObjectTypeHeader LevelParser::ParseHeader(std::string filename)
while(counter < stringSize) while(counter < stringSize)
{ {
ObjectTypeHeader typeID; ObjectTypeHeader typeID;
typeID = parseObjectTypeHeader(buffer); typeID = ParseObjectTypeHeader(buffer);
switch(typeID.typeID) switch(typeID.typeID)
{ {
case TypeID_LevelHeader: case TypeID_LevelHeader:

View File

@ -13,7 +13,8 @@ unsigned char* Loader::LoadFile(std::string fileName, int &size)
//convert from string to wstring //convert from string to wstring
std::wstring temp(fileName.begin(), fileName.end()); std::wstring temp(fileName.begin(), fileName.end());
size = temp.size();
//convert from wstring to wchar then loads the file //convert from wstring to wchar then loads the file
return (unsigned char*)OysterResource::LoadResource(temp.c_str(), Oyster::Resource::ResourceType::ResourceType_Byte_Raw, -1 , false); unsigned char* buffer = (unsigned char*)OysterResource::LoadResource(temp.c_str(), Oyster::Resource::ResourceType::ResourceType_Byte_Raw, -1 , false);
size = OysterResource::GetResourceSize(buffer);
return buffer;
} }

View File

@ -15,73 +15,17 @@ namespace GameLogic
{ {
namespace LevelFileLoader namespace LevelFileLoader
{ {
ObjectTypeHeader parseObjectTypeHeader(unsigned char* buffer) ObjectTypeHeader ParseObjectTypeHeader(unsigned char* buffer)
{ {
struct ObjectTypeHeader header; struct ObjectTypeHeader header;
int i = Unpacki(buffer); memcpy(&header, buffer, sizeof(ObjectTypeHeader));
header.typeID = (ObjectType)i;
return header; return header;
} }
ObjectHeader parseObjectHeader (unsigned char* buffer) ObjectHeader ParseObjectHeader (unsigned char* buffer)
{ {
struct ObjectHeader header; struct ObjectHeader header;
int x, y,z; memcpy(&header, buffer, sizeof(ObjectHeader));
string s;
int start = 0;
//ModelID
x = Unpacki(buffer);
header.ModelID = (ObjectType)x;
//TextureID
start += 4;
x = Unpacki(&buffer[start]);
header.TextureID = x;
//Position
start += 4;
x = Unpacki(&buffer[start]);
start += 4;
y = Unpacki(&buffer[start]);
start += 4;
z = Unpacki(&buffer[start]);
header.position[0] = x;
header.position[1] = y;
header.position[2] = z;
//Rotation
start += 4;
x = Unpacki(&buffer[start]);
start += 4;
y = Unpacki(&buffer[start]);
start += 4;
z = Unpacki(&buffer[start]);
header.rotation[0] = x;
header.rotation[1] = y;
header.rotation[2] = z;
//Scale
start += 4;
x = Unpacki(&buffer[start]);
start += 4;
y = Unpacki(&buffer[start]);
start += 4;
z = Unpacki(&buffer[start]);
header.scale[0] = x;
header.scale[1] = y;
header.scale[2] = z;
return header; return header;
} }

View File

@ -10,8 +10,8 @@ namespace GameLogic
{ {
namespace LevelFileLoader namespace LevelFileLoader
{ {
ObjectTypeHeader parseObjectTypeHeader(unsigned char* buffer); //send in a char buffer, this function will seperate it and then return the right struct with the values. ObjectTypeHeader ParseObjectTypeHeader(unsigned char* buffer); //send in a char buffer, this function will seperate it and then return the right struct with the values.
ObjectHeader parseObjectHeader (unsigned char* buffer); //send in a char buffer, this function will seperate it and then return the right struct with the values. ObjectHeader ParseObjectHeader (unsigned char* buffer); //send in a char buffer, this function will seperate it and then return the right struct with the values.
} }
} }