Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10545 in orxonox.OLD for trunk/src


Ignore:
Timestamp:
Jan 31, 2007, 5:39:05 AM (18 years ago)
Author:
marcscha
Message:

pirate explosion fix

Location:
trunk/src/world_entities
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/npcs/npc.cc

    r10542 r10545  
    7373                        ->addMethod("setAI", Executor1<NPC, lua_State*, bool>(&NPC::setAI))
    7474                        ->addMethod("setVisibility", Executor1<WorldEntity, lua_State*, bool>(&WorldEntity::setVisibility))
    75                         ->addMethod("destroy", Executor0<NPC, lua_State*/*, WorldEntity**/>(&NPC::destroy))
     75                        ->addMethod("destroy", Executor0<NPC, lua_State*/*, WorldEntity**/>(&NPC::destroyThis))
    7676                       );
    7777
     
    8181  this->registerObject(this, NPC::_objectList);
    8282
    83   this->toList(OM_GROUP_01);
     83  this->toList(OM_GROUP_00);
    8484  this->bAIEnabled = false;
    8585
     
    262262}
    263263
    264 void NPC::destroy( /*WorldEntity* killer*/ )
     264void NPC::destroy( WorldEntity* killer )
    265265{
    266266
     
    314314  //}
    315315
     316  this->toList(OM_NULL);
     317  this->setAI( false);
     318  this->setAbsCoor(-10000,-10000,-10000);
     319 
     320
    316321}
    317322
     
    430435void NPC::hit( float damage, WorldEntity* killer)
    431436{
     437  this->destroy( killer);
    432438  this->setDamage(killer->getDamage());
    433439}
  • trunk/src/world_entities/npcs/npc.h

    r10539 r10545  
    3535  void setAI(bool activate);
    3636  inline void enableAI(int flag) { this->bAIEnabled = (bool)flag; }
    37   void destroy( /*WorldEntity* killer*/ );
     37  void destroy( WorldEntity* killer );
    3838
    3939  void hit( float damage, WorldEntity* killer);
     40
     41  inline void destroyThis() { this->destroy(NULL);};
    4042
    4143private:
  • trunk/src/world_entities/projectiles/hbolt.cc

    r10511 r10545  
    2020#include "state.h"
    2121#include "model.h"
     22#include "world_entities/npcs/npc.h"
    2223
    2324#include "particles/dot_emitter.h"
     
    147148  this->angle += this->rotationSpeed * dt;
    148149
    149   for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
     150  for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
    150151  {
    151     if( ((*eIterator)->getOMListNumber() != (this->origList -1))   && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
     152    if( ((*eIterator)->getOMListNumber() != (this->origList -1))  && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
    152153    {
    153       (*eIterator)->hit (this->getDamage(),this);
     154      (*eIterator)->destroy(this); //hit (this->getDamage(),this);
    154155      this->deactivate();
    155156  PRINTF(0)("HBolt destroyed\n");
  • trunk/src/world_entities/projectiles/lbolt.cc

    r10511 r10545  
    2222#include "state.h"
    2323#include "model.h"
     24
     25#include "world_entities/npcs/npc.h"
    2426
    2527#include "particles/dot_emitter.h"
     
    148150  angle += rotationSpeed * dt;
    149151
    150   for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
     152  for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
    151153  {
    152     if( ((*eIterator)->getOMListNumber() != (this->origList -1))   && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
     154    if( ((*eIterator)->getOMListNumber() != (this->origList -1))  && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
    153155    {
    154       (*eIterator)->hit (this->getDamage(),this);
     156      (*eIterator)->destroy(this); //hit (this->getDamage(),this);
    155157      this->deactivate();
    156158  PRINTF(0)("LBolt destroyed\n");
  • trunk/src/world_entities/projectiles/mbolt.cc

    r10420 r10545  
    2222#include "state.h"
    2323#include "model.h"
     24
     25#include "world_entities/npcs/npc.h"
    2426
    2527#include "particles/dot_emitter.h"
     
    176178  this->trail->tick(dt);
    177179
    178   for( ObjectList<Playable>::const_iterator eIterator = Playable::objectList().begin(); eIterator !=Playable::objectList().end(); eIterator++)
     180  for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
    179181  {
    180182    if( ((*eIterator)->getOMListNumber() != (this->origList -1))  && ((*eIterator)->getAbsCoor() - this->getAbsCoor()).len() <= 8)
    181183    {
    182       (*eIterator)->hit (this->getDamage(),this);
     184      (*eIterator)->destroy(this); //hit (this->getDamage(),this);
    183185      this->deactivate();
    184186      PRINTF(0)("MBolt destroyed\n");
  • trunk/src/world_entities/projectiles/swarm_projectile.cc

    r10539 r10545  
    224224  this->curDir = this->velocity;
    225225
    226   if( this->target != NULL && (this->getAbsCoor() - this->target->getAbsCoor()).len() < 3)   // FIXME  Temp fake workaround for collision :)
     226  if( this->target != NULL && (this->getAbsCoor() - this->target->getAbsCoor()).len() < 3)   // HACK  Temp fake workaround for collision :)
    227227  {
    228228    dynamic_cast<WorldEntity*>(target)->destroy(this); //hit(this->getDamage(), this);
  • trunk/src/world_entities/weapons/swarm_launcher.cc

    r10539 r10545  
    156156  bool fired  = false;
    157157
    158   PRINTF(0)("fire\n");
    159158  Projectile* pj = NULL;
    160159  for( ObjectList<NPC>::const_iterator eIterator = NPC::objectList().begin(); eIterator !=NPC::objectList().end(); eIterator++)
Note: See TracChangeset for help on using the changeset viewer.