Code:
/* Take time */
player->upkeep->energy_use = z_info->move_energy / player->state.num_moves;
/* Move the player; running straight into a trap == trying to disarm */
move_player(run_cur_dir, dir && disarm ? true : false);
/* Decrease counter if it hasn't been cancelled */
/* occurs after movement so that using p->u->running as flag works */
if (player->upkeep->running) {
player->upkeep->running--;
} else if (!player->upkeep->running_withpathfind)
return;
/* Prepare the next step */
if (player->upkeep->running) {
cmdq_push(CMD_RUN);
cmd_set_arg_direction(cmdq_peek(), "direction", 0);
}
}
Now when it disturbs:
Code:
void disturb(struct player *p, int stop_search)
{
/* Cancel repeated commands */
cmd_cancel_repeat();
/* Cancel Resting */
if (player_is_resting(p)) {
player_resting_cancel(p, true);
p->upkeep->redraw |= PR_STATE;
}
/* Cancel running */
if (p->upkeep->running) {
p->upkeep->running = 0;
/* Check for new panel if appropriate */
event_signal(EVENT_PLAYERMOVED);
p->upkeep->update |= PU_TORCH;
/* Mark the whole map to be redrawn */
event_signal_point(EVENT_MAP, -1, -1);
}
/* Flush input */
event_signal(EVENT_INPUT_FLUSH);
}
Comment