FLOOR_IDX new_floor_id; /*!<次のフロアのID / floor_id of the destination */
uint32_t latest_visit_mark; /*!<フロアを渡った回数?(確認中) / Max number of visit_mark */
MonsterEntity party_mon[MAX_PARTY_MON]; /*!< フロア移動に保存するペットモンスターの配列 */
+
+/*!
+ * @brief フロアIDが0でないとき、すなわち保存済フロアの場合真を返す。
+ * @param sf_ptr 保存フロアのポインタ
+ * @return フロアIDが0でないときtrue、0のときfalseを返す。
+ */
+bool is_saved_floor(saved_floor_type *sf_ptr)
+{
+ return sf_ptr->floor_id != 0;
+}
extern FLOOR_IDX new_floor_id;
extern uint32_t latest_visit_mark;
extern MonsterEntity party_mon[MAX_PARTY_MON];
+extern bool is_saved_floor(saved_floor_type *sf_ptr);
{
for (int i = 0; i < MAX_SAVED_FLOORS; i++) {
saved_floor_type *sf_ptr = &saved_floors[i];
- if ((sf_ptr->floor_id == 0) || (sf_ptr->floor_id == player_ptr->floor_id)) {
+ if (!is_saved_floor(sf_ptr) || (sf_ptr->floor_id == player_ptr->floor_id)) {
continue;
}
*/
void kill_saved_floor(PlayerType *player_ptr, saved_floor_type *sf_ptr)
{
- if (!sf_ptr || (sf_ptr->floor_id == 0)) {
+ if (!sf_ptr || !is_saved_floor(sf_ptr)) {
return;
}
FLOOR_IDX fl_idx;
for (fl_idx = 0; fl_idx < MAX_SAVED_FLOORS; fl_idx++) {
sf_ptr = &saved_floors[fl_idx];
- if (!sf_ptr->floor_id) {
+ if (!is_saved_floor(sf_ptr)) {
break;
}
}
for (int i = 0; i < num; i++) {
saved_floor_type *sf_ptr = &saved_floors[i];
- if (!sf_ptr->floor_id) {
+ if (!is_saved_floor(sf_ptr)) {
continue;
}
if (rd_byte() != 0) {
for (int i = 0; i < MAX_SAVED_FLOORS; i++) {
saved_floor_type *sf_ptr = &saved_floors[i];
- if (!sf_ptr->floor_id) {
+ if (!is_saved_floor(sf_ptr)) {
continue;
}
if (!load_floor(player_ptr, sf_ptr, (SLF_SECOND | SLF_NO_KILL))) {