+/*
+ * process the effects per 100 energy at player speed.
+ */
+static void process_upkeep_with_speed(void)
+{
+ /* Give the player some energy */
+ if (!load && p_ptr->enchant_energy_need > 0 && !p_ptr->leaving)
+ {
+ p_ptr->enchant_energy_need -= SPEED_TO_ENERGY(p_ptr->pspeed);
+ }
+
+ /* No turn yet */
+ if (p_ptr->enchant_energy_need > 0) return;
+
+ while (p_ptr->enchant_energy_need <= 0)
+ {
+ /* Handle the player song */
+ if (!load) check_music();
+
+ /* Hex - Handle the hex spells */
+ if (!load) check_hex();
+ if (!load) revenge_spell();
+
+ /* There is some randomness of needed energy */
+ p_ptr->enchant_energy_need += ENERGY_NEED();
+ }
+}
+