hgeresource.h
上传用户:jalin138
上传日期:2022-02-12
资源大小:5720k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /*
  2. ** Haaf's Game Engine 1.7
  3. ** Copyright (C) 2003-2007, Relish Games
  4. ** hge.relishgames.com
  5. **
  6. ** hgeResourceManager helper class header
  7. */
  8. #ifndef HGERESOURCE_H
  9. #define HGERESOURCE_H
  10. #include "hge.h"
  11. #include "hgesprite.h"
  12. #include "hgeanim.h"
  13. #include "hgefont.h"
  14. #include "hgeparticle.h"
  15. #include "hgedistort.h"
  16. #include "hgestrings.h"
  17. #define RESTYPES 13
  18. #define MAXRESCHARS 128
  19. class hgeResourceManager;
  20. struct ResDesc
  21. {
  22. char name[MAXRESCHARS];
  23. int resgroup;
  24. DWORD handle;
  25. ResDesc* next;
  26. ResDesc() { hge=hgeCreate(HGE_VERSION); }
  27. ~ResDesc() { hge->Release(); }
  28. virtual DWORD Get(hgeResourceManager *rm) = 0;
  29. virtual void  Free() = 0;
  30. protected:
  31. static HGE *hge;
  32. };
  33. /*
  34. ** HGE Resource manager class
  35. */
  36. class hgeResourceManager
  37. {
  38. public:
  39. hgeResourceManager(const char *scriptname=0);
  40. ~hgeResourceManager();
  41. void ChangeScript(const char *scriptname=0);
  42. bool Precache(int groupid=0);
  43. void Purge(int groupid=0);
  44. void* GetResource(const char *name);
  45. HTEXTURE GetTexture(const char *name);
  46. HEFFECT GetEffect(const char *name);
  47. HMUSIC GetMusic(const char *name);
  48. HSTREAM GetStream(const char *name);
  49. HTARGET GetTarget(const char *name);
  50. hgeSprite* GetSprite(const char *name);
  51. hgeAnimation* GetAnimation(const char *name);
  52. hgeFont* GetFont(const char *name);
  53. hgeParticleSystem* GetParticleSystem(const char *name);
  54. hgeDistortionMesh* GetDistortionMesh(const char *name);
  55. hgeStringTable* GetStringTable(const char *name);
  56. ResDesc* res[RESTYPES];
  57. private:
  58. hgeResourceManager(const hgeResourceManager &);
  59. hgeResourceManager& operator= (const hgeResourceManager&);
  60. void _remove_all();
  61. void _parse_script(const char *scriptname=0);
  62. static HGE *hge;
  63. };
  64. #endif