aboutsummaryrefslogtreecommitdiff
path: root/engines/made/database.h
diff options
context:
space:
mode:
authorBenjamin Haisch2009-11-23 15:31:58 +0000
committerBenjamin Haisch2009-11-23 15:31:58 +0000
commitecbd0a0d539c7a0119b0cadef79527960ac22225 (patch)
tree4587f4eafa747d13d8e89e89bbddab9f750c4636 /engines/made/database.h
parent95d4c62efbf7b083716d1d2c4a0870eb58dcbc74 (diff)
downloadscummvm-rg350-ecbd0a0d539c7a0119b0cadef79527960ac22225.tar.gz
scummvm-rg350-ecbd0a0d539c7a0119b0cadef79527960ac22225.tar.bz2
scummvm-rg350-ecbd0a0d539c7a0119b0cadef79527960ac22225.zip
Optimized object property access speed
svn-id: r46102
Diffstat (limited to 'engines/made/database.h')
-rw-r--r--engines/made/database.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/engines/made/database.h b/engines/made/database.h
index cf5dd31225..a71ba925c1 100644
--- a/engines/made/database.h
+++ b/engines/made/database.h
@@ -27,6 +27,7 @@
#define MADE_DATABASE_H
#include "common/array.h"
+#include "common/hashmap.h"
#include "common/util.h"
#include "common/file.h"
#include "common/stream.h"
@@ -141,6 +142,7 @@ public:
void setObjectString(int16 index, const char *str);
virtual int16 *findObjectProperty(int16 objectIndex, int16 propertyId, int16 &propertyFlag) = 0;
+ int16 *findObjectPropertyCached(int16 objectIndex, int16 propertyId, int16 &propertyFlag);
virtual const char *getString(uint16 offset) = 0;
virtual bool getSavegameDescription(const char *filename, Common::String &description, int16 version) = 0;
virtual int16 savegame(const char *filename, const char *description, int16 version) = 0;
@@ -152,8 +154,10 @@ public:
void dumpObject(int16 index);
protected:
+ typedef Common::HashMap<uint32, int16*> ObjectPropertyCacheMap;
MadeEngine *_vm;
Common::Array<Object*> _objects;
+ ObjectPropertyCacheMap _objectPropertyCache;
byte *_gameState;
uint32 _gameStateSize;
int16 _mainCodeObjectIndex;