#include "birth/initial-equipments-table.h"
#include "floor/floor-object.h"
#include "inventory/inventory-object.h"
+#include "inventory/inventory-slot-types.h"
#include "monster-race/monster-race-hook.h"
#include "monster/monster-list.h"
#include "monster/monster-util.h"
#include "object-enchant/apply-magic.h"
#include "object-enchant/item-apply-magic.h"
#include "object-enchant/object-ego.h"
-#include "perception/object-perception.h"
#include "object/object-generator.h"
+#include "object/object-info.h"
#include "object/object-kind-hook.h"
#include "object/object-kind.h"
-#include "object/object-info.h"
+#include "perception/object-perception.h"
#include "player/player-personalities-types.h"
#include "player/player-race-types.h"
+#include "realm/realm-types.h"
#include "sv-definition/sv-bow-types.h"
#include "sv-definition/sv-food-types.h"
#include "sv-definition/sv-lite-types.h"
continue;
int slot = wield_slot(creature_ptr, o_ptr);
- if (slot < INVEN_RARM)
+ if (slot < INVEN_MAIN_HAND)
continue;
if (slot == INVEN_LITE)
continue;
o_ptr = &creature_ptr->inventory_list[slot];
object_copy(o_ptr, i_ptr);
- creature_ptr->total_weight += i_ptr->weight;
creature_ptr->equip_cnt++;
}
}
/* 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(q_ptr, lookup_kind(TV_CORPSE, SV_CORPSE));
- q_ptr->pval = get_mon_num(creature_ptr, 2, 0);
+ object_prep(creature_ptr, q_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;
add_outfit(creature_ptr, q_ptr);
case RACE_ZOMBIE:
case RACE_SPECTRE:
/* Staff (of Nothing) */
- object_prep(q_ptr, lookup_kind(TV_STAFF, SV_STAFF_NOTHING));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_POTION, SV_POTION_WATER));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_FLASK, SV_ANY));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_FLASK, SV_ANY));
apply_magic(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(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
q_ptr->number = (ITEM_NUMBER)rand_range(3, 7);
add_outfit(creature_ptr, q_ptr);
}
q_ptr = &forge;
if ((creature_ptr->prace == RACE_VAMPIRE) && (creature_ptr->pclass != CLASS_NINJA)) {
- object_prep(q_ptr, lookup_kind(TV_SCROLL, SV_SCROLL_DARKNESS));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_LITE, SV_LITE_TORCH));
+ object_prep(creature_ptr, q_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;
q_ptr = &forge;
if (creature_ptr->prace == RACE_MERFOLK) {
- object_prep(q_ptr, lookup_kind(TV_RING, SV_RING_LEVITATION_FALL));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_BOW, SV_SHORT_BOW));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_BOW, SV_SHORT_BOW));
add_outfit(creature_ptr, q_ptr);
} else if (creature_ptr->pclass == CLASS_ARCHER) {
- object_prep(q_ptr, lookup_kind(TV_ARROW, SV_AMMO_NORMAL));
+ object_prep(creature_ptr, q_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) {
- object_prep(q_ptr, lookup_kind(TV_WAND, SV_WAND_MAGIC_MISSILE));
+ object_prep(creature_ptr, q_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) {
tval_type book_tval;
for (book_tval = TV_LIFE_BOOK; book_tval <= TV_LIFE_BOOK + MAX_MAGIC - 1; book_tval++) {
- object_prep(q_ptr, lookup_kind(book_tval, 0));
+ object_prep(creature_ptr, q_ptr, lookup_kind(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(q_ptr, lookup_kind(TV_SHOT, SV_AMMO_LIGHT));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_SHOT, SV_AMMO_LIGHT));
q_ptr->number = rand_range(15, 20);
add_outfit(creature_ptr, q_ptr);
}
- object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_BISCUIT));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_BISCUIT));
q_ptr->number = rand_range(2, 4);
add_outfit(creature_ptr, q_ptr);
- object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_WAYBREAD));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_WAYBREAD));
q_ptr->number = rand_range(2, 4);
add_outfit(creature_ptr, q_ptr);
- object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_JERKY));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_FOOD, SV_FOOD_JERKY));
q_ptr->number = rand_range(1, 3);
add_outfit(creature_ptr, q_ptr);
- object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_ALE));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_WINE));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_SPIKE, 0));
+ object_prep(creature_ptr, q_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(q_ptr, lookup_kind(TV_BOLT, SV_AMMO_NORMAL));
+ object_prep(creature_ptr, q_ptr, lookup_kind(TV_BOLT, SV_AMMO_NORMAL));
q_ptr->number = rand_range(15, 20);
add_outfit(creature_ptr, q_ptr);
}
- if (creature_ptr->pseikaku == PERSONALITY_SEXY) {
- player_init[creature_ptr->pclass][2][0] = TV_HAFTED;
- player_init[creature_ptr->pclass][2][1] = SV_WHIP;
+ if (creature_ptr->pclass != CLASS_SORCERER) {
+ if (creature_ptr->pseikaku == PERSONALITY_SEXY) {
+ player_init[creature_ptr->pclass][2][0] = TV_HAFTED;
+ player_init[creature_ptr->pclass][2][1] = SV_WHIP;
+ }
}
for (int i = 0; i < 3; i++) {
}
q_ptr = &forge;
- object_prep(q_ptr, lookup_kind(tv, sv));
+ object_prep(creature_ptr, q_ptr, lookup_kind(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;