OSDN Git Service

[Fix] モンスターのタイル情報を正常に書き出してくれないバグを修正
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 31 Mar 2024 11:39:54 +0000 (20:39 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 31 Mar 2024 11:53:08 +0000 (20:53 +0900)
解説: 文字部分を1バイトではなく4バイトで書き出してしまっているのが原因と思われる
仕様をしっかり把握しているわけではないが、恐らく描画の際に文字が-128番の場合はタイルを読み込む仕様になっており、今回の場合はそのタイル情報を読み込んだ際に-1番の文字として読み込まれてしまっているため不明な文字と認識され、このようなバグが発生したと考えられる

src/cmd-visual/cmd-visuals.cpp

index 0ab1046..8d10efb 100644 (file)
@@ -128,7 +128,7 @@ void do_cmd_visuals(PlayerType *player_ptr)
             auto_dump_printf(auto_dump_stream, _("\n# モンスターの[色/文字]の設定\n\n", "\n# Monster attr/char definitions\n\n"));
             for (const auto &[monrace_id, monrace] : monraces_info) {
                 auto_dump_printf(auto_dump_stream, "# %s\n", monrace.name.data());
-                auto_dump_printf(auto_dump_stream, "R:%d:0x%02X/0x%02X\n\n", enum2i(monrace_id), monrace.x_attr, monrace.x_char);
+                auto_dump_printf(auto_dump_stream, "R:%d:0x%02X/0x%02X\n\n", enum2i(monrace_id), monrace.x_attr, static_cast<byte>(monrace.x_char));
             }
 
             close_auto_dump(&auto_dump_stream, mark);