diff options
author | Benjamin Haisch | 2009-11-23 15:31:58 +0000 |
---|---|---|
committer | Benjamin Haisch | 2009-11-23 15:31:58 +0000 |
commit | ecbd0a0d539c7a0119b0cadef79527960ac22225 (patch) | |
tree | 4587f4eafa747d13d8e89e89bbddab9f750c4636 /engines/made/database.h | |
parent | 95d4c62efbf7b083716d1d2c4a0870eb58dcbc74 (diff) | |
download | scummvm-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.h | 4 |
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; |