home *** CD-ROM | disk | FTP | other *** search
/ AI Game Programming Wisdom / AIGameProgrammingWisdom.iso / SourceCode / 06 General Architectures / 04 Christian / caught.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-10-10  |  983 b   |  59 lines

  1.  
  2. #include "character.h"
  3. #include "Caught.h"
  4. #include "gametime.h"
  5. #include "util.h"
  6.  
  7. Caught::Caught()
  8. {
  9.     m_name      = "Caught";
  10.     m_owner     = NULL;
  11. }
  12.  
  13. void Caught::init   ( IEOwner * owner )
  14. {
  15.     m_owner = dynamic_cast<Character *> (owner);
  16. }
  17.  
  18.  
  19. bool Caught::update () 
  20. {
  21.     Character * enemy = m_owner->getEnemy();
  22.  
  23.     if ( enemy )
  24.     {
  25.         // get enemy position
  26.         int ex, ey;
  27.         enemy->getPos ( ex, ey );
  28.  
  29.         // get our position
  30.         int ox, oy;
  31.         m_owner->getPos ( ox, oy );
  32.  
  33.         if ( ex == ox && ey == oy )
  34.         {
  35.             if ( ! m_owner->beingChased() )
  36.             {
  37.                 printf ( "%s catches %s\n", m_owner->getName(), 
  38.                     enemy->getName() );
  39.             }
  40.  
  41.             return true;
  42.         }
  43.     }
  44.  
  45.     return false;
  46. }
  47.  
  48.  
  49. IEOwner * Caught::getOwner ()
  50. {
  51.     return m_owner;
  52. }
  53.  
  54. const char * Caught::getName()
  55. {
  56.     return m_name.c_str();
  57. }
  58.  
  59.