#ifndef _namespace_h_ #define _namespace_h_ ////////////////////////////////////////////////////////////////////////////// // // NameSpace // ////////////////////////////////////////////////////////////////////////////// class IEngineFont; class Image; class Geo; class MDLType; class INameSpace : public IObject { public: virtual const ZString& GetName() = 0; virtual void AddMember(const ZString& strName, IObject* pobject) = 0; virtual IObject* FindMember(const ZString& strName) = 0; virtual IObject* FindMemberLocal(const ZString& strName) = 0; virtual IObject* FindMemberAndNameSpace(const ZString& str, INameSpace*& pns) = 0; virtual void AddType(const ZString& strName, MDLType* ptype) = 0; virtual MDLType* FindType(const ZString& strName) = 0; virtual MDLType* FindTypeLocal(const ZString& strName) = 0; virtual void WriteTypeHeader(ZFile* pfile) = 0; virtual void WriteToTextFile(int indent, ZFile* pfile) = 0; virtual void WriteToBinaryFile(ZFile* pfile) = 0; #ifndef DREAMCAST // these mothods break VC5 float FindNumber(const ZString& strName, float valueDefault = 0) { TRef pnumber; CastTo(pnumber, FindMember(strName)); return pnumber->GetValue(); //return pnumber ? pnumber->GetValue() : valueDefault; } bool FindBoolean(const ZString& strName, bool valueDefault = false) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return pvalue->GetValue(); //return pvalue ? pvalue->GetValue() : valueDefault; } IEngineFont* FindFont(const ZString& strName, IEngineFont* valueDefault = NULL) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return pvalue->GetValue(); //return pvalue ? pvalue->GetValue() : valueDefault; } IObjectList* FindList(const ZString& strName) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return pvalue; } const ZString& FindString(const ZString& strName, const ZString& valueDefault = ZString()) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return pvalue->GetValue(); //return pvalue ? pvalue->GetValue() : valueDefault; } const Color& FindColor(const ZString& strName, const Color& valueDefault = Color::White()) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return pvalue->GetValue(); //return pvalue ? pvalue->GetValue() : valueDefault; } const Point& FindPoint(const ZString& strName, const Point& valueDefault = Point(0, 0)) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return pvalue->GetValue(); //return pvalue ? pvalue->GetValue() : valueDefault; } WinPoint FindWinPoint(const ZString& strName, const WinPoint& valueDefault = WinPoint(0, 0)) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return WinPoint::Cast(pvalue->GetValue()); //return pvalue ? WinPoint::Cast(pvalue->GetValue()) : valueDefault; } const Vector& FindVector(const ZString& strName, const Vector& valueDefault = Vector(0, 0, 0)) { TRef pvalue; CastTo(pvalue, FindMember(strName)); return pvalue->GetValue(); //return pvalue ? pvalue->GetValue() : valueDefault; } TRef FindImage(const ZString& strName) { TRef pvalue; CastTo(pvalue, (Value*)FindMember(strName)); return pvalue; } TRef FindGeo(const ZString& strName) { TRef pvalue; CastTo(pvalue, (Value*)FindMember(strName)); return pvalue; } #endif }; typedef TList > INameSpaceList; #endif