diff --git a/Code/Dokumentation/LevelLoader.uxf b/Code/Dokumentation/LevelLoader.uxf index 90dcb0f7..b5cef8f0 100644 --- a/Code/Dokumentation/LevelLoader.uxf +++ b/Code/Dokumentation/LevelLoader.uxf @@ -4,8 +4,20 @@ com.umlet.element.Relation - 640 - 256 + 632 + 232 + 88 + 176 + + lt=. +<Uses + 24;24;24;64;72;64;72;160 + + + com.umlet.element.Relation + + 136 + 232 40 168 @@ -15,20 +27,111 @@ com.umlet.element.Relation - 840 - 256 - 88 + 448 + 496 + 40 + 88 + + lt=<<<<- + 24;72;24;24 + + + com.umlet.element.Relation + + 432 + 232 + 40 168 - lt=. -<Uses - 24;24;24;64;72;64;72;152 + lt=<<. + 24;24;24;152 com.umlet.element.Class + + 608 + 216 + 128 + 40 + + Resource Loader +<<Dennis>><<Singleton> + + + + com.umlet.element.Class + + 232 + 112 + 128 + 40 + + GameLogic +<<Erik>> + + + + com.umlet.element.Class + + 120 + 232 + 80 + 24 + + Defines + + + + com.umlet.element.Class + + 352 + 568 + 232 + 136 + + <<Interface>> +LevelParser +-- +Functions: +vector<struct> Parse(); +- +Privates: +enum headerType; +const int FileHeaderSize; +const int FileVersion; + + + + + com.umlet.element.Relation + + 336 + 88 + 136 + 160 + + lt=lt=->>>> +m1=1..1 +m2=1..1 +Uses> + 24;40;80;40;120;40;120;144 + + + com.umlet.element.Relation 560 - 408 + 496 + 136 + 104 + + lt=<<<<- + 120;24;120;88;24;88 + + + com.umlet.element.Class + + 352 + 384 232 136 @@ -45,54 +148,79 @@ Privates: - com.umlet.element.Class + com.umlet.element.Relation - 440 - 136 - 128 - 40 + 560 + 600 + 176 + 56 - GameLogic -<<Erik>> - + lt=- +m1=1..1 +m2=1..1 +Uses> + 24;40;160;40 com.umlet.element.Package - 552 - 368 + 344 + 344 584 368 LevelLoader + + com.umlet.element.Relation + + 472 + 200 + 152 + 56 + + lt=- +m1=1..1 +m2=1..1 +Uses> + 24;40;136;40 + com.umlet.element.Class - 560 - 592 - 232 - 136 + 416 + 232 + 80 + 24 - <<Interface>> -Parser --- -Functions: -vector<struct> Parse(); -- -Privates: -enum headerType; -const int FileHeaderSize; -const int FileVersion; + LevelLoader com.umlet.element.Class - 928 - 608 + 48 + 384 + 232 + 104 + + ObjectDefines.h +<<Header file>> +-- +Enum ObjectType(static, dynamic, specials); +. +Struct static; +Struct dynamic; +Struct specials + + + + com.umlet.element.Class + + 720 + 584 200 120 @@ -103,23 +231,23 @@ functions for creating the right structs - com.umlet.element.Relation + com.umlet.element.Package - 768 - 520 - 136 - 104 + 40 + 344 + 248 + 160 - lt=<<<<- - 120;24;120;88;24;88 + Defines + com.umlet.element.Class - 800 - 408 + 592 + 392 208 - 136 + 128 <<Interface>> Loader @@ -135,67 +263,8 @@ Privates: com.umlet.element.Relation - 656 - 520 - 40 - 88 - - lt=<<<<- - 24;72;24;24 - - - com.umlet.element.Class - - 328 - 256 - 80 - 24 - - Defines - - - - com.umlet.element.Relation - - 680 - 224 - 152 - 56 - - lt=- -m1=1..1 -m2=1..1 -Uses> - 24;40;136;40 - - - com.umlet.element.Class - - 624 - 256 - 80 - 24 - - LevelLoader - - - - - com.umlet.element.Relation - - 344 - 256 - 40 - 168 - - lt=<<. - 24;24;24;152 - - - com.umlet.element.Relation - - 384 - 224 + 176 + 200 256 56 @@ -205,73 +274,4 @@ m2=1..1 <Knows about 240;40;24;40 - - com.umlet.element.Relation - - 544 - 112 - 136 - 160 - - lt=lt=->>>> -m1=1..1 -m2=1..1 -Uses> - 24;40;80;40;120;40;120;144 - - - com.umlet.element.Relation - - 768 - 624 - 176 - 56 - - lt=- -m1=1..1 -m2=1..1 -Uses> - 24;40;160;40 - - - com.umlet.element.Package - - 248 - 368 - 248 - 160 - - Defines - - - - com.umlet.element.Class - - 256 - 408 - 232 - 104 - - Defines.h -<<Header file>> --- -Enum ObjectType(static, dynamic, specials); -. -Struct static; -Struct dynamic; -Struct specials - - - - com.umlet.element.Class - - 816 - 240 - 128 - 40 - - Resource Loader -<<Dennis>><<Singleton> - - diff --git a/Code/Game/GameLogic/GameLogic.vcxproj b/Code/Game/GameLogic/GameLogic.vcxproj index df1d09aa..809c82b5 100644 --- a/Code/Game/GameLogic/GameLogic.vcxproj +++ b/Code/Game/GameLogic/GameLogic.vcxproj @@ -184,12 +184,12 @@ - - + + - - - + + + @@ -207,11 +207,11 @@ - - - + + + - + diff --git a/Code/Game/GameLogic/LevelLoader.cpp b/Code/Game/GameLogic/LevelLoader/LevelLoader.cpp similarity index 100% rename from Code/Game/GameLogic/LevelLoader.cpp rename to Code/Game/GameLogic/LevelLoader/LevelLoader.cpp diff --git a/Code/Game/GameLogic/LevelLoader.h b/Code/Game/GameLogic/LevelLoader/LevelLoader.h similarity index 100% rename from Code/Game/GameLogic/LevelLoader.h rename to Code/Game/GameLogic/LevelLoader/LevelLoader.h diff --git a/Code/Game/GameLogic/LevelParser.cpp b/Code/Game/GameLogic/LevelLoader/LevelParser.cpp similarity index 99% rename from Code/Game/GameLogic/LevelParser.cpp rename to Code/Game/GameLogic/LevelLoader/LevelParser.cpp index a957b88a..08c4da7e 100644 --- a/Code/Game/GameLogic/LevelParser.cpp +++ b/Code/Game/GameLogic/LevelLoader/LevelParser.cpp @@ -15,7 +15,6 @@ LevelParser::~LevelParser() { } -// std::vector LevelParser::Parse(std::string filename) { int stringSize = 0; diff --git a/Code/Game/GameLogic/LevelParser.h b/Code/Game/GameLogic/LevelLoader/LevelParser.h similarity index 100% rename from Code/Game/GameLogic/LevelParser.h rename to Code/Game/GameLogic/LevelLoader/LevelParser.h diff --git a/Code/Game/GameLogic/Loader.cpp b/Code/Game/GameLogic/LevelLoader/Loader.cpp similarity index 94% rename from Code/Game/GameLogic/Loader.cpp rename to Code/Game/GameLogic/LevelLoader/Loader.cpp index 0afb48de..26818202 100644 --- a/Code/Game/GameLogic/Loader.cpp +++ b/Code/Game/GameLogic/LevelLoader/Loader.cpp @@ -15,6 +15,8 @@ unsigned char* Loader::LoadFile(std::string fileName, int &size) //convert from wstring to wchar then loads the file unsigned char* buffer = (unsigned char*)OysterResource::LoadResource(temp.c_str(), Oyster::Resource::ResourceType::ResourceType_Byte_Raw, -1 , false); + + //gets the size of the char buffer. size = OysterResource::GetResourceSize(buffer); return buffer; } \ No newline at end of file diff --git a/Code/Game/GameLogic/Loader.h b/Code/Game/GameLogic/LevelLoader/Loader.h similarity index 88% rename from Code/Game/GameLogic/Loader.h rename to Code/Game/GameLogic/LevelLoader/Loader.h index d77921c5..2d605169 100644 --- a/Code/Game/GameLogic/Loader.h +++ b/Code/Game/GameLogic/LevelLoader/Loader.h @@ -5,7 +5,7 @@ #ifndef LOADER_H #define LOADER_H -#include "Resource\OysterResource.h" +#include "..\Misc\Resource\OysterResource.h" #include namespace GameLogic diff --git a/Code/Game/GameLogic/ObjectDefines.h b/Code/Game/GameLogic/LevelLoader/ObjectDefines.h similarity index 100% rename from Code/Game/GameLogic/ObjectDefines.h rename to Code/Game/GameLogic/LevelLoader/ObjectDefines.h diff --git a/Code/Game/GameLogic/LevelLoader/ParseFunctions.cpp b/Code/Game/GameLogic/LevelLoader/ParseFunctions.cpp new file mode 100644 index 00000000..abca143c --- /dev/null +++ b/Code/Game/GameLogic/LevelLoader/ParseFunctions.cpp @@ -0,0 +1,55 @@ +////////////////////////////////// +// Created by Sam Svensson 2013 // +////////////////////////////////// + +#include "ParseFunctions.h" +#include "../../../Misc/Packing/Packing.h" +#include + +using namespace Oyster::Packing; +using namespace GameLogic::LevelFileLoader; +using namespace GameLogic; +using namespace std; + +namespace GameLogic +{ + namespace LevelFileLoader + { + void ParseObject(unsigned char* buffer, void* header, int size) + { + memcpy(header, buffer, size); + } + + void ParseLevelMetaData(unsigned char* buffer, struct LevelMetaData &header) + { + int start = 0; + int tempSize; + memcpy(&header.typeID, &buffer[start], 4); + start += 4; + memcpy(&tempSize , &buffer[start], 4); + start += 4; + memcpy(&header.levelName, &buffer[start], tempSize); + start += tempSize; + memcpy(&header.levelVersion, &buffer[start], 8) + start += 8; + memcpy(&tempSize, &buffer[start], 4); + start +=4; + memcpy(&header.description, &buffer[start], tempSize); + start += tempSize; + memcpy(&tempSize, &buffer[start], 4); + start += 4; + memcpy(&header.author, &buffer[start], tempSize); + start += tempSize; + memcpy(&header.nrOfPlayers, &buffer[start], 4); + start += 4; + memcpy(&header.worldSize, &buffer[start], 4); + start += 4; + memcpy(&header.map, &buffer[start], 4); + start += 4; + memcpy(&tempSize, &buffer[start], 4); + start += 4; + memcpy(&header.gameModes, &buffer[start], 4 * tempSize); + start += tempSize; + } + } +} \ No newline at end of file diff --git a/Code/Game/GameLogic/LevelLoader/ParseFunctions.h b/Code/Game/GameLogic/LevelLoader/ParseFunctions.h new file mode 100644 index 00000000..7a6ab93a --- /dev/null +++ b/Code/Game/GameLogic/LevelLoader/ParseFunctions.h @@ -0,0 +1,19 @@ +////////////////////////////////// +// Created by Sam Svensson 2013 // +////////////////////////////////// + +#ifndef PARSERFUNCTIONS_H +#define PARSERFUNCTIONS_H +#include "ObjectDefines.h" + +namespace GameLogic +{ + namespace LevelFileLoader + { + void ParseObject(unsigned char* buffer, void* header, int size); + void ParseLevelMetaData(unsigned char* buffer, struct ObjectTypeHeader &header); + } +} + + +#endif \ No newline at end of file diff --git a/Code/Game/GameLogic/ParseFunctions.cpp b/Code/Game/GameLogic/ParseFunctions.cpp deleted file mode 100644 index 64405ff5..00000000 --- a/Code/Game/GameLogic/ParseFunctions.cpp +++ /dev/null @@ -1,33 +0,0 @@ -////////////////////////////////// -// Created by Sam Svensson 2013 // -////////////////////////////////// - -#include "ParseFunctions.h" -#include "../../Misc/Packing/Packing.h" -#include - -using namespace Oyster::Packing; -using namespace GameLogic::LevelFileLoader; -using namespace GameLogic; -using namespace std; - -namespace GameLogic -{ - namespace LevelFileLoader - { - ObjectTypeHeader ParseObjectTypeHeader(unsigned char* buffer) - { - struct ObjectTypeHeader header; - memcpy(&header, buffer, sizeof(ObjectTypeHeader)); - return header; - } - - ObjectHeader ParseObjectHeader (unsigned char* buffer) - { - struct ObjectHeader header; - memcpy(&header, buffer, sizeof(ObjectHeader)); - - return header; - } - } -} \ No newline at end of file diff --git a/Code/Game/GameLogic/ParseFunctions.h b/Code/Game/GameLogic/ParseFunctions.h deleted file mode 100644 index 5638f419..00000000 --- a/Code/Game/GameLogic/ParseFunctions.h +++ /dev/null @@ -1,19 +0,0 @@ -////////////////////////////////// -// Created by Sam Svensson 2013 // -////////////////////////////////// - -#ifndef PARSERFUNCTIONS_H -#define PARSERFUNCTIONS_H -#include "ObjectDefines.h" - -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. - } -} - - -#endif \ No newline at end of file