From c91847d549cc1c30eb15504a15ea9a6d5aa48165 Mon Sep 17 00:00:00 2001 From: "chirs241097@gmail.com" Date: Sun, 12 Jan 2014 14:43:14 +0000 Subject: --- include/hgeresource.h | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 include/hgeresource.h (limited to 'include/hgeresource.h') diff --git a/include/hgeresource.h b/include/hgeresource.h new file mode 100644 index 0000000..ace8f21 --- /dev/null +++ b/include/hgeresource.h @@ -0,0 +1,85 @@ +/* +** Haaf's Game Engine 1.7 +** Copyright (C) 2003-2007, Relish Games +** hge.relishgames.com +** +** hgeResourceManager helper class header +*/ + + +#ifndef HGERESOURCE_H +#define HGERESOURCE_H + + +#include "hge.h" +#include "hgesprite.h" +#include "hgeanim.h" +#include "hgefont.h" +#include "hgeparticle.h" +#include "hgedistort.h" +#include "hgestrings.h" + + +#define RESTYPES 13 +#define MAXRESCHARS 128 + + +class hgeResourceManager; + +struct ResDesc +{ + char name[MAXRESCHARS]; + int resgroup; + size_t handle; + ResDesc* next; + + ResDesc() { hge=hgeCreate(HGE_VERSION); } + ~ResDesc() { hge->Release(); } + + virtual DWORD Get(hgeResourceManager *rm) = 0; + virtual void Free() = 0; + +protected: + static HGE *hge; +}; + +/* +** HGE Resource manager class +*/ +class hgeResourceManager +{ +public: + hgeResourceManager(const char *scriptname=0); + ~hgeResourceManager(); + + void ChangeScript(const char *scriptname=0); + bool Precache(int groupid=0); + void Purge(int groupid=0); + + void* GetResource(const char *name, int resgroup=0); + HTEXTURE GetTexture(const char *name, int resgroup=0); + HEFFECT GetEffect(const char *name, int resgroup=0); + HMUSIC GetMusic(const char *name, int resgroup=0); + HSTREAM GetStream(const char *name, int resgroup=0); + HTARGET GetTarget(const char *name); + + hgeSprite* GetSprite(const char *name); + hgeAnimation* GetAnimation(const char *name); + hgeFont* GetFont(const char *name); + hgeParticleSystem* GetParticleSystem(const char *name); + hgeDistortionMesh* GetDistortionMesh(const char *name); + hgeStringTable* GetStringTable(const char *name, int resgroup=0); + + ResDesc* res[RESTYPES]; + +private: + hgeResourceManager(const hgeResourceManager &); + hgeResourceManager& operator= (const hgeResourceManager&); + void _remove_all(); + void _parse_script(const char *scriptname=0); + + static HGE *hge; +}; + + +#endif -- cgit v1.2.3