- leaving_quest = p_ptr->current_floor_ptr->inside_quest;
- /* Check for Tower Quest */
- if (leaving_quest &&
- (quest[leaving_quest].type == QUEST_TYPE_TOWER) &&
- (quest[QUEST_TOWER1].status != QUEST_STATUS_COMPLETED))
- {
- if (quest[leaving_quest].type == QUEST_TYPE_TOWER)
- {
- quest[QUEST_TOWER1].status = QUEST_STATUS_FAILED;
- quest[QUEST_TOWER1].complev = p_ptr->lev;
- update_playtime();
- quest[QUEST_TOWER1].comptime = current_world_ptr->play_time;
- }
- }
+ leaving_quest = player_ptr->current_floor_ptr->inside_quest;
+ bool is_leaving_from_tower = leaving_quest != 0;
+ is_leaving_from_tower &= quest[leaving_quest].type == QUEST_TYPE_TOWER;
+ is_leaving_from_tower &= quest[QUEST_TOWER1].status != QUEST_STATUS_COMPLETED;
+ if (!is_leaving_from_tower) return;
+ if (quest[leaving_quest].type != QUEST_TYPE_TOWER) return;
+
+ quest[QUEST_TOWER1].status = QUEST_STATUS_FAILED;
+ quest[QUEST_TOWER1].complev = player_ptr->lev;
+ update_playtime();
+ quest[QUEST_TOWER1].comptime = current_world_ptr->play_time;