aboutsummaryrefslogtreecommitdiff
path: root/archive/include/hgeresource.h
diff options
context:
space:
mode:
Diffstat (limited to 'archive/include/hgeresource.h')
-rw-r--r--archive/include/hgeresource.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/archive/include/hgeresource.h b/archive/include/hgeresource.h
new file mode 100644
index 0000000..ace8f21
--- /dev/null
+++ b/archive/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