home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / XenonSource.exe / xenon / includes / asteroid.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-08-03  |  3.0 KB  |  124 lines

  1. //-------------------------------------------------------------
  2. //
  3. // Class:    CAsteroid
  4. //
  5. // Author:    John M Phillips
  6. //
  7. // Started:    06/05/00
  8. //
  9. // Base:    CAlien
  10. //
  11. // Derived:    CSmallAsteroid
  12. //            CMediumAsteroid
  13. //            CBigAsteroid
  14. //
  15. //-------------------------------------------------------------
  16.  
  17. #ifndef _INCLUDE_ASTEROID_H
  18. #define _INCLUDE_ASTEROID_H
  19.  
  20. #include "alien.h"
  21.  
  22. //-------------------------------------------------------------
  23.  
  24. class CAsteroid : public CAlien
  25. {
  26.     private:
  27.         int m_score_multiplier;
  28.  
  29.     public:
  30.         CAsteroid();
  31.         virtual ~CAsteroid();
  32.  
  33.         bool activate();
  34.  
  35.         bool update(Controls *controls);
  36.  
  37.         virtual void fragment() = 0;
  38. };
  39.  
  40. //-------------------------------------------------------------
  41.  
  42. class CSmallStandardAsteroid : public CAsteroid
  43. {
  44.     public:
  45.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_SMALL_STANDARD_ASTEROID]; };
  46.         void fragment();
  47. };
  48.  
  49. //-------------------------------------------------------------
  50.  
  51. class CSmallHighDensityAsteroid : public CAsteroid
  52. {
  53.     public:
  54.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_SMALL_HIGHDENSITY_ASTEROID]; };
  55.         void fragment();
  56. };
  57.  
  58. //-------------------------------------------------------------
  59.  
  60. class CSmallIndestructibleAsteroid : public CAsteroid
  61. {
  62.     public:
  63.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_SMALL_INDESTRUCTIBLE_ASTEROID]; };
  64.         void fragment();
  65. };
  66.  
  67. //-------------------------------------------------------------
  68.  
  69. class CMediumStandardAsteroid : public CAsteroid
  70. {
  71.     public:
  72.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_MEDIUM_STANDARD_ASTEROID]; };
  73.         void fragment();
  74. };
  75.  
  76. //-------------------------------------------------------------
  77.  
  78. class CMediumHighDensityAsteroid : public CAsteroid
  79. {
  80.     public:
  81.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_MEDIUM_HIGHDENSITY_ASTEROID]; };
  82.         void fragment();
  83. };
  84.  
  85. //-------------------------------------------------------------
  86.  
  87. class CMediumIndestructibleAsteroid : public CAsteroid
  88. {
  89.     public:
  90.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_MEDIUM_INDESTRUCTIBLE_ASTEROID]; };
  91.         void fragment();
  92. };
  93.  
  94. //-------------------------------------------------------------
  95.  
  96. class CBigStandardAsteroid : public CAsteroid
  97. {
  98.     public:
  99.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_BIG_STANDARD_ASTEROID]; };
  100.         void fragment();
  101. };
  102.  
  103. //-------------------------------------------------------------
  104.  
  105. class CBigHighDensityAsteroid : public CAsteroid
  106. {
  107.     public:
  108.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_BIG_HIGHDENSITY_ASTEROID]; };
  109.         void fragment();
  110. };
  111.  
  112. //-------------------------------------------------------------
  113.  
  114. class CBigIndestructibleAsteroid : public CAsteroid
  115. {
  116.     public:
  117.         const ActorInfo& getActorInfo() { return ActorInfoList[INFO_BIG_INDESTRUCTIBLE_ASTEROID]; };
  118.         void fragment();
  119. };
  120.  
  121. //-------------------------------------------------------------
  122.  
  123. #endif
  124.