aboutsummaryrefslogtreecommitdiff
path: root/sword2/resman.h
diff options
context:
space:
mode:
Diffstat (limited to 'sword2/resman.h')
-rw-r--r--sword2/resman.h68
1 files changed, 39 insertions, 29 deletions
diff --git a/sword2/resman.h b/sword2/resman.h
index aca64e9627..1e50f91047 100644
--- a/sword2/resman.h
+++ b/sword2/resman.h
@@ -23,13 +23,21 @@
class File;
-namespace Sword2 {
-
#define MAX_MEM_CACHE (8 * 1024 * 1024) // we keep up to 8 megs of resource data files in memory
#define MAX_res_files 20
+namespace Sword2 {
+
class Sword2Engine;
+enum {
+ BOTH = 0x0, // Cluster is on both CDs
+ CD1 = 0x1, // Cluster is on CD1 only
+ CD2 = 0x2, // Cluster is on CD2 only
+ LOCAL_CACHE = 0x4, // Cluster is cached on HDD
+ LOCAL_PERM = 0x8 // Cluster is on HDD.
+};
+
struct Resource {
byte *ptr;
uint32 size;
@@ -45,38 +53,12 @@ struct ResourceFile {
};
class ResourceManager {
-public:
- ResourceManager(Sword2Engine *vm); // read in the config file
- ~ResourceManager(void);
-
- byte *openResource(uint32 res, bool dump = false);
- void closeResource(uint32 res);
-
- bool checkValid(uint32 res);
- uint32 fetchLen(uint32 res);
-
- // Prompts the user for the specified CD.
- void getCd(int cd);
-
- int whichCd();
-
- void remove(int res);
-
- // ----console commands
-
- void printConsoleClusters(void);
- void listResources(uint minCount);
- void examine(int res);
- void kill(int res);
- void killAll(bool wantInfo);
- void killAllObjects(bool wantInfo);
- void removeAll(void);
private:
File *openCluFile(uint16 fileNum);
void readCluIndex(uint16 fileNum, File *file = NULL);
void removeFromCacheList(Resource *res);
void addToCacheList(Resource *res);
- void checkMemUsage(void);
+ void checkMemUsage();
Sword2Engine *_vm;
@@ -92,6 +74,34 @@ private:
Resource *_cacheStart, *_cacheEnd;
uint32 _usedMem; // amount of used memory in bytes
+
+public:
+ ResourceManager(Sword2Engine *vm); // read in the config file
+ ~ResourceManager();
+
+ uint32 getNumResFiles() { return _totalResFiles; }
+ uint32 getNumClusters() { return _totalClusters; }
+ ResourceFile *getResFiles() { return _resFiles; }
+ Resource *getResList() { return _resList; }
+
+ byte *openResource(uint32 res, bool dump = false);
+ void closeResource(uint32 res);
+
+ bool checkValid(uint32 res);
+ uint32 fetchLen(uint32 res);
+
+ // Prompts the user for the specified CD.
+ void getCd(int cd);
+
+ int whichCd();
+
+ void remove(int res);
+ void removeAll();
+
+ // ----console commands
+
+ void killAll(bool wantInfo);
+ void killAllObjects(bool wantInfo);
};
} // End of namespace Sword2