Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 25, 2009, 5:54:42 PM (15 years ago)
Author:
Aurelian
Message:

Final commit of gametype asteroids for presentation. everything working. New gadget: Radar displays the next checkpoint to reach!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc

    r3033 r3064  
    3838namespace orxonox
    3939{
    40   CreateFactory(CheckPoint);
     40    CreateFactory(CheckPoint);
    4141
    42   CheckPoint::CheckPoint(BaseObject* creator) : DistanceTrigger(creator)
    43   {
    44     RegisterObject(CheckPoint);
     42    CheckPoint::CheckPoint(BaseObject* creator) : DistanceTrigger(creator)
     43    {
     44        RegisterObject(CheckPoint);
    4545
    46     this->setStayActive(true);
    47     this->setDistance(50);
    48     this->bIsFirst_ = false;
    49     this->bIsDestination_ = false;
    50     //this->setVisible(true);
     46        this->setStayActive(true);
     47        this->setDistance(50);
     48        this->bIsFirst_ = false;
     49        this->bIsDestination_ = false;
    5150
    52     this->notifyMaskUpdate();
    53   }
     51        this->setRadarObjectColour(ColourValue::Green);
     52        this->setRadarObjectShape(RadarViewable::Dot);
     53        this->setRadarVisibility(false);
    5454
    55   CheckPoint::~CheckPoint()
    56   {
    57   }
     55        this->notifyMaskUpdate();
     56    }
    5857
    59   void CheckPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
    60   {
    61     SUPER(CheckPoint, XMLPort, xmlelement, mode);
     58    CheckPoint::~CheckPoint()
     59    {
     60    }
    6261
    63     XMLPortParam(CheckPoint, "isfirst", setFirst, getFirst, xmlelement, mode).defaultValues(false);
    64     XMLPortParam(CheckPoint, "isdestination", setDestination, getDestination, xmlelement, mode).defaultValues(false);
    65     XMLPortParam(CheckPoint, "addtime", setAddTime, getAddTime, xmlelement, mode).defaultValues(30);
    66   }
     62    void CheckPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
     63    {
     64        SUPER(CheckPoint, XMLPort, xmlelement, mode);
    6765
    68   void CheckPoint::triggered(bool bIsTriggered)
    69   {
    70     DistanceTrigger::triggered(bIsTriggered);
     66        XMLPortParam(CheckPoint, "isfirst", setFirst, getFirst, xmlelement, mode).defaultValues(false);
     67        XMLPortParam(CheckPoint, "isdestination", setDestination, getDestination, xmlelement, mode).defaultValues(false);
     68        XMLPortParam(CheckPoint, "addtime", setAddTime, getAddTime, xmlelement, mode).defaultValues(30);
     69    }
    7170
    72     Asteroids* gametype = dynamic_cast<Asteroids*>(this->getGametype());
    73     if (gametype)
     71    void CheckPoint::changedActivity()
    7472    {
    75         gametype->addTime(addTime_);
     73        SUPER(CheckPoint, changedActivity);
     74       
     75        if (this->BaseObject::isActive())
     76        {
     77COUT(0) << "active " << this << std::endl;
     78            this->setRadarVisibility(true);
     79        }
     80        else
     81        {
     82COUT(0) << "inactive " << this << std::endl;
     83            this->setRadarVisibility(false);
     84        }
     85    }
    7686
    77         if (bIsTriggered && bIsFirst_)
     87    void CheckPoint::triggered(bool bIsTriggered)
     88    {
     89        DistanceTrigger::triggered(bIsTriggered);
     90
     91        Asteroids* gametype = dynamic_cast<Asteroids*>(this->getGametype());
     92        if (gametype)
    7893        {
    79             gametype->setTimeLimit(addTime_);
    80             gametype->firstCheckpointReached(true);
     94            gametype->addTime(addTime_);
     95            this->setRadarVisibility(false);
     96
     97            if (bIsTriggered && bIsFirst_)
     98            {
     99                gametype->setTimeLimit(addTime_);
     100                gametype->firstCheckpointReached(true);
     101            }
     102
     103            if (bIsTriggered && bIsDestination_)
     104            {
     105                gametype->end();
     106            }
    81107        }
     108    }
    82109
    83         if (bIsTriggered && bIsDestination_)
    84         {
    85             gametype->end();
    86         }
    87      }
    88   }
    89 
    90   void CheckPoint::notifyMaskUpdate()
    91   {
    92       this->targetMask_.exclude(Class(BaseObject));
    93       this->targetMask_.include(Class(Pawn));
    94   }
     110    void CheckPoint::notifyMaskUpdate()
     111    {
     112        this->targetMask_.exclude(Class(BaseObject));
     113        this->targetMask_.include(Class(Pawn));
     114    }
    95115}
Note: See TracChangeset for help on using the changeset viewer.