#include <Factory.h>
Public Member Functions | |
| Quad * | CreateQuad (XRes *resource, XCongo *xcongo) |
| Controller * | CreateQuadMover (XRes *resource, XCongo *xcongo, Engine *, Quad *) |
| Quad * | CreateQuad (XRes *resource, XCongo *xcongo) |
| Controller * | CreateQuadMover (XRes *resource, XCongo *xcongo, Engine *, Quad *) |
| Quad * Factory::CreateQuad | ( | XRes * | resource, |
| XCongo * | xcongo | ||
| ) |
Definition at line 50 of file Factory.cpp.
References Bongo, Quad::Init(), and XRes::StringValue().
Referenced by Engine::LoadLevel().
{
Quad *pquad = 0;
char *class_name = 0;
if (!resource->StringValue("mClass", &class_name) )
{
fprintf(stderr, "error: XRes::StringValue(\"mClass\")\n");
free(class_name);
return 0;
}
if (0 == strcmp(class_name, "Ball") )
{
pquad = new Ball();
}
else if (0 == strcmp(class_name, "Box") )
{
pquad = new Box();
}
else if (0 == strcmp(class_name, "Bongo") )
{
pquad = new Bongo();
}
else
fprintf(stderr, "unknow class name: %s\n", class_name);
if (pquad && !pquad->Init(resource, xcongo) )
{
fprintf(stderr, "error: Quad::Init(XRes*)\n");
delete pquad;
pquad = 0;
}
free(class_name);
return pquad;
}
| Quad* Factory::CreateQuad | ( | XRes * | resource, |
| XCongo * | xcongo | ||
| ) |
| Controller* Factory::CreateQuadMover | ( | XRes * | resource, |
| XCongo * | xcongo, | ||
| Engine * | , | ||
| Quad * | |||
| ) |
| Controller * Factory::CreateQuadMover | ( | XRes * | resource, |
| XCongo * | xcongo, | ||
| Engine * | eng, | ||
| Quad * | quad | ||
| ) |
Definition at line 19 of file Factory.cpp.
References Controller::Init(), and XRes::StringValue().
Referenced by Engine::LoadLevel().
{
Controller* pquad = 0;
char *class_name = 0;
if (!resource->StringValue("mClass", &class_name) )
{
fprintf(stderr, "error: XRes::StringValue(\"mClass\")\n");
free(class_name);
return 0;
}
if (0 == strcmp(class_name, "BongoOrthoMover") )
{
pquad = new BongoOrthoMover(eng, dynamic_cast<Bongo*>(quad) );
}
else if (0 == strcmp(class_name, "BongoRealMover") )
{
pquad = new BongoRealMover(eng, dynamic_cast<Bongo*>(quad) );
}
if (pquad && !pquad->Init(resource, xcongo) )
{
fprintf(stderr, "error: Quad::Init(XRes*)\n");
delete pquad;
pquad = 0;
}
free(class_name);
return pquad;
}
1.8.0