};
/*!
- * モンスター特性トークンの定義5 /
+ * モンスター特性トークン(発動型能力1) /
* Monster race flags
*/
-static cptr r_info_flags5[] =
+static cptr r_a_ability_flags1[] =
{
"BA_ACID",
"BA_ELEC",
};
/*!
- * モンスター特性トークンの定義6 /
+ * モンスター特性トークン(発動型能力2) /
* Monster race flags
*/
-static cptr r_info_flags6[] =
+static cptr r_a_ability_flags2[] =
{
"HASTE",
"HAND_DOOM",
"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 /
/* Process 'A' for "Allocation" (one line only) */
else if (buf[0] == 'A')
{
- int i;
/* XXX XXX XXX Simply read each number following a colon */
for (i = 0, s = buf+1; s && (s[0] == ':') && s[1]; ++i)
if (grab_one_flag(&r_ptr->flags4, r_info_flags4, what) == 0)
return 0;
- if (grab_one_flag(&r_ptr->flags5, r_info_flags5, what) == 0)
+ if (grab_one_flag(&r_ptr->a_ability_flags1, r_a_ability_flags1, what) == 0)
return 0;
- if (grab_one_flag(&r_ptr->flags6, r_info_flags6, what) == 0)
+ if (grab_one_flag(&r_ptr->a_ability_flags2, r_a_ability_flags2, what) == 0)
return 0;
/* Oops */
}
}
+ /* Process 'A' for "Artifact Flags" (multiple lines) */
+ else if (buf[0] == 'A')
+ {
+ int id, per, rarity;
+
+ /* Find the next empty blow slot (if any) */
+ for (i = 0; i < 4; i++) if (!r_ptr->artifact_id[i]) break;
+
+ /* Oops, no more slots */
+ if (i == 4) return (1);
+
+ if (3 != sscanf(buf+2, "%d:%d:%d", &id, &rarity, &per)) return (1);
+ r_ptr->artifact_id[i] = id;
+ r_ptr->artifact_rarity[i] = rarity;
+ r_ptr->artifact_percent[i] = per;
+ }
+
+ /* Process 'V' for "Arena power value ratio" */
+ else if (buf[0] == 'V')
+ {
+ int val;
+ if (3 != sscanf(buf+2, "%d", &val)) return (1);
+ r_ptr->arena_ratio = val;
+ }
+
/* Oops */
else return (6);
if (grab_one_flag(&d_ptr->mflags4, r_info_flags4, what) == 0)
return 0;
- if (grab_one_flag(&d_ptr->mflags5, r_info_flags5, 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_info_flags6, what) == 0)
+ if (grab_one_flag(&d_ptr->m_a_ability_flags2, r_a_ability_flags2, what) == 0)
return 0;
/* Oops */
/* Place player in a quest level */
if (p_ptr->inside_quest)
{
- int y, x;
+ int py, px;
/* Delete the monster (if any) */
- delete_monster(py, px);
+ delete_monster(p_ptr->y, p_ptr->x);
- y = atoi(zz[0]);
- x = atoi(zz[1]);
+ py = atoi(zz[0]);
+ px = atoi(zz[1]);
- py = y;
- px = x;
+ p_ptr->y = py;
+ p_ptr->x = px;
}
/* Place player in the town */
else if (!p_ptr->oldpx && !p_ptr->oldpy)
{
static char tmp_player_name[32];
char *pn, *tpn;
- for (pn = player_name, tpn = tmp_player_name; *pn; pn++, tpn++)
+ for (pn = p_ptr->name, tpn = tmp_player_name; *pn; pn++, tpn++)
{
#ifdef JP
if (iskanji(*pn))
f_ptr[1] = r_ptr->flags2; n_ptr[1] = r_info_flags2;
f_ptr[2] = r_ptr->flags3; n_ptr[2] = r_info_flags3;
f_ptr[3] = r_ptr->flags4; n_ptr[3] = r_info_flags4;
- f_ptr[4] = r_ptr->flags5; n_ptr[4] = r_info_flags5;
- f_ptr[5] = r_ptr->flags6; n_ptr[5] = r_info_flags6;
+ f_ptr[4] = r_ptr->a_ability_flags1; n_ptr[4] = r_a_ability_flags1;
+ f_ptr[5] = r_ptr->a_ability_flags2; n_ptr[5] = r_a_ability_flags2;
f_ptr[6] = r_ptr->flags7; n_ptr[6] = r_info_flags7;
f_ptr[7] = r_ptr->flags8; n_ptr[7] = r_info_flags8;
f_ptr[8] = r_ptr->flags9; n_ptr[8] = r_info_flags9;