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

  1. //-------------------------------------------------------------
  2. //
  3. // Class:    CHomerProjectileWeapon
  4. //
  5. // Author:    John M Phillips
  6. //
  7. // Started:    06/05/00
  8. //
  9. // Base:    CWeapon
  10. //
  11. // Derived:    None
  12. //
  13. //-------------------------------------------------------------
  14.  
  15. #include "game.h"
  16.  
  17. //-------------------------------------------------------------
  18.  
  19. CHomerProjectileWeapon::CHomerProjectileWeapon()
  20. {
  21.     m_trigger = false;
  22. }
  23.  
  24. //-------------------------------------------------------------
  25.  
  26. CHomerProjectileWeapon::~CHomerProjectileWeapon()
  27. {
  28. //    CWeapon::~CWeapon();
  29. }
  30.  
  31. //-------------------------------------------------------------
  32.  
  33. bool CHomerProjectileWeapon::fire()
  34. {
  35.     if (!m_trigger)
  36.         return false;    
  37.  
  38.     static gsCVector direction[8] = {
  39.         gsCVector( 0.f,-1.f),
  40.         gsCVector( 1.f,-1.f),
  41.         gsCVector( 1.f, 0.f),
  42.         gsCVector( 1.f, 1.f),
  43.         gsCVector( 0.f, 1.f),
  44.         gsCVector(-1.f, 1.f),
  45.         gsCVector(-1.f, 0.f),
  46.         gsCVector(-1.f,-1.f)
  47.     };
  48.  
  49.     // fire 8 projectiles
  50.  
  51.     CHomerProjectile *hp;
  52.  
  53.     for (int i = 0; i < 8; i++) {
  54.         hp = new CHomerProjectile;
  55.         m_scene->addActor(hp);
  56.         hp->activate();
  57.         hp->setGrade((BulletGrade) m_grade);
  58.         hp->setPosition(getPosition());
  59.  
  60.         gsCVector d = direction[i];
  61.         d.normalize();
  62.  
  63.         hp->setVelocity(d * hp->getActorInfo().m_speed[m_grade]);
  64.         }
  65.  
  66.     // now kill ourself
  67.  
  68.     kill();
  69.  
  70.     return true;
  71. }
  72.  
  73. //-------------------------------------------------------------
  74.  
  75. void CHomerProjectileWeapon::detonate()
  76. {
  77.     m_trigger = true;
  78. }
  79.  
  80. //-------------------------------------------------------------
  81.