Quad Pang
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
Factory Class Reference

#include <Factory.h>

List of all members.

Public Member Functions

QuadCreateQuad (XRes *resource, XCongo *xcongo)
ControllerCreateQuadMover (XRes *resource, XCongo *xcongo, Engine *, Quad *)
QuadCreateQuad (XRes *resource, XCongo *xcongo)
ControllerCreateQuadMover (XRes *resource, XCongo *xcongo, Engine *, Quad *)

Detailed Description

Definition at line 11 of file Factory.h.


Member Function Documentation

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;
}

The documentation for this class was generated from the following files: