"HURT_ROCK",
"HURT_FIRE",
"HURT_COLD",
- "IM_ACID",
- "IM_ELEC",
- "IM_FIRE",
- "IM_COLD",
- "IM_POIS",
- "RES_TELE",
- "RES_NETH",
- "RES_WATE",
- "RES_PLAS",
- "RES_NEXU",
- "RES_DISE",
- "RES_ALL",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
"NO_FEAR",
"NO_STUN",
"NO_CONF",
"CHAMELEON",
"KILL_EXP",
"TANUKI",
- "XXX7X16",
- "XXX7X17",
- "XXX7X18",
- "XXX7X19",
+ "HAS_DARK_1",
+ "SELF_DARK_1",
+ "HAS_DARK_2",
+ "SELF_DARK_2",
"XXX7X20",
"XXX7X21",
"XXX7X22",
/*
+ * Monster race flags - Resistances
+ */
+static cptr r_info_flagsr[] =
+{
+ "IM_ACID",
+ "IM_ELEC",
+ "IM_FIRE",
+ "IM_COLD",
+ "IM_POIS",
+ "RES_LITE",
+ "RES_DARK",
+ "RES_NETH",
+ "RES_WATE",
+ "RES_PLAS",
+ "RES_SHAR",
+ "RES_SOUN",
+ "RES_CHAO",
+ "RES_NEXU",
+ "RES_DISE",
+ "RES_WALL",
+ "RES_INER",
+ "RES_TIME",
+ "RES_GRAV",
+ "RES_ALL",
+ "RES_TELE",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+ "XXX",
+};
+
+
+/*
* Object flags
*/
static cptr k_info_flags[] =
}
}
+ /* Scan flagsr (resistance) */
+ for (i = 0; i < 32; i++)
+ {
+ if (streq(what, r_info_flagsr[i]))
+ {
+ r_ptr->flagsr |= (1L << i);
+ return (0);
+ }
+ }
+
/* Oops */
#ifdef JP
msg_format("̤ÃΤΥâ¥ó¥¹¥¿¡¼¡¦¥Õ¥é¥° '%s'¡£", what);
}
}
+ /* Scan flagsr (resistance) */
+ for (i = 0; i < 32; i++)
+ {
+ if (streq(what, r_info_flagsr[i]))
+ {
+ d_ptr->mflagsr |= (1L << i);
+ return (0);
+ }
+ }
+
/* Oops */
#ifdef JP
msg_format("̤ÃΤΥâ¥ó¥¹¥¿¡¼¡¦¥Õ¥é¥° '%s'¡£", what);
/* Hidden trap (or door) */
else if (letter[idx].trap)
{
- c_ptr->mimic = c_ptr->feat;
+ c_ptr->mimic = f_info[c_ptr->feat].mimic;
c_ptr->feat = letter[idx].trap;
}
else if (object_index)
int i, j, z, fc, bc;
int dlen;
- cptr flags[288];
+ cptr flags[32 * 10];
- u32b f_ptr[9];
- cptr *n_ptr[9];
+ u32b f_ptr[10];
+ cptr *n_ptr[10];
monster_race *r_ptr;
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;
+ f_ptr[9] = r_ptr->flagsr; n_ptr[9] = r_info_flagsr;
/* Write New/Number/Name */
fprintf(fff, "N:%d:%s\n", z + 1, r_name + r_ptr->name);
}
/* Extract the flags */
- for (fc = 0, j = 0; j < 96; j++)
+ for (fc = 0, j = 0; j < 32 * 3; j++)
{
/* Check this flag */
if (f_ptr[j / 32] & (1L << (j % 32))) flags[fc++] = n_ptr[j / 32][j % 32];
}
/* Extract the extra flags */
- for (j = 192; j < 288; j++)
+ for (j = 32 * 6; j < 32 * 10; j++)
{
/* Check this flag */
if (f_ptr[j / 32] & (1L << (j % 32))) flags[fc++] = n_ptr[j / 32][j % 32];