/* ** Haaf's Game Engine 1.7 ** Copyright (C) 2003-2007, Relish Games ** hge.relishgames.com ** ** hgeResourceManager resources header */ #ifndef HGERESOURCES_H #define HGERESOURCES_H #include "hgeresource.h" #include "parser.h" #define RES_SCRIPT 0 #define RES_RESOURCE 1 #define RES_TEXTURE 2 #define RES_EFFECT 3 #define RES_MUSIC 4 #define RES_STREAM 5 #define RES_TARGET 6 #define RES_SPRITE 7 #define RES_ANIMATION 8 #define RES_FONT 9 #define RES_PARTICLE 10 #define RES_DISTORT 11 #define RES_STRTABLE 12 void AddRes(hgeResourceManager *rm, int type, ResDesc *resource); ResDesc* FindRes(hgeResourceManager *rm, int type, const char *name); struct RScript : public ResDesc { static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm) {return 0;} virtual void Free() {} }; struct RResource : public ResDesc { char filename[MAXRESCHARS]; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RTexture : public ResDesc { char filename[MAXRESCHARS]; bool mipmap; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct REffect : public ResDesc { char filename[MAXRESCHARS]; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RTarget : public ResDesc { int width; int height; bool zbuffer; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RSprite : public ResDesc { char texname[MAXRESCHARS]; float tx, ty, w, h; float hotx, hoty; int blend; DWORD color; float z; bool bXFlip, bYFlip; // float x,y; // float scale; // float rotation; // int collision; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RAnimation : public RSprite { int frames; float fps; int mode; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RFont : public ResDesc { char filename[MAXRESCHARS]; bool mipmap; int blend; DWORD color; float z; float scale; float proportion; float tracking; float spacing; float rotation; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RParticle : public ResDesc { char filename[MAXRESCHARS]; char spritename[MAXRESCHARS]; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RDistort : public ResDesc { char texname[MAXRESCHARS]; float tx, ty, w, h; int cols, rows; int blend; DWORD color; float z; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; struct RStringTable : public ResDesc { char filename[MAXRESCHARS]; static void Parse(hgeResourceManager *rm, RScriptParser *sp, const char *name, const char *basename); virtual DWORD Get(hgeResourceManager *rm); virtual void Free(); }; #endif