From 2cbc682185a4bb597ae636c3253d5fa3cd7326e7 Mon Sep 17 00:00:00 2001 From: Hourier Date: Sat, 6 Jun 2020 01:25:45 +0900 Subject: [PATCH] [Refactor] #40460 Separated race-info-tokens-table.c/h from dungeon-file.c --- Hengband/Hengband/Hengband.vcxproj | 2 + Hengband/Hengband/Hengband.vcxproj.filters | 9 + src/Makefile.am | 10 +- src/dungeon/dungeon-file.c | 606 +---------------------------- src/info-reader/race-info-tokens-table.c | 593 ++++++++++++++++++++++++++++ src/info-reader/race-info-tokens-table.h | 31 ++ 6 files changed, 642 insertions(+), 609 deletions(-) create mode 100644 src/info-reader/race-info-tokens-table.c create mode 100644 src/info-reader/race-info-tokens-table.h diff --git a/Hengband/Hengband/Hengband.vcxproj b/Hengband/Hengband/Hengband.vcxproj index 8d3c5309c..b83d0614d 100644 --- a/Hengband/Hengband/Hengband.vcxproj +++ b/Hengband/Hengband/Hengband.vcxproj @@ -169,6 +169,7 @@ + @@ -481,6 +482,7 @@ + diff --git a/Hengband/Hengband/Hengband.vcxproj.filters b/Hengband/Hengband/Hengband.vcxproj.filters index 8df45865c..9a1d199dd 100644 --- a/Hengband/Hengband/Hengband.vcxproj.filters +++ b/Hengband/Hengband/Hengband.vcxproj.filters @@ -1184,6 +1184,9 @@ object-enchant + + info-reader + @@ -2524,6 +2527,9 @@ object-enchant + + info-reader + @@ -2668,6 +2674,9 @@ {642ec95b-f054-4958-a614-49ccf88cfc25} + + {149ff96c-b8c9-4df9-845d-d0618427d100} + diff --git a/src/Makefile.am b/src/Makefile.am index 9a4afb669..e20373221 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -152,6 +152,8 @@ hengband_SOURCES = \ grid/feature.c grid/feature.h \ grid/grid.c grid/grid.h grid/trap.c grid/trap.h \ \ + info-reader/race-info-tokens-table.c info-reader/race-info-tokens-table.h \ + \ inventory/inventory-curse.c inventory/inventory-curse.h \ inventory/inventory-damage.c inventory/inventory-damage.h \ inventory/inventory-object.c inventory/inventory-object.h \ @@ -488,10 +490,10 @@ LIBS += $(XFT_LIBS) COMPILE = $(srcdir)/gcc-wrap $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ -Iautopick -Ibirth -Icmd -Icmd-io -Icmd-item -Icombat -Icore -Idungeon \ - -Ieffect -Ifloor -Igrid -Iinventory -Iio -Iio-dump -Iknowledge -Imarket \ - -Imelee -Imind -Imonster -Imonster-attack -Imspell -Imutation -Iobject \ - -Iobject-enchant -Ipet -Iplayer -Iplayer-attack -Irealm -Iroom \ - -Ispecific-object -Ispell -Ispell-kind -Ispell-realm -Isv-definition \ + -Ieffect -Ifloor -Igrid -Iinfo-reader -Iinventory -Iio -Iio-dump \ + -Iknowledge -Imarket -Imelee -Imind -Imonster -Imonster-attack -Imspell \ + -Imutation -Iobject -Iobject-enchant -Ipet -Iplayer -Iplayer-attack -Irealm \ + -Iroom -Ispecific-object -Ispell -Ispell-kind -Ispell-realm -Isv-definition \ -Isystem -Iterm -Iutil -Iview -Iwizard -Iworld install-exec-hook: diff --git a/src/dungeon/dungeon-file.c b/src/dungeon/dungeon-file.c index 28a480a80..fa0035c6a 100644 --- a/src/dungeon/dungeon-file.c +++ b/src/dungeon/dungeon-file.c @@ -45,6 +45,7 @@ #include "grid/feature.h" #include "grid/grid.h" #include "grid/trap.h" +#include "info-reader/race-info-tokens-table.h" #include "io/files-util.h" #include "io/tokenizer.h" #include "main/init.h" @@ -75,611 +76,6 @@ dungeon_grid letter[255]; /*** Helper arrays for parsing ascii template files ***/ - /*! - * モンスターの打撃手段トークンの定義 / - * Monster Blow Methods - */ -static concptr r_info_blow_method[] = -{ - "", - "HIT", - "TOUCH", - "PUNCH", - "KICK", - "CLAW", - "BITE", - "STING", - "SLASH", - "BUTT", - "CRUSH", - "ENGULF", - "CHARGE", - "CRAWL", - "DROOL", - "SPIT", - "EXPLODE", - "GAZE", - "WAIL", - "SPORE", - "XXX4", - "BEG", - "INSULT", - "MOAN", - "SHOW", - "SHOOT", - NULL -}; - -/*! - * モンスターの打撃属性トークンの定義 / - * Monster Blow Effects - */ -static concptr r_info_blow_effect[] = -{ - "", - "HURT", - "POISON", - "UN_BONUS", - "UN_POWER", - "EAT_GOLD", - "EAT_ITEM", - "EAT_FOOD", - "EAT_LITE", - "ACID", - "ELEC", - "FIRE", - "COLD", - "BLIND", - "CONFUSE", - "TERRIFY", - "PARALYZE", - "LOSE_STR", - "LOSE_INT", - "LOSE_WIS", - "LOSE_DEX", - "LOSE_CON", - "LOSE_CHR", - "LOSE_ALL", - "SHATTER", - "EXP_10", - "EXP_20", - "EXP_40", - "EXP_80", - "DISEASE", - "TIME", - "EXP_VAMP", - "DR_MANA", - "SUPERHURT", - "INERTIA", - "STUN", - NULL -}; - -/*! - * 地形属性トークンの定義 / - * Feature info flags - */ -static concptr f_info_flags[] = -{ - "LOS", - "PROJECT", - "MOVE", - "PLACE", - "DROP", - "SECRET", - "NOTICE", - "REMEMBER", - "OPEN", - "CLOSE", - "BASH", - "SPIKE", - "DISARM", - "STORE", - "TUNNEL", - "MAY_HAVE_GOLD", - "HAS_GOLD", - "HAS_ITEM", - "DOOR", - "TRAP", - "STAIRS", - "GLYPH", - "LESS", - "MORE", - "AVOID_RUN", - "FLOOR", - "WALL", - "PERMANENT", - "XXX00", - "XXX01", - "XXX02", - "HIT_TRAP", - - "BRIDGE", - "RIVER", - "LAKE", - "BRIDGED", - "COVERED", - "GLOW", - "ENSECRET", - "WATER", - "LAVA", - "SHALLOW", - "DEEP", - "POISON_PUDDLE", - "HURT_ROCK", - "HURT_FIRE", - "HURT_COLD", - "HURT_ACID", - "COLD_PUDDLE", - "ACID_PUDDLE", - "OIL", - "ELEC_PUDDLE", - "CAN_CLIMB", - "CAN_FLY", - "CAN_SWIM", - "CAN_PASS", - "CAN_OOZE", - "CAN_DIG", - "HIDE_ITEM", - "HIDE_SNEAK", - "HIDE_SWIM", - "HIDE_DIG", - "KILL_HUGE", - "KILL_MOVE", - - "PICK_TRAP", - "PICK_DOOR", - "ALLOC", - "CHEST", - "DROP_1D2", - "DROP_2D2", - "DROP_GOOD", - "DROP_GREAT", - "HURT_POIS", - "HURT_ELEC", - "HURT_WATER", - "HURT_BWATER", - "USE_FEAT", - "GET_FEAT", - "GROUND", - "OUTSIDE", - "EASY_HIDE", - "EASY_CLIMB", - "MUST_CLIMB", - "TREE", - "NEED_TREE", - "BLOOD", - "DUST", - "SLIME", - "PLANT", - "XXX2", - "INSTANT", - "EXPLODE", - "TIMED", - "ERUPT", - "STRIKE", - "SPREAD", - - "SPECIAL", - "HURT_DISI", - "QUEST_ENTER", - "QUEST_EXIT", - "QUEST", - "SHAFT", - "MOUNTAIN", - "BLDG", - "MINOR_GLYPH", - "PATTERN", - "TOWN", - "ENTRANCE", - "MIRROR", - "UNPERM", - "TELEPORTABLE", - "CONVERT", - "GLASS", -}; - -/*! - * モンスター特性トークンの定義1 / - * Monster race flags - */ -static concptr r_info_flags1[] = -{ - "UNIQUE", - "QUESTOR", - "MALE", - "FEMALE", - "CHAR_CLEAR", - "SHAPECHANGER", - "ATTR_CLEAR", - "ATTR_MULTI", - "FORCE_DEPTH", - "FORCE_MAXHP", - "FORCE_SLEEP", - "FORCE_EXTRA", - "ATTR_SEMIRAND", - "FRIENDS", - "ESCORT", - "ESCORTS", - "NEVER_BLOW", - "NEVER_MOVE", - "RAND_25", - "RAND_50", - "ONLY_GOLD", - "ONLY_ITEM", - "DROP_60", - "DROP_90", - "DROP_1D2", - "DROP_2D2", - "DROP_3D2", - "DROP_4D2", - "DROP_GOOD", - "DROP_GREAT", - "XXX2", - "XXX3" -}; - -/*! - * モンスター特性トークンの定義2 / - * Monster race flags - */ -static concptr r_info_flags2[] = -{ - "STUPID", - "SMART", - "CAN_SPEAK", - "REFLECTING", - "INVISIBLE", - "COLD_BLOOD", - "EMPTY_MIND", - "WEIRD_MIND", - "MULTIPLY", - "REGENERATE", - "CHAR_MULTI", - "ATTR_ANY", - "POWERFUL", - "ELDRITCH_HORROR", - "AURA_FIRE", - "AURA_ELEC", - "OPEN_DOOR", - "BASH_DOOR", - "PASS_WALL", - "KILL_WALL", - "MOVE_BODY", - "KILL_BODY", - "TAKE_ITEM", - "KILL_ITEM", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "HUMAN", - "QUANTUM" -}; - -/*! - * モンスター特性トークンの定義3 / - * Monster race flags - */ -static concptr r_info_flags3[] = -{ - "ORC", - "TROLL", - "GIANT", - "DRAGON", - "DEMON", - "UNDEAD", - "EVIL", - "ANIMAL", - "AMBERITE", - "GOOD", - "AURA_COLD", - "NONLIVING", - "HURT_LITE", - "HURT_ROCK", - "HURT_FIRE", - "HURT_COLD", - "ANGEL", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "XXX", - "NO_FEAR", - "NO_STUN", - "NO_CONF", - "NO_SLEEP" -}; - -/*! - * モンスター特性トークンの定義4 / - * Monster race flags - */ -static concptr r_info_flags4[] = -{ - "SHRIEK", - "XXX1", - "DISPEL", - "ROCKET", - "SHOOT", - "XXX2", - "XXX3", - "XXX4", - "BR_ACID", - "BR_ELEC", - "BR_FIRE", - "BR_COLD", - "BR_POIS", - "BR_NETH", - "BR_LITE", - "BR_DARK", - "BR_CONF", - "BR_SOUN", - "BR_CHAO", - "BR_DISE", - "BR_NEXU", - "BR_TIME", - "BR_INER", - "BR_GRAV", - "BR_SHAR", - "BR_PLAS", - "BR_WALL", - "BR_MANA", - "BA_NUKE", - "BR_NUKE", - "BA_CHAO", - "BR_DISI", -}; - -/*! - * モンスター特性トークン(発動型能力1) / - * Monster race flags - */ -static concptr r_a_ability_flags1[] = -{ - "BA_ACID", - "BA_ELEC", - "BA_FIRE", - "BA_COLD", - "BA_POIS", - "BA_NETH", - "BA_WATE", - "BA_MANA", - "BA_DARK", - "DRAIN_MANA", - "MIND_BLAST", - "BRAIN_SMASH", - "CAUSE_1", - "CAUSE_2", - "CAUSE_3", - "CAUSE_4", - "BO_ACID", - "BO_ELEC", - "BO_FIRE", - "BO_COLD", - "BA_LITE", - "BO_NETH", - "BO_WATE", - "BO_MANA", - "BO_PLAS", - "BO_ICEE", - "MISSILE", - "SCARE", - "BLIND", - "CONF", - "SLOW", - "HOLD" -}; - -/*! - * モンスター特性トークン(発動型能力2) / - * Monster race flags - */ -static concptr r_a_ability_flags2[] = -{ - "HASTE", - "HAND_DOOM", - "HEAL", - "INVULNER", - "BLINK", - "TPORT", - "WORLD", - "SPECIAL", - "TELE_TO", - "TELE_AWAY", - "TELE_LEVEL", - "PSY_SPEAR", - "DARKNESS", - "TRAPS", - "FORGET", - "ANIM_DEAD", /* ToDo: Implement ANIM_DEAD */ - "S_KIN", - "S_CYBER", - "S_MONSTER", - "S_MONSTERS", - "S_ANT", - "S_SPIDER", - "S_HOUND", - "S_HYDRA", - "S_ANGEL", - "S_DEMON", - "S_UNDEAD", - "S_DRAGON", - "S_HI_UNDEAD", - "S_HI_DRAGON", - "S_AMBERITES", - "S_UNIQUE" -}; - -/*! - * モンスター特性トークンの定義7 / - * Monster race flags - */ -static concptr r_info_flags7[] = -{ - "AQUATIC", - "CAN_SWIM", - "CAN_FLY", - "FRIENDLY", - "NAZGUL", - "UNIQUE2", - "RIDING", - "KAGE", - "HAS_LITE_1", - "SELF_LITE_1", - "HAS_LITE_2", - "SELF_LITE_2", - "GUARDIAN", - "CHAMELEON", - "XXXX4XXX", - "TANUKI", - "HAS_DARK_1", - "SELF_DARK_1", - "HAS_DARK_2", - "SELF_DARK_2", - "XXX7X20", - "XXX7X21", - "XXX7X22", - "XXX7X23", - "XXX7X24", - "XXX7X25", - "XXX7X26", - "XXX7X27", - "XXX7X28", - "XXX7X29", - "XXX7X30", - "XXX7X31", -}; - -/*! - * モンスター特性トークンの定義8 / - * Monster race flags - */ -static concptr r_info_flags8[] = -{ - "WILD_ONLY", - "WILD_TOWN", - "XXX8X02", - "WILD_SHORE", - "WILD_OCEAN", - "WILD_WASTE", - "WILD_WOOD", - "WILD_VOLCANO", - "XXX8X08", - "WILD_MOUNTAIN", - "WILD_GRASS", - "XXX8X11", - "XXX8X12", - "XXX8X13", - "XXX8X14", - "XXX8X15", - "XXX8X16", - "XXX8X17", - "XXX8X18", - "XXX8X19", - "XXX8X20", - "XXX8X21", - "XXX8X22", - "XXX8X23", - "XXX8X24", - "XXX8X25", - "XXX8X26", - "XXX8X27", - "XXX8X28", - "XXX8X29", - "WILD_SWAMP", /* ToDo: Implement Swamp */ - "WILD_ALL", -}; - -/*! - * モンスター特性トークンの定義9 / - * Monster race flags - */ -static concptr r_info_flags9[] = -{ - "DROP_CORPSE", - "DROP_SKELETON", - "EAT_BLIND", - "EAT_CONF", - "EAT_MANA", - "EAT_NEXUS", - "EAT_BLINK", - "EAT_SLEEP", - "EAT_BERSERKER", - "EAT_ACIDIC", - "EAT_SPEED", - "EAT_CURE", - "EAT_FIRE_RES", - "EAT_COLD_RES", - "EAT_ACID_RES", - "EAT_ELEC_RES", - "EAT_POIS_RES", - "EAT_INSANITY", - "EAT_DRAIN_EXP", - "EAT_POISONOUS", - "EAT_GIVE_STR", - "EAT_GIVE_INT", - "EAT_GIVE_WIS", - "EAT_GIVE_DEX", - "EAT_GIVE_CON", - "EAT_GIVE_CHR", - "EAT_LOSE_STR", - "EAT_LOSE_INT", - "EAT_LOSE_WIS", - "EAT_LOSE_DEX", - "EAT_LOSE_CON", - "EAT_LOSE_CHR", - "EAT_DRAIN_MANA", -}; - -/*! - * モンスター特性トークンの定義R(耐性) / - * Monster race flags - */ -static concptr 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 diff --git a/src/info-reader/race-info-tokens-table.c b/src/info-reader/race-info-tokens-table.c new file mode 100644 index 000000000..201ff6c62 --- /dev/null +++ b/src/info-reader/race-info-tokens-table.c @@ -0,0 +1,593 @@ +#include "info-reader/race-info-tokens-table.h" + +/*! + * モンスターの打撃手段トークンの定義 / + * Monster Blow Methods + */ +concptr r_info_blow_method[NUM_R_BLOW_METHOD] = { + "", + "HIT", + "TOUCH", + "PUNCH", + "KICK", + "CLAW", + "BITE", + "STING", + "SLASH", + "BUTT", + "CRUSH", + "ENGULF", + "CHARGE", + "CRAWL", + "DROOL", + "SPIT", + "EXPLODE", + "GAZE", + "WAIL", + "SPORE", + "XXX4", + "BEG", + "INSULT", + "MOAN", + "SHOW", + "SHOOT", + NULL +}; + +/*! + * モンスターの打撃属性トークンの定義 / + * Monster Blow Effects + */ +concptr r_info_blow_effect[NUM_R_BLOW_EFFECT] = { + "", + "HURT", + "POISON", + "UN_BONUS", + "UN_POWER", + "EAT_GOLD", + "EAT_ITEM", + "EAT_FOOD", + "EAT_LITE", + "ACID", + "ELEC", + "FIRE", + "COLD", + "BLIND", + "CONFUSE", + "TERRIFY", + "PARALYZE", + "LOSE_STR", + "LOSE_INT", + "LOSE_WIS", + "LOSE_DEX", + "LOSE_CON", + "LOSE_CHR", + "LOSE_ALL", + "SHATTER", + "EXP_10", + "EXP_20", + "EXP_40", + "EXP_80", + "DISEASE", + "TIME", + "EXP_VAMP", + "DR_MANA", + "SUPERHURT", + "INERTIA", + "STUN", + NULL +}; + +/*! + * 地形属性トークンの定義 / + * Feature info flags + */ +concptr f_info_flags[NUM_R_FLAGS] = { + "LOS", + "PROJECT", + "MOVE", + "PLACE", + "DROP", + "SECRET", + "NOTICE", + "REMEMBER", + "OPEN", + "CLOSE", + "BASH", + "SPIKE", + "DISARM", + "STORE", + "TUNNEL", + "MAY_HAVE_GOLD", + "HAS_GOLD", + "HAS_ITEM", + "DOOR", + "TRAP", + "STAIRS", + "GLYPH", + "LESS", + "MORE", + "AVOID_RUN", + "FLOOR", + "WALL", + "PERMANENT", + "XXX00", + "XXX01", + "XXX02", + "HIT_TRAP", + + "BRIDGE", + "RIVER", + "LAKE", + "BRIDGED", + "COVERED", + "GLOW", + "ENSECRET", + "WATER", + "LAVA", + "SHALLOW", + "DEEP", + "POISON_PUDDLE", + "HURT_ROCK", + "HURT_FIRE", + "HURT_COLD", + "HURT_ACID", + "COLD_PUDDLE", + "ACID_PUDDLE", + "OIL", + "ELEC_PUDDLE", + "CAN_CLIMB", + "CAN_FLY", + "CAN_SWIM", + "CAN_PASS", + "CAN_OOZE", + "CAN_DIG", + "HIDE_ITEM", + "HIDE_SNEAK", + "HIDE_SWIM", + "HIDE_DIG", + "KILL_HUGE", + "KILL_MOVE", + + "PICK_TRAP", + "PICK_DOOR", + "ALLOC", + "CHEST", + "DROP_1D2", + "DROP_2D2", + "DROP_GOOD", + "DROP_GREAT", + "HURT_POIS", + "HURT_ELEC", + "HURT_WATER", + "HURT_BWATER", + "USE_FEAT", + "GET_FEAT", + "GROUND", + "OUTSIDE", + "EASY_HIDE", + "EASY_CLIMB", + "MUST_CLIMB", + "TREE", + "NEED_TREE", + "BLOOD", + "DUST", + "SLIME", + "PLANT", + "XXX2", + "INSTANT", + "EXPLODE", + "TIMED", + "ERUPT", + "STRIKE", + "SPREAD", + + "SPECIAL", + "HURT_DISI", + "QUEST_ENTER", + "QUEST_EXIT", + "QUEST", + "SHAFT", + "MOUNTAIN", + "BLDG", + "MINOR_GLYPH", + "PATTERN", + "TOWN", + "ENTRANCE", + "MIRROR", + "UNPERM", + "TELEPORTABLE", + "CONVERT", + "GLASS", +}; + +/*! + * モンスター特性トークンの定義1 / + * Monster race flags + */ +concptr r_info_flags1[NUM_R_FLAGS_1] = { + "UNIQUE", + "QUESTOR", + "MALE", + "FEMALE", + "CHAR_CLEAR", + "SHAPECHANGER", + "ATTR_CLEAR", + "ATTR_MULTI", + "FORCE_DEPTH", + "FORCE_MAXHP", + "FORCE_SLEEP", + "FORCE_EXTRA", + "ATTR_SEMIRAND", + "FRIENDS", + "ESCORT", + "ESCORTS", + "NEVER_BLOW", + "NEVER_MOVE", + "RAND_25", + "RAND_50", + "ONLY_GOLD", + "ONLY_ITEM", + "DROP_60", + "DROP_90", + "DROP_1D2", + "DROP_2D2", + "DROP_3D2", + "DROP_4D2", + "DROP_GOOD", + "DROP_GREAT", + "XXX2", + "XXX3" +}; + +/*! + * モンスター特性トークンの定義2 / + * Monster race flags + */ +concptr r_info_flags2[NUM_R_FLAGS_2] = { + "STUPID", + "SMART", + "CAN_SPEAK", + "REFLECTING", + "INVISIBLE", + "COLD_BLOOD", + "EMPTY_MIND", + "WEIRD_MIND", + "MULTIPLY", + "REGENERATE", + "CHAR_MULTI", + "ATTR_ANY", + "POWERFUL", + "ELDRITCH_HORROR", + "AURA_FIRE", + "AURA_ELEC", + "OPEN_DOOR", + "BASH_DOOR", + "PASS_WALL", + "KILL_WALL", + "MOVE_BODY", + "KILL_BODY", + "TAKE_ITEM", + "KILL_ITEM", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "HUMAN", + "QUANTUM" +}; + +/*! + * モンスター特性トークンの定義3 / + * Monster race flags + */ +concptr r_info_flags3[NUM_R_FLAGS_3] = { + "ORC", + "TROLL", + "GIANT", + "DRAGON", + "DEMON", + "UNDEAD", + "EVIL", + "ANIMAL", + "AMBERITE", + "GOOD", + "AURA_COLD", + "NONLIVING", + "HURT_LITE", + "HURT_ROCK", + "HURT_FIRE", + "HURT_COLD", + "ANGEL", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "XXX", + "NO_FEAR", + "NO_STUN", + "NO_CONF", + "NO_SLEEP" +}; + +/*! + * モンスター特性トークンの定義4 / + * Monster race flags + */ +concptr r_info_flags4[NUM_R_FLAGS_4] = { + "SHRIEK", + "XXX1", + "DISPEL", + "ROCKET", + "SHOOT", + "XXX2", + "XXX3", + "XXX4", + "BR_ACID", + "BR_ELEC", + "BR_FIRE", + "BR_COLD", + "BR_POIS", + "BR_NETH", + "BR_LITE", + "BR_DARK", + "BR_CONF", + "BR_SOUN", + "BR_CHAO", + "BR_DISE", + "BR_NEXU", + "BR_TIME", + "BR_INER", + "BR_GRAV", + "BR_SHAR", + "BR_PLAS", + "BR_WALL", + "BR_MANA", + "BA_NUKE", + "BR_NUKE", + "BA_CHAO", + "BR_DISI", +}; + +/*! + * モンスター特性トークン(発動型能力1) / + * Monster race flags + */ +concptr r_a_ability_flags1[NUM_R_ABILITY_FLAGS_1] = { + "BA_ACID", + "BA_ELEC", + "BA_FIRE", + "BA_COLD", + "BA_POIS", + "BA_NETH", + "BA_WATE", + "BA_MANA", + "BA_DARK", + "DRAIN_MANA", + "MIND_BLAST", + "BRAIN_SMASH", + "CAUSE_1", + "CAUSE_2", + "CAUSE_3", + "CAUSE_4", + "BO_ACID", + "BO_ELEC", + "BO_FIRE", + "BO_COLD", + "BA_LITE", + "BO_NETH", + "BO_WATE", + "BO_MANA", + "BO_PLAS", + "BO_ICEE", + "MISSILE", + "SCARE", + "BLIND", + "CONF", + "SLOW", + "HOLD" +}; + +/*! + * モンスター特性トークン(発動型能力2) / + * Monster race flags + */ +concptr r_a_ability_flags2[NUM_R_ABILITY_FLAGS_2] = { + "HASTE", + "HAND_DOOM", + "HEAL", + "INVULNER", + "BLINK", + "TPORT", + "WORLD", + "SPECIAL", + "TELE_TO", + "TELE_AWAY", + "TELE_LEVEL", + "PSY_SPEAR", + "DARKNESS", + "TRAPS", + "FORGET", + "ANIM_DEAD", /* ToDo: Implement ANIM_DEAD */ + "S_KIN", + "S_CYBER", + "S_MONSTER", + "S_MONSTERS", + "S_ANT", + "S_SPIDER", + "S_HOUND", + "S_HYDRA", + "S_ANGEL", + "S_DEMON", + "S_UNDEAD", + "S_DRAGON", + "S_HI_UNDEAD", + "S_HI_DRAGON", + "S_AMBERITES", + "S_UNIQUE" +}; + +/*! + * モンスター特性トークンの定義7 / + * Monster race flags + */ +concptr r_info_flags7[NUM_R_FLAGS_7] = { + "AQUATIC", + "CAN_SWIM", + "CAN_FLY", + "FRIENDLY", + "NAZGUL", + "UNIQUE2", + "RIDING", + "KAGE", + "HAS_LITE_1", + "SELF_LITE_1", + "HAS_LITE_2", + "SELF_LITE_2", + "GUARDIAN", + "CHAMELEON", + "XXXX4XXX", + "TANUKI", + "HAS_DARK_1", + "SELF_DARK_1", + "HAS_DARK_2", + "SELF_DARK_2", + "XXX7X20", + "XXX7X21", + "XXX7X22", + "XXX7X23", + "XXX7X24", + "XXX7X25", + "XXX7X26", + "XXX7X27", + "XXX7X28", + "XXX7X29", + "XXX7X30", + "XXX7X31", +}; + +/*! + * モンスター特性トークンの定義8 / + * Monster race flags + */ +concptr r_info_flags8[NUM_R_FLAGS_8] = { + "WILD_ONLY", + "WILD_TOWN", + "XXX8X02", + "WILD_SHORE", + "WILD_OCEAN", + "WILD_WASTE", + "WILD_WOOD", + "WILD_VOLCANO", + "XXX8X08", + "WILD_MOUNTAIN", + "WILD_GRASS", + "XXX8X11", + "XXX8X12", + "XXX8X13", + "XXX8X14", + "XXX8X15", + "XXX8X16", + "XXX8X17", + "XXX8X18", + "XXX8X19", + "XXX8X20", + "XXX8X21", + "XXX8X22", + "XXX8X23", + "XXX8X24", + "XXX8X25", + "XXX8X26", + "XXX8X27", + "XXX8X28", + "XXX8X29", + "WILD_SWAMP", /* ToDo: Implement Swamp */ + "WILD_ALL", +}; + +/*! + * モンスター特性トークンの定義9 / + * Monster race flags + */ +concptr r_info_flags9[NUM_R_FLAGS_9] = { + "DROP_CORPSE", + "DROP_SKELETON", + "EAT_BLIND", + "EAT_CONF", + "EAT_MANA", + "EAT_NEXUS", + "EAT_BLINK", + "EAT_SLEEP", + "EAT_BERSERKER", + "EAT_ACIDIC", + "EAT_SPEED", + "EAT_CURE", + "EAT_FIRE_RES", + "EAT_COLD_RES", + "EAT_ACID_RES", + "EAT_ELEC_RES", + "EAT_POIS_RES", + "EAT_INSANITY", + "EAT_DRAIN_EXP", + "EAT_POISONOUS", + "EAT_GIVE_STR", + "EAT_GIVE_INT", + "EAT_GIVE_WIS", + "EAT_GIVE_DEX", + "EAT_GIVE_CON", + "EAT_GIVE_CHR", + "EAT_LOSE_STR", + "EAT_LOSE_INT", + "EAT_LOSE_WIS", + "EAT_LOSE_DEX", + "EAT_LOSE_CON", + "EAT_LOSE_CHR", + "EAT_DRAIN_MANA", +}; + +/*! + * モンスター特性トークンの定義R(耐性) / + * Monster race flags + */ +concptr r_info_flagsr[NUM_R_FLAGS_R] = { + "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", +}; diff --git a/src/info-reader/race-info-tokens-table.h b/src/info-reader/race-info-tokens-table.h new file mode 100644 index 000000000..b882268d0 --- /dev/null +++ b/src/info-reader/race-info-tokens-table.h @@ -0,0 +1,31 @@ +#pragma once + +#include "system/angband.h" + +#define NUM_R_BLOW_METHOD 27 +#define NUM_R_BLOW_EFFECT 37 +#define NUM_R_FLAGS 113 +#define NUM_R_FLAGS_1 32 +#define NUM_R_FLAGS_2 32 +#define NUM_R_FLAGS_3 32 +#define NUM_R_FLAGS_4 32 +#define NUM_R_ABILITY_FLAGS_1 32 +#define NUM_R_ABILITY_FLAGS_2 32 +#define NUM_R_FLAGS_7 32 +#define NUM_R_FLAGS_8 32 +#define NUM_R_FLAGS_9 33 +#define NUM_R_FLAGS_R 32 + +extern concptr r_info_blow_method[NUM_R_BLOW_METHOD]; +extern concptr r_info_blow_effect[NUM_R_BLOW_EFFECT]; +extern concptr f_info_flags[NUM_R_FLAGS]; +extern concptr r_info_flags1[NUM_R_FLAGS_1]; +extern concptr r_info_flags2[NUM_R_FLAGS_2]; +extern concptr r_info_flags3[NUM_R_FLAGS_3]; +extern concptr r_info_flags4[NUM_R_FLAGS_4]; +extern concptr r_a_ability_flags1[NUM_R_ABILITY_FLAGS_1]; +extern concptr r_a_ability_flags2[NUM_R_ABILITY_FLAGS_2]; +extern concptr r_info_flags7[NUM_R_FLAGS_7]; +extern concptr r_info_flags8[NUM_R_FLAGS_8]; +extern concptr r_info_flags9[NUM_R_FLAGS_9]; +extern concptr r_info_flagsr[NUM_R_FLAGS_R]; -- 2.11.0