libHSPlasma
Classes | Macros
plCreatable.h File Reference
#include "ResManager/pdUnifiedTypeMap.h"
#include "ResManager/plResManager.h"

Classes

class  plCreatable
class  plCreatableStub
 Stores the contents of a Creatable without actually parsing it. More...

Macros

#define CREATABLE(classname, classid, parentclass)

Macro Definition Documentation

#define CREATABLE (   classname,
  classid,
  parentclass 
)
Value:
public: \
virtual short ClassIndex() const { return classid; } \
virtual bool ClassInstance(short hClass) const { \
if (hClass == classid) \
return true; \
return parentclass::ClassInstance(hClass); \
} \
static classname* Convert(plCreatable* pCre, bool requireValid = true) { \
if (pCre == NULL) \
return NULL; \
if (requireValid) { \
classname* result = dynamic_cast<classname*>(pCre); \
if (result) { \
return result; \
} else { \
short otherClassId = pCre->ClassIndex(); \
throw hsBadParamException(__FILE__, __LINE__, \
plString::Format("Required conversion failed for %s -> %s", \
pdUnifiedTypeMap::ClassName(otherClassId), \
} \
} else { \
return dynamic_cast<classname*>(pCre); \
} \
}