From: Deskull <61610939+sikabane-works@users.noreply.github.com> Date: Wed, 15 Dec 2021 18:19:16 +0000 (+0900) Subject: [Refactor] 通常トラップリストのstd::vecor化。 X-Git-Tag: vmacos3.0.0-alpha52~26^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0c54dbd56026ba4d19514ca4748fbcb77fcd9cea;p=hengbandforosx%2Fhengbandosx.git [Refactor] 通常トラップリストのstd::vecor化。 --- diff --git a/src/grid/trap.cpp b/src/grid/trap.cpp index 4a8182a02..d94ccdc23 100644 --- a/src/grid/trap.cpp +++ b/src/grid/trap.cpp @@ -46,7 +46,7 @@ #include "view/display-messages.h" #include "world/world.h" -static int16_t normal_traps[MAX_NORMAL_TRAPS]; +static std::vector normal_traps; /*! * @brief 箱のトラップテーブル @@ -131,26 +131,24 @@ const std::vector> chest_traps = { */ void init_normal_traps(void) { - int cur_trap = 0; - - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_TRAPDOOR"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_PIT"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_SPIKED_PIT"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_POISON_PIT"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_TY_CURSE"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_TELEPORT"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_FIRE"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_ACID"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_SLOW"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_LOSE_STR"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_LOSE_DEX"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_LOSE_CON"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_BLIND"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_CONFUSE"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_POISON"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_SLEEP"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_TRAPS"); - normal_traps[cur_trap++] = f_tag_to_index_in_init("TRAP_ALARM"); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_TRAPDOOR")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_PIT")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_SPIKED_PIT")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_POISON_PIT")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_TY_CURSE")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_TELEPORT")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_FIRE")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_ACID")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_SLOW")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_LOSE_STR")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_LOSE_DEX")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_LOSE_CON")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_BLIND")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_CONFUSE")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_POISON")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_SLEEP")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_TRAPS")); + normal_traps.push_back(f_tag_to_index_in_init("TRAP_ALARM")); } /*! @@ -170,8 +168,7 @@ FEAT_IDX choose_random_trap(PlayerType *player_ptr) /* Pick a trap */ floor_type *floor_ptr = player_ptr->current_floor_ptr; while (true) { - /* Hack -- pick a trap */ - feat = normal_traps[randint0(MAX_NORMAL_TRAPS)]; + feat = normal_traps[randint0(normal_traps.size())]; /* Accept non-trapdoors */ if (f_info[feat].flags.has_not(FloorFeatureType::MORE)) diff --git a/src/grid/trap.h b/src/grid/trap.h index 139c3490a..4acc6fe7b 100644 --- a/src/grid/trap.h +++ b/src/grid/trap.h @@ -53,7 +53,6 @@ enum trap_type { TRAP_PIRANHA = 20, }; -const int MAX_NORMAL_TRAPS = TRAP_ALARM + 1; extern const std::vector> chest_traps;