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

  1.  
  2. #include "character.h"
  3. #include "DamageReact.h"
  4. #include "gametime.h"
  5. #include "util.h"
  6.  
  7. DamageReact::DamageReact()
  8. {
  9.     m_name      = "DamageReact"; // must match class name
  10.     m_owner     = NULL;
  11. }
  12.  
  13. void DamageReact::init   ( IEOwner * owner )
  14. {
  15.     m_owner = dynamic_cast<Character *> (owner);
  16. }
  17.  
  18. bool DamageReact::start ()
  19. {
  20.     m_state = Go;
  21.  
  22.   
  23.     const char * desc = m_owner->getDamageReact ( m_time );
  24.     printf ( "%s %s\n", m_owner->getName(), desc );
  25.  
  26.     m_clock = 0.0f;
  27.  
  28.     return false;
  29. }
  30.  
  31. bool DamageReact::update () 
  32. {
  33.     switch ( m_state )
  34.     {
  35.  
  36.     case Go:
  37.  
  38.         m_clock += GameTime::dt;
  39.  
  40.         if ( m_clock >= m_time )
  41.         {
  42.             m_state = Done;
  43.             m_owner->setDone ( true );
  44.         }
  45.         break;
  46.  
  47.     case Done:
  48.         break;
  49.  
  50.     }
  51.  
  52.     return true;
  53. }
  54.  
  55. bool DamageReact::finish ()
  56. {
  57.     return true;
  58. }
  59.  
  60. IEOwner * DamageReact::getOwner ()
  61. {
  62.     return m_owner;
  63. }
  64.  
  65. const char * DamageReact::getName()
  66. {
  67.     return m_name.c_str();
  68. }
  69.  
  70.