#define EV_NO_ARGS(i, o)
+#pragma noref 1
string ret_string;
+#define MUTATOR_TYPES(_, x) \
+ _(x, bool) \
+ _(x, int) \
+ _(x, entity) \
+ _(x, float) \
+ _(x, vector) \
+ _(x, string) \
+ /**/
+
+#define MUTATOR_ARGV(x, type) MUTATOR_ARGV_##x##_##type
+#define MUTATOR_NEWGLOBAL(x, type) type MUTATOR_ARGV(x, type);
+
+MUTATOR_TYPES(MUTATOR_NEWGLOBAL, 0)
+MUTATOR_TYPES(MUTATOR_NEWGLOBAL, 1)
+MUTATOR_TYPES(MUTATOR_NEWGLOBAL, 2)
+
+#undef MUTATOR_TYPES
+#undef MUTATOR_NEWGLOBAL
+
+#pragma noref 0
+
/** appends ":mutatorname" to ret_string for logging */
#define EV_BuildMutatorsString(i, o) \
/**/ i(string, ret_string) \
/**/
MUTATOR_HOOKABLE(BuildMutatorsPrettyString, EV_BuildMutatorsPrettyString);
+/** appends mutator string for displaying extra gameplay tips */
+#define EV_BuildGameplayTipsString(i, o) \
+ /**/ i(string, ret_string) \
+ /**/ o(string, ret_string) \
+ /**/
+MUTATOR_HOOKABLE(BuildGameplayTipsString, EV_BuildGameplayTipsString);
+
#endif