home *** CD-ROM | disk | FTP | other *** search
/ AI Game Programming Wisdom / AIGameProgrammingWisdom.iso / SourceCode / 06 General Architectures / 04 Christian / iegoal.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-16  |  1.3 KB  |  93 lines

  1.  
  2. #include "iegoal.h"
  3. #include "ieexec.h"
  4. #include "ierule.h"
  5.  
  6. IEGoal::IEGoal  ( IEExec * goalExec )
  7. {
  8.     m_goalExec = goalExec;
  9.     m_name     = goalExec->getName();
  10.     m_start    = true;
  11.     m_finish   = false;
  12. }
  13.  
  14. IEGoal::~IEGoal ()
  15. {
  16.     destroyRules();
  17. }
  18.  
  19. void IEGoal::addRule ( IERule * rule )
  20. {
  21.     // add new rule
  22.     m_rules.push_back ( rule );
  23. }
  24.  
  25. void IEGoal::setStart ( bool start )
  26. {
  27.     m_start = start;
  28. }
  29.  
  30. bool IEGoal::atStart ()
  31. {
  32.     return m_start;
  33. }
  34.  
  35. bool IEGoal::start ()
  36. {
  37.     return m_goalExec->start();
  38. }
  39.  
  40. void IEGoal::setFinish ( bool finish )
  41. {
  42.     m_finish = finish;;
  43. }
  44.  
  45. bool IEGoal::atFinish ()
  46. {
  47.     return m_finish;
  48. }
  49.  
  50. bool IEGoal::finish ()
  51. {
  52.     return m_goalExec->finish();
  53. }
  54.  
  55. void IEGoal::reset ()
  56. {
  57.     m_start  = true;
  58.     m_finish = false;
  59.  
  60.     m_goalExec->reset();
  61. }
  62.  
  63. void IEGoal::destroyRules ()
  64. {
  65.     m_rules.clear();
  66. }
  67.  
  68. bool IEGoal::update ()
  69. {
  70.     return m_goalExec->update();
  71. }
  72.  
  73. const char * IEGoal::getName ()
  74. {
  75.     return m_name.c_str();
  76. }
  77.  
  78. void IEGoal::resetFiredRules ()
  79. {
  80.     std::list<IERule *>::iterator ruleItr;
  81.  
  82.     IERule * rule;
  83.  
  84.     ruleItr = m_rules.begin();
  85.  
  86.     while ( ruleItr != m_rules.end() )
  87.     {            
  88.         rule = *ruleItr++;
  89.  
  90.         rule->m_fired = false;
  91.     }
  92.  
  93. }