Entity.h

00001 #ifndef _ENTITY_H_
00002 #define _ENTITY_H_
00003 
00004 #include "Defines.h"
00005 #include "Renderer.h"
00006 #include "ScriptMgr.h"
00007 #include <string.h>
00008 
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif // _MSC_VER > 1000
00012 
00013 namespace zak {
00014 
00019 class ZAKENGINE_API ENTITY : protected SupportScriptReferences {
00020 protected:
00021         char _pszNombre[256];
00022         bool _bVisible;
00023 
00024         virtual void Release(){}
00025         virtual void Reset(){}
00026 
00027         friend class Renderer;
00028 
00029 public:
00034         void SetVisible(bool bVis) 
00035         {
00036                 _bVisible=bVis; 
00037         };
00038         
00043         bool GetVisible(void)  //protege _bVisible
00044         {
00045                 return _bVisible; 
00046         };
00047 
00052         void SetName(char * pszName) 
00053         {
00054                 strcpy(_pszNombre, pszName);
00055         }
00056 
00061         char *GetName () 
00062         {
00063                 return _pszNombre;
00064         }
00065 
00066         static bool RegisterEntity (char *className=NULL) {
00067                 char _className[100];
00068 
00069                 if (className != NULL) {
00070                         strcpy_s(_className, 100, className);
00071                 } else {
00072                         strcpy_s(_className, 100, "Entity");
00073                         if (ScriptMgr::RegisterObjectType(_className, 0, 0) < 0)
00074                                 return false;
00075                 }
00076 
00077                 if (ScriptMgr::RegisterObjectBehaviour(_className, asBEHAVE_ADDREF,"void f()", asMETHOD(SupportScriptReferences, AddRef), asCALL_GENERIC) < 0)
00078                         return false;
00079                 if (ScriptMgr::RegisterObjectBehaviour(_className, asBEHAVE_RELEASE,"void f()", asMETHOD(SupportScriptReferences, Release), asCALL_GENERIC) < 0)
00080                         return false;
00081                 if (ScriptMgr::RegisterObjectMethod(_className, "void SetVisible(bool)",asMETHODPR(ENTITY, SetVisible,(bool), void),asCALL_THISCALL) < 0)
00082                         return false;
00083                 if (ScriptMgr::RegisterObjectMethod(_className, "bool GetVisible()",asMETHODPR(ENTITY, GetVisible, (void), bool),asCALL_THISCALL) < 0)
00084                         return false;
00085 
00086                 return true;
00087         }
00088 
00092         ENTITY(){ 
00093                 _bVisible = true; 
00094                 _pszNombre[0]='\0'; 
00095                 g_renderer.Register(this);
00096         };
00097 
00101         ~ENTITY(){  
00102                 g_renderer.Unregister(this);
00103         };
00104 };
00105 
00106 }
00107 
00108 #endif // _ENTITY_H_

Generado el Tue May 29 14:46:14 2007 para Zak Engine v1.1.0 por  doxygen 1.5.1-p1