Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5356 in orxonox.OLD for trunk/src/world_entities/weapons


Ignore:
Timestamp:
Oct 10, 2005, 8:17:44 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: saver Weapon-Projectile-generation and Stuff

Location:
trunk/src/world_entities/weapons
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/weapons/test_gun.cc

    r5355 r5356  
    134134  this->setActionSound(WA_SHOOT, "sound/shot1.wav");
    135135
    136   this->setProjectile(CL_TEST_BULLET);
    137   this->getProjectileFactory()->prepare(20);
     136  this->setProjectileType(CL_TEST_BULLET);
     137  this->prepareProjectiles(20);
    138138}
    139139
     
    178178void TestGun::fire()
    179179{
    180   Projectile* pj =  dynamic_cast<Projectile*>(this->getProjectileFactory()->resurrect());
     180  Projectile* pj =  this->getProjectile();
     181  if (pj == NULL)
     182    return;
    181183
    182184  pj->setParent(NullParent::getInstance());
  • trunk/src/world_entities/weapons/turret.cc

    r5355 r5356  
    2828
    2929#include "factory.h"
    30 #include "fast_factory.h"
    3130
    3231CREATE_FACTORY(Turret);
     
    9392
    9493
    95   this->setProjectile(CL_TEST_BULLET);
     94  this->setProjectileType(CL_TEST_BULLET);
    9695
    9796
     
    133132void Turret::fire()
    134133{
    135   Projectile* pj =  dynamic_cast<Projectile*>(this->getProjectileFactory()->resurrect());
     134  Projectile* pj = this->getProjectile();
     135  if (pj == NULL)
     136    return;
    136137
    137138  PNode* target = this->getWeaponManager()->getFixedTarget();
  • trunk/src/world_entities/weapons/weapon.cc

    r5355 r5356  
    102102  static_cast<WorldEntity*>(this)->loadParams(root);
    103103
    104   LoadParam<Weapon>(root, "projectile", this, &Weapon::setProjectile)
     104  LoadParam<Weapon>(root, "projectile", this, &Weapon::setProjectileType)
    105105      .describe("Sets the name of the Projectile to load onto the Entity");
    106106
     
    122122 * be aware, that this function does not create Factories, as this is job of Bullet-classes.
    123123 */
    124 void Weapon::setProjectile(ClassID projectile)
     124void Weapon::setProjectileType(ClassID projectile)
    125125{
    126126  if (projectile == CL_NULL)
     
    148148 * @param projectile the Name of the Projectile.
    149149 */
    150 void Weapon::setProjectile(const char* projectile)
     150void Weapon::setProjectileType(const char* projectile)
    151151{
    152152  if (projectile == NULL)
     
    155155  if (tmpFac != NULL)
    156156  {
    157     this->setProjectile(tmpFac->getStoredID());
    158   }
    159   else
    160   {
    161     PRINTF(2)("Projectile %s does not exist for weapon %s\n", projectile, this->getName());
    162   }
    163 }
     157    this->setProjectileType(tmpFac->getStoredID());
     158  }
     159  else
     160  {
     161    PRINTF(1)("Projectile %s does not exist for weapon %s\n", projectile, this->getName());
     162  }
     163}
     164
     165/**
     166 * prepares Projectiles of the Weapon
     167 * @param count how many Projectiles to create
     168 */
     169void Weapon::prepareProjectiles(unsigned int count)
     170{
     171  if (this->projectileFactory != NULL)
     172    projectileFactory->prepare(count);
     173  else
     174    PRINTF(2)("unable to create %d projectile for Weapon %s\n", count, this->getName());
     175}
     176
     177/**
     178 * resurects and returns a Projectile
     179 * @returns a Projectile on success, NULL on error (ProjectileFastFactory not Found)
     180 */
     181Projectile* Weapon::getProjectile()
     182{
     183  if (this->projectileFactory)
     184    return dynamic_cast<Projectile*>(this->projectileFactory->resurrect());
     185  else
     186  {
     187    PRINTF(2)("No projectile defined for Weapon %s cant return any\n", this->getName());
     188    return NULL;
     189  }
     190}
     191
    164192
    165193/**
  • trunk/src/world_entities/weapons/weapon.h

    r5355 r5356  
    106106
    107107    // FUNCTIONS TO SET THE WEAPONS PROPERTIES.
    108     void setProjectile(ClassID projectile);
    109     void setProjectile(const char* projectile);
     108    void setProjectileType(ClassID projectile);
     109    void setProjectileType(const char* projectile);
    110110    /** @returns The projectile's classID */
    111     inline ClassID getProjectile() { return this->projectile; };
     111    inline ClassID getProjectileType() { return this->projectile; };
    112112    /** @returns the FastFactory, that creates Projectiles of type getProjectile */
    113113    inline FastFactory* getProjectileFactory() { return this->projectileFactory; };
     114    void prepareProjectiles(unsigned int count);
     115    Projectile* getProjectile();
    114116
    115117
Note: See TracChangeset for help on using the changeset viewer.