Basic TMXParser without the data piece yet

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent 344322ada4
commit 274231a62f
  1. BIN
      C++ProjectTemplate
  2. 27
      TMXParser.h

Binary file not shown.

@ -27,14 +27,7 @@ struct LayerTag{
std::vector<std::vector<int>> tiles;
std::string str() {
std::string displayStr=tag.tag+"\n"+tag.FormatTagData(tag.data);
displayStr+=" DATA\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";
}
displayStr+=" DATA ("+std::to_string(tiles[0].size())+"x"+std::to_string(tiles.size())+")\n";
return displayStr;
}
};
@ -61,7 +54,6 @@ class TMXParser{
private:
Map parsedMapInfo;
LayerTag*activeLayer;
void ParseTag(std::string tag) {
XMLTag newTag;
@ -89,7 +81,9 @@ class TMXParser{
parsedMapInfo.TilesetData=newTag;
} else
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 {
std::cout<<"Unsupported tag format! Ignoring."<<"\n";
}
@ -97,7 +91,7 @@ class TMXParser{
}
public:
TMXParser() {
TMXParser(){
std::ifstream f("00_test_room.tmx",std::ios::in);
std::string accumulator="";
@ -118,7 +112,16 @@ class TMXParser{
if (data[0]=='<') {
//Beginning of XML tag.
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);
}
}
std::cout<<"Parsed Map Data:\n"<<parsedMapInfo<<"\n";

Loading…
Cancel
Save