Allow updating argument values between handler calls.

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.
This commit is contained in:
Patman64
2015-01-04 21:38:18 -05:00
parent 717d1b698d
commit 4349a80d8e
2 changed files with 51 additions and 3 deletions

View File

@@ -111,8 +111,9 @@ private:
// Some helpers for hooks to call event handlers.
template<typename T> int SetupStack(EventBind<T>* event_bindings, EntryBind<T>* entry_bindings, T event_id, uint32 entry, int number_of_arguments);
int CallOneFunction(int number_of_functions, int number_of_arguments, int number_of_results);
void CleanUpStack(int number_of_arguments);
template<typename T> void ReplaceArgument(T value, uint8 index, uint8 number_of_arguments, uint8 number_of_results, uint8 remaining_functions);
int CallOneFunction(int number_of_functions, int number_of_arguments, int number_of_results);
template<typename T> void CallAllFunctions(EventBind<T>* event_bindings, EntryBind<T>* entry_bindings, T event_id, uint32 entry);
template<typename T> bool CallAllFunctionsBool(EventBind<T>* event_bindings, EntryBind<T>* entry_bindings, T event_id, uint32 entry, bool default_value);