home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / XenonSource.exe / xenon / source / homer.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-07-19  |  1.4 KB  |  79 lines

  1. //-------------------------------------------------------------
  2. //
  3. // Class:    CHomer
  4. //
  5. // Author:    John M Phillips
  6. //
  7. // Started:    06/05/00
  8. //
  9. // Base:    CAlien
  10. //
  11. // Derived:    None
  12. //
  13. //-------------------------------------------------------------
  14.  
  15. #include "game.h"
  16.  
  17. //-------------------------------------------------------------
  18.  
  19. CHomer::CHomer()
  20. {
  21. }
  22.  
  23. //-------------------------------------------------------------
  24.  
  25. CHomer::~CHomer()
  26. {
  27. }
  28.  
  29. //-------------------------------------------------------------
  30.  
  31. bool CHomer::activate()
  32. {
  33.     if (!isActive())
  34.         m_timer.start();
  35.  
  36.     return CActor::activate();
  37. }
  38.  
  39. //-------------------------------------------------------------
  40.  
  41. bool CHomer::update(Controls *controls)
  42. {
  43.     if (m_shield == 0) {
  44.  
  45.         CHomerProjectileWeapon *weapon = new CHomerProjectileWeapon;
  46.         m_scene->addActor(weapon);
  47.         weapon->activate();
  48.         weapon->setOwner(this);
  49.         weapon->setOffset(gsCVector(0.f,0.f));
  50.         weapon->detonate();
  51.  
  52.         explode();
  53.         kill();
  54.         return true;
  55.         }
  56.  
  57.     CShip *ship = m_scene->findShip();
  58.  
  59.     float dx = 0.f;
  60.  
  61.     if (ship)
  62.         dx = ship->getPosition().getX() - m_position.getX();
  63.  
  64.     dx *= HOMER_XSPEED_SCALE;
  65.  
  66.     if (dx < -HOMER_MAX_XSPEED)
  67.         dx = -HOMER_MAX_XSPEED;
  68.     if (dx > HOMER_MAX_XSPEED)
  69.         dx = HOMER_MAX_XSPEED;
  70.  
  71.     m_position += gsCVector(dx,m_velocity.getY());;
  72.  
  73.     animate(ANIMATE_LOOP);
  74.     
  75.     return true;
  76. }
  77.  
  78. //-------------------------------------------------------------
  79.