OSDN Git Service

[Refactor] #1003 object-generator.cpp/h をobject-type-definition.cpp/h に統合した / Unified...
authorHourier <grapefox.whitelucifer.0408@gmail.com>
Sun, 2 May 2021 13:50:28 +0000 (22:50 +0900)
committerHourier <grapefox.whitelucifer.0408@gmail.com>
Sun, 2 May 2021 13:50:28 +0000 (22:50 +0900)
64 files changed:
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/action/weapon-shield.cpp
src/artifact/fixed-art-generator.cpp
src/birth/game-play-initializer.cpp
src/birth/inventory-initializer.cpp
src/cmd-item/cmd-destroy.cpp
src/cmd-item/cmd-eat.cpp
src/cmd-item/cmd-equipment.cpp
src/cmd-item/cmd-smith.cpp
src/cmd-item/cmd-throw.cpp
src/cmd-item/cmd-usestaff.cpp
src/cmd-visual/cmd-visuals.cpp
src/combat/shoot.cpp
src/core/object-compressor.cpp
src/dungeon/quest-completion-checker.cpp
src/dungeon/quest.cpp
src/effect/effect-monster.cpp
src/floor/fixed-map-generator.cpp
src/floor/floor-object.cpp
src/floor/floor-util.cpp
src/grid/object-placer.cpp
src/inventory/inventory-object.cpp
src/knowledge/knowledge-items.cpp
src/knowledge/knowledge-quests.cpp
src/load/inventory-loader.cpp
src/load/store-loader.cpp
src/market/bounty.cpp
src/market/building-craft-weapon.cpp
src/mind/mind-archer.cpp
src/mind/mind-chaos-warrior.cpp
src/mind/mind-hobbit.cpp
src/mind/mind-mage.cpp
src/mind/mind-ninja.cpp
src/monster-attack/monster-eating.cpp
src/monster-floor/monster-death.cpp
src/monster-floor/monster-object.cpp
src/monster-floor/special-death-switcher.cpp
src/monster/monster-list.cpp
src/object-use/quaff-execution.cpp
src/object/object-generator.h [deleted file]
src/perception/object-perception.cpp
src/racial/racial-android.cpp
src/realm/realm-nature.cpp
src/specific-object/chest.cpp
src/spell-kind/spells-enchant.cpp
src/spell/spells-object.cpp
src/spell/spells-status.cpp
src/store/cmd-store.cpp
src/store/home.cpp
src/store/purchase-order.cpp
src/store/rumor.cpp
src/store/sell-order.cpp
src/store/store-util.cpp
src/store/store.cpp
src/system/object-type-definition.cpp [moved from src/object/object-generator.cpp with 50% similarity]
src/system/object-type-definition.h
src/view/object-describer.cpp
src/wizard/fixed-artifacts-spoiler.cpp
src/wizard/items-spoiler.cpp
src/wizard/wizard-item-modifier.cpp
src/wizard/wizard-special-process.cpp
src/wizard/wizard-spoiler.cpp

index 872c625..163bb2f 100644 (file)
     <ClCompile Include="..\..\src\store\sell-order.cpp" />\r
     <ClCompile Include="..\..\src\store\service-checker.cpp" />\r
     <ClCompile Include="..\..\src\system\angband-version.cpp" />\r
+    <ClCompile Include="..\..\src\system\object-type-definition.cpp" />\r
     <ClCompile Include="..\..\src\system\player-type-definition.cpp" />\r
     <ClCompile Include="..\..\src\target\grid-selector.cpp" />\r
     <ClCompile Include="..\..\src\target\projection-path-calculator.cpp" />\r
     <ClCompile Include="..\..\src\object\object-stack.cpp" />\r
     <ClCompile Include="..\..\src\object\object-value-calc.cpp" />\r
     <ClCompile Include="..\..\src\perception\object-perception.cpp" />\r
-    <ClCompile Include="..\..\src\object\object-generator.cpp" />\r
     <ClCompile Include="..\..\src\object\object-value.cpp" />\r
     <ClCompile Include="..\..\src\pet\pet-fall-off.cpp" />\r
     <ClCompile Include="..\..\src\mspell\mspell-floor.cpp" />\r
     <ClInclude Include="..\..\src\object\object-stack.h" />\r
     <ClInclude Include="..\..\src\object\object-value-calc.h" />\r
     <ClInclude Include="..\..\src\perception\object-perception.h" />\r
-    <ClInclude Include="..\..\src\object\object-generator.h" />\r
     <ClInclude Include="..\..\src\object\object-value.h" />\r
     <ClInclude Include="..\..\src\pet\pet-fall-off.h" />\r
     <ClInclude Include="..\..\src\pet\pet-util.h" />\r
index c31ae09..6c466ca 100644 (file)
     <ClCompile Include="..\..\src\world\world-object.cpp">\r
       <Filter>world</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="..\..\src\object\object-generator.cpp">\r
-      <Filter>object</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="..\..\src\object-enchant\object-boost.cpp">\r
       <Filter>object-enchant</Filter>\r
     </ClCompile>\r
     <ClCompile Include="..\..\src\object-enchant\apply-magic-amulet.cpp">\r
       <Filter>object-enchant</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\..\src\system\object-type-definition.cpp">\r
+      <Filter>system</Filter>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\..\src\combat\shoot.h">\r
     <ClInclude Include="..\..\src\world\world-object.h">\r
       <Filter>world</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="..\..\src\object\object-generator.h">\r
-      <Filter>object</Filter>\r
-    </ClInclude>\r
     <ClInclude Include="..\..\src\sv-definition\sv-armor-types.h">\r
       <Filter>sv-definition</Filter>\r
     </ClInclude>\r
index b595748..0b7d26b 100644 (file)
@@ -542,7 +542,6 @@ hengband_SOURCES = \
        object/item-tester-hooker.cpp object/item-tester-hooker.h \
        object/object-broken.cpp object/object-broken.h \
        object/object-flags.cpp object/object-flags.h \
-       object/object-generator.cpp object/object-generator.h \
        object/object-info.cpp object/object-info.h \
        object/object-kind.cpp object/object-kind.h \
        object/object-kind-hook.cpp object/object-kind-hook.h \
@@ -833,7 +832,7 @@ hengband_SOURCES = \
        system/h-define.h system/h-system.h system/h-type.h \
        system/monster-race-definition.h \
        system/monster-type-definition.h \
-       system/object-type-definition.h \
+       system/object-type-definition.cpp system/object-type-definition.h \
        system/player-type-definition.cpp system/player-type-definition.h \
        system/system-variables.cpp system/system-variables.h \
        system/gamevalue.h \
index 696be76..3c39162 100644 (file)
@@ -10,7 +10,6 @@
 #include "inventory/inventory-slot-types.h"
 #include "object-hook/hook-checker.h"
 #include "object-hook/hook-weapon.h"
-#include "object/object-generator.h"
 #include "player-info/equipment-info.h"
 #include "player-status/player-hand-types.h"
 #include "system/object-type-definition.h"
@@ -41,7 +40,7 @@ void verify_equip_slot(player_type *owner_ptr, INVENTORY_IDX item)
         }
 
         new_o_ptr = &owner_ptr->inventory_list[INVEN_MAIN_HAND];
-        object_copy(new_o_ptr, o_ptr);
+        new_o_ptr->object_copy(o_ptr);
         inven_item_increase(owner_ptr, INVEN_SUB_HAND, -((int)o_ptr->number));
         inven_item_optimize(owner_ptr, INVEN_SUB_HAND);
         if (object_allow_two_hands_wielding(o_ptr) && can_two_hands_wielding(owner_ptr))
@@ -69,7 +68,7 @@ void verify_equip_slot(player_type *owner_ptr, INVENTORY_IDX item)
         return;
 
     new_o_ptr = &owner_ptr->inventory_list[INVEN_SUB_HAND];
-    object_copy(new_o_ptr, o_ptr);
+    new_o_ptr->object_copy(o_ptr);
     inven_item_increase(owner_ptr, INVEN_MAIN_HAND, -((int)o_ptr->number));
     inven_item_optimize(owner_ptr, INVEN_MAIN_HAND);
     msg_format(_("%sを持ち替えた。", "You switched hand of %s."), o_name);
index b83a8a2..3e8a90b 100644 (file)
@@ -20,7 +20,6 @@
 #include "object-enchant/tr-types.h"
 #include "object-enchant/trc-types.h"
 #include "object-enchant/trg-types.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
 #include "player/player-sex.h"
@@ -247,7 +246,7 @@ bool create_named_art(player_type *player_ptr, ARTIFACT_IDX a_idx, POSITION y, P
 
     object_type forge;
     auto q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, i);
+    q_ptr->object_prep(player_ptr, i);
     q_ptr->name1 = a_idx;
 
     (void)apply_artifact(player_ptr, q_ptr);
@@ -378,7 +377,7 @@ bool make_artifact_special(player_type *player_ptr, object_type *o_ptr)
 
         /*! @note 前述の条件を満たしたら、後のIDのアーティファクトはチェックせずすぐ確定し生成処理に移す /
          * Assign the template. Mega-Hack -- mark the item as an artifact. Hack: Some artifacts get random extra powers. Success. */
-        object_prep(player_ptr, o_ptr, k_idx);
+        o_ptr->object_prep(player_ptr, k_idx);
 
         o_ptr->name1 = i;
         return true;
index e91262f..8e30f45 100644 (file)
@@ -10,7 +10,6 @@
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags7.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "pet/pet-util.h"
 #include "player/digestion-processor.h"
@@ -78,7 +77,7 @@ void player_wipe_without_name(player_type *creature_ptr)
     creature_ptr->inven_cnt = 0;
     creature_ptr->equip_cnt = 0;
     for (int i = 0; i < INVEN_TOTAL; i++)
-        object_wipe(&creature_ptr->inventory_list[i]);
+        (&creature_ptr->inventory_list[i])->object_wipe();
 
     for (int i = 0; i < max_a_idx; i++) {
         artifact_type *a_ptr = &a_info[i];
index 6116f5b..a153576 100644 (file)
@@ -10,7 +10,6 @@
 #include "object-enchant/apply-magic.h"
 #include "object-enchant/item-apply-magic.h"
 #include "object-enchant/object-ego.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
@@ -53,7 +52,7 @@ void wield_all(player_type *creature_ptr)
 
         object_type *i_ptr;
         i_ptr = &object_type_body;
-        object_copy(i_ptr, o_ptr);
+        i_ptr->object_copy(o_ptr);
         i_ptr->number = 1;
 
         if (item >= 0) {
@@ -65,7 +64,7 @@ void wield_all(player_type *creature_ptr)
         }
 
         o_ptr = &creature_ptr->inventory_list[slot];
-        object_copy(o_ptr, i_ptr);
+        o_ptr->object_copy(i_ptr);
         creature_ptr->equip_cnt++;
     }
 }
@@ -95,7 +94,7 @@ static void decide_initial_items(player_type *creature_ptr, object_type *q_ptr)
         /* Demon can drain vitality from humanoid corpse */
         get_mon_num_prep(creature_ptr, monster_hook_human, NULL);
         for (int i = rand_range(3, 4); i > 0; i--) {
-            object_prep(creature_ptr, q_ptr, lookup_kind(TV_CORPSE, SV_CORPSE));
+            q_ptr->object_prep(creature_ptr, lookup_kind(TV_CORPSE, SV_CORPSE));
             q_ptr->pval = get_mon_num(creature_ptr, 0, 2, 0);
             if (q_ptr->pval) {
                 q_ptr->number = 1;
@@ -109,26 +108,26 @@ static void decide_initial_items(player_type *creature_ptr, object_type *q_ptr)
     case RACE_ZOMBIE:
     case RACE_SPECTRE:
         /* Staff (of Nothing) */
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_STAFF, SV_STAFF_NOTHING));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_STAFF, SV_STAFF_NOTHING));
         q_ptr->number = 1;
         add_outfit(creature_ptr, q_ptr);
         break;
     case RACE_ENT:
         /* Potions of Water */
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_POTION, SV_POTION_WATER));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_POTION, SV_POTION_WATER));
         q_ptr->number = (ITEM_NUMBER)rand_range(15, 23);
         add_outfit(creature_ptr, q_ptr);
         break;
     case RACE_ANDROID:
         /* Flasks of oil */
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_FLASK, SV_ANY));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_FLASK, SV_ANY));
         apply_magic_to_object(creature_ptr, q_ptr, 1, AM_NO_FIXED_ART);
         q_ptr->number = (ITEM_NUMBER)rand_range(7, 12);
         add_outfit(creature_ptr, q_ptr);
         break;
     default:
         /* Food rations */
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
         q_ptr->number = (ITEM_NUMBER)rand_range(3, 7);
         add_outfit(creature_ptr, q_ptr);
     }
@@ -148,11 +147,11 @@ void player_outfit(player_type *creature_ptr)
     q_ptr = &forge;
 
     if ((creature_ptr->prace == RACE_VAMPIRE) && (creature_ptr->pclass != CLASS_NINJA)) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_SCROLL, SV_SCROLL_DARKNESS));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_SCROLL, SV_SCROLL_DARKNESS));
         q_ptr->number = (ITEM_NUMBER)rand_range(2, 5);
         add_outfit(creature_ptr, q_ptr);
     } else if (creature_ptr->pclass != CLASS_NINJA) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_LITE, SV_LITE_TORCH));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_LITE, SV_LITE_TORCH));
         q_ptr->number = (ITEM_NUMBER)rand_range(3, 7);
         q_ptr->xtra4 = rand_range(3, 7) * 500;
 
@@ -161,73 +160,73 @@ void player_outfit(player_type *creature_ptr)
 
     q_ptr = &forge;
     if (creature_ptr->prace == RACE_MERFOLK) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_RING, SV_RING_LEVITATION_FALL));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_RING, SV_RING_LEVITATION_FALL));
         q_ptr->number = 1;
         add_outfit(creature_ptr, q_ptr);
     }
 
     if ((creature_ptr->pclass == CLASS_RANGER) || (creature_ptr->pclass == CLASS_CAVALRY)) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
         q_ptr->number = (byte)rand_range(15, 20);
         add_outfit(creature_ptr, q_ptr);
     }
 
     if (creature_ptr->pclass == CLASS_RANGER) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_BOW, SV_SHORT_BOW));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_BOW, SV_SHORT_BOW));
         add_outfit(creature_ptr, q_ptr);
     } else if (creature_ptr->pclass == CLASS_ARCHER) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
         q_ptr->number = (ITEM_NUMBER)rand_range(15, 20);
         add_outfit(creature_ptr, q_ptr);
     } else if (creature_ptr->pclass == CLASS_HIGH_MAGE || creature_ptr->pclass == CLASS_ELEMENTALIST) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_WAND, SV_WAND_MAGIC_MISSILE));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_WAND, SV_WAND_MAGIC_MISSILE));
         q_ptr->number = 1;
         q_ptr->pval = (PARAMETER_VALUE)rand_range(25, 30);
         add_outfit(creature_ptr, q_ptr);
     } else if (creature_ptr->pclass == CLASS_SORCERER) {
         int book_tval;
         for (book_tval = TV_LIFE_BOOK; book_tval <= TV_LIFE_BOOK + static_cast<int>(MAX_MAGIC) - 1; book_tval++) {
-            object_prep(creature_ptr, q_ptr, lookup_kind(static_cast<tval_type>(book_tval), 0));
+            q_ptr->object_prep(creature_ptr, lookup_kind(static_cast<tval_type>(book_tval), 0));
             q_ptr->number = 1;
             add_outfit(creature_ptr, q_ptr);
         }
     } else if (creature_ptr->pclass == CLASS_TOURIST) {
         if (creature_ptr->pseikaku != PERSONALITY_SEXY) {
-            object_prep(creature_ptr, q_ptr, lookup_kind(TV_SHOT, SV_AMMO_LIGHT));
+            q_ptr->object_prep(creature_ptr, lookup_kind(TV_SHOT, SV_AMMO_LIGHT));
             q_ptr->number = rand_range(15, 20);
             add_outfit(creature_ptr, q_ptr);
         }
 
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_BISCUIT));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_FOOD, SV_FOOD_BISCUIT));
         q_ptr->number = rand_range(2, 4);
 
         add_outfit(creature_ptr, q_ptr);
 
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_WAYBREAD));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_FOOD, SV_FOOD_WAYBREAD));
         q_ptr->number = rand_range(2, 4);
 
         add_outfit(creature_ptr, q_ptr);
 
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_JERKY));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_FOOD, SV_FOOD_JERKY));
         q_ptr->number = rand_range(1, 3);
 
         add_outfit(creature_ptr, q_ptr);
 
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_ALE));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_ALE));
         q_ptr->number = rand_range(2, 4);
 
         add_outfit(creature_ptr, q_ptr);
 
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_WINE));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_WINE));
         q_ptr->number = rand_range(2, 4);
 
         add_outfit(creature_ptr, q_ptr);
     } else if (creature_ptr->pclass == CLASS_NINJA) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_SPIKE, 0));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_SPIKE, 0));
         q_ptr->number = rand_range(15, 20);
         add_outfit(creature_ptr, q_ptr);
     } else if (creature_ptr->pclass == CLASS_SNIPER) {
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_BOLT, SV_AMMO_NORMAL));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_BOLT, SV_AMMO_NORMAL));
         q_ptr->number = rand_range(15, 20);
         add_outfit(creature_ptr, q_ptr);
     }
@@ -260,7 +259,7 @@ void player_outfit(player_type *creature_ptr)
         }
 
         q_ptr = &forge;
-        object_prep(creature_ptr, q_ptr, lookup_kind(static_cast<tval_type>(tv), sv));
+        q_ptr->object_prep(creature_ptr, lookup_kind(static_cast<tval_type>(tv), sv));
         if ((tv == TV_SWORD || tv == TV_HAFTED)
             && (creature_ptr->pclass == CLASS_ROGUE && creature_ptr->realm1 == REALM_DEATH)) /* Only assassins get a poisoned weapon */
             q_ptr->name2 = EGO_BRAND_POIS;
index c388c3c..4bab100 100644 (file)
@@ -17,7 +17,6 @@
 #include "object-hook/hook-expendable.h"
 #include "object-hook/hook-magic.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-stack.h"
 #include "object/object-value.h"
 #include "player-info/avatar.h"
@@ -176,7 +175,7 @@ static void process_destroy_magic_book(player_type *creature_ptr, destroy_type *
 
 static void exe_destroy_item(player_type *creature_ptr, destroy_type *destroy_ptr)
 {
-    object_copy(destroy_ptr->q_ptr, destroy_ptr->o_ptr);
+    destroy_ptr->q_ptr->object_copy(destroy_ptr->o_ptr);
     msg_format(_("%sを壊した。", "You destroy %s."), destroy_ptr->o_name);
     sound(SOUND_DESTITEM);
     reduce_charges(destroy_ptr->o_ptr, destroy_ptr->amt);
index 08459b9..d867f81 100644 (file)
@@ -19,7 +19,6 @@
 #include "object-hook/hook-expendable.h"
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
@@ -224,7 +223,7 @@ bool exe_eat_charge_of_magic_device(player_type *creature_ptr, object_type *o_pt
             object_type forge;
             object_type *q_ptr;
             q_ptr = &forge;
-            object_copy(q_ptr, o_ptr);
+            q_ptr->object_copy(o_ptr);
 
             /* Modify quantity */
             q_ptr->number = 1;
@@ -329,7 +328,7 @@ void exe_eat_food(player_type *creature_ptr, INVENTORY_IDX item)
             object_type *q_ptr = &forge;
 
             msg_print(_("食べ物がアゴを素通りして落ちた!", "The food falls through your jaws!"));
-            object_prep(creature_ptr, q_ptr, lookup_kind(o_ptr->tval, o_ptr->sval));
+            q_ptr->object_prep(creature_ptr, lookup_kind(o_ptr->tval, o_ptr->sval));
 
             /* Drop the object from heaven */
             (void)drop_near(creature_ptr, q_ptr, -1, creature_ptr->y, creature_ptr->x);
index 890d46c..d1babd6 100644 (file)
@@ -25,7 +25,6 @@
 #include "object-hook/hook-weapon.h"
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-mark-types.h"
 #include "perception/object-perception.h"
@@ -214,9 +213,9 @@ void do_cmd_wield(player_type *creature_ptr)
         object_type *otmp_ptr = &object_tmp;
         GAME_TEXT switch_name[MAX_NLEN];
         describe_flavor(creature_ptr, switch_name, switch_o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
-        object_copy(otmp_ptr, switch_o_ptr);
-        object_copy(switch_o_ptr, slot_o_ptr);
-        object_copy(slot_o_ptr, otmp_ptr);
+        otmp_ptr->object_copy(switch_o_ptr);
+        switch_o_ptr->object_copy(slot_o_ptr);
+        slot_o_ptr->object_copy(otmp_ptr);
         msg_format(_("%sを%sに構えなおした。", "You wield %s at %s hand."), switch_name,
             (slot == INVEN_MAIN_HAND) ? (left_hander ? _("左手", "left") : _("右手", "right")) : (left_hander ? _("右手", "right") : _("左手", "left")));
         slot = need_switch_wielding;
@@ -230,7 +229,7 @@ void do_cmd_wield(player_type *creature_ptr)
 
     PlayerEnergy(creature_ptr).set_player_turn_energy(100);
     q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
     q_ptr->number = 1;
     if (item >= 0) {
         inven_item_increase(creature_ptr, item, -1);
@@ -244,7 +243,7 @@ void do_cmd_wield(player_type *creature_ptr)
     if (o_ptr->k_idx)
         (void)inven_takeoff(creature_ptr, slot, 255);
 
-    object_copy(o_ptr, q_ptr);
+    o_ptr->object_copy(q_ptr);
     o_ptr->marked |= OM_TOUCHED;
     creature_ptr->equip_cnt++;
 
index 58718af..2f1fdb0 100644 (file)
@@ -29,7 +29,6 @@
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
 #include "object/object-flags.h" //!< @todo 相互参照している.
-#include "object/object-generator.h"
 #include "perception/object-perception.h"
 #include "player-status/player-energy.h"
 #include "system/object-type-definition.h"
@@ -333,7 +332,7 @@ static void drain_essence(player_type *creature_ptr)
     marked = o_ptr->marked;
     number = o_ptr->number;
 
-    object_prep(creature_ptr, o_ptr, o_ptr->k_idx);
+    o_ptr->object_prep(creature_ptr, o_ptr->k_idx);
 
     o_ptr->iy = iy;
     o_ptr->ix = ix;
index dcbad05..76ba120 100644 (file)
@@ -40,7 +40,6 @@
 #include "object/item-use-flags.h"
 #include "object/object-broken.h"
 #include "object/object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind.h"
 #include "object/object-stack.h"
@@ -137,7 +136,7 @@ static bool check_can_throw(player_type *creature_ptr, it_type *it_ptr)
 
 static void calc_throw_range(player_type *creature_ptr, it_type *it_ptr)
 {
-    object_copy(it_ptr->q_ptr, it_ptr->o_ptr);
+    it_ptr->q_ptr->object_copy(it_ptr->o_ptr);
     object_flags(creature_ptr, it_ptr->q_ptr, it_ptr->obj_flags);
     torch_flags(it_ptr->q_ptr, it_ptr->obj_flags);
     distribute_charges(it_ptr->o_ptr, it_ptr->q_ptr, 1);
@@ -482,7 +481,7 @@ static void process_boomerang_back(player_type *creature_ptr, it_type *it_ptr)
         }
 
         it_ptr->o_ptr = &creature_ptr->inventory_list[it_ptr->item];
-        object_copy(it_ptr->o_ptr, it_ptr->q_ptr);
+        it_ptr->o_ptr->object_copy(it_ptr->q_ptr);
         creature_ptr->equip_cnt++;
         creature_ptr->update |= PU_BONUS | PU_TORCH | PU_MANA;
         creature_ptr->window_flags |= PW_EQUIP;
index de2d065..57b5762 100644 (file)
@@ -12,7 +12,6 @@
 #include "monster-floor/place-monster-types.h"
 #include "object-enchant/special-object-flags.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind.h"
 #include "perception/object-perception.h"
@@ -402,7 +401,7 @@ void exe_use_staff(player_type *creature_ptr, INVENTORY_IDX item)
         object_type forge;
         object_type *q_ptr;
         q_ptr = &forge;
-        object_copy(q_ptr, o_ptr);
+        q_ptr->object_copy(o_ptr);
 
         /* Modify quantity */
         q_ptr->number = 1;
index 410d868..dbe88aa 100644 (file)
@@ -15,7 +15,6 @@
 #include "knowledge/lighting-level-table.h"
 #include "main/sound-of-music.h"
 #include "monster-race/monster-race.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "system/monster-race-definition.h"
 #include "system/object-type-definition.h"
@@ -155,7 +154,7 @@ void do_cmd_visuals(player_type *creature_ptr)
                     strip_name(o_name, k_idx);
                 } else {
                     object_type forge;
-                    object_prep(creature_ptr, &forge, k_idx);
+                    (&forge)->object_prep(creature_ptr, k_idx);
                     describe_flavor(creature_ptr, o_name, &forge, OD_FORCE_FLAVOR);
                 }
 
index f134d09..4e1d19e 100644 (file)
@@ -42,7 +42,6 @@
 #include "object-hook/hook-enchant.h"
 #include "object/object-broken.h"
 #include "object/object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind.h"
 #include "object/object-mark-types.h"
@@ -507,7 +506,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
         y = shooter_ptr->y;
         x = shooter_ptr->x;
         q_ptr = &forge;
-        object_copy(q_ptr, o_ptr);
+        q_ptr->object_copy(o_ptr);
 
         /* Single object */
         q_ptr->number = 1;
@@ -852,7 +851,7 @@ void exe_fire(player_type *shooter_ptr, INVENTORY_IDX item, object_type *j_ptr,
             }
 
             o_ptr = &shooter_ptr->current_floor_ptr->o_list[o_idx];
-            object_copy(o_ptr, q_ptr);
+            o_ptr->object_copy(q_ptr);
 
             /* Forget mark */
             reset_bits(o_ptr->marked, OM_TOUCHED);
index 824e6b0..089e402 100644 (file)
@@ -6,7 +6,6 @@
 #include "grid/grid.h"
 #include "object-hook/hook-checker.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "system/floor-type-definition.h"
 #include "system/monster-type-definition.h"
@@ -35,7 +34,7 @@ static void compact_objects_aux(floor_type *floor_ptr, OBJECT_IDX i1, OBJECT_IDX
 
     // 要素番号i1のオブジェクトを要素番号i2に移動
     floor_ptr->o_list[i2] = floor_ptr->o_list[i1];
-    object_wipe(o_ptr);
+    o_ptr->object_wipe();
 }
 
 /*!
index 5ad5633..f045aa6 100644 (file)
@@ -10,7 +10,6 @@
 #include "grid/grid.h"
 #include "monster/monster-info.h"
 #include "object-enchant/item-apply-magic.h"
-#include "object/object-generator.h"
 #include "system/floor-type-definition.h"
 #include "system/monster-type-definition.h"
 #include "system/object-type-definition.h"
@@ -173,7 +172,7 @@ void check_quest_completion(player_type *player_ptr, monster_type *m_ptr)
     object_type *o_ptr;
     for (int i = 0; i < (floor_ptr->dun_level / 15) + 1; i++) {
         o_ptr = &forge;
-        object_wipe(o_ptr);
+        o_ptr->object_wipe();
         make_object(player_ptr, o_ptr, AM_GOOD | AM_GREAT);
         (void)drop_near(player_ptr, o_ptr, -1, y, x);
     }
index 99345b0..badd57f 100644 (file)
@@ -25,7 +25,6 @@
 #include "monster/smart-learn-types.h"
 #include "object-enchant/item-apply-magic.h"
 #include "object-enchant/trg-types.h"
-#include "object/object-generator.h"
 #include "player-status/player-energy.h"
 #include "player/player-personality-types.h"
 #include "player/player-status.h"
index bee2df7..c510d3f 100644 (file)
@@ -35,7 +35,6 @@
 #include "monster/monster-status.h"
 #include "monster/monster-update.h"
 #include "object-enchant/special-object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "player-info/avatar.h"
 #include "util/bit-flags-calculator.h"
@@ -591,7 +590,7 @@ static void postprocess_by_taking_photo(player_type *caster_ptr, effect_monster_
     object_type *q_ptr;
     object_type forge;
     q_ptr = &forge;
-    object_prep(caster_ptr, q_ptr, lookup_kind(TV_STATUE, SV_PHOTO));
+    q_ptr->object_prep(caster_ptr, lookup_kind(TV_STATUE, SV_PHOTO));
     q_ptr->pval = em_ptr->photo;
     q_ptr->ident |= (IDENT_FULL_KNOWN);
     (void)drop_near(caster_ptr, q_ptr, -1, caster_ptr->y, caster_ptr->x);
index db18212..7cb3100 100644 (file)
@@ -22,7 +22,6 @@
 #include "object-enchant/item-apply-magic.h"
 #include "object-enchant/object-ego.h"
 #include "object-enchant/trg-types.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
@@ -66,7 +65,7 @@ static void drop_here(floor_type *floor_ptr, object_type *j_ptr, POSITION y, POS
     OBJECT_IDX o_idx = o_pop(floor_ptr);
     object_type *o_ptr;
     o_ptr = &floor_ptr->o_list[o_idx];
-    object_copy(o_ptr, j_ptr);
+    o_ptr->object_copy(j_ptr);
     o_ptr->iy = y;
     o_ptr->ix = x;
     o_ptr->held_m_idx = 0;
@@ -87,7 +86,7 @@ static void generate_artifact(player_type *player_ptr, qtwg_type *qtwg_ptr, cons
     KIND_OBJECT_IDX k_idx = lookup_kind(TV_SCROLL, SV_SCROLL_ACQUIREMENT);
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, k_idx);
+    q_ptr->object_prep(player_ptr, k_idx);
     drop_here(player_ptr->current_floor_ptr, q_ptr, *qtwg_ptr->y, *qtwg_ptr->x);
 }
 
@@ -175,7 +174,7 @@ static void parse_qtw_D(player_type *player_ptr, qtwg_type *qtwg_ptr, char *s)
         } else if (object_index) {
             object_type tmp_object;
             object_type *o_ptr = &tmp_object;
-            object_prep(player_ptr, o_ptr, object_index);
+            o_ptr->object_prep(player_ptr, object_index);
             if (o_ptr->tval == TV_GOLD) {
                 coin_type = object_index - OBJ_GOLD_LIST;
                 make_gold(player_ptr, o_ptr);
index cb11207..4eec41c 100644 (file)
@@ -25,7 +25,6 @@
 #include "object-enchant/special-object-flags.h"
 #include "object-hook/hook-checker.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
@@ -118,7 +117,7 @@ bool make_object(player_type *owner_ptr, object_type *j_ptr, BIT_FLAGS mode)
         if (!k_idx)
             return FALSE;
 
-        object_prep(owner_ptr, j_ptr, k_idx);
+        j_ptr->object_prep(owner_ptr, k_idx);
     }
 
     apply_magic_to_object(owner_ptr, j_ptr, floor_ptr->object_level, mode);
@@ -163,7 +162,7 @@ bool make_gold(player_type *player_ptr, object_type *j_ptr)
         i = coin_type;
     if (i >= MAX_GOLD)
         i = MAX_GOLD - 1;
-    object_prep(player_ptr, j_ptr, OBJ_GOLD_LIST + i);
+    j_ptr->object_prep(player_ptr, OBJ_GOLD_LIST + i);
 
     s32b base = k_info[OBJ_GOLD_LIST + i].cost;
     j_ptr->pval = (base + (8L * randint1(base)) + randint1(8));
@@ -189,7 +188,7 @@ void delete_all_items_from_floor(player_type *player_ptr, POSITION y, POSITION x
     for (const auto this_o_idx : g_ptr->o_idx_list) {
         object_type *o_ptr;
         o_ptr = &floor_ptr->o_list[this_o_idx];
-        object_wipe(o_ptr);
+        o_ptr->object_wipe();
         floor_ptr->o_cnt--;
     }
 
@@ -261,7 +260,7 @@ void delete_object_idx(player_type *player_ptr, OBJECT_IDX o_idx)
         lite_spot(player_ptr, y, x);
     }
 
-    object_wipe(j_ptr);
+    j_ptr->object_wipe();
     floor_ptr->o_cnt--;
 
     set_bits(player_ptr->window_flags, PW_FLOOR_ITEM_LIST);
@@ -507,7 +506,7 @@ OBJECT_IDX drop_near(player_type *owner_ptr, object_type *j_ptr, PERCENTAGE chan
     }
 
     if (!done) {
-        object_copy(&floor_ptr->o_list[o_idx], j_ptr);
+        (&floor_ptr->o_list[o_idx])->object_copy(j_ptr);
         j_ptr = &floor_ptr->o_list[o_idx];
         j_ptr->iy = by;
         j_ptr->ix = bx;
index d4e4cf0..e13afec 100644 (file)
@@ -17,7 +17,6 @@
 #include "grid/grid.h"
 #include "object-hook/hook-checker.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "perception/object-perception.h"
 #include "system/artifact-type-definition.h"
 #include "system/floor-type-definition.h"
@@ -134,7 +133,7 @@ void wipe_o_list(floor_type *floor_ptr)
 
         auto &list = get_o_idx_list_contains(floor_ptr, i);
         list.clear();
-        object_wipe(o_ptr);
+        o_ptr->object_wipe();
     }
 
     floor_ptr->o_max = 1;
index 83e19f3..c78c1e7 100644 (file)
@@ -3,7 +3,6 @@
 #include "floor/floor-object.h"
 #include "grid/grid.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "system/artifact-type-definition.h"
 #include "system/floor-type-definition.h"
 #include "system/object-type-definition.h"
@@ -34,7 +33,7 @@ void place_gold(player_type *player_ptr, POSITION y, POSITION x)
     object_type forge;
     object_type *q_ptr;
     q_ptr = &forge;
-    object_wipe(q_ptr);
+    q_ptr->object_wipe();
     if (!make_gold(player_ptr, q_ptr))
         return;
 
@@ -44,7 +43,7 @@ void place_gold(player_type *player_ptr, POSITION y, POSITION x)
 
     object_type *o_ptr;
     o_ptr = &floor_ptr->o_list[o_idx];
-    object_copy(o_ptr, q_ptr);
+    o_ptr->object_copy(q_ptr);
 
     o_ptr->iy = y;
     o_ptr->ix = x;
@@ -77,7 +76,7 @@ void place_object(player_type *owner_ptr, POSITION y, POSITION x, BIT_FLAGS mode
         return;
 
     q_ptr = &forge;
-    object_wipe(q_ptr);
+    q_ptr->object_wipe();
     if (!make_object(owner_ptr, q_ptr, mode))
         return;
 
@@ -92,7 +91,7 @@ void place_object(player_type *owner_ptr, POSITION y, POSITION x, BIT_FLAGS mode
 
     object_type *o_ptr;
     o_ptr = &floor_ptr->o_list[o_idx];
-    object_copy(o_ptr, q_ptr);
+    o_ptr->object_copy(q_ptr);
 
     o_ptr->iy = y;
     o_ptr->ix = x;
index 0b79d1a..de91620 100644 (file)
@@ -5,7 +5,6 @@
 #include "floor/floor-object.h"
 #include "inventory/inventory-slot-types.h"
 #include "object-hook/hook-weapon.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-mark-types.h"
 #include "object/object-stack.h"
@@ -84,7 +83,7 @@ void inven_item_optimize(player_type *owner_ptr, INVENTORY_IDX item)
 
     if (item >= INVEN_MAIN_HAND) {
         owner_ptr->equip_cnt--;
-        object_wipe(&owner_ptr->inventory_list[item]);
+        (&owner_ptr->inventory_list[item])->object_wipe();
         owner_ptr->update |= PU_BONUS;
         owner_ptr->update |= PU_TORCH;
         owner_ptr->update |= PU_MANA;
@@ -100,7 +99,7 @@ void inven_item_optimize(player_type *owner_ptr, INVENTORY_IDX item)
         owner_ptr->inventory_list[i] = owner_ptr->inventory_list[i + 1];
     }
 
-    object_wipe(&owner_ptr->inventory_list[i]);
+    (&owner_ptr->inventory_list[i])->object_wipe();
     owner_ptr->window_flags |= PW_INVEN;
     owner_ptr->window_flags |= PW_SPELL;
 }
@@ -133,7 +132,7 @@ void drop_from_inventory(player_type *owner_ptr, INVENTORY_IDX item, ITEM_NUMBER
     }
 
     q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
     distribute_charges(o_ptr, q_ptr, amt);
 
     q_ptr->number = amt;
@@ -188,7 +187,7 @@ void combine_pack(player_type *owner_ptr)
                         owner_ptr->inventory_list[k] = owner_ptr->inventory_list[k + 1];
                     }
 
-                    object_wipe(&owner_ptr->inventory_list[k]);
+                    (&owner_ptr->inventory_list[k])->object_wipe();
                 } else {
                     int old_num = o_ptr->number;
                     int remain = j_ptr->number + o_ptr->number - max_num;
@@ -250,12 +249,12 @@ void reorder_pack(player_type *owner_ptr)
 
         flag = TRUE;
         q_ptr = &forge;
-        object_copy(q_ptr, &owner_ptr->inventory_list[i]);
+        q_ptr->object_copy(&owner_ptr->inventory_list[i]);
         for (k = i; k > j; k--) {
-            object_copy(&owner_ptr->inventory_list[k], &owner_ptr->inventory_list[k - 1]);
+            (&owner_ptr->inventory_list[k])->object_copy(&owner_ptr->inventory_list[k - 1]);
         }
 
-        object_copy(&owner_ptr->inventory_list[j], q_ptr);
+        (&owner_ptr->inventory_list[j])->object_copy(q_ptr);
         owner_ptr->window_flags |= (PW_INVEN);
     }
 
@@ -323,13 +322,13 @@ s16b store_item_to_inventory(player_type *owner_ptr, object_type *o_ptr)
 
         i = j;
         for (k = n; k >= i; k--) {
-            object_copy(&owner_ptr->inventory_list[k + 1], &owner_ptr->inventory_list[k]);
+            (&owner_ptr->inventory_list[k + 1])->object_copy(&owner_ptr->inventory_list[k]);
         }
 
-        object_wipe(&owner_ptr->inventory_list[i]);
+        (&owner_ptr->inventory_list[i])->object_wipe();
     }
 
-    object_copy(&owner_ptr->inventory_list[i], o_ptr);
+    (&owner_ptr->inventory_list[i])->object_copy(o_ptr);
     j_ptr = &owner_ptr->inventory_list[i];
     j_ptr->held_m_idx = 0;
     j_ptr->iy = j_ptr->ix = 0;
@@ -397,7 +396,7 @@ INVENTORY_IDX inven_takeoff(player_type *owner_ptr, INVENTORY_IDX item, ITEM_NUM
     if (amt > o_ptr->number)
         amt = o_ptr->number;
     q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
     q_ptr->number = amt;
     describe_flavor(owner_ptr, o_name, q_ptr, 0);
     if (((item == INVEN_MAIN_HAND) || (item == INVEN_SUB_HAND)) && object_is_melee_weapon(o_ptr)) {
index 1d37613..0a20ace 100644 (file)
@@ -18,7 +18,6 @@
 #include "knowledge/object-group-table.h"
 #include "object-enchant/special-object-flags.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
 #include "perception/identification.h"
@@ -107,7 +106,7 @@ void do_cmd_knowledge_artifacts(player_type *player_ptr)
             object_type forge;
             object_type *q_ptr;
             q_ptr = &forge;
-            object_prep(player_ptr, q_ptr, z);
+            q_ptr->object_prep(player_ptr, z);
             q_ptr->name1 = who[k];
             q_ptr->ident |= IDENT_STORE;
             describe_flavor(player_ptr, base_name, q_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
@@ -228,8 +227,8 @@ static void desc_obj_fake(player_type *creature_ptr, KIND_OBJECT_IDX k_idx)
     object_type *o_ptr;
     object_type object_type_body;
     o_ptr = &object_type_body;
-    object_wipe(o_ptr);
-    object_prep(creature_ptr, o_ptr, k_idx);
+    o_ptr->object_wipe();
+    o_ptr->object_prep(creature_ptr, k_idx);
 
     o_ptr->ident |= IDENT_KNOWN;
     handle_stuff(creature_ptr);
index 39c4a1b..ae662d3 100644 (file)
@@ -15,7 +15,6 @@
 #include "locale/english.h"
 #include "monster-race/monster-race.h"
 #include "object-enchant/special-object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "system/artifact-type-definition.h"
 #include "system/floor-type-definition.h"
@@ -99,7 +98,7 @@ static void do_cmd_knowledge_quests_current(player_type *creature_ptr, FILE *fff
                         object_type forge;
                         object_type *q_ptr = &forge;
                         KIND_OBJECT_IDX k_idx = lookup_kind(a_ptr->tval, a_ptr->sval);
-                        object_prep(creature_ptr, q_ptr, k_idx);
+                        q_ptr->object_prep(creature_ptr, k_idx);
                         q_ptr->name1 = quest[i].k_idx;
                         q_ptr->ident = IDENT_STORE;
                         describe_flavor(creature_ptr, name, q_ptr, OD_NAME_ONLY);
index 86941d4..c52a0d3 100644 (file)
@@ -2,7 +2,6 @@
 #include "inventory/inventory-slot-types.h"
 #include "load/item-loader.h"
 #include "load/load-util.h"
-#include "object/object-generator.h"
 #include "object/object-mark-types.h"
 #include "system/object-type-definition.h"
 #include "system/player-type-definition.h"
@@ -38,7 +37,7 @@ static errr rd_inventory(player_type *player_ptr)
         object_type forge;
         object_type *q_ptr;
         q_ptr = &forge;
-        object_wipe(q_ptr);
+        q_ptr->object_wipe();
 
         rd_item(player_ptr, q_ptr);
         if (!q_ptr->k_idx)
@@ -46,7 +45,7 @@ static errr rd_inventory(player_type *player_ptr)
 
         if (n >= INVEN_MAIN_HAND) {
             q_ptr->marked |= OM_TOUCHED;
-            object_copy(&player_ptr->inventory_list[n], q_ptr);
+            (&player_ptr->inventory_list[n])->object_copy(q_ptr);
             player_ptr->equip_cnt++;
             continue;
         }
@@ -58,7 +57,7 @@ static errr rd_inventory(player_type *player_ptr)
 
         n = slot++;
         q_ptr->marked |= OM_TOUCHED;
-        object_copy(&player_ptr->inventory_list[n], q_ptr);
+        (&player_ptr->inventory_list[n])->object_copy(q_ptr);
         player_ptr->inven_cnt++;
     }
 
index d484e13..8ee4d25 100644 (file)
@@ -1,5 +1,4 @@
 #include "load/store-loader.h"
-#include "object/object-generator.h"
 #include "floor/floor-town.h"
 #include "load/angband-version-comparer.h"
 #include "load/item-loader.h"
@@ -98,7 +97,7 @@ static errr rd_store(player_type *player_ptr, int town_number, int store_number)
         object_type forge;
         object_type *q_ptr;
         q_ptr = &forge;
-        object_wipe(q_ptr);
+        q_ptr->object_wipe();
 
         rd_item(player_ptr, q_ptr);
 
@@ -110,7 +109,7 @@ static errr rd_store(player_type *player_ptr, int town_number, int store_number)
             home_carry_load(player_ptr, store_ptr, q_ptr);
         } else {
             int k = store_ptr->stock_num++;
-            object_copy(&store_ptr->stock[k], q_ptr);
+            (&store_ptr->stock[k])->object_copy(q_ptr);
         }
     }
 
index 2da09f1..5d099aa 100644 (file)
@@ -23,7 +23,6 @@
 #include "monster/monster-util.h"
 #include "object-enchant/apply-magic.h"
 #include "object-enchant/item-apply-magic.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind-hook.h"
 #include "perception/object-perception.h"
@@ -164,7 +163,7 @@ bool exchange_cash(player_type *player_ptr)
 
             msg_format(_("これで合計 %d ポイント獲得しました。", "You earned %d point%s total."), num, (num > 1 ? "s" : ""));
 
-            object_prep(player_ptr, &forge, lookup_kind(prize_list[num - 1].tval, prize_list[num - 1].sval));
+            (&forge)->object_prep(player_ptr, lookup_kind(prize_list[num - 1].tval, prize_list[num - 1].sval));
             apply_magic_to_object(player_ptr, &forge, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART);
 
             object_aware(player_ptr, &forge);
index 162fb20..c79c89d 100644 (file)
@@ -15,7 +15,6 @@
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
 #include "object/object-flags.h"
-#include "object/object-generator.h"
 #include "realm/realm-hex-numbers.h"
 #include "spell-realm/spells-hex.h"
 #include "sv-definition/sv-weapon-types.h"
@@ -360,7 +359,7 @@ PRICE compare_weapons(player_type *customer_ptr, PRICE bcost)
     screen_save();
     clear_bldg(0, 22);
     i_ptr = &customer_ptr->inventory_list[INVEN_MAIN_HAND];
-    object_copy(&orig_weapon, i_ptr);
+    (&orig_weapon)->object_copy(i_ptr);
 
     item_tester_hook = item_tester_hook_orthodox_melee_weapons;
     concptr q = _("第一の武器は?", "What is your first weapon? ");
@@ -382,14 +381,14 @@ PRICE compare_weapons(player_type *customer_ptr, PRICE bcost)
         for (int i = 0; i < n; i++) {
             int col = (wid * i + mgn);
             if (o_ptr[i] != i_ptr)
-                object_copy(i_ptr, o_ptr[i]);
+                i_ptr->object_copy(o_ptr[i]);
 
             customer_ptr->update |= PU_BONUS;
             handle_stuff(customer_ptr);
 
             list_weapon(customer_ptr, o_ptr[i], row, col);
             compare_weapon_aux(customer_ptr, o_ptr[i], col, row + 8);
-            object_copy(i_ptr, &orig_weapon);
+            i_ptr->object_copy(&orig_weapon);
         }
 
         customer_ptr->update |= PU_BONUS;
index 57b57ea..72a3c37 100644 (file)
@@ -17,7 +17,6 @@
 #include "object-hook/hook-bow.h"
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "perception/object-perception.h"
 #include "system/floor-type-definition.h"
@@ -121,7 +120,7 @@ bool create_ammo(player_type *creature_ptr)
 
         object_type forge;
         object_type *q_ptr = &forge;
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_SHOT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_SHOT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
         q_ptr->number = (byte)rand_range(15, 30);
         object_aware(creature_ptr, q_ptr);
         object_known(q_ptr);
@@ -149,7 +148,7 @@ bool create_ammo(player_type *creature_ptr)
 
         object_type forge;
         q_ptr = &forge;
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_ARROW, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_ARROW, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
         q_ptr->number = (byte)rand_range(5, 10);
         object_aware(creature_ptr, q_ptr);
         object_known(q_ptr);
@@ -176,7 +175,7 @@ bool create_ammo(player_type *creature_ptr)
 
         object_type forge;
         q_ptr = &forge;
-        object_prep(creature_ptr, q_ptr, lookup_kind(TV_BOLT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
+        q_ptr->object_prep(creature_ptr, lookup_kind(TV_BOLT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, creature_ptr->lev) + 1));
         q_ptr->number = (byte)rand_range(4, 8);
         object_aware(creature_ptr, q_ptr);
         object_known(q_ptr);
index 7a09535..534dd9a 100644 (file)
@@ -2,7 +2,6 @@
 #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"
@@ -113,7 +112,7 @@ void acquire_chaos_weapon(player_type *creature_ptr)
         dummy2 = SV_BLADE_OF_CHAOS;
     }
 
-    object_prep(creature_ptr, q_ptr, lookup_kind(dummy, dummy2));
+    q_ptr->object_prep(creature_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);
index 5c9852c..49f566e 100644 (file)
@@ -1,6 +1,5 @@
 #include "mind/mind-hobbit.h"
 #include "floor/floor-object.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "sv-definition/sv-food-types.h"
 #include "system/object-type-definition.h"
@@ -11,7 +10,7 @@ bool create_ration(player_type *creature_ptr)
 {
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
+    q_ptr->object_prep(creature_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
     (void)drop_near(creature_ptr, q_ptr, -1, creature_ptr->y, creature_ptr->x);
     msg_print(_("食事を料理して作った。", "You cook some food."));
     return TRUE;
index 4c17497..497af5b 100644 (file)
@@ -15,7 +15,6 @@
 #include "object-hook/hook-magic.h"
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "player/player-realm.h"
 #include "system/object-type-definition.h"
@@ -78,7 +77,7 @@ bool eat_magic(player_type *caster_ptr, int power)
                     object_type forge;
                     object_type *q_ptr;
                     q_ptr = &forge;
-                    object_copy(q_ptr, o_ptr);
+                    q_ptr->object_copy(o_ptr);
 
                     q_ptr->number = 1;
                     o_ptr->pval++;
index cde78e3..7cde0ed 100644 (file)
@@ -25,7 +25,6 @@
 #include "monster/monster-status.h"
 #include "monster/monster-update.h"
 #include "object-enchant/trc-types.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "player-attack/player-attack-util.h"
 #include "player-info/equipment-info.h"
@@ -87,9 +86,9 @@ bool kawarimi(player_type *caster_ptr, bool success)
     POSITION x = caster_ptr->x;
 
     teleport_player(caster_ptr, 10 + randint1(90), TELEPORT_SPONTANEOUS);
-    object_wipe(q_ptr);
+    q_ptr->object_wipe();
     const int SV_WOODEN_STATUE = 0;
-    object_prep(caster_ptr, q_ptr, lookup_kind(TV_STATUE, SV_WOODEN_STATUE));
+    q_ptr->object_prep(caster_ptr, lookup_kind(TV_STATUE, SV_WOODEN_STATUE));
 
     q_ptr->pval = MON_NINJA;
     (void)drop_near(caster_ptr, q_ptr, -1, y, x);
index 01ea382..ba9f337 100644 (file)
@@ -16,7 +16,6 @@
 #include "monster-attack/monster-attack-util.h"
 #include "monster/monster-status.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind.h"
 #include "object/object-mark-types.h"
@@ -106,7 +105,7 @@ static void move_item_to_monster(player_type *target_ptr, monap_type *monap_ptr,
 
     object_type *j_ptr;
     j_ptr = &target_ptr->current_floor_ptr->o_list[o_idx];
-    object_copy(j_ptr, monap_ptr->o_ptr);
+    j_ptr->object_copy(monap_ptr->o_ptr);
     j_ptr->number = 1;
     if ((monap_ptr->o_ptr->tval == TV_ROD) || (monap_ptr->o_ptr->tval == TV_WAND)) {
         j_ptr->pval = monap_ptr->o_ptr->pval / monap_ptr->o_ptr->number;
index ccc3d49..7138687 100644 (file)
@@ -32,7 +32,6 @@
 #include "monster/monster-list.h"
 #include "object-enchant/apply-magic.h"
 #include "object-enchant/item-apply-magic.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "pet/pet-fall-off.h"
 #include "player/patron.h"
@@ -91,7 +90,7 @@ static void on_defeat_arena_monster(player_type *player_ptr, monster_death_type
     if (arena_info[player_ptr->arena_number].tval) {
         object_type forge;
         object_type *q_ptr = &forge;
-        object_prep(player_ptr, q_ptr, lookup_kind(arena_info[player_ptr->arena_number].tval, arena_info[player_ptr->arena_number].sval));
+        q_ptr->object_prep(player_ptr, lookup_kind(arena_info[player_ptr->arena_number].tval, arena_info[player_ptr->arena_number].sval));
         apply_magic_to_object(player_ptr, q_ptr, floor_ptr->object_level, AM_NO_FIXED_ART);
         (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
     }
@@ -135,7 +134,7 @@ static void drop_corpse(player_type *player_ptr, monster_death_type *md_ptr)
 
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, lookup_kind(TV_CORPSE, (corpse ? SV_CORPSE : SV_SKELETON)));
+    q_ptr->object_prep(player_ptr, lookup_kind(TV_CORPSE, (corpse ? SV_CORPSE : SV_SKELETON)));
     apply_magic_to_object(player_ptr, q_ptr, floor_ptr->object_level, AM_NO_FIXED_ART);
     q_ptr->pval = md_ptr->m_ptr->r_idx;
     (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
@@ -216,7 +215,7 @@ static void drop_artifact(player_type *player_ptr, monster_death_type *md_ptr)
     if (k_idx != 0) {
         object_type forge;
         object_type *q_ptr = &forge;
-        object_prep(player_ptr, q_ptr, k_idx);
+        q_ptr->object_prep(player_ptr, k_idx);
         apply_magic_to_object(player_ptr, q_ptr, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART | AM_GOOD);
         (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
     }
@@ -277,7 +276,7 @@ static void drop_items_golds(player_type *player_ptr, monster_death_type *md_ptr
     for (int i = 0; i < drop_numbers; i++) {
         object_type forge;
         object_type *q_ptr = &forge;
-        object_wipe(q_ptr);
+        q_ptr->object_wipe();
         if (md_ptr->do_gold && (!md_ptr->do_item || (randint0(100) < 50))) {
             if (!make_gold(player_ptr, q_ptr))
                 continue;
index 527039a..4ef6268 100644 (file)
@@ -22,7 +22,6 @@
 #include "object-enchant/tr-types.h"
 #include "object-hook/hook-enchant.h"
 #include "object/object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-mark-types.h"
 #include "system/floor-type-definition.h"
 #include "system/monster-race-definition.h"
@@ -196,7 +195,7 @@ void monster_drop_carried_objects(player_type *player_ptr, monster_type *m_ptr)
         const OBJECT_IDX this_o_idx = *it++;
         o_ptr = &player_ptr->current_floor_ptr->o_list[this_o_idx];
         q_ptr = &forge;
-        object_copy(q_ptr, o_ptr);
+        q_ptr->object_copy(o_ptr);
         q_ptr->held_m_idx = 0;
         delete_object_idx(player_ptr, this_o_idx);
         (void)drop_near(player_ptr, q_ptr, -1, m_ptr->fy, m_ptr->fx);
index 2f8c737..9f2413a 100644 (file)
@@ -29,7 +29,6 @@
 #include "object-enchant/apply-magic.h"
 #include "object-enchant/item-apply-magic.h"
 #include "object-hook/hook-checker.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "spell/spell-types.h"
 #include "spell/summon-types.h"
@@ -103,7 +102,7 @@ static void on_dead_bloodletter(player_type *player_ptr, monster_death_type *md_
 
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, lookup_kind(TV_SWORD, SV_BLADE_OF_CHAOS));
+    q_ptr->object_prep(player_ptr, lookup_kind(TV_SWORD, SV_BLADE_OF_CHAOS));
     apply_magic_to_object(player_ptr, q_ptr, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART | md_ptr->mo_mode);
     (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
 }
@@ -116,7 +115,7 @@ static void on_dead_raal(player_type *player_ptr, monster_death_type *md_ptr)
 
     object_type forge;
     object_type *q_ptr = &forge;
-    object_wipe(q_ptr);
+    q_ptr->object_wipe();
     if ((floor_ptr->dun_level > 49) && one_in_(5))
         get_obj_num_hook = kind_is_good_book;
     else
@@ -189,12 +188,12 @@ static void on_dead_serpent(player_type *player_ptr, monster_death_type *md_ptr)
 
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, lookup_kind(TV_HAFTED, SV_GROND));
+    q_ptr->object_prep(player_ptr, lookup_kind(TV_HAFTED, SV_GROND));
     q_ptr->name1 = ART_GROND;
     apply_magic_to_object(player_ptr, q_ptr, -1, AM_GOOD | AM_GREAT);
     (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
     q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, lookup_kind(TV_CROWN, SV_CHAOS));
+    q_ptr->object_prep(player_ptr, lookup_kind(TV_CROWN, SV_CHAOS));
     q_ptr->name1 = ART_CHAOS;
     apply_magic_to_object(player_ptr, q_ptr, -1, AM_GOOD | AM_GREAT);
     (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
@@ -207,7 +206,7 @@ static void on_dead_death_sword(player_type *player_ptr, monster_death_type *md_
 
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, lookup_kind(TV_SWORD, randint1(2)));
+    q_ptr->object_prep(player_ptr, lookup_kind(TV_SWORD, randint1(2)));
     (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
 }
 
@@ -222,7 +221,7 @@ static void on_dead_can_angel(player_type *player_ptr, monster_death_type *md_pt
 
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, lookup_kind(TV_CHEST, SV_CHEST_KANDUME));
+    q_ptr->object_prep(player_ptr, lookup_kind(TV_CHEST, SV_CHEST_KANDUME));
     apply_magic_to_object(player_ptr, q_ptr, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART);
     (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
 }
@@ -341,7 +340,7 @@ static void on_dead_big_raven(player_type *player_ptr, monster_death_type *md_pt
  */
 static bool make_equipment(player_type *player_ptr, object_type *q_ptr, const BIT_FLAGS drop_mode, const bool is_object_hook_null)
 {
-    object_wipe(q_ptr);
+    q_ptr->object_wipe();
     (void)make_object(player_ptr, q_ptr, drop_mode);
     if (!is_object_hook_null) {
         return true;
@@ -434,7 +433,7 @@ static void drop_specific_item_on_dead(player_type *player_ptr, monster_death_ty
 {
     object_type forge;
     object_type *q_ptr = &forge;
-    object_wipe(q_ptr);
+    q_ptr->object_wipe();
     get_obj_num_hook = object_hook_pf;
     (void)make_object(player_ptr, q_ptr, md_ptr->mo_mode);
     (void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
index 77381d0..d832a2a 100644 (file)
@@ -32,7 +32,6 @@
 #include "monster/monster-info.h"
 #include "monster/monster-update.h"
 #include "monster/monster-util.h"
-#include "object/object-generator.h"
 #include "pet/pet-fall-off.h"
 #include "player/player-status.h"
 #include "system/alloc-entries.h"
index cab2585..7bee92d 100644 (file)
@@ -16,7 +16,6 @@
 #include "main/sound-of-music.h"
 #include "mutation/mutation-investor-remover.h"
 #include "object/object-broken.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind.h"
 #include "perception/object-perception.h"
@@ -139,7 +138,7 @@ void exe_quaff_potion(player_type *creature_ptr, INVENTORY_IDX item)
 
     o_ptr = ref_item(creature_ptr, item);
     q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
     q_ptr->number = 1;
     vary_item(creature_ptr, item, -1);
     sound(SOUND_QUAFF);
diff --git a/src/object/object-generator.h b/src/object/object-generator.h
deleted file mode 100644 (file)
index 37a7cd1..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-
-#include "system/angband.h"
-
-typedef struct object_type object_type;
-typedef struct player_type player_type;
-void object_wipe(object_type *o_ptr);
-void object_copy(object_type *o_ptr, object_type *j_ptr);
-void object_prep(player_type *player_ptr, object_type *o_ptr, KIND_OBJECT_IDX k_idx);
index 91345bf..a9ddf0c 100644 (file)
@@ -7,7 +7,6 @@
 #include "object-enchant/special-object-flags.h"
 #include "object-enchant/trg-types.h"
 #include "object/item-tester-hooker.h" // 暫定、このファイルへ引っ越す.
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "system/object-type-definition.h"
 #include "system/player-type-definition.h"
@@ -70,7 +69,7 @@ void object_aware(player_type *owner_ptr, object_type *o_ptr)
     GAME_TEXT o_name[MAX_NLEN];
 
     q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
 
     q_ptr->number = 1;
     describe_flavor(owner_ptr, o_name, q_ptr, OD_NAME_ONLY);
index be01f41..905d374 100644 (file)
@@ -4,7 +4,6 @@
 #include "object-enchant/trg-types.h"
 #include "object-hook/hook-enchant.h"
 #include "object-hook/hook-weapon.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "object/object-value-calc.h"
 #include "object/object-value.h"
@@ -74,8 +73,8 @@ void calc_android_exp(player_type *creature_ptr)
         if (!o_ptr->k_idx)
             continue;
 
-        object_wipe(q_ptr);
-        object_copy(q_ptr, o_ptr);
+        q_ptr->object_wipe();
+        q_ptr->object_copy(o_ptr);
         q_ptr->discount = 0;
         q_ptr->curse_flags = 0L;
 
index 0fdea2d..b95cf0a 100644 (file)
@@ -7,7 +7,6 @@
 #include "hpmp/hp-mp-processor.h"
 #include "monster-floor/monster-summon.h"
 #include "monster-floor/place-monster-types.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "player-attack/player-attack.h"
 #include "player-info/avatar.h"
@@ -134,7 +133,7 @@ concptr do_nature_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mod
                 msg_print(_("食料を生成した。", "A food ration is produced."));
 
                 /* Create the food ration */
-                object_prep(caster_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
+                q_ptr->object_prep(caster_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
 
                 /* Drop the object from heaven */
                 (void)drop_near(caster_ptr, q_ptr, -1, caster_ptr->y, caster_ptr->x);
index 0d0147c..55b4697 100644 (file)
@@ -8,7 +8,6 @@
 #include "monster-floor/monster-summon.h"
 #include "monster-floor/place-monster-types.h"
 #include "object-enchant/item-apply-magic.h"
-#include "object/object-generator.h"
 #include "perception/object-perception.h"
 #include "player/player-class.h"
 #include "player/player-damage.h"
@@ -90,7 +89,7 @@ void chest_death(player_type *owner_ptr, bool scatter, POSITION y, POSITION x, O
        for (; number > 0; --number)
        {
                q_ptr = &forge;
-               object_wipe(q_ptr);
+        q_ptr->object_wipe();
 
                /* Small chests often drop gold */
                if (small && (randint0(100) < 25))
index 55f018c..6aa1d89 100644 (file)
@@ -12,7 +12,6 @@
 #include "object-hook/hook-weapon.h"
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "player-info/avatar.h"
 #include "racial/racial-android.h"
 #include "system/object-type-definition.h"
@@ -140,7 +139,7 @@ bool mundane_spell(player_type *owner_ptr, bool only_equip)
     byte marked = o_ptr->marked;
     u16b inscription = o_ptr->inscription;
 
-    object_prep(owner_ptr, o_ptr, o_ptr->k_idx);
+    o_ptr->object_prep(owner_ptr, o_ptr->k_idx);
 
     o_ptr->iy = iy;
     o_ptr->ix = ix;
index c91dcb5..af6014d 100644 (file)
@@ -29,7 +29,6 @@
 #include "object-hook/hook-weapon.h"
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
 #include "perception/object-perception.h"
@@ -115,7 +114,7 @@ void amusement(player_type *creature_ptr, POSITION y1, POSITION x1, int num, boo
                 break;
         }
         i_ptr = &object_type_body;
-        object_wipe(i_ptr);
+        i_ptr->object_wipe();
         k_idx = lookup_kind(amuse_info[i].tval, amuse_info[i].sval);
 
         /* Paranoia - reroll if nothing */
@@ -144,7 +143,7 @@ void amusement(player_type *creature_ptr, POSITION y1, POSITION x1, int num, boo
         }
 
         /* Make an object (if possible) */
-        object_prep(creature_ptr, i_ptr, k_idx);
+        i_ptr->object_prep(creature_ptr, k_idx);
         if (a_idx)
             i_ptr->name1 = a_idx;
         apply_magic_to_object(creature_ptr, i_ptr, 1, AM_NO_FIXED_ART);
@@ -194,7 +193,7 @@ void acquirement(player_type *caster_ptr, POSITION y1, POSITION x1, int num, boo
     /* Acquirement */
     while (num--) {
         i_ptr = &object_type_body;
-        object_wipe(i_ptr);
+        i_ptr->object_wipe();
 
         /* Make a good (or great) object (if possible) */
         if (!make_object(caster_ptr, i_ptr, mode))
index c75f6ff..e7e5b7f 100644 (file)
@@ -24,7 +24,6 @@
 #include "inventory/inventory-slot-types.h"
 #include "mind/mind-force-trainer.h"
 #include "monster/monster-describer.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "object/object-kind.h"
 #include "player-info/avatar.h"
@@ -490,7 +489,7 @@ bool cosmic_cast_off(player_type *creature_ptr, object_type **o_ptr_ptr)
         return FALSE;
 
     object_type forge;
-    object_copy(&forge, o_ptr);
+    (&forge)->object_copy(o_ptr);
     inven_item_increase(creature_ptr, slot, (0 - o_ptr->number));
     inven_item_optimize(creature_ptr, slot);
 
index 6d9da5d..9b81307 100644 (file)
@@ -18,7 +18,6 @@
 #include "io/input-key-requester.h"
 #include "main/music-definitions-table.h"
 #include "main/sound-of-music.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "player-status/player-energy.h"
 #include "store/cmd-store.h"
@@ -171,7 +170,7 @@ void do_cmd_store(player_type *player_ptr)
                 GAME_TEXT o_name[MAX_NLEN];
                 msg_print(_("ザックからアイテムがあふれてしまった!", "Your pack overflows!"));
                 q_ptr = &forge;
-                object_copy(q_ptr, o_ptr);
+                q_ptr->object_copy(o_ptr);
                 describe_flavor(player_ptr, o_name, q_ptr, 0);
                 msg_format(_("%sが落ちた。(%c)", "You drop %s (%c)."), o_name, index_to_label(item));
                 vary_item(player_ptr, item, -255);
index a0df4f1..cb9f492 100644 (file)
@@ -2,7 +2,6 @@
 #include "floor/floor-town.h"
 #include "game-option/birth-options.h"
 #include "game-option/game-play-options.h"
-#include "object/object-generator.h"
 #include "object/object-stack.h"
 #include "object/object-value.h"
 #include "player-info/avatar.h"
@@ -94,7 +93,7 @@ static bool exe_combine_store_items(object_type *o_ptr, object_type *j_ptr, cons
     for (k = i; k < st_ptr->stock_num; k++)
         st_ptr->stock[k] = st_ptr->stock[k + 1];
 
-    object_wipe(&st_ptr->stock[k]);
+    (&st_ptr->stock[k])->object_wipe();
     *combined = TRUE;
     return TRUE;
 }
@@ -151,11 +150,11 @@ static void exe_reorder_store_item(player_type *player_ptr, bool *flag)
         object_type *j_ptr;
         object_type forge;
         j_ptr = &forge;
-        object_copy(j_ptr, &st_ptr->stock[i]);
+        j_ptr->object_copy(&st_ptr->stock[i]);
         for (int k = i; k > j; k--)
-            object_copy(&st_ptr->stock[k], &st_ptr->stock[k - 1]);
+            (&st_ptr->stock[k])->object_copy(&st_ptr->stock[k - 1]);
 
-        object_copy(&st_ptr->stock[j], j_ptr);
+        (&st_ptr->stock[j])->object_copy(j_ptr);
     }
 }
 
index f22fb3a..621ef01 100644 (file)
@@ -13,7 +13,6 @@
 #include "main/sound-of-music.h"
 #include "object-enchant/item-feeling.h"
 #include "object-enchant/special-object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-stack.h"
 #include "object/object-value.h"
@@ -210,7 +209,7 @@ void store_purchase(player_type *player_ptr)
     ITEM_NUMBER amt = 1;
     object_type forge;
     object_type *j_ptr = &forge;
-    object_copy(j_ptr, o_ptr);
+    j_ptr->object_copy(o_ptr);
 
     /*
      * If a rod or wand, allocate total maximum timeouts or charges
@@ -235,7 +234,7 @@ void store_purchase(player_type *player_ptr)
     }
 
     j_ptr = &forge;
-    object_copy(j_ptr, o_ptr);
+    j_ptr->object_copy(o_ptr);
 
     /*
      * If a rod or wand, allocate total maximum timeouts or charges
index e4ce2c6..8daedd2 100644 (file)
@@ -8,7 +8,6 @@
 #include "io/tokenizer.h"
 #include "monster-race/monster-race.h"
 #include "object-enchant/special-object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "system/artifact-type-definition.h"
 #include "system/monster-race-definition.h"
@@ -77,7 +76,7 @@ void display_rumor(player_type *player_ptr, bool ex)
         KIND_OBJECT_IDX k_idx = lookup_kind(a_ptr->tval, a_ptr->sval);
         object_type forge;
         object_type *q_ptr = &forge;
-        object_prep(player_ptr, q_ptr, k_idx);
+        q_ptr->object_prep(player_ptr, k_idx);
         q_ptr->name1 = a_idx;
         q_ptr->ident = IDENT_STORE;
         describe_flavor(player_ptr, fullname, q_ptr, OD_NAME_ONLY);
index 0a77562..3228885 100644 (file)
@@ -20,7 +20,6 @@
 #include "object-hook/hook-checker.h"
 #include "object/item-tester-hooker.h"
 #include "object/item-use-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-stack.h"
 #include "object/object-value.h"
@@ -128,7 +127,7 @@ void store_sell(player_type *owner_ptr)
 
     object_type forge;
     object_type *q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
     q_ptr->number = amt;
 
     if ((o_ptr->tval == TV_ROD) || (o_ptr->tval == TV_WAND))
@@ -170,7 +169,7 @@ void store_sell(player_type *owner_ptr)
 
             identify_item(owner_ptr, o_ptr);
             q_ptr = &forge;
-            object_copy(q_ptr, o_ptr);
+            q_ptr->object_copy(o_ptr);
             q_ptr->number = amt;
             q_ptr->ident |= IDENT_STORE;
 
index 696a10c..f4df529 100644 (file)
@@ -10,7 +10,6 @@
 #include "object-enchant/item-feeling.h"
 #include "object-enchant/special-object-flags.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "object/object-value.h"
 #include "perception/object-perception.h"
@@ -63,7 +62,7 @@ void store_item_optimize(INVENTORY_IDX item)
     for (int j = item; j < st_ptr->stock_num; j++)
         st_ptr->stock[j] = st_ptr->stock[j + 1];
 
-    object_wipe(&st_ptr->stock[st_ptr->stock_num]);
+    (&st_ptr->stock[st_ptr->stock_num])->object_wipe();
 }
 
 /*!
@@ -153,7 +152,7 @@ void store_create(
         object_type forge;
         object_type *q_ptr;
         q_ptr = &forge;
-        object_prep(player_ptr, q_ptr, k_idx);
+        q_ptr->object_prep(player_ptr, k_idx);
         apply_magic_to_object(player_ptr, q_ptr, level, AM_NO_FIXED_ART);
         if (!(*store_will_buy)(player_ptr, q_ptr))
             continue;
index 45f4fc1..90b4293 100644 (file)
@@ -19,7 +19,6 @@
 #include "main/sound-of-music.h"
 #include "object-enchant/special-object-flags.h"
 #include "object-hook/hook-enchant.h"
-#include "object/object-generator.h"
 #include "object/object-stack.h"
 #include "perception/identification.h"
 #include "perception/object-perception.h"
@@ -387,5 +386,5 @@ void store_init(int town_num, int store_num)
     st_ptr->stock_num = 0;
     st_ptr->last_visit = -10L * TURNS_PER_TICK * STORE_TICKS;
     for (int k = 0; k < st_ptr->stock_size; k++)
-        object_wipe(&st_ptr->stock[k]);
+        (&st_ptr->stock[k])->object_wipe();
 }
similarity index 50%
rename from src/object/object-generator.cpp
rename to src/system/object-type-definition.cpp
index 6057695..c1fd819 100644 (file)
@@ -1,10 +1,9 @@
-#include "object/object-generator.h"
+#include "system/object-type-definition.h"
 #include "object-enchant/object-curse.h"
 #include "object-enchant/special-object-flags.h"
 #include "object-enchant/trc-types.h"
 #include "object-enchant/trg-types.h"
 #include "object/object-kind.h"
-#include "system/object-type-definition.h"
 #include "system/player-type-definition.h"
 
 /*!
  * Wipe an object clean.
  * @param o_ptr 初期化したいオブジェクトの構造体参照ポインタ
  */
-void object_wipe(object_type *o_ptr) { (void)WIPE(o_ptr, object_type); }
+void object_type::object_wipe()
+{
+    (void)WIPE(this, object_type);
+}
 
 /*!
  * @brief オブジェクトを複製する
@@ -20,7 +22,10 @@ void object_wipe(object_type *o_ptr) { (void)WIPE(o_ptr, object_type); }
  * @param o_ptr 複製元のオブジェクトの構造体参照ポインタ
  * @param j_ptr 複製先のオブジェクトの構造体参照ポインタ
  */
-void object_copy(object_type *o_ptr, object_type *j_ptr) { (void)COPY(o_ptr, j_ptr, object_type); }
+void object_type::object_copy(object_type *j_ptr)
+{
+    (void)COPY(this, j_ptr, object_type);
+}
 
 /*!
  * @brief オブジェクト構造体にベースアイテムを作成する
@@ -28,38 +33,38 @@ void object_copy(object_type *o_ptr, object_type *j_ptr) { (void)COPY(o_ptr, j_p
  * @param o_ptr 代入したいオブジェクトの構造体参照ポインタ
  * @param k_idx 新たに作成したいベースアイテム情報のID
  */
-void object_prep(player_type *player_ptr, object_type *o_ptr, KIND_OBJECT_IDX k_idx)
+void object_type::object_prep(player_type *player_ptr, KIND_OBJECT_IDX ko_idx)
 {
-    object_kind *k_ptr = &k_info[k_idx];
-    object_wipe(o_ptr);
-    o_ptr->k_idx = k_idx;
-    o_ptr->tval = k_ptr->tval;
-    o_ptr->sval = k_ptr->sval;
-    o_ptr->pval = k_ptr->pval;
-    o_ptr->number = 1;
-    o_ptr->weight = k_ptr->weight;
-    o_ptr->to_h = k_ptr->to_h;
-    o_ptr->to_d = k_ptr->to_d;
-    o_ptr->to_a = k_ptr->to_a;
-    o_ptr->ac = k_ptr->ac;
-    o_ptr->dd = k_ptr->dd;
-    o_ptr->ds = k_ptr->ds;
+    object_kind *k_ptr = &k_info[ko_idx];
+    object_wipe();
+    this->k_idx = ko_idx;
+    this->tval = k_ptr->tval;
+    this->sval = k_ptr->sval;
+    this->pval = k_ptr->pval;
+    this->number = 1;
+    this->weight = k_ptr->weight;
+    this->to_h = k_ptr->to_h;
+    this->to_d = k_ptr->to_d;
+    this->to_a = k_ptr->to_a;
+    this->ac = k_ptr->ac;
+    this->dd = k_ptr->dd;
+    this->ds = k_ptr->ds;
 
     if (k_ptr->act_idx > 0)
-        o_ptr->xtra2 = (XTRA8)k_ptr->act_idx;
-    if (k_info[o_ptr->k_idx].cost <= 0)
-        o_ptr->ident |= (IDENT_BROKEN);
+        this->xtra2 = (XTRA8)k_ptr->act_idx;
+    if (k_info[this->k_idx].cost <= 0)
+        this->ident |= (IDENT_BROKEN);
 
     if (k_ptr->gen_flags.has(TRG::CURSED))
-        o_ptr->curse_flags |= (TRC_CURSED);
+        this->curse_flags |= (TRC_CURSED);
     if (k_ptr->gen_flags.has(TRG::HEAVY_CURSE))
-        o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
+        this->curse_flags |= (TRC_HEAVY_CURSE);
     if (k_ptr->gen_flags.has(TRG::PERMA_CURSE))
-        o_ptr->curse_flags |= (TRC_PERMA_CURSE);
+        this->curse_flags |= (TRC_PERMA_CURSE);
     if (k_ptr->gen_flags.has(TRG::RANDOM_CURSE0))
-        o_ptr->curse_flags |= get_curse(player_ptr, 0, o_ptr);
+        this->curse_flags |= get_curse(player_ptr, 0, this);
     if (k_ptr->gen_flags.has(TRG::RANDOM_CURSE1))
-        o_ptr->curse_flags |= get_curse(player_ptr, 1, o_ptr);
+        this->curse_flags |= get_curse(player_ptr, 1, this);
     if (k_ptr->gen_flags.has(TRG::RANDOM_CURSE2))
-        o_ptr->curse_flags |= get_curse(player_ptr, 2, o_ptr);
+        this->curse_flags |= get_curse(player_ptr, 2, this);
 }
index 1fb5775..98462c7 100644 (file)
@@ -4,6 +4,7 @@
 #include "system/angband.h"
 #include "system/system-variables.h"
 
+struct player_type;
 typedef struct object_type {
     KIND_OBJECT_IDX k_idx; /* Kind index (zero if "dead") */
     POSITION iy; /* Y-position on map, or zero */
@@ -42,4 +43,8 @@ typedef struct object_type {
     BIT_FLAGS curse_flags; /* Flags for curse */
     MONSTER_IDX held_m_idx; /*!< アイテムを所持しているモンスターID (いないなら 0) / Monster holding us (if any) */
     ARTIFACT_BIAS_IDX artifact_bias; /*!< ランダムアーティファクト生成時のバイアスID */
+
+    void object_wipe();
+    void object_copy(object_type *j_ptr);
+    void object_prep(player_type *player_ptr, KIND_OBJECT_IDX ko_idx);
 } object_type;
index 129dbca..703b963 100644 (file)
@@ -3,7 +3,6 @@
 #include "flavor/flavor-describer.h"
 #include "flavor/object-flavor-types.h"
 #include "object-enchant/special-object-flags.h"
-#include "object/object-generator.h"
 #include "perception/object-perception.h"
 #include "realm/realm-names-table.h"
 #include "spell/spell-info.h"
@@ -88,7 +87,7 @@ void display_koff(player_type *owner_ptr, KIND_OBJECT_IDX k_idx)
         return;
     q_ptr = &forge;
 
-    object_prep(owner_ptr, q_ptr, k_idx);
+    q_ptr->object_prep(owner_ptr, k_idx);
     describe_flavor(owner_ptr, o_name, q_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY | OD_STORE));
 
     term_putstr(0, 0, -1, TERM_WHITE, o_name);
index 1e7916b..73f4d2b 100644 (file)
@@ -1,6 +1,5 @@
 #include "wizard/fixed-artifacts-spoiler.h"
 #include "io/files-util.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "system/angband-version.h"
 #include "system/artifact-type-definition.h"
@@ -93,7 +92,7 @@ static bool make_fake_artifact(player_type *player_ptr, object_type *o_ptr, ARTI
     if (!i)
         return FALSE;
 
-    object_prep(player_ptr, o_ptr, i);
+    o_ptr->object_prep(player_ptr, i);
     o_ptr->name1 = name1;
     o_ptr->pval = a_ptr->pval;
     o_ptr->ac = a_ptr->ac;
@@ -169,7 +168,7 @@ spoiler_output_status spoil_fixed_artifact(concptr fname)
                 continue;
 
             q_ptr = &forge;
-            object_wipe(q_ptr);
+            q_ptr->object_wipe();
             if (!make_fake_artifact(&dummy, q_ptr, j))
                 continue;
 
index 6cb2765..5ac891a 100644 (file)
@@ -4,7 +4,6 @@
 #include "io/files-util.h"
 #include "object-enchant/special-object-flags.h"
 #include "object-enchant/trg-types.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "object/object-value.h"
 #include "system/angband-version.h"
@@ -30,7 +29,7 @@ static void kind_info(player_type *player_ptr, char *buf, char *dam, char *wgt,
 {
     object_type forge;
     object_type *q_ptr = &forge;
-    object_prep(player_ptr, q_ptr, k);
+    q_ptr->object_prep(player_ptr, k);
     q_ptr->ident |= IDENT_KNOWN;
     q_ptr->pval = 0;
     q_ptr->to_a = 0;
index 9438d05..ba40ee5 100644 (file)
@@ -23,7 +23,6 @@
 #include "object-hook/hook-checker.h"
 #include "object/item-use-flags.h"
 #include "object/object-flags.h"
-#include "object/object-generator.h"
 #include "object/object-info.h"
 #include "object/object-kind.h"
 #include "object/object-kind-hook.h"
@@ -439,7 +438,7 @@ static void wiz_statistics(player_type *caster_ptr, object_type *o_ptr)
 
             object_type forge;
             object_type *q_ptr = &forge;
-            object_wipe(q_ptr);
+            q_ptr->object_wipe();
             make_object(caster_ptr, q_ptr, mode);
             if (object_is_fixed_artifact(q_ptr))
                 a_info[q_ptr->name1].cur_num = 0;
@@ -481,7 +480,7 @@ static void wiz_reroll_item(player_type *owner_ptr, object_type *o_ptr)
     object_type forge;
     object_type *q_ptr;
     q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
 
     char ch;
     bool changed = FALSE;
@@ -510,32 +509,32 @@ static void wiz_reroll_item(player_type *owner_ptr, object_type *o_ptr)
         switch (tolower(ch)) {
         /* Apply bad magic, but first clear object */
         case 'w':
-            object_prep(owner_ptr, q_ptr, o_ptr->k_idx);
+            q_ptr->object_prep(owner_ptr, o_ptr->k_idx);
             apply_magic_to_object(owner_ptr, q_ptr, owner_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD | AM_GREAT | AM_CURSED);
             break;
         /* Apply bad magic, but first clear object */
         case 'c':
-            object_prep(owner_ptr, q_ptr, o_ptr->k_idx);
+            q_ptr->object_prep(owner_ptr, o_ptr->k_idx);
             apply_magic_to_object(owner_ptr, q_ptr, owner_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD | AM_CURSED);
             break;
         /* Apply normal magic, but first clear object */
         case 'n':
-            object_prep(owner_ptr, q_ptr, o_ptr->k_idx);
+            q_ptr->object_prep(owner_ptr, o_ptr->k_idx);
             apply_magic_to_object(owner_ptr, q_ptr, owner_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART);
             break;
         /* Apply good magic, but first clear object */
         case 'g':
-            object_prep(owner_ptr, q_ptr, o_ptr->k_idx);
+            q_ptr->object_prep(owner_ptr, o_ptr->k_idx);
             apply_magic_to_object(owner_ptr, q_ptr, owner_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD);
             break;
         /* Apply great magic, but first clear object */
         case 'e':
-            object_prep(owner_ptr, q_ptr, o_ptr->k_idx);
+            q_ptr->object_prep(owner_ptr, o_ptr->k_idx);
             apply_magic_to_object(owner_ptr, q_ptr, owner_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD | AM_GREAT);
             break;
         /* Apply special magic, but first clear object */
         case 's':
-            object_prep(owner_ptr, q_ptr, o_ptr->k_idx);
+            q_ptr->object_prep(owner_ptr, o_ptr->k_idx);
             apply_magic_to_object(owner_ptr, q_ptr, owner_ptr->current_floor_ptr->dun_level, AM_GOOD | AM_GREAT | AM_SPECIAL);
             if (!object_is_artifact(q_ptr))
                 become_random_artifact(owner_ptr, q_ptr, FALSE);
@@ -553,7 +552,7 @@ static void wiz_reroll_item(player_type *owner_ptr, object_type *o_ptr)
     if (!changed)
         return;
 
-    object_copy(o_ptr, q_ptr);
+    o_ptr->object_copy(q_ptr);
     set_bits(owner_ptr->update, PU_BONUS | PU_COMBINE | PU_REORDER);
     set_bits(owner_ptr->window_flags, PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_FLOOR_ITEM_LIST);
 }
@@ -652,7 +651,7 @@ void wiz_modify_item(player_type *creature_ptr)
     object_type forge;
     object_type *q_ptr;
     q_ptr = &forge;
-    object_copy(q_ptr, o_ptr);
+    q_ptr->object_copy(o_ptr);
     char ch;
     bool changed = FALSE;
     while (TRUE) {
@@ -688,7 +687,7 @@ void wiz_modify_item(player_type *creature_ptr)
     if (changed) {
         msg_print("Changes accepted.");
 
-        object_copy(o_ptr, q_ptr);
+        o_ptr->object_copy(q_ptr);
         set_bits(creature_ptr->update, PU_BONUS | PU_COMBINE | PU_REORDER);
         set_bits(creature_ptr->window_flags, PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_FLOOR_ITEM_LIST);
     } else {
@@ -844,7 +843,7 @@ WishResult do_cmd_wishing(player_type *caster_ptr, int prob, bool allow_art, boo
             if (k_ptr->name.empty())
                 continue;
 
-            object_prep(caster_ptr, o_ptr, k);
+            o_ptr->object_prep(caster_ptr, k);
             describe_flavor(caster_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY | OD_STORE));
 #ifndef JP
             str_tolower(o_name);
@@ -864,7 +863,7 @@ WishResult do_cmd_wishing(player_type *caster_ptr, int prob, bool allow_art, boo
 
         if (allow_ego && k_ids.size() == 1) {
             KIND_OBJECT_IDX k_idx = k_ids.back();
-            object_prep(caster_ptr, o_ptr, k_idx);
+            o_ptr->object_prep(caster_ptr, k_idx);
 
             for (EGO_IDX k = 1; k < max_e_idx; k++) {
                 ego_item_type *e_ptr = &e_info[k];
@@ -905,7 +904,7 @@ WishResult do_cmd_wishing(player_type *caster_ptr, int prob, bool allow_art, boo
             if (!k_idx)
                 continue;
 
-            object_prep(caster_ptr, o_ptr, k_idx);
+            o_ptr->object_prep(caster_ptr, k_idx);
             o_ptr->name1 = i;
 
             describe_flavor(caster_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY | OD_STORE));
@@ -1015,7 +1014,7 @@ WishResult do_cmd_wishing(player_type *caster_ptr, int prob, bool allow_art, boo
         if (wish_randart) {
             if (must || ok_art) {
                 do {
-                    object_prep(caster_ptr, o_ptr, k_idx);
+                    o_ptr->object_prep(caster_ptr, k_idx);
                     apply_magic_to_object(caster_ptr, o_ptr, k_ptr->level, (AM_SPECIAL | AM_NO_FIXED_ART));
                 } while (!o_ptr->art_name || o_ptr->name1 || o_ptr->name2 || object_is_cursed(o_ptr));
 
@@ -1031,14 +1030,14 @@ WishResult do_cmd_wishing(player_type *caster_ptr, int prob, bool allow_art, boo
         if (allow_ego && (wish_ego || e_ids.size() > 0)) {
             if (must || ok_ego) {
                 if (e_ids.size() > 0) {
-                    object_prep(caster_ptr, o_ptr, k_idx);
+                    o_ptr->object_prep(caster_ptr, k_idx);
                     o_ptr->name2 = e_ids[0];
                     apply_ego(caster_ptr, o_ptr, caster_ptr->current_floor_ptr->base_level);
                 } else {
                     int max_roll = 1000;
                     int i = 0;
                     for (i = 0; i < max_roll; i++) {
-                        object_prep(caster_ptr, o_ptr, k_idx);
+                        o_ptr->object_prep(caster_ptr, k_idx);
                         (void)apply_magic_to_object(caster_ptr, o_ptr, k_ptr->level, (AM_GREAT | AM_NO_FIXED_ART));
 
                         if (o_ptr->name1 || o_ptr->art_name)
@@ -1071,7 +1070,7 @@ WishResult do_cmd_wishing(player_type *caster_ptr, int prob, bool allow_art, boo
             res = WishResult::EGO;
         } else {
             for (int i = 0; i < 100; i++) {
-                object_prep(caster_ptr, o_ptr, k_idx);
+                o_ptr->object_prep(caster_ptr, k_idx);
                 apply_magic_to_object(caster_ptr, o_ptr, 0, (AM_NO_FIXED_ART));
                 if (!object_is_cursed(o_ptr))
                     break;
index e7e6fa1..0f97fda 100644 (file)
@@ -52,7 +52,6 @@
 #include "object-enchant/item-apply-magic.h"
 #include "object-enchant/trc-types.h"
 #include "object-enchant/trg-types.h"
-#include "object/object-generator.h"
 #include "object/object-kind.h"
 #include "perception/object-perception.h"
 #include "player-info/self-info.h"
@@ -203,7 +202,7 @@ void wiz_create_item(player_type *caster_ptr)
     object_type forge;
     object_type *q_ptr;
     q_ptr = &forge;
-    object_prep(caster_ptr, q_ptr, k_idx);
+    q_ptr->object_prep(caster_ptr, k_idx);
     apply_magic_to_object(caster_ptr, q_ptr, caster_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART);
     (void)drop_near(caster_ptr, q_ptr, -1, caster_ptr->y, caster_ptr->x);
     msg_print("Allocated.");
@@ -440,7 +439,7 @@ void wiz_learn_items_all(player_type *caster_ptr)
         object_kind *k_ptr = &k_info[i];
         if (k_ptr->level <= command_arg) {
             q_ptr = &forge;
-            object_prep(caster_ptr, q_ptr, i);
+            q_ptr->object_prep(caster_ptr, i);
             object_aware(caster_ptr, q_ptr);
         }
     }
index d181ed6..2042453 100644 (file)
@@ -19,7 +19,6 @@
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags7.h"
 #include "monster-race/race-flags8.h"
-#include "object/object-generator.h"
 #include "object/object-kind-hook.h"
 #include "player/player-class.h"
 #include "realm/realm-names-table.h"
@@ -260,7 +259,7 @@ static spoiler_output_status spoil_player_spell(concptr fname)
         if (magic_ptr->spell_book != 0) {
             object_type book;
             auto o_ptr = &book;
-            object_prep(&dummy_p, o_ptr, lookup_kind(magic_ptr->spell_book, 0));
+            o_ptr->object_prep(&dummy_p, lookup_kind(magic_ptr->spell_book, 0));
             describe_flavor(&dummy_p, title, o_ptr, OD_NAME_ONLY);
             book_name = title;
             char *s = angband_strchr(book_name, '[');