It's now possible to have complete flexibility with cancelling bindings,
i.e. it's possible to re-implement all of the other ways to cancel bindings
using the callback.
This sytem has been designed with complete safety in mind:
- It is safe to call the callback more than once (does nothing after the
first call).
- The callback does not expire, and can be stored for as long as
necessary.
- If a callback is returned, there is no other way to cancel the binding
(again, due to safety).
Because GUIDs are, in fact, not globally unique on mangos, the actual
unique identifier is the GUID/instance ID pair of the Creature.
On Trinity Creatures in instances are assigned new GUIDs. This means that
the instance ID part is redundant but must be used anyway for consistency.
It was previously unsafe to reload Eluna because it had to be reloaded
with the mutex unlocked. This is because the mutex's lifespan was shorter
than the Eluna instance it was guarding.
This allows handlers that return values to see the returned values of previous
handlers. E.g. if Handler A modifies the value from 10 to 20, Handler B
will receive 20 as an argument instead of the original 10.
* Attempt fix VS 2010 pow error
* Tweak the doc parser a little to work with variable arugments ... and show
enum names and similar.
* Change push and check to work with more types like size and time (fix osx)
* Add errors to using not implemented operations on eluna objects
* Change some SQL comments to work with documentation better
* Add functions to create uint64 and int64 values (may need rename)
* Change doc generation documentation a little to make it clearer how proto is used
This allows you to register a handler to only fire N times.
Dynamic event handler binding/unbinding is now possible.
For backwards compatibility, if the number of shots is missing, the event
handler will never be removed from the event.
All AI event handlers (except OnReset) can now override the default AI
behavior on both mangos and Trinity by returning true.
For default behavior, return false or nothing.
Fixes#124.