repeated cancel_activity_query
game.cpp – void game::mon_info() – 3184-3196
[code] if (newseen > mostseen) {
if (u.activity.type == ACT_REFILL_VEHICLE)
cancel_activity_query(“Monster Spotted!”);
cancel_activity_query(“Monster spotted!”);
turnssincelastmon = 0;
if (run_mode == 1)
run_mode = 2; // Stop movement!
} else if (autosafemode && newseen == 0) { // Auto-safemode
turnssincelastmon++;
if(turnssincelastmon >= OPTIONS[OPT_AUTOSAFEMODETURNS] && run_mode == 0)
run_mode = 1;
}[/code]
If there is nothing flammable, player wastes some time.
void iuse::lighter(game *g, player *p, item *it, bool t)
{
int dirx, diry;
g->draw();
mvprintw(0, 0, "Light where?");
get_direction(g, dirx, diry, input());
if (dirx == -2) {
g->add_msg_if_player(p,"Invalid direction.");
it->charges++;
return;
}
if (dirx == 0 && diry == 0) {
g->add_msg_if_player(p, "You would set yourself on fire.");
g->add_msg_if_player(p, "But you're already smokin' hot.");
it->charges++;
return;
}
p->moves -= 15;
dirx += p->posx;
diry += p->posy;
if (g->m.flammable_items_at(dirx, diry)) {
if (g->m.add_field(g, dirx, diry, fd_fire, 1))
g->m.field_at(dirx, diry).age = 30;
} else {
g->add_msg_if_player(p,"There's nothing to light there.");
it->charges++;
}
}