Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 30, 2008, 11:58:31 PM (16 years ago)
Author:
landauf
Message:

fixed a bug in the event system
fixed a bug in Trigger and tweaked some features

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchy/src/core/Event.h

    r2065 r2069  
    4848        public:
    4949            EventContainer(const std::string& eventname, Executor* eventfunction, Identifier* subclass) : eventname_(eventname), eventfunction_(eventfunction), subclass_(subclass), activeEvents_(0) {}
    50             ~EventContainer();
     50            virtual ~EventContainer();
    5151
    52             void process(BaseObject* object, const Event& event);
     52            virtual void process(void* object, const Event& event);
    5353
    5454        private:
     
    5959            int activeEvents_;
    6060    };
     61
     62    template <class T>
     63    class ClassEventContainer : public EventContainer
     64    {
     65        public:
     66            ClassEventContainer(const std::string& eventname, ExecutorMember<T>* eventfunction, Identifier* subclass) : EventContainer(eventname, (Executor*)eventfunction, subclass), eventfunction_(eventfunction) {}
     67
     68            void process(void* object, const Event& event)
     69            {
     70                this->eventfunction_->setObject((T*)object);
     71                EventContainer::process(object, event);
     72            }
     73
     74        private:
     75            ExecutorMember<T>* eventfunction_;
     76    };
    6177}
    6278
Note: See TracChangeset for help on using the changeset viewer.