aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/script.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/m4/script.h')
-rw-r--r--engines/m4/script.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/engines/m4/script.h b/engines/m4/script.h
index 63dc32958b..2cb2219b8d 100644
--- a/engines/m4/script.h
+++ b/engines/m4/script.h
@@ -120,8 +120,7 @@ public:
clear();
}
template<class T>
- T *load(Common::File *fd, uint32 ofs) {
- T *item;
+ void load(Common::File *fd, uint32 ofs, T *&item) {
if (_cache.contains(ofs)) {
item = (T*)(_cache[ofs]);
} else {
@@ -130,7 +129,6 @@ public:
item->load(fd);
_cache[ofs] = item;
}
- return item;
}
void clear() {
// TODO: Free all cached items
@@ -300,7 +298,8 @@ public:
const T& toData(const ScriptValue &value) {
printf("ScriptInterpreter::toData() index = %d; type = %d; max = %d\n", value.value, _data[value.value]->type, _data.size());
assert((uint32)value.value < _data.size());
- T *result = _dataCache->load<T>(_scriptFile, _data[value.value]->offset);
+ T *result = 0;
+ _dataCache->load(_scriptFile, _data[value.value]->offset, result);
return *result;
}