Browse Source

Fix crash caused by FuzzyLite destructor

Dydzio 6 years ago
parent
commit
55b000fb64
2 changed files with 4 additions and 3 deletions
  1. 3 2
      AI/VCAI/FuzzyEngines.cpp
  2. 1 1
      AI/VCAI/FuzzyEngines.h

+ 3 - 2
AI/VCAI/FuzzyEngines.cpp

@@ -23,7 +23,8 @@ extern FuzzyHelper * fh;
 
 engineBase::engineBase()
 {
-	engine.addRuleBlock(&rules);
+	rules = new fl::RuleBlock();
+	engine.addRuleBlock(rules);
 }
 
 void engineBase::configure()
@@ -34,7 +35,7 @@ void engineBase::configure()
 
 void engineBase::addRule(const std::string & txt)
 {
-	rules.addRule(fl::Rule::parse(txt, &engine));
+	rules->addRule(fl::Rule::parse(txt, &engine));
 }
 
 struct armyStructure

+ 1 - 1
AI/VCAI/FuzzyEngines.h

@@ -17,7 +17,7 @@ class engineBase //subclasses create fuzzylite variables with "new" that are not
 {
 protected:
 	fl::Engine engine;
-	fl::RuleBlock rules;
+	fl::RuleBlock * rules;
 	virtual void configure();
 	void addRule(const std::string & txt);
 public: