generated from sigonasr2/CPlusPlusProjectTemplate
Basic TMXParser without the data piece yet
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
344322ada4
commit
274231a62f
Binary file not shown.
25
TMXParser.h
25
TMXParser.h
@ -27,14 +27,7 @@ struct LayerTag{
|
|||||||
std::vector<std::vector<int>> tiles;
|
std::vector<std::vector<int>> tiles;
|
||||||
std::string str() {
|
std::string str() {
|
||||||
std::string displayStr=tag.tag+"\n"+tag.FormatTagData(tag.data);
|
std::string displayStr=tag.tag+"\n"+tag.FormatTagData(tag.data);
|
||||||
displayStr+=" DATA\n";
|
displayStr+=" DATA ("+std::to_string(tiles[0].size())+"x"+std::to_string(tiles.size())+")\n";
|
||||||
for (int row=0;row<tiles.size();row++) {
|
|
||||||
displayStr+=" ";
|
|
||||||
for (int col=0;col<tiles[row].size();col++) {
|
|
||||||
displayStr+=std::to_string(tiles[row][col])+",";
|
|
||||||
}
|
|
||||||
displayStr+="\n";
|
|
||||||
}
|
|
||||||
return displayStr;
|
return displayStr;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -61,7 +54,6 @@ class TMXParser{
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
Map parsedMapInfo;
|
Map parsedMapInfo;
|
||||||
LayerTag*activeLayer;
|
|
||||||
|
|
||||||
void ParseTag(std::string tag) {
|
void ParseTag(std::string tag) {
|
||||||
XMLTag newTag;
|
XMLTag newTag;
|
||||||
@ -89,7 +81,9 @@ class TMXParser{
|
|||||||
parsedMapInfo.TilesetData=newTag;
|
parsedMapInfo.TilesetData=newTag;
|
||||||
} else
|
} else
|
||||||
if (newTag.tag=="layer") {
|
if (newTag.tag=="layer") {
|
||||||
parsedMapInfo.LayerData.push_back({newTag});
|
LayerTag l = {newTag};
|
||||||
|
parsedMapInfo.LayerData.push_back(l);
|
||||||
|
std::cout<<"Insert layer: "+std::to_string(parsedMapInfo.LayerData.size());
|
||||||
} else {
|
} else {
|
||||||
std::cout<<"Unsupported tag format! Ignoring."<<"\n";
|
std::cout<<"Unsupported tag format! Ignoring."<<"\n";
|
||||||
}
|
}
|
||||||
@ -97,7 +91,7 @@ class TMXParser{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TMXParser() {
|
TMXParser(){
|
||||||
std::ifstream f("00_test_room.tmx",std::ios::in);
|
std::ifstream f("00_test_room.tmx",std::ios::in);
|
||||||
|
|
||||||
std::string accumulator="";
|
std::string accumulator="";
|
||||||
@ -118,6 +112,15 @@ class TMXParser{
|
|||||||
if (data[0]=='<') {
|
if (data[0]=='<') {
|
||||||
//Beginning of XML tag.
|
//Beginning of XML tag.
|
||||||
accumulator=data;
|
accumulator=data;
|
||||||
|
} else {
|
||||||
|
//Start reading in data for this layer.
|
||||||
|
std::vector<int>rowData;
|
||||||
|
while (data.find(",")!=std::string::npos) {
|
||||||
|
std::string datapiece = data.substr(0,data.find(","));
|
||||||
|
data = data.substr(data.find(",")+1,std::string::npos);
|
||||||
|
rowData.push_back(stoi(datapiece));
|
||||||
|
}
|
||||||
|
parsedMapInfo.LayerData[parsedMapInfo.LayerData.size()-1].tiles.push_back(rowData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user