Well, I can't give you the full code cause it has already evolving into a "small" giant. Here's a part of it though:
in main
Code:
int main(argc,argv)
{
CImageHandler* mImgHandler; //Object for handling pointer to bitmap images
mImgHandler = new mImgHandler("ImgHandler.cfg"); //Constructor with a filename consisting the names of Bitmap Images
//Objects that will be displayed in the surface
CObjectScene* mObject1;
CObjectScene* mObject2;
CObjectScene* mObject3;
CObjectScene* mObject4;
.... //There's a lot of objects
mObject1 = new CObjectScene(mImgHandler, "Obj1.cfg");
mObject2 = new CObjectScene(mImgHandler, "Obj2.cfg");
mObject3 = new CObjectScene(mImgHandler, "Obj3.cfg");
mObject4 = new CObjectScene(mImgHandler, "Obj4.cfg"); //ERROR here!!!
..... //Other objects
/*
Some rendering loop functions
*/
return 0;
}
in CImageHandler
Code:
typedef map<string, CBmpImage *> lstImage;
typedef lstImage::iterator itrImage;
class CImageHandler
{
public:
//Constructor
CImageHandler(char* filename)
{
char imgname[255], filename[255];
CBmpImage* tempImg;
char buffer[255];
FILE *fp=fopen(filename,"r");
/* Function to extract the configuration of each images from the file. Consist of image's name & image filename*/
while(!feof(fp))
{
fgets(buffer,255,fp);
sscanf(buffer,"%s %s",imgname, filename);
tempImg = new CBmpImage(imgname, filename); //Create & insert image to map
mImages[imgname]=tempImg;
}
fclose(fp);
}
CBmpImage* getImage(string name)
{
return mImages.find(name)->second;
}
private:
lstImage mImages;
}
in the CObjectScene
Code:
struct AnimFrame
{
CBmpImage *theImg;
int delay;
};
typedef vector<AnimFrame *> lstFrames; //List of an animation's frames
typedef lstImage::iterator itrFrames;
class CObjectScene
{
public:
CObjectScene(CImageHandler *imghandler, char* filename)
{
char imgname[255];
int tempdelay;
char buffer[255];
FILE *fp=fopen(filename,"r");
/* Function to extract the configuration of each objects from the file. Consist of image's name & delay to the next frame*/
while(!feof(fp))
{
fgets(buffer,255,fp);
sscanf(buffer,"%s %d",imgname, tempdelay);
AnimFrame *temp = new AnimFrame;
temp->theImg=imghandler->getImage(imgname);
temp->delay=tempdelay;
mFrames.push_back(temp); //ERROR here for the 4th object. The other previous objects are fine.
}
fclose(fp);
}
private:
lstFrames mFrames;
}
Can you help me please?