OK so I've declared some classes, namely: CMap, CTile and CTileFrame.
If someone could just take a quick look at the declarations and tell me if this is a total clusterf*** or if I am on the right track.
class CMap {
public:
CMap();
CMap(std::string _mapName, std::string _tileImageFile, TPUINT32 _numTilesX, TPUINT32 _numTilesY, TPUINT32 _numLayers);
~CMap();
public:
TPBOOL TPE_CALL m_saveMap(std::string _file);
CMap* TPE_CALL m_loadMap(std::string _file);
public:
void TPE_CALL m_setMapName(std::string _mapName);
std::string TPE_CALL m_getMapName();
public:
void TPE_CALL m_setSizeX(TPUINT32 _sizeX);
void TPE_CALL m_setSizeY(TPUINT32 _sizeY);
TPUINT32 TPE_CALL m_getSizeX();
TPUINT32 TPE_CALL m_getSizeY();
public:
void TPE_CALL m_setNumTilesX(TPUINT32 _tilesX);
void TPE_CALL m_setNumTilesY(TPUINT32 _tilesY);
TPUINT32 TPE_CALL m_getNumTilesX();
TPUINT32 TPE_CALL m_getNumTilesY();
TPUINT32 TPE_CALL m_getNumTiles();
public:
void TPE_CALL m_setNumLayers(TPUINT32 _numLayers);
TPUINT32 TPE_CALL m_getNumLayers();
public:
void TPE_CALL m_setCurrentLayer(TPUINT32 _layer);
TPUINT32 TPE_CALL m_getCurrentLayer();
public:
void TPE_CALL m_addTile(TPUINT32 _posX, TPUINT32 _posY);
void TPE_CALL m_deleteTile(TPUINT32 _posX, TPUINT32 _posY);
public:
std::list v_tileList;
private:
std::string s_mapName;
TPUINT32 ui_sizeX;
TPUINT32 ui_sizeY;
TPUINT32 ui_numTilesX;
TPUINT32 ui_numTilesY;
TPUINT32 ui_numLayers;
TPUINT32 ui_currentLayer;
};
class CTile {
public:
CTile();
~CTile();
public:
void TPE_CALL m_addTileFrame(TPUINT32 _imgPosX, TPUINT32 _imgPosY);
public:
std::string TPE_CALL m_getName();
public:
void TPE_CALL m_setLayer(TPUINT32 _layer);
TPUINT32 TPE_CALL m_getLayer();
public:
void TPE_CALL m_setPosX(TPUINT32 _posX);
void TPE_CALL m_setPosY(TPUINT32 _posY);
TPUINT32 TPE_CALL m_getPosX();
TPUINT32 TPE_CALL m_getPosY();
public:
TPUINT32 TPE_CALL m_getType();
public:
TPUINT32 TPE_CALL m_getNumFrames();
TPUINT32 TPE_CALL m_getCurrentFrame();
TPUINT32 TPE_CALL m_getFrameDelay();
TPBOOL TPE_CALL m_isAnimated();
public:
std::vector<CTileFrame> v_tileFrameList;
private:
std::string s_tileName;
TPUINT32 ui_layer;
TPUINT32 ui_posX;
TPUINT32 ui_posY;
TPUINT32 ui_type;
TPUINT32 ui_numTileFrames;
TPUINT32 ui_currentFrame;
TPUINT32 ui_frameDelay;
TPBOOL b_animated;
};
class CTileFrame {
public:
CTileFrame();
CTileFrame(TPUINT32 _imgPosX, TPUINT32 _imgPosY);
~CTileFrame();
public:
TPUINT32 TPE_CALL m_getPosX();
TPUINT32 TPE_CALL m_getPosY();
private:
TPUINT32 ui_imgPosX;
TPUINT32 ui_imgPosY;
};
The CMap class is still missing a image pointer for what tile sprite sheet to use.
The idea is to have the map store the tiles, the tiles will have a list of frames for animation.
I guess the map class will handle the animation of every frame in each tile.
Any input would be appreciated. Thanks