Adonthell
0.4
|
Base class for events. More...
#include <event.h>
Public Member Functions | |
event () | |
Constructor. More... | |
virtual | ~event () |
Destructor. More... | |
void | clear () |
Cleanup. More... | |
void | set_script (string filename, PyObject *args=NULL) |
Sets a script to be executed whenever the event occurs. More... | |
void | set_callback (PyObject *callback, PyObject *args=NULL) |
Sets a python function/method to be executed whenever the event occurs. More... | |
void | set_callback (const Functor0 &callback) |
Sets a C function/C++ method to be executed whenever the event occurs. More... | |
Member access | |
u_int8 | type () const |
Get the event's type. More... | |
const string & | id () const |
Get the event's id. More... | |
void | set_id (const string &id) |
Assign an id to the event, so it may be retrieved from an event_list later on, without having a pointer to it. More... | |
bool | registered () const |
Test whether the event is registered with the event handler. More... | |
void | set_registered (bool reg) |
Set whether the event is registered with the event handler. More... | |
void | set_list (event_list *list) |
Tell the whether it is kept in an event_list. More... | |
s_int32 | repeat () const |
Return whether this event should be repeated. More... | |
void | set_repeat (s_int32 count) |
Set whether this event should be repeated. More... | |
Event Handling | |
virtual s_int32 | execute (const event *evnt)=0 |
Execute the associated python script or callback. More... | |
virtual bool | equals (const event *evnt)=0 |
Compare two events for equality. More... | |
Pausing / Resuming execution | |
virtual void | pause () |
Disable the event temporarily. More... | |
virtual void | resume () |
Re-enable an event that has been paused. More... | |
bool | is_paused () const |
Check whether the event is temporarily disabled or not. More... | |
Loading / Saving | |
virtual void | put_state (ogzstream &out) const |
Saves the basic event data (such as the type or script data) to a file. More... | |
virtual bool | get_state (igzstream &in) |
Loads the basic event date from a file. More... | |
Protected Member Functions | |
s_int32 | do_repeat () |
Decrease the event's repeat count and return the number of repeats left. More... | |
Protected Attributes | |
Basic Event Data | |
u_int8 | Type |
Event type - see enum above. More... | |
string | Id |
(Optional) Id of the event More... | |
u_int8 | Action |
What happens if the event occurs - see enum above. More... | |
bool | Registered |
Whether the event is registered with the event handler. More... | |
bool | Paused |
Whether the event temporarily disabled or not. More... | |
s_int32 | Repeat |
Defines how often the event should be repeated. More... | |
py_object * | Script |
The Python script accociated with this event. More... | |
PyObject * | Args |
The arguments passed to the script. More... | |
py_callback * | PyFunc |
Python callback that may be executed instead of the script. More... | |
Functor0 | Callback |
C++ callback that may be executed when the event gets triggered. More... | |
event_list * | List |
The event_list this event is kept in. More... | |
Base class for events.
You can create your own event types that can be handled by the event_list and event_handler by inheriting from this class.
Events are used to notify when certain things happen during the game. They may either execute the "run" method of an exclusive python script or a simple python callback defined elsewhere.
event::event | ( | ) |
void event::clear | ( | ) |
|
inline |
|
inline |
|
inline |
Assign an id to the event, so it may be retrieved from an event_list later on, without having a pointer to it.
id | a string to identify the event. |
|
inline |
|
inline |
void event::set_list | ( | event_list * | list | ) |
|
inline |
|
inline |
Execute the associated python script or callback.
evnt | The event that triggered the execution. |
Implemented in time_event, and map_event.
|
pure virtual |
Compare two events for equality.
evnt | pointer to the event to compare with. |
Implemented in time_event, and map_event.
void event::set_script | ( | string | filename, |
PyObject * | args = NULL |
||
) |
void event::set_callback | ( | PyObject * | callback, |
PyObject * | args = NULL |
||
) |
Sets a python function/method to be executed whenever the event occurs.
callback | The function or method to call. |
args | Additional arguments to pass to the callback. |
void event::set_callback | ( | const Functor0 & | callback | ) |
|
virtual |
Disable the event temporarily.
As long as it in this state, the event will neither be executed, nor will its repeat-count change. As long as the event is paused, it will be removed from its event handler.
Reimplemented in time_event.
|
virtual |
Re-enable an event that has been paused.
Re-registers it with its event handler.
Reimplemented in time_event.
|
inline |
|
virtual |
Saves the basic event data (such as the type or script data) to a file.
Call this method from the derived class.
out | file where to save the event. |
Reimplemented in time_event, and map_event.
|
virtual |
Loads the basic event date from a file.
Call this method from the derived class.
in | file to load the event from. |
Reimplemented in time_event, and map_event.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
The event_list this event is kept in.