#include "angband.h"
#include "util.h"
+#include "main/sound-definitions-table.h"
#include "avatar.h"
-#include "spells.h"
+#include "spell/spells-type.h"
#include "spells-status.h"
#include "player-status.h"
#include "player-effects.h"
#include "player-class.h"
#include "player-inventory.h"
-#include "objectkind.h"
+#include "object/object-kind.h"
#include "object-hook.h"
#include "cmd-basic.h"
#include "floor.h"
#include "targeting.h"
-#include "view-mainwindow.h"
+#include "view/display-main-window.h"
/*!
* @brief 魔法棒の効果を発動する
sound(SOUND_ZAP);
ident = wand_effect(creature_ptr, o_ptr->sval, dir, FALSE, FALSE);
- creature_ptr->update |= (PU_COMBINE | PU_REORDER);
+
+ /*
+ * Temporarily remove the flags for updating the inventory so
+ * gain_exp() does not reorder the inventory before the charge
+ * is deducted from the wand.
+ */
+ BIT_FLAGS inventory_flags = (PU_COMBINE | PU_REORDER | (creature_ptr->update & PU_AUTODESTROY));
+ creature_ptr->update &= ~(PU_COMBINE | PU_REORDER | PU_AUTODESTROY);
if (!(object_is_aware(o_ptr)))
{
}
creature_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
+ creature_ptr->update |= inventory_flags;
/* Use a single charge */
o_ptr->pval--;