aboutsummaryrefslogtreecommitdiff
path: root/engines/lab/resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lab/resource.cpp')
-rw-r--r--engines/lab/resource.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp
index a679899acc..311f04659c 100644
--- a/engines/lab/resource.cpp
+++ b/engines/lab/resource.cpp
@@ -264,12 +264,12 @@ RuleList *Resource::readRule(Common::File *file) {
c = file->readByte();
if (c == 1) {
- Rule *rule = new Rule();
- rule->_ruleType = file->readSint16LE();
- rule->_param1 = file->readSint16LE();
- rule->_param2 = file->readSint16LE();
- rule->_condition = readConditions(file);
- rule->_actionList = readAction(file);
+ Rule rule;
+ rule._ruleType = file->readSint16LE();
+ rule._param1 = file->readSint16LE();
+ rule._param2 = file->readSint16LE();
+ rule._condition = readConditions(file);
+ rule._actionList = readAction(file);
rules->push_back(rule);
}
} while (c == 1);
@@ -282,9 +282,8 @@ void Resource::freeRule(RuleList *ruleList) {
return;
for (RuleList::iterator rule = ruleList->begin(); rule != ruleList->end(); ++rule) {
- freeAction((*rule)->_actionList);
- delete[](*rule)->_condition;
- delete *rule;
+ freeAction(rule->_actionList);
+ delete[] rule->_condition;
}
delete ruleList;