#include <iostream>
namespace cocos2d {
class TMXTilesetInfo {
public:
std::string _sourceImage = "Test Image Name";
};
class TMXLayer {
TMXTilesetInfo* _tileSet = new TMXTilesetInfo();
public:
TMXTilesetInfo* getTileSet() const { return _tileSet; }
};
}
void loadCollisionsDescription(std::string descriptionFileName) {
std::cout << descriptionFileName;
}
class PhysicsProcessorPrivate {
cocos2d::TMXLayer *m_terrainLayer;
public:
void setTerrainLayer(cocos2d::TMXLayer *const layer);
};
void PhysicsProcessorPrivate::setTerrainLayer(cocos2d::TMXLayer *const layer) {
m_terrainLayer = layer;
if (layer) {
const auto tileSet = layer->getTileSet();
if (tileSet) {
auto sourceImageName = tileSet->_sourceImage;
if (!sourceImageName.empty()) {
auto descriptionFileName = sourceImageName + ".collisions.xml";
loadCollisionsDescription(descriptionFileName);
}
}
}
}
/** Далее - cocos2d::TMXLayer::getTileSet() **/
//TMXTilesetInfo* getTileSet() const { return _tileSet; }
int main() {
// your code goes here
PhysicsProcessorPrivate pp;
cocos2d::TMXLayer l;
pp.setTerrainLayer(&l);
return 0;
}