Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jan 24, 2006, 10:56:46 PM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: WeaponManager seems to work, better than before.

File:
1 edited

Legend:

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

    r6677 r6679  
    203203}
    204204
    205 
    206 bool WeaponManager::addWeapon(Weapon* weapon)
    207 {
    208   int weaponConf = this->currentConfigID;
    209   int slot = this->getNextFreeSlot(weaponConf, weapon->getCapability());
    210   if (slot  != -1 )
    211   {
    212     return this->addWeapon(weapon, weaponConf, slot);
    213   }
    214   else
    215   {
    216     return this->addWeapon(weapon, -1, -1);
    217   }
    218 }
    219205
    220206/**
     
    231217bool WeaponManager::addWeapon(Weapon* weapon, int configID, int slotID)
    232218{
     219  assert(weapon != NULL);
     220
    233221  if (unlikely(configID >= WM_MAX_CONFIGS || slotID >= (int)this->slotCount))
    234222  {
    235     PRINTF(2)("Slot %d of config %d is not availiabe (max: %d)\n", slotID, configID, this->slotCount);
    236     return false;
     223    PRINTF(2)("Slot %d of config %d is not availiabe (max: %d) searching for suitable slot\n", slotID, configID, this->slotCount);
     224    if (configID >= WM_MAX_CONFIGS)
     225      configID = -1;
     226    if (slotID >= (int)this->slotCount)
     227      slotID = -1;
     228  }
     229  // if no ConfigID is supplied set to Current Config.
     230  if (configID <= -1)
     231    configID = this->currentConfigID;
     232  //
     233  if (configID > -1 && slotID == -1)
     234  {
     235    slotID = this->getNextFreeSlot(configID, weapon->getCapability());
     236    if (slotID == -1)
     237      configID = -1;
    237238  }
    238239
Note: See TracChangeset for help on using the changeset viewer.