From c2afbf3e7d8657cb3414fc9ab5cf7582aa57e000 Mon Sep 17 00:00:00 2001 From: Hourier Date: Fri, 21 Aug 2020 13:57:01 +0900 Subject: [PATCH] [Refactor] #40653 Separated mind-chaos-warrior.c/h from spells-object.c/h --- Hengband/Hengband/Hengband.vcxproj | 2 + Hengband/Hengband/Hengband.vcxproj.filters | 6 ++ src/Makefile.am | 1 + src/mind/mind-chaos-warrior.c | 121 +++++++++++++++++++++++++++++ src/mind/mind-chaos-warrior.h | 5 ++ src/player/patron.c | 1 + src/spell/spells-object.c | 112 -------------------------- src/spell/spells-object.h | 1 - 8 files changed, 136 insertions(+), 113 deletions(-) create mode 100644 src/mind/mind-chaos-warrior.c create mode 100644 src/mind/mind-chaos-warrior.h diff --git a/Hengband/Hengband/Hengband.vcxproj b/Hengband/Hengband/Hengband.vcxproj index be76c04f6..91352a722 100644 --- a/Hengband/Hengband/Hengband.vcxproj +++ b/Hengband/Hengband/Hengband.vcxproj @@ -294,6 +294,7 @@ + @@ -939,6 +940,7 @@ + diff --git a/Hengband/Hengband/Hengband.vcxproj.filters b/Hengband/Hengband/Hengband.vcxproj.filters index a4ba11c93..a053e5d95 100644 --- a/Hengband/Hengband/Hengband.vcxproj.filters +++ b/Hengband/Hengband/Hengband.vcxproj.filters @@ -2159,6 +2159,9 @@ mind + + mind + @@ -4672,6 +4675,9 @@ mind + + mind + diff --git a/src/Makefile.am b/src/Makefile.am index d17f64ac1..7e4d515b0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -423,6 +423,7 @@ hengband_SOURCES = \ mind/mind-berserker.c mind/mind-berserker.h \ mind/mind-blue-mage.c mind/mind-blue-mage.h \ mind/mind-cavalry.c mind/mind-cavalry.h \ + mind/mind-chaos-warrior.c mind/mind-chaos-warrior.h \ mind/mind-explanations-table.c mind/mind-explanations-table.h \ mind/mind-force-trainer.c mind/mind-force-trainer.h \ mind/mind-info.c mind/mind-info.h \ diff --git a/src/mind/mind-chaos-warrior.c b/src/mind/mind-chaos-warrior.c new file mode 100644 index 000000000..739bf114b --- /dev/null +++ b/src/mind/mind-chaos-warrior.c @@ -0,0 +1,121 @@ +#include "mind/mind-chaos-warrior.h" +#include "floor/floor-object.h" +#include "object-enchant/object-boost.h" +#include "object-enchant/object-ego.h" +#include "object/object-generator.h" +#include "object/object-kind-hook.h" +#include "sv-definition/sv-weapon-types.h" +#include "system/floor-type-definition.h" +#include "system/object-type-definition.h" + +void acquire_chaos_weapon(player_type *creature_ptr) +{ + object_type forge; + object_type *q_ptr = &forge; + tval_type dummy = TV_SWORD; + OBJECT_SUBTYPE_VALUE dummy2; + switch (randint1(creature_ptr->lev)) { + case 0: + case 1: + dummy2 = SV_DAGGER; + break; + case 2: + case 3: + dummy2 = SV_MAIN_GAUCHE; + break; + case 4: + dummy2 = SV_TANTO; + break; + case 5: + case 6: + dummy2 = SV_RAPIER; + break; + case 7: + case 8: + dummy2 = SV_SMALL_SWORD; + break; + case 9: + case 10: + dummy2 = SV_BASILLARD; + break; + case 11: + case 12: + case 13: + dummy2 = SV_SHORT_SWORD; + break; + case 14: + case 15: + dummy2 = SV_SABRE; + break; + case 16: + case 17: + dummy2 = SV_CUTLASS; + break; + case 18: + dummy2 = SV_WAKIZASHI; + break; + case 19: + dummy2 = SV_KHOPESH; + break; + case 20: + dummy2 = SV_TULWAR; + break; + case 21: + dummy2 = SV_BROAD_SWORD; + break; + case 22: + case 23: + dummy2 = SV_LONG_SWORD; + break; + case 24: + case 25: + dummy2 = SV_SCIMITAR; + break; + case 26: + dummy2 = SV_NINJATO; + break; + case 27: + dummy2 = SV_KATANA; + break; + case 28: + case 29: + dummy2 = SV_BASTARD_SWORD; + break; + case 30: + dummy2 = SV_GREAT_SCIMITAR; + break; + case 31: + dummy2 = SV_CLAYMORE; + break; + case 32: + dummy2 = SV_ESPADON; + break; + case 33: + dummy2 = SV_TWO_HANDED_SWORD; + break; + case 34: + dummy2 = SV_FLAMBERGE; + break; + case 35: + dummy2 = SV_NO_DACHI; + break; + case 36: + dummy2 = SV_EXECUTIONERS_SWORD; + break; + case 37: + dummy2 = SV_ZWEIHANDER; + break; + case 38: + dummy2 = SV_HAYABUSA; + break; + default: + dummy2 = SV_BLADE_OF_CHAOS; + } + + object_prep(creature_ptr, q_ptr, lookup_kind(dummy, dummy2)); + q_ptr->to_h = 3 + randint1(creature_ptr->current_floor_ptr->dun_level) % 10; + q_ptr->to_d = 3 + randint1(creature_ptr->current_floor_ptr->dun_level) % 10; + one_resistance(q_ptr); + q_ptr->name2 = EGO_CHAOTIC; + (void)drop_near(creature_ptr, q_ptr, -1, creature_ptr->y, creature_ptr->x); +} diff --git a/src/mind/mind-chaos-warrior.h b/src/mind/mind-chaos-warrior.h new file mode 100644 index 000000000..22f79092c --- /dev/null +++ b/src/mind/mind-chaos-warrior.h @@ -0,0 +1,5 @@ +#pragma once + +#include "system/angband.h" + +void acquire_chaos_weapon(player_type *creature_ptr); diff --git a/src/player/patron.c b/src/player/patron.c index 14b68c42c..06c63a464 100644 --- a/src/player/patron.c +++ b/src/player/patron.c @@ -5,6 +5,7 @@ #include "flavor/object-flavor-types.h" #include "inventory/inventory-slot-types.h" #include "io/write-diary.h" +#include "mind/mind-chaos-warrior.h" #include "monster-floor/monster-summon.h" #include "monster-floor/place-monster-types.h" #include "monster-race/monster-race-hook.h" diff --git a/src/spell/spells-object.c b/src/spell/spells-object.c index c6d67b1ae..95b5d20b5 100644 --- a/src/spell/spells-object.c +++ b/src/spell/spells-object.c @@ -228,118 +228,6 @@ void acquirement(player_type *caster_ptr, POSITION y1, POSITION x1, int num, boo } } -void acquire_chaos_weapon(player_type *creature_ptr) -{ - object_type forge; - object_type *q_ptr = &forge; - tval_type dummy = TV_SWORD; - OBJECT_SUBTYPE_VALUE dummy2; - switch (randint1(creature_ptr->lev)) { - case 0: - case 1: - dummy2 = SV_DAGGER; - break; - case 2: - case 3: - dummy2 = SV_MAIN_GAUCHE; - break; - case 4: - dummy2 = SV_TANTO; - break; - case 5: - case 6: - dummy2 = SV_RAPIER; - break; - case 7: - case 8: - dummy2 = SV_SMALL_SWORD; - break; - case 9: - case 10: - dummy2 = SV_BASILLARD; - break; - case 11: - case 12: - case 13: - dummy2 = SV_SHORT_SWORD; - break; - case 14: - case 15: - dummy2 = SV_SABRE; - break; - case 16: - case 17: - dummy2 = SV_CUTLASS; - break; - case 18: - dummy2 = SV_WAKIZASHI; - break; - case 19: - dummy2 = SV_KHOPESH; - break; - case 20: - dummy2 = SV_TULWAR; - break; - case 21: - dummy2 = SV_BROAD_SWORD; - break; - case 22: - case 23: - dummy2 = SV_LONG_SWORD; - break; - case 24: - case 25: - dummy2 = SV_SCIMITAR; - break; - case 26: - dummy2 = SV_NINJATO; - break; - case 27: - dummy2 = SV_KATANA; - break; - case 28: - case 29: - dummy2 = SV_BASTARD_SWORD; - break; - case 30: - dummy2 = SV_GREAT_SCIMITAR; - break; - case 31: - dummy2 = SV_CLAYMORE; - break; - case 32: - dummy2 = SV_ESPADON; - break; - case 33: - dummy2 = SV_TWO_HANDED_SWORD; - break; - case 34: - dummy2 = SV_FLAMBERGE; - break; - case 35: - dummy2 = SV_NO_DACHI; - break; - case 36: - dummy2 = SV_EXECUTIONERS_SWORD; - break; - case 37: - dummy2 = SV_ZWEIHANDER; - break; - case 38: - dummy2 = SV_HAYABUSA; - break; - default: - dummy2 = SV_BLADE_OF_CHAOS; - } - - object_prep(creature_ptr, q_ptr, lookup_kind(dummy, dummy2)); - q_ptr->to_h = 3 + randint1(creature_ptr->current_floor_ptr->dun_level) % 10; - q_ptr->to_d = 3 + randint1(creature_ptr->current_floor_ptr->dun_level) % 10; - one_resistance(q_ptr); - q_ptr->name2 = EGO_CHAOTIC; - (void)drop_near(creature_ptr, q_ptr, -1, creature_ptr->y, creature_ptr->x); -} - /*! * todo 元のreturnは間違っているが、修正後の↓文がどれくらい正しいかは要チェック * @brief 防具呪縛処理 / diff --git a/src/spell/spells-object.h b/src/spell/spells-object.h index bb1df7523..33b83d1f7 100644 --- a/src/spell/spells-object.h +++ b/src/spell/spells-object.h @@ -4,7 +4,6 @@ void amusement(player_type *creature_ptr, POSITION y1, POSITION x1, int num, bool known); void acquirement(player_type *caster_ptr, POSITION y1, POSITION x1, int num, bool great, bool special, bool known); -void acquire_chaos_weapon(player_type *creature_ptr); bool curse_armor(player_type *owner_ptr); bool curse_weapon_object(player_type *creature_ptr, bool force, object_type *o_ptr); bool rustproof(player_type *caster_ptr); -- 2.11.0