- if (actions_act_is_interactive(act) &&
- (!interactive_act || interactive_act->def != act->def))
- {
- ok = actions_interactive_begin_act(act, state);
+ /* if they have the same run function, then we'll assume they are
+ cooperating and not cancel eachother out */
+ if (!interactive_act || interactive_act->def->run != act->def->run) {
+ if (actions_act_is_interactive(act)) {
+ /* cancel the old one */
+ if (interactive_act)
+ actions_interactive_cancel_act();
+ ok = actions_interactive_begin_act(act, state);
+ }