-#include <string>
-
+#include "io-dump/character-dump.h"
#include "artifact/fixed-art-types.h"
#include "avatar/avatar.h"
#include "cmd-building/cmd-building.h"
-#include "dungeon/dungeon.h"
#include "dungeon/quest.h"
#include "flavor/flavor-describer.h"
#include "floor/floor-town.h"
#include "game-option/birth-options.h"
#include "game-option/game-play-options.h"
#include "inventory/inventory-slot-types.h"
-#include "io-dump/character-dump.h"
#include "io-dump/player-status-dump.h"
#include "io-dump/special-class-dump.h"
#include "io/mutations-dump.h"
#include "store/store.h"
#include "system/angband-version.h"
#include "system/building-type-definition.h"
+#include "system/dungeon-info.h"
#include "system/floor-type-definition.h"
-#include "system/monster-race-definition.h"
-#include "system/monster-type-definition.h"
-#include "system/object-type-definition.h"
+#include "system/item-entity.h"
+#include "system/monster-entity.h"
+#include "system/monster-race-info.h"
#include "system/player-type-definition.h"
+#include "term/z-form.h"
#include "util/enum-converter.h"
#include "util/int-char-converter.h"
#include "util/sort.h"
+#include "util/string-processor.h"
#include "view/display-messages.h"
#include "world/world.h"
-
#include <numeric>
+#include <string>
/*!
* @brief プレイヤーのペット情報をファイルにダンプする
for (int i = player_ptr->current_floor_ptr->m_max - 1; i >= 1; i--) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- if (!monster_is_valid(m_ptr)) {
+ if (!m_ptr->is_valid()) {
continue;
}
- if (!is_pet(m_ptr)) {
+ if (!m_ptr->is_pet()) {
continue;
}
pet_settings = true;
static void dump_aux_recall(FILE *fff)
{
fprintf(fff, _("\n [帰還場所]\n\n", "\n [Recall Depth]\n\n"));
- for (const auto &d_ref : d_info) {
+ for (const auto &d_ref : dungeons_info) {
bool seiha = false;
if (d_ref.idx == 0 || !d_ref.maxdepth) {
continue;
}
if (MonsterRace(d_ref.final_guardian).is_valid()) {
- if (!r_info[d_ref.final_guardian].max_num) {
+ if (!monraces_info[d_ref.final_guardian].max_num) {
seiha = true;
}
} else if (max_dlv[d_ref.idx] == d_ref.maxdepth) {
seiha = true;
}
- fprintf(fff, _(" %c%-12s: %3d 階\n", " %c%-16s: level %3d\n"), seiha ? '!' : ' ', d_ref.name.c_str(), (int)max_dlv[d_ref.idx]);
+ fprintf(fff, _(" %c%-12s: %3d 階\n", " %c%-16s: level %3d\n"), seiha ? '!' : ' ', d_ref.name.data(), (int)max_dlv[d_ref.idx]);
}
}
} else {
#ifdef JP
fprintf(
- fff, "\n 闘技場: %d回戦で%sの前に敗北\n", -player_ptr->arena_number, r_info[arena_info[-1 - player_ptr->arena_number].r_idx].name.c_str());
+ fff, "\n 闘技場: %d回戦で%sの前に敗北\n", -player_ptr->arena_number, monraces_info[arena_info[-1 - player_ptr->arena_number].r_idx].name.data());
#else
- fprintf(fff, "\n Arena: Defeated by %s in the %d%s fight\n", r_info[arena_info[-1 - player_ptr->arena_number].r_idx].name.c_str(),
+ fprintf(fff, "\n Arena: Defeated by %s in the %d%s fight\n", monraces_info[arena_info[-1 - player_ptr->arena_number].r_idx].name.data(),
-player_ptr->arena_number, get_ordinal_number_suffix(-player_ptr->arena_number));
#endif
}
/* Count monster kills */
auto norm_total = 0;
- for (const auto &[r_idx, r_ref] : r_info) {
+ for (const auto &[r_idx, r_ref] : monraces_info) {
/* Ignore unused index */
if (!MonsterRace(r_ref.idx).is_valid() || r_ref.name.empty()) {
continue;
char buf[80];
for (auto it = who.rbegin(); it != who.rend() && std::distance(who.rbegin(), it) < 10; it++) {
- auto *r_ptr = &r_info[*it];
+ auto *r_ptr = &monraces_info[*it];
if (r_ptr->defeat_level && r_ptr->defeat_time) {
- sprintf(buf, _(" - レベル%2d - %d:%02d:%02d", " - level %2d - %d:%02d:%02d"), r_ptr->defeat_level, r_ptr->defeat_time / (60 * 60),
+ strnfmt(buf, sizeof(buf), _(" - レベル%2d - %d:%02d:%02d", " - level %2d - %d:%02d:%02d"), r_ptr->defeat_level, r_ptr->defeat_time / (60 * 60),
(r_ptr->defeat_time / 60) % 60, r_ptr->defeat_time % 60);
} else {
buf[0] = '\0';
}
- fprintf(fff, _(" %-40s (レベル%3d)%s\n", " %-40s (level %3d)%s\n"), r_ptr->name.c_str(), (int)r_ptr->level, buf);
+ auto name = str_separate(r_ptr->name, 40);
+ fprintf(fff, _(" %-40s (レベル%3d)%s\n", " %-40s (level %3d)%s\n"), name.front().data(), (int)r_ptr->level, buf);
+ for (auto i = 1U; i < name.size(); ++i) {
+ fprintf(fff, " %s\n", name[i].data());
+ }
}
}
}
std::string alg = PlayerAlignment(player_ptr).get_alignment_description();
- fprintf(fff, _("\n属性 : %s\n", "\nYour alignment : %s\n"), alg.c_str());
+ fprintf(fff, _("\n属性 : %s\n", "\nYour alignment : %s\n"), alg.data());
fprintf(fff, "\n");
dump_virtues(player_ptr, fff);
}
fprintf(fff, _(" [キャラクタの持ち物]\n\n", " [Character Inventory]\n\n"));
for (int i = 0; i < INVEN_PACK; i++) {
- if (!player_ptr->inventory_list[i].k_idx) {
+ if (!player_ptr->inventory_list[i].bi_id) {
break;
}
describe_flavor(player_ptr, o_name, &player_ptr->inventory_list[i], 0);
TERM_LEN x = 1;
for (int i = 0; i < store_ptr->stock_num; i++) {
-#ifdef JP
if ((i % 12) == 0) {
- fprintf(fff, "\n ( %d ページ )\n", x++);
+ fprintf(fff, _("\n ( %d ページ )\n", "\n ( page %d )\n"), x++);
}
describe_flavor(player_ptr, o_name, &store_ptr->stock[i], 0);
fprintf(fff, "%c) %s\n", I2A(i % 12), o_name);
-#else
- if ((i % 12) == 0) {
- fprintf(fff, "\n ( page %d )\n", x++);
- }
- describe_flavor(player_ptr, o_name, &st_ptr->stock[i], 0);
- fprintf(fff, "%c) %s\n", I2A(i % 12), o_name);
-#endif
}
fprintf(fff, "\n\n");
* @brief チェックサム情報を出力 / Get check sum in string form
* @return チェックサム情報の文字列
*/
-static concptr get_check_sum(void)
+static std::string get_check_sum(void)
{
- return format("%02x%02x%02x%02x%02x%02x%02x%02x%02x", f_head.checksum, k_head.checksum, a_head.checksum, e_head.checksum, r_head.checksum, d_head.checksum,
- m_head.checksum, s_head.checksum, v_head.checksum);
+ return format("%02x%02x%02x%02x%02x%02x%02x%02x%02x", terrains_header.checksum, baseitems_header.checksum,
+ artifacts_header.checksum, egos_header.checksum, monraces_header.checksum, dungeons_header.checksum,
+ class_magics_header.checksum, class_skills_header.checksum, vaults_header.checksum);
}
/*!
dump_aux_equipment_inventory(player_ptr, fff);
dump_aux_home_museum(player_ptr, fff);
- fprintf(fff, _(" [チェックサム: \"%s\"]\n\n", " [Check Sum: \"%s\"]\n\n"), get_check_sum());
+ fprintf(fff, _(" [チェックサム: \"%s\"]\n\n", " [Check Sum: \"%s\"]\n\n"), get_check_sum().data());
}