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

  1. //-------------------------------------------------------------
  2. //
  3. // Class:    CMissileWeapon
  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. CMissileWeapon::CMissileWeapon()
  20. {
  21. }
  22.  
  23. //-------------------------------------------------------------
  24.  
  25. CMissileWeapon::~CMissileWeapon()
  26. {
  27. //    CWeapon::~CWeapon();
  28. }
  29.  
  30. //-------------------------------------------------------------
  31.  
  32. bool CMissileWeapon::fire()
  33. {
  34.     if (!isValidFiringPosition())
  35.         return false;    
  36.  
  37.     CMissile *m = new CMissile;
  38.     m_scene->addActor(m);
  39.  
  40.     m->activate();
  41.     m->setGrade((BulletGrade) m_grade);
  42.  
  43.     switch (m_direction) {
  44.         case WEAPON_FORWARD:
  45.             m->setPosition(getPosition() - gsCVector(0.f,24.f));
  46.             m->setVelocity(gsCVector(0.f,-m->getActorInfo().m_speed[m_grade]));
  47.             break;
  48.         case WEAPON_REVERSE:
  49.             m->setPosition(getPosition() + gsCVector(0.f,24.f));
  50.             m->setVelocity(gsCVector(0.f,m->getActorInfo().m_speed[m_grade]));
  51.             break;
  52.         }
  53.  
  54.     if (getOwner() && getOwner()->getActorInfo().m_type == ACTOR_TYPE_SHIP)
  55.         CGameState::playSample(SAMPLE_FIRE_MISSILE,getPosition().getX());
  56.  
  57.     return true;
  58. }
  59.  
  60. //-------------------------------------------------------------
  61.