SimulationCraft
SimulationCraft is a tool to explore combat mechanics in the popular MMO RPG World of Warcraft (tm).
|
Public Member Functions | |
event_t (sim_t &s, actor_t *a=nullptr) | |
event_t (actor_t &a) | |
event_t (sim_t &s, timespan_t delta_time) | |
event_t (actor_t &a, timespan_t delta_time) | |
timespan_t | occurs () const |
timespan_t | remains () const |
void | schedule (timespan_t delta_time) |
Schedule event on the event manager. | |
void | reschedule (timespan_t delta_time) |
sim_t & | sim () |
const sim_t & | sim () const |
rng::rng_t & | rng () |
virtual void | execute ()=0 |
virtual const char * | name () const |
Static Public Member Functions | |
template<class T > | |
static void | cancel (T &e) |
static void | cancel (event_t *&e) |
Public Attributes | |
sim_t & | _sim |
event_t * | next |
timespan_t | time |
timespan_t | reschedule_time |
unsigned | id |
bool | canceled |
bool | recycled |
bool | scheduled |
Static Protected Member Functions | |
static void * | operator new (std::size_t size, sim_t &sim) |
Placement-new operator for creating events. Do not use in user-code. | |
static void | operator delete (void *, sim_t &) |
static void | operator delete (void *) |
static void * | operator new (std::size_t)=delete |
Friends | |
void | sc_format_to (const event_t &, fmt::format_context::iterator) |
template<typename Event , typename... Args> | |
Event * | make_event (sim_t &sim, Args &&... args) |
Creates a event. More... | |
|
friend |
Creates a event.
This function should be used as the one and only way to create new events. It is used to hide internal placement-new mechanism for efficient event allocation, and also makes sure that any event created is properly added to the event manager (scheduled).