aboutsummaryrefslogtreecommitdiff
path: root/saga/objectmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'saga/objectmap.h')
-rw-r--r--saga/objectmap.h53
1 files changed, 23 insertions, 30 deletions
diff --git a/saga/objectmap.h b/saga/objectmap.h
index 3a856161c4..4571e77a1c 100644
--- a/saga/objectmap.h
+++ b/saga/objectmap.h
@@ -73,42 +73,35 @@ private:
};
-struct OBJECTMAP_ENTRY {
- byte flags;
- byte defaultVerb;
-
- int objectNum;
- int scriptNum;
+class ObjectMap {
+public:
+ ObjectMap(SagaEngine *vm) : _vm(vm) {
+ _hitZoneList = NULL;
+ _hitZoneListCount = 0;
- int nClickareas;
- CLICKAREA *clickareas;
-};
+ }
+ ~ObjectMap(void) {
+ freeMem();
+ }
+ void load(const byte *resourcePointer, size_t resourceLength);
+ void freeMem(void);
+
+ void draw(SURFACE *drawSurface, const Point& testPoint, int color, int color2);
+ int hitTest(const Point& testPoint);
+ const HitZone * getHitZone(int index) const {
+ if ((index < 0) || (index >= _hitZoneListCount)) {
+ error("ObjectMap::getHitZone wrong index 0x%X", index);
+ }
+ return _hitZoneList[index];
+ }
-class ObjectMap{
-public:
- ObjectMap(SagaEngine *vm);
- ~ObjectMap(void);
- int load(const byte *om_res, size_t om_res_len);
- int freeMem(void);
- int loadNames(const byte *onl_res, size_t onl_res_len);
- int freeNames();
- const char *getName(int object);
- const uint16 getFlags(int object);
- const int getEPNum(int object);
- int draw(SURFACE *draw_surface, const Point& imousePt, int color, int color2);
- int hitTest(const Point& imousePt);
void cmdInfo(void);
private:
-
- bool _objectsLoaded;
- int _nObjects;
- OBJECTMAP_ENTRY *_objectMaps;
-
- bool _namesLoaded;
- int _nNames;
- const char **_names;
SagaEngine *_vm;
+
+ int _hitZoneListCount;
+ HitZone **_hitZoneList;
};
} // End of namespace Saga