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.
27
TMXParser.h
27
TMXParser.h
@ -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…
x
Reference in New Issue
Block a user