GL- la in memcpy för parsing i parseFunctions
This commit is contained in:
parent
99fbef8a64
commit
dd2b214122
|
@ -31,7 +31,8 @@ std::vector<ObjectTypeHeader> LevelParser::Parse(std::string filename)
|
|||
{
|
||||
//Get typeID
|
||||
ObjectTypeHeader typeID;
|
||||
typeID = parseObjectTypeHeader(buffer);
|
||||
typeID = ParseObjectTypeHeader(&buffer[counter]);
|
||||
//counter += 4;
|
||||
//Unpack ID
|
||||
|
||||
switch((int)typeID.typeID)
|
||||
|
@ -43,7 +44,8 @@ std::vector<ObjectTypeHeader> LevelParser::Parse(std::string filename)
|
|||
|
||||
case TypeID_Object:
|
||||
//Call function
|
||||
counter += ObjectHeaderSize;
|
||||
objects.push_back(ParseObjectHeader(&buffer[counter]));
|
||||
counter += sizeof(ObjectHeader);
|
||||
break;
|
||||
default:
|
||||
//Couldn't find typeID. FAIL!!!!!!
|
||||
|
@ -73,7 +75,7 @@ ObjectTypeHeader LevelParser::ParseHeader(std::string filename)
|
|||
while(counter < stringSize)
|
||||
{
|
||||
ObjectTypeHeader typeID;
|
||||
typeID = parseObjectTypeHeader(buffer);
|
||||
typeID = ParseObjectTypeHeader(buffer);
|
||||
switch(typeID.typeID)
|
||||
{
|
||||
case TypeID_LevelHeader:
|
||||
|
|
|
@ -13,7 +13,8 @@ unsigned char* Loader::LoadFile(std::string fileName, int &size)
|
|||
//convert from string to wstring
|
||||
std::wstring temp(fileName.begin(), fileName.end());
|
||||
|
||||
size = temp.size();
|
||||
//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;
|
||||
}
|
|
@ -15,73 +15,17 @@ namespace GameLogic
|
|||
{
|
||||
namespace LevelFileLoader
|
||||
{
|
||||
ObjectTypeHeader parseObjectTypeHeader(unsigned char* buffer)
|
||||
ObjectTypeHeader ParseObjectTypeHeader(unsigned char* buffer)
|
||||
{
|
||||
struct ObjectTypeHeader header;
|
||||
int i = Unpacki(buffer);
|
||||
header.typeID = (ObjectType)i;
|
||||
memcpy(&header, buffer, sizeof(ObjectTypeHeader));
|
||||
return header;
|
||||
}
|
||||
|
||||
ObjectHeader parseObjectHeader (unsigned char* buffer)
|
||||
ObjectHeader ParseObjectHeader (unsigned char* buffer)
|
||||
{
|
||||
struct ObjectHeader header;
|
||||
int x, y,z;
|
||||
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;
|
||||
|
||||
memcpy(&header, buffer, sizeof(ObjectHeader));
|
||||
|
||||
return header;
|
||||
}
|
||||
|
|
|
@ -10,8 +10,8 @@ namespace GameLogic
|
|||
{
|
||||
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.
|
||||
ObjectHeader parseObjectHeader (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.
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue