#include "monster-race/race-feature-flags.h"
#include "monster-race/race-kind-flags.h"
#include "monster-race/race-population-flags.h"
+#include "monster-race/race-sex-const.h"
#include "monster-race/race-speak-flags.h"
#include "monster-race/race-visual-flags.h"
#include "monster-race/race-wilderness-flags.h"
*/
const std::unordered_map<std::string_view, race_flags1> r_info_flags1 = {
{ "QUESTOR", RF1_QUESTOR },
- { "MALE", RF1_MALE },
- { "FEMALE", RF1_FEMALE },
{ "FORCE_DEPTH", RF1_FORCE_DEPTH },
{ "FORCE_MAXHP", RF1_FORCE_MAXHP },
{ "FORCE_EXTRA", RF1_FORCE_EXTRA },
{ "HAS_DARK_2", MonsterBrightnessType::HAS_DARK_2 },
{ "SELF_DARK_2", MonsterBrightnessType::SELF_DARK_2 },
};
+
+const std::unordered_map<std::string_view, MonsterSex> r_info_sex = {
+ { "NONE", MonsterSex::NONE },
+ { "MALE", MonsterSex::MALE },
+ { "FEMALE", MonsterSex::FEMALE },
+};
#include "monster-race/race-flags8.h"
#include "monster-race/race-kind-flags.h"
#include "monster-race/race-population-flags.h"
+#include "monster-race/race-sex-const.h"
#include "monster-race/race-speak-flags.h"
#include "monster-race/race-visual-flags.h"
#include "monster-race/race-wilderness-flags.h"
extern const std::unordered_map<std::string_view, MonsterPopulationType> r_info_population_flags;
extern const std::unordered_map<std::string_view, MonsterSpeakType> r_info_speak_flags;
extern const std::unordered_map<std::string_view, MonsterBrightnessType> r_info_brightness_flags;
+extern const std::unordered_map<std::string_view, MonsterSex> r_info_sex;
info_set_value(a_idx, tokens[1]);
info_set_value(chance, tokens[2]);
r_ptr->drop_artifacts.emplace_back(a_idx, chance);
+ } else if (tokens[0] == "X") {
+ if (tokens.size() < 2) {
+ return PARSE_ERROR_TOO_FEW_ARGUMENTS;
+ }
+ uint32_t sex;
+ if (!info_grab_one_const(sex, r_info_sex, tokens[1])) {
+ return PARSE_ERROR_INVALID_FLAG;
+ }
+ r_ptr->sex = static_cast<MonsterSex>(sex);
+
} else if (tokens[0] == "V") {
// V:arena_odds
if (tokens.size() < 2) {