From 42461595b0cd6686f6d4b0ba5e17da77d07f64aa Mon Sep 17 00:00:00 2001 From: Deskull Date: Tue, 11 Jul 2017 00:04:53 +0900 Subject: [PATCH] =?utf8?q?#37353=20(2.2.0.23)=20dungeon=5Finfo=5Ftype?= =?utf8?q?=E3=81=AEm=5Fflags5/m=5Fflags6=E3=82=92m=5Fa=5Fability=5Fflags1/?= =?utf8?q?m=5Fa=5Fability=5Fflags2=E3=81=AB=E6=94=B9=E5=90=8D=E3=80=82?= =?utf8?q?=E6=96=B0=E7=99=BA=E5=8B=95=E5=9E=8B=E8=83=BD=E5=8A=9B=E3=81=AE?= =?utf8?q?=E7=AC=AC3=E3=80=814=E6=9E=A0=E3=82=92=E3=83=87=E3=83=BC?= =?utf8?q?=E3=82=BF=E4=B8=8A=E3=81=A7=E3=81=AE=E3=81=BF=E8=BF=BD=E5=8A=A0?= =?utf8?q?=E3=80=82/=20Rename=20m=5Fflags5/m=5Fflags6=20to=20m=5Fa=5Fabili?= =?utf8?q?ty=5Fflags1/m=5Fa=5Fability=5Fflags2=20in=20dungeon=5Finfo=5Ftyp?= =?utf8?q?e.=20New=20activate=20flag=20(3rd/4th)=20was=20added=20as=20only?= =?utf8?q?=20variable=20flags.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/defines.h | 2 +- src/init1.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/monster2.c | 24 ++++++++--------- src/types.h | 7 +++-- 4 files changed, 100 insertions(+), 17 deletions(-) diff --git a/src/defines.h b/src/defines.h index 71ce2d167..5aa1cb2a5 100644 --- a/src/defines.h +++ b/src/defines.h @@ -53,7 +53,7 @@ #define FAKE_VER_MAJOR 12 /*!< ゲームのバージョン番号定義(メジャー番号 + 10) */ #define FAKE_VER_MINOR 2 /*!< ゲームのバージョン番号定義(マイナー番号) */ #define FAKE_VER_PATCH 0 /*!< ゲームのバージョン番号定義(パッチ番号) */ -#define FAKE_VER_EXTRA 22 /*!< ゲームのバージョン番号定義(エクストラ番号) */ +#define FAKE_VER_EXTRA 23 /*!< ゲームのバージョン番号定義(エクストラ番号) */ /*! diff --git a/src/init1.c b/src/init1.c index fa2e0fcad..effa64260 100644 --- a/src/init1.c +++ b/src/init1.c @@ -503,6 +503,86 @@ static cptr r_a_ability_flags2[] = "S_UNIQUE" }; +/*! + * モンスター特性トークン(発動型能力3) / + * Monster race flags + */ +static cptr r_a_ability_flags3[] = +{ + "XXXA3X00", + "XXXA3X01", + "XXXA3X02", + "XXXA3X03", + "XXXA3X04", + "XXXA3X05", + "XXXA3X06", + "XXXA3X07", + "XXXA3X08", + "XXXA3X09", + "XXXA3X10", + "XXXA3X11", + "XXXA3X12", + "XXXA3X13", + "XXXA3X14", + "XXXA3X15", + "XXXA3X16", + "XXXA3X17", + "XXXA3X18", + "XXXA3X19", + "XXXA3X20", + "XXXA3X21", + "XXXA3X22", + "XXXA3X23", + "XXXA3X24", + "XXXA3X25", + "XXXA3X26", + "XXXA3X27", + "XXXA3X28", + "XXXA3X29", + "XXXA3X30", + "XXXA3X31", +}; + +/*! + * モンスター特性トークン(発動型能力4) / + * Monster race flags + */ +static cptr r_a_ability_flags4[] = +{ + "XXXA4X00", + "XXXA4X01", + "XXXA4X02", + "XXXA4X03", + "XXXA4X04", + "XXXA4X05", + "XXXA4X06", + "XXXA4X07", + "XXXA4X08", + "XXXA4X09", + "XXXA4X10", + "XXXA4X11", + "XXXA4X12", + "XXXA4X13", + "XXXA4X14", + "XXXA4X15", + "XXXA4X16", + "XXXA4X17", + "XXXA4X18", + "XXXA4X19", + "XXXA4X20", + "XXXA4X21", + "XXXA4X22", + "XXXA4X23", + "XXXA4X24", + "XXXA4X25", + "XXXA4X26", + "XXXA4X27", + "XXXA4X28", + "XXXA4X29", + "XXXA4X30", + "XXXA4X31", +}; + /*! * モンスター特性トークンの定義7 / @@ -3164,10 +3244,10 @@ static errr grab_one_spell_monster_flag(dungeon_info_type *d_ptr, cptr what) if (grab_one_flag(&d_ptr->mflags4, r_info_flags4, what) == 0) return 0; - if (grab_one_flag(&d_ptr->mflags5, r_a_ability_flags1, what) == 0) + if (grab_one_flag(&d_ptr->m_a_ability_flags1, r_a_ability_flags1, what) == 0) return 0; - if (grab_one_flag(&d_ptr->mflags6, r_a_ability_flags2, what) == 0) + if (grab_one_flag(&d_ptr->m_a_ability_flags2, r_a_ability_flags2, what) == 0) return 0; /* Oops */ diff --git a/src/monster2.c b/src/monster2.c index fc8bb007a..b4b5c7f96 100644 --- a/src/monster2.c +++ b/src/monster2.c @@ -1038,14 +1038,14 @@ static bool restrict_monster_to_dungeon(int r_idx) if ((d_ptr->mflags4 & r_ptr->flags4) != d_ptr->mflags4) return FALSE; } - if (d_ptr->mflags5) + if (d_ptr->m_a_ability_flags1) { - if ((d_ptr->mflags5 & r_ptr->a_ability_flags1) != d_ptr->mflags5) + if ((d_ptr->m_a_ability_flags1 & r_ptr->a_ability_flags1) != d_ptr->m_a_ability_flags1) return FALSE; } - if (d_ptr->mflags6) + if (d_ptr->m_a_ability_flags2) { - if ((d_ptr->mflags6 & r_ptr->a_ability_flags2) != d_ptr->mflags6) + if ((d_ptr->m_a_ability_flags2 & r_ptr->a_ability_flags2) != d_ptr->m_a_ability_flags2) return FALSE; } if (d_ptr->mflags7) @@ -1094,14 +1094,14 @@ static bool restrict_monster_to_dungeon(int r_idx) if ((d_ptr->mflags4 & r_ptr->flags4) != d_ptr->mflags4) return TRUE; } - if (d_ptr->mflags5) + if (d_ptr->m_a_ability_flags1) { - if ((d_ptr->mflags5 & r_ptr->a_ability_flags1) != d_ptr->mflags5) + if ((d_ptr->m_a_ability_flags1 & r_ptr->a_ability_flags1) != d_ptr->m_a_ability_flags1) return TRUE; } - if (d_ptr->mflags6) + if (d_ptr->m_a_ability_flags2) { - if ((d_ptr->mflags6 & r_ptr->a_ability_flags2) != d_ptr->mflags6) + if ((d_ptr->m_a_ability_flags2 & r_ptr->a_ability_flags2) != d_ptr->m_a_ability_flags2) return TRUE; } if (d_ptr->mflags7) @@ -1134,8 +1134,8 @@ static bool restrict_monster_to_dungeon(int r_idx) if (r_ptr->flags2 & d_ptr->mflags2) return TRUE; if (r_ptr->flags3 & d_ptr->mflags3) return TRUE; if (r_ptr->flags4 & d_ptr->mflags4) return TRUE; - if (r_ptr->a_ability_flags1 & d_ptr->mflags5) return TRUE; - if (r_ptr->a_ability_flags2 & d_ptr->mflags6) return TRUE; + if (r_ptr->a_ability_flags1 & d_ptr->m_a_ability_flags1) return TRUE; + if (r_ptr->a_ability_flags2 & d_ptr->m_a_ability_flags2) return TRUE; if (r_ptr->flags7 & d_ptr->mflags7) return TRUE; if (r_ptr->flags8 & d_ptr->mflags8) return TRUE; if (r_ptr->flags9 & d_ptr->mflags9) return TRUE; @@ -1150,8 +1150,8 @@ static bool restrict_monster_to_dungeon(int r_idx) if (r_ptr->flags2 & d_ptr->mflags2) return FALSE; if (r_ptr->flags3 & d_ptr->mflags3) return FALSE; if (r_ptr->flags4 & d_ptr->mflags4) return FALSE; - if (r_ptr->a_ability_flags1 & d_ptr->mflags5) return FALSE; - if (r_ptr->a_ability_flags2 & d_ptr->mflags6) return FALSE; + if (r_ptr->a_ability_flags1 & d_ptr->m_a_ability_flags1) return FALSE; + if (r_ptr->a_ability_flags2 & d_ptr->m_a_ability_flags2) return FALSE; if (r_ptr->flags7 & d_ptr->mflags7) return FALSE; if (r_ptr->flags8 & d_ptr->mflags8) return FALSE; if (r_ptr->flags9 & d_ptr->mflags9) return FALSE; diff --git a/src/types.h b/src/types.h index e8c3bb5f5..78c170ef4 100644 --- a/src/types.h +++ b/src/types.h @@ -1629,13 +1629,16 @@ struct dungeon_info_type { u32b mflags2; u32b mflags3; u32b mflags4; - u32b mflags5; - u32b mflags6; u32b mflags7; u32b mflags8; u32b mflags9; u32b mflagsr; + u32b m_a_ability_flags1; + u32b m_a_ability_flags2; + u32b m_a_ability_flags3; + u32b m_a_ability_flags4; + char r_char[5]; /* Monster race allowed */ int final_object; /* The object you'll find at the bottom */ int final_artifact; /* The artifact you'll find at the bottom */ -- 2.11.0