static void update_floor_id(PlayerType *player_ptr, saved_floor_type *sf_ptr)
{
- if (player_ptr->floor_id == 0) {
+ if (!player_ptr->in_saved_floor()) {
if (player_ptr->change_floor_mode & CFM_UP) {
sf_ptr->lower_floor_id = 0;
} else if (player_ptr->change_floor_mode & CFM_DOWN) {
jump_floors(player_ptr);
exit_to_wilderness(player_ptr);
kill_saved_floors(player_ptr, sf_ptr);
- if (player_ptr->floor_id == 0) {
+ if (!player_ptr->in_saved_floor()) {
return;
}
RedrawingFlagsUpdater::get_instance().set_flags(flags);
wr_s16b(max_floor_id);
wr_byte((byte)player_ptr->current_floor_ptr->dungeon_idx);
- if (!player_ptr->floor_id) {
+ if (!player_ptr->in_saved_floor()) {
/* No array elements */
wr_byte(0);
wr_saved_floor(player_ptr, nullptr);
{
return (this->y == pos.y) && (this->x == pos.x);
}
+
+bool PlayerType::in_saved_floor() const
+{
+ return this->floor_id != 0;
+}
Pos2D get_position() const;
bool is_located_at_running_destination() const;
bool is_located_at(const Pos2D &pos) const;
+ bool in_saved_floor() const;
private:
std::shared_ptr<TimedEffects> timed_effects;